summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/spl-clouds.h
Commit message (Collapse)AuthorAgeFilesLines
* Rod of frigid destruction -> Rod of clouds.Steve Melenchuk2014-02-261-0/+3
| | | | | | | | | | | 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.
* New monster spell: Control WindsDracoOmega2013-06-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Use std namespace.Raphael Langella2012-08-261-1/+1
| | | | | | | | | | | | | 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.
* Remove Evaporate and Fulsome Distillation, and the book of StalkingChris Campbell2012-08-201-3/+0
| | | | | | | | 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.
* Make a bunch of functions static, delete some unused junk.Adam Borowski2011-11-111-5/+0
|
* Allow specification of cloud exclusion radius, also via Lua; cloud traps.Jude Brown2011-11-021-1/+2
| | | | | | | | | | | | | | | | | | | | | | | 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!
* Don't miscast when the spell can still be aborted (#4281).Raphael Langella2011-07-211-5/+9
| | | | | | | | | | | | | | | | 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.
* Fix casting cloud spells on (and through) walls.Raphael Langella2011-01-291-1/+1
|
* Store the blame when clouds are placed.Adam Borowski2010-12-261-10/+3
| | | | | The kill type and kill category are still needed only because we currently lose blame data when the agent dies or moves off-level.
* Convert corpse rot into a monster-castable sell.Jude Brown2010-12-261-1/+1
| | | | corpse_rot now accepts an actor parameter!
* Merge branch 'master' into holyhaulAdam Borowski2010-09-061-1/+1
|\
* | Merge commit '3b956b63' (the great spell moving) into holyhaulAdam Borowski2010-09-061-0/+1
|/
* Move cloud-generating spells into new file spl-clouds.cc.Johanna Ploog2010-08-211-0/+34