| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
and also change a temporary variable name to avoid overshadowing
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| | |
This blatantly hijacks the chain lightning code for its own purposes,
but it works somehow.
Xom roars with laughter!
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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?
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| | |
Apparently someone else is going to do something similar in the
immediate future.
This reverts commit 65f686f80ba4bcb81cbe48947271143fe96d4b20.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
The code in the fireball() function was essentially identical to this
already, and it is unclear why it was specifically seperated.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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?)
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
This also preserves the old behaviour for monsters wielding Devastator.
|
|
|
|
|
|
|
|
|
| |
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...
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
[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.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Needs to be tweaked, pushing so dpeg can edit the messages.
|
| |
|
|
|
|
| |
The latter applies only to those you can see, of course.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Removed functionality for using the same function for several beam flavours. That stuff hasn't been used in ages.
|
| |
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
They do up to 3d20 instead of 2d20 for stones. Can only be
used by trolls and ogres.
|
| |
|
| |
|
|
This leaves mostly enchantments in spells1-4, with only
weapon branding spells in spells2.cc, in particular.
|