summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/spl-damage.cc
Commit message (Collapse)AuthorAgeFilesLines
...
* Crystal golem -> Crystal guardian (Grunt, tenofswords).tenofswords2014-02-151-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Make Ignite Poison affect poison clouds again (#8115)Neil Moore2014-02-091-1/+4
| | | | | Some unprecedented logic in fa88923 made ignite poison think it was just a tracer whenever it processed a poison cloud (noxious was fine).
* Buff, speed up, move around metal gargoyles, rename to war gargoylestenofswords2014-02-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Formatting fixes.Neil Moore2014-02-021-14/+14
|
* Merge branch 'demonspawn-enemies'Steve Melenchuk2014-01-281-12/+54
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Reset chain of chaos' flavour to BEAM_CHAOS per beam.Steve Melenchuk2014-01-221-4/+5
| | | | | | | | | | Cursory testing suggests this fixes having the same effect turn up for beam, which is undesirable.
| * Demonspawn warmongers: Grand Avatar.Steve Melenchuk2014-01-211-0/+1
| | | | | | | | | | | | | | | | | | | | 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.
| * Demonspawn chaos champions: Chain of Chaos.Steve Melenchuk2014-01-211-12/+52
| | | | | | | | | | | | | | This blatantly hijacks the chain lightning code for its own purposes, but it works somehow. Xom roars with laughter!
* | Remove friendly fire from monster OTRDracoOmega2014-01-281-18/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | A single-target variant of Ignite Poison for monstersDracoOmega2014-01-281-9/+31
| | | | | | | | | | | | | | | | | | | | 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.
* | Make Ignite Poison properly useable by monsters, overhaul effect on playersDracoOmega2014-01-281-143/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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?
* | Adjust OTR damage formula when cast by monstersDracoOmega2014-01-281-4/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Revamp shock serpentsDracoOmega2014-01-281-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Shock serpents.Steve Melenchuk2014-01-281-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Let monsters cast Static Discharge; support for arbitrary start points.Steve Melenchuk2014-01-281-7/+10
| | | | | | | | | | | | 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.
* | Revert "Revive a monster Ignite Poison implementation for FoVM enemies."Steve Melenchuk2014-01-271-21/+21
| | | | | | | | | | | | | | Apparently someone else is going to do something similar in the immediate future. This reverts commit 65f686f80ba4bcb81cbe48947271143fe96d4b20.
* | Revive a monster Ignite Poison implementation for FoVM enemies.Steve Melenchuk2014-01-271-21/+21
|/ | | | | | | | | | | | | | | 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).
* Replace it with something.Adam Borowski2014-01-101-3/+1
|
* Drop some useless parentheses around comparisons.Adam Borowski2014-01-101-5/+5
|
* Add spaces after switch and catch keywords.Neil Moore2013-12-301-1/+1
|
* Silence a non-debug warning.Adam Borowski2013-12-251-0/+2
|
* Adjust message when Airstrike deals increased damage to flying monstersChris Campbell2013-12-231-1/+5
|
* Remove Mislead.Adam Borowski2013-12-151-1/+1
| | | | | | 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.
* Fix spelling of "targeting" (#7837)Chris Campbell2013-12-101-2/+2
| | | | See Mantis for discussion.
* Update some rather ancient commentsChris Oelmueller2013-12-091-1/+1
|
* Don't let Dryads walk through treesChris Campbell2013-12-031-3/+7
| | | | | | | | | | 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).
* Note code duplication in maybe_abort_ignite() (ChrisOelmueller)Samuel Bronson2013-12-021-0/+2
|
* Restrict mpr() to literals only.Adam Borowski2013-11-291-4/+4
| | | | | The translation project is stalled, but this makes all of such static strings trivially gatherable without any extra work.
* Replace `mpr(s, ch)` with `mprf(ch, s)`Adam Borowski2013-11-291-4/+4
| | | | | | | | | 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.
* Let the staff of Olgreb grant total poison immunity.Adam Borowski2013-11-191-6/+2
| | | | | | | | 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.
* More formatting fixes for return (...);Neil Moore2013-11-151-11/+11
|
* Drop unnecessary parentheses from return statements.Adam Borowski2013-11-151-1/+1
|
* Remove moths of suppressionChris Campbell2013-11-111-1/+1
| | | | | | | | | | | 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.]
* Get rid of the radius_iterator "legacy" constructor.Adam Borowski2013-11-051-6/+5
| | | | | | | | | | 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.
* Dj: turn hover into regular permaflight.Adam Borowski2013-11-011-1/+1
|
* Rewrite monster_iterator.Adam Borowski2013-10-311-1/+0
| | | | | It degenerated to a simple loop over menv, hardly worth any syntactic sugar. I kept it for now, though.
* monster_near_iteratorAdam Borowski2013-10-311-10/+4
| | | | | | | | | | | | 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.
* Simplify actor_iterator and some of its users, rename to actor_near_iterator.Adam Borowski2013-10-311-49/+48
|
* Get rid of most types of actor_iterator.Adam Borowski2013-10-311-1/+1
|
* Fix behaviour event and agentless crash in drain life.Neil Moore2013-10-301-5/+6
| | | | | | | | | | 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.
* Don't crash on agentless refrigerate.Neil Moore2013-10-301-1/+4
| | | | | | 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
* Don't deal Awaken Forest damage to sanctuaried players (#7669)Chris Campbell2013-10-261-0/+3
|
* Use existing spellpower breakpoints for LRD wall destructionChris Campbell2013-10-231-5/+5
| | | | | And add a mention of when each wall can be destroyed to the spell description.
* Simplify LRD's damage and radius across different target typesChris Campbell2013-10-231-24/+12
| | | | | | | | | | 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.
* Use the correct behaviour event for Refrig and OTR.Adam Borowski2013-10-181-2/+2
| | | | | Zombies and objects (like dancing weapons) are supposed to allow hitting them from afar. This enables some interesting tactics.
* Fix OTR and Ozo's Refrigeration not turning allies hostileChris Campbell2013-10-181-0/+3
| | | | Also fixes them not waking up sleeping enemies.
* Make ground item destruction an unthing.Adam Borowski2013-10-081-38/+0
| | | | | | | 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.
* Don't make statue form self-LRD weaker for gargoyles than others.Neil Moore2013-10-061-1/+1
| | | | | 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.
* Properly extend Dazzling Ray with Vehumet (#7553)Neil Moore2013-09-151-1/+1
| | | | | | | | | | | | 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.
* Don't prompt for friendly fire when targetting Dazzling Spray (#7552)Neil Moore2013-09-141-1/+10
|