8 years agoRevamp Item Destruction
Brendan Hickey [Sat, 29 Jun 2013 22:21:08 +0000 (15:21 -0700)]
Revamp Item Destruction

Replace outright scroll/potion destruction with smoldering/freezing statuses.
Smoldering conveys a 50% chance of scroll destruction on *use*, while freezing
does the same to your potions.

8 years agoMake Spectral Weapon damage sharing use a fineff.
Ed Gonzalez [Sat, 29 Jun 2013 11:25:38 +0000 (04:25 -0700)]
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.

8 years agoFixed issue with merging deferred_damage_fineff.
Ed Gonzalez [Sat, 29 Jun 2013 09:19:54 +0000 (02:19 -0700)]
Fixed issue with merging deferred_damage_fineff.

Merging now checks that both have the same state for attacker_effects.

8 years agoHalve Spectral Weapon damage sharing.
Ed Gonzalez [Sat, 29 Jun 2013 09:16:26 +0000 (02:16 -0700)]
Halve Spectral Weapon damage sharing.

8 years agoFixed some effects being applied twice to damage.
Ed Gonzalez [Sat, 29 Jun 2013 09:04:05 +0000 (02:04 -0700)]
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.

8 years agoModify Spectral Weapon damage sharing.
Ed Gonzalez [Fri, 28 Jun 2013 10:18:05 +0000 (03:18 -0700)]
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.

8 years agoBuff Spectral Weapon defenses (AC, EV)
Ed Gonzalez [Fri, 28 Jun 2013 08:26:13 +0000 (01:26 -0700)]
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.

8 years agoBuff Spectral Weapon (Gain immunity to allied beams)
Ed Gonzalez [Thu, 27 Jun 2013 10:55:40 +0000 (03:55 -0700)]
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.

8 years agoBuff Spectral Weapon damage (scales with weapon skill)
Ed Gonzalez [Thu, 27 Jun 2013 10:33:00 +0000 (03:33 -0700)]
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.

8 years agoDon't crash on ia=<up>
Neil Moore [Sat, 29 Jun 2013 07:56:41 +0000 (03:56 -0400)]
Don't crash on ia=<up>

8 years agoEliminate an unused variable.
Neil Moore [Sat, 29 Jun 2013 07:56:06 +0000 (03:56 -0400)]
Eliminate an unused variable.

8 years agoChange Polymoth behavior.
Brendan Hickey [Sat, 29 Jun 2013 05:11:16 +0000 (22:11 -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.

8 years agoLet the temporarily foodless still acquire food (Mantis #7283)
Pete Hurst [Sat, 29 Jun 2013 02:27:35 +0000 (03:27 +0100)]
Let the temporarily foodless still acquire food (Mantis #7283)

Adds an is_foodless_normally() call for other such uses.

8 years agoDon't spam fail messages when checking form validity.
Adam Borowski [Fri, 28 Jun 2013 22:16:54 +0000 (00:16 +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.

8 years agoRoll Zin's protection against polymorph only once.
Adam Borowski [Fri, 28 Jun 2013 22:13:51 +0000 (00:13 +0200)]
Roll Zin's protection against polymorph only once.

8 years agoPepper "you" and level chunks of save files with canaries.
Adam Borowski [Fri, 28 Jun 2013 20:12:31 +0000 (22: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.

8 years agoAxe a stray comma.
Adam Borowski [Fri, 28 Jun 2013 00:40:27 +0000 (02:40 +0200)]
Axe a stray comma.

8 years agoReformat some perl.
Adam Borowski [Fri, 28 Jun 2013 00:23:03 +0000 (02:23 +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

8 years agoReformat
Adam Borowski [Thu, 27 Jun 2013 10:39:36 +0000 (12:39 +0200)]

I left it aside in the past, but it stands in the way of automated checks.

8 years agoSilver wall tile.
ontoclasm [Fri, 28 Jun 2013 07:42:25 +0000 (02:42 -0500)]
Silver wall tile.

8 years agoClean up layout_forest
Pete Hurst [Fri, 28 Jun 2013 02:12:51 +0000 (03:12 +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.

8 years agoRename layout_woods -> layout_forest for clarity
Pete Hurst [Fri, 28 Jun 2013 02:05:34 +0000 (03:05 +0100)]
Rename layout_woods -> layout_forest for clarity

8 years agoSpirit wolf tile
ontoclasm [Fri, 28 Jun 2013 05:28:16 +0000 (00:28 -0500)]
Spirit wolf tile

8 years agoRevert "Demonic Taxonomy"
Brendan Hickey [Fri, 28 Jun 2013 03:42:05 +0000 (20:42 -0700)]
Revert "Demonic Taxonomy"

This reverts commit f2d916f53646c573646c5c00db4cb96d3c2cc20f.

8 years agoFix tiles rendering issue changing between levels
Pekka Lampila [Fri, 28 Jun 2013 01:20:37 +0000 (04:20 +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.

8 years agoDemonic Taxonomy
Brendan Hickey [Fri, 28 Jun 2013 01:09:02 +0000 (18:09 -0700)]
Demonic Taxonomy

Give most demons a general genus, one of:
imp, devil, demon, fiend.

8 years agoFix the minibar bug on WebTiles too
Pekka Lampila [Thu, 27 Jun 2013 23:55:37 +0000 (02:55 +0300)]
Fix the minibar bug on WebTiles too

Minibars showing on levels when player isn't there.

8 years agoFix minibars showing on levels without the player
Pekka Lampila [Thu, 27 Jun 2013 23:38:14 +0000 (02:38 +0300)]
Fix minibars showing on levels without the player

Fixed for local tiles only.

8 years agoAllow logging in while watching someone
Pekka Lampila [Tue, 25 Jun 2013 23:17:02 +0000 (02:17 +0300)]
Allow logging in while watching someone

8 years agoAsk login if necessary when starting WebTiles game
Pekka Lampila [Tue, 25 Jun 2013 16:13:19 +0000 (19:13 +0300)]
Ask login if necessary when starting WebTiles game

Previous behaviour was redirecting to lobby if anonymous user navigated
to #play... URL directly.

8 years agoAdd blackcustard, elliott, qoala, infiniplex, and lainiw to CREDITS.txt.
Neil Moore [Thu, 27 Jun 2013 20:34:57 +0000 (16:34 -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

8 years agoMark unknown scrolls as useless for hot lava orcs (SamB)
Neil Moore [Thu, 27 Jun 2013 20:07:40 +0000 (16:07 -0400)]
Mark unknown scrolls as useless for hot lava orcs (SamB)

8 years agoA desc for the book of battle.
Adam Borowski [Thu, 27 Jun 2013 10:10:34 +0000 (12:10 +0200)]
A desc for the book of battle.

8 years agoBrace fixes.
Adam Borowski [Thu, 27 Jun 2013 00:31:42 +0000 (02:31 +0200)]
Brace fixes.

8 years agoFix formatting.
Neil Moore [Thu, 27 Jun 2013 07:47:34 +0000 (03:47 -0400)]
Fix formatting.

8 years agoCorrect Grinder's genus.
Neil Moore [Thu, 27 Jun 2013 07:33:48 +0000 (03:33 -0400)]
Correct Grinder's genus.

This was a holdover from when crimson imps were less crimson, and all
imps shared a genus.

8 years agoAdd Polymoth to the Lair
Brendan Hickey [Thu, 27 Jun 2013 07:20:17 +0000 (00:20 -0700)]
Add Polymoth to the Lair

8 years agoDisable Polymoth Downgrades
Brendan Hickey [Thu, 27 Jun 2013 06:53:24 +0000 (23:53 -0700)]
Disable Polymoth Downgrades

Downgrades pose a problem with monsters that are at the peak of their genus.

8 years agoFurther restrict polymoth's polymorph.
Brendan Hickey [Thu, 27 Jun 2013 06:43:27 +0000 (23:43 -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.

8 years agoPolymo{th,rph} tweaks.
Brendan Hickey [Thu, 27 Jun 2013 06:14:39 +0000 (23:14 -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.

8 years agoNote Flayed and Engulfed in the logfile
DracoOmega [Thu, 27 Jun 2013 04:18:29 +0000 (01:48 -0230)]
Note Flayed and Engulfed in the logfile

8 years agoShow hp/mp minibars in WebTiles while transformed
Pekka Lampila [Thu, 27 Jun 2013 03:48:46 +0000 (06:48 +0300)]
Show hp/mp minibars in WebTiles while transformed

Also remove two function calls that did nothing.

8 years agoClarify wording of changelog for summons cap
Pete Hurst [Thu, 27 Jun 2013 03:42:01 +0000 (04:42 +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.

8 years agoRANDOM_SAME_GENUS polymorph fixes.
Steve Melenchuk [Thu, 27 Jun 2013 03:29:15 +0000 (21:29 -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.

8 years agoDisplay spectral sacred scourges correctly.
ontoclasm [Thu, 27 Jun 2013 01:35:57 +0000 (20:35 -0500)]
Display spectral sacred scourges correctly.

8 years agoMake spell list indentation more consistent.
Neil Moore [Thu, 27 Jun 2013 00:53:13 +0000 (20:53 -0400)]
Make spell list indentation more consistent.

8 years agoMake Spectral Weapon Charms/Hexes, not Conj.
Neil Moore [Thu, 27 Jun 2013 00:51:45 +0000 (20:51 -0400)]
Make Spectral Weapon Charms/Hexes, not Conj.

No more Vehumet support or gifting.

8 years agoAllow vampires to Cure Poison whenever they have blood (#7261).
Neil Moore [Thu, 27 Jun 2013 00:01:06 +0000 (20:01 -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.

8 years agoDon't crash when a monster instakills another with LRD.
Neil Moore [Wed, 26 Jun 2013 23:19:26 +0000 (19:19 -0400)]
Don't crash when a monster instakills another with LRD.

8 years agoLet monster_die take a const killer.
Neil Moore [Wed, 26 Jun 2013 23:18:44 +0000 (19:18 -0400)]
Let monster_die take a const killer.

8 years agoFix display of HP costs (#7267).
Neil Moore [Wed, 26 Jun 2013 20:21:43 +0000 (16:21 -0400)]
Fix display of HP costs (#7267).

Broken by 0.13-a0-548-g832c960.

8 years agoIncrease cap and timeout of demonic horde
Chris Campbell [Wed, 26 Jun 2013 18:17:52 +0000 (19:17 +0100)]
Increase cap and timeout of demonic horde

8 years agoFix spelling (elliott)
Neil Moore [Wed, 26 Jun 2013 17:43:22 +0000 (13:43 -0400)]
Fix spelling (elliott)

8 years agoMultiply before division, not after.
Adam Borowski [Wed, 26 Jun 2013 17:40:09 +0000 (19:40 +0200)]
Multiply before division, not after.

8 years agoRevert "Fix compilation with old (4.1) GCC and libstdc++"
Neil Moore [Wed, 26 Jun 2013 17:31:13 +0000 (13:31 -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.


8 years agoRevert "Reduce giant mites' range a mite."
Adam Borowski [Wed, 26 Jun 2013 17:30:04 +0000 (19:30 +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.

8 years agoScale the calculations in mon-pick by 2520.
Adam Borowski [Wed, 26 Jun 2013 17:25:51 +0000 (19:25 +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.

8 years agoReduce giant mites' range a mite.
Adam Borowski [Wed, 26 Jun 2013 17:06:42 +0000 (19:06 +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).

8 years agoRevert "Don't fail random pick on 0 rarity"
Adam Borowski [Wed, 26 Jun 2013 17:03:44 +0000 (19:03 +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.

8 years agoWrite pow(x, 0.5) as sqrt(x), for readability.
Adam Borowski [Wed, 26 Jun 2013 17:02:26 +0000 (19:02 +0200)]
Write pow(x, 0.5) as sqrt(x), for readability.

8 years agoDon't use floating point pow() for squaring an int.
Adam Borowski [Wed, 26 Jun 2013 16:57:59 +0000 (18:57 +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.

8 years agoLeash Spectral Weapon to a range of 2, let it attack retreating targets.
Ed Gonzalez [Wed, 26 Jun 2013 10:49:21 +0000 (03:49 -0700)]
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.

8 years agoOn reset of a Spectral Weapon, remove the target if we're not tracking.
Ed Gonzalez [Wed, 26 Jun 2013 09:42:44 +0000 (02:42 -0700)]
On reset of a Spectral Weapon, remove the target if we're not tracking.

8 years agoPrefix spectral weapon properties with "sw_" and use #define for them.
Ed Gonzalez [Wed, 26 Jun 2013 09:35:06 +0000 (02:35 -0700)]
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.

8 years agoMake Spectral Weapon reset on player's next turn for real this time.
Ed Gonzalez [Wed, 26 Jun 2013 09:00:49 +0000 (02:00 -0700)]
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

Unlike 04540f5, this reset mechanism doesn't prevent the spectral weapon
from ever attacking.

8 years agoDon't fail random pick on 0 rarity
Pete Hurst [Wed, 26 Jun 2013 16:27:09 +0000 (17:27 +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.

8 years agoRevert "Fix previously broken but moot polymorph validity check for M_UNIQUE"
Pete Hurst [Wed, 26 Jun 2013 16:10:05 +0000 (17:10 +0100)]
Revert "Fix previously broken but moot polymorph validity check for M_UNIQUE"

This reverts commit 6e1df92eca0744543f6cbea42e50e11d4b57f691.

8 years agoFix a build failure on OS X.
Adam Borowski [Wed, 26 Jun 2013 09:45:51 +0000 (11:45 +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.

8 years agostd::cide.
Adam Borowski [Wed, 26 Jun 2013 09:37:39 +0000 (11:37 +0200)]

8 years agoSync manual from the wiki.
Adam Borowski [Wed, 26 Jun 2013 07:47:03 +0000 (09:47 +0200)]
Sync manual from the wiki.

8 years agoFix previously broken but moot polymorph validity check for M_UNIQUE
Pete Hurst [Wed, 26 Jun 2013 08:01:01 +0000 (09:01 +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.

8 years agoDon't let random polymorph rarely produce unvalidated monster types
Pete Hurst [Wed, 26 Jun 2013 07:53:56 +0000 (08:53 +0100)]
Don't let random polymorph rarely produce unvalidated monster types

8 years agoProhibit polymothing firewood.
Brendan Hickey [Wed, 26 Jun 2013 07:20:53 +0000 (00:20 -0700)]
Prohibit polymothing firewood.

8 years agoRevert "Make Spectral Weapon reset on player's next turn if it hasn't attacked."
Neil Moore [Wed, 26 Jun 2013 07:20:56 +0000 (03:20 -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.

8 years agoNerf Polymoth
Brendan Hickey [Wed, 26 Jun 2013 07:12:52 +0000 (00:12 -0700)]
Nerf Polymoth

8 years agoMerge branch 'madness'
Brendan Hickey [Wed, 26 Jun 2013 07:07:13 +0000 (00:07 -0700)]
Merge branch 'madness'

8 years agoMerge branch 'madness'
Brendan Hickey [Wed, 26 Jun 2013 07:00:19 +0000 (00:00 -0700)]
Merge branch 'madness'


8 years agoReference the same mc variable for the valid check and the actual poly
Pete Hurst [Wed, 26 Jun 2013 06:46:13 +0000 (07:46 +0100)]
Reference the same mc variable for the valid check and the actual poly

8 years agoFormatting fixes
Pete Hurst [Wed, 26 Jun 2013 06:42:53 +0000 (07:42 +0100)]
Formatting fixes

8 years agoFix overflow in curse skull monster energy pickup_percent.
Neil Moore [Wed, 26 Jun 2013 06:36:11 +0000 (02:36 -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.

8 years agoAdd a polymoth quote.
Brendan Hickey [Wed, 26 Jun 2013 06:31:31 +0000 (23:31 -0700)]
Add a polymoth quote.

8 years agoMoth of Madness -> Polymoth
Brendan Hickey [Wed, 26 Jun 2013 06:09:29 +0000 (23:09 -0700)]
Moth of Madness -> Polymoth

8 years agoFix compilation with old (4.1) GCC and libstdc++
Neil Moore [Wed, 26 Jun 2013 06:09:21 +0000 (02:09 -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.

8 years agoAdjust lost soul sacrifice behavior
DracoOmega [Wed, 26 Jun 2013 04:46:58 +0000 (02:16 -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.

8 years agoAdjust lost soul ally teleport behavior
DracoOmega [Wed, 26 Jun 2013 04:43:19 +0000 (02:13 -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

8 years agoGive vampire knights a 1-in-4 chance of coming with a pair of phantasmal warriors
DracoOmega [Wed, 26 Jun 2013 01:52:48 +0000 (23:22 -0230)]
Give vampire knights a 1-in-4 chance of coming with a pair of phantasmal warriors

8 years agoNew monster flag M_VIGILANT
DracoOmega [Wed, 26 Jun 2013 00:48:25 +0000 (22:18 -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)

8 years agoAcquaint Curse Skulls with their inner mushroom
DracoOmega [Wed, 26 Jun 2013 00:32:22 +0000 (22:02 -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.

8 years agoDon't give tengu reavers a chance for crossbows and longbows
DracoOmega [Wed, 26 Jun 2013 01:16:18 +0000 (22:46 -0230)]
Don't give tengu reavers a chance for crossbows and longbows

Also correct vault wardens getting orcish equipment by default

8 years agoTengu reaver tweaks
DracoOmega [Wed, 26 Jun 2013 00:19:16 +0000 (21:49 -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.

8 years agoCorrect a major timing issue with monster battlespheres
DracoOmega [Wed, 26 Jun 2013 00:03:30 +0000 (21:33 -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.

8 years agoCorrect an alarming message when waterstrike is cast on a monster out of LoS
DracoOmega [Wed, 26 Jun 2013 00:02:22 +0000 (21:32 -0230)]
Correct an alarming message when waterstrike is cast on a monster out of LoS

8 years agoGive Ogres previously forced to start with a short sword a club instead.
Steve Melenchuk [Wed, 26 Jun 2013 04:39:33 +0000 (22:39 -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).

8 years agoAdjustments to layout_grid_shapes.
Steve Melenchuk [Wed, 26 Jun 2013 04:27:56 +0000 (22:27 -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.

8 years agoUpdate Infusion description
Chris Campbell [Wed, 26 Jun 2013 04:19:12 +0000 (05:19 +0100)]
Update Infusion description

It no longer has an effect with 0 MP.

8 years agoAdjust Box of Beasts probabilities
Pete Hurst [Wed, 26 Jun 2013 03:55:29 +0000 (04:55 +0100)]
Adjust Box of Beasts probabilities

Wargs/wolves needed swapping around and some higher-level monsters
have been made available at lower power levels.

8 years agoFix formatting and simplify (Spectral Weapon)
Pete Hurst [Wed, 26 Jun 2013 03:42:09 +0000 (04:42 +0100)]
Fix formatting and simplify (Spectral Weapon)

8 years agoDon't cap Makhleb demons
Pete Hurst [Wed, 26 Jun 2013 02:53:07 +0000 (03:53 +0100)]
Don't cap Makhleb demons

8 years agoAdd spectral weapons to more shared special cases with dancing weapons.
Ed Gonzalez [Tue, 25 Jun 2013 12:10:13 +0000 (05:10 -0700)]
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.

8 years agoMoved the setting of Spectral Weapon stats to ghost code, like dancing.
Ed Gonzalez [Tue, 25 Jun 2013 11:46:58 +0000 (04:46 -0700)]
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.