summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-abil.h
Commit message (Collapse)AuthorAgeFilesLines
* Make torpor snail slow end immediately after LOS is brokenNicholas Feinberg2014-07-251-0/+2
| | | | | | | Or after they die, etc. Also no longer require the torpor snail to be visible, thus preventing powerful /invis secret tech. rip :(
* Make living lost soul revival more like the undead one.Shmuale Mark2014-06-261-2/+0
| | | | | | | | | | | | 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.
* Make torpor snails give Slow instead of -SwiftNicholas Feinberg2014-06-201-1/+1
| | | | | | | | | | | | 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.
* Add torpor snailsNicholas Feinberg2014-06-151-0/+1
|
* Remove shock serpent lightning torrent, adjust discharge / statsDracoOmega2014-03-111-1/+2
| | | | | | | | | | | | | | | | | | | | | | 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.
* Automatically apply injury bond from guardian golemsDracoOmega2014-02-131-0/+2
| | | | | | | | 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.
* Revamp shock serpentsDracoOmega2014-01-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Teach sirens a new offensive trickDracoOmega2014-01-281-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Remove nymph waterport touchDracoOmega2014-01-281-1/+0
| | | | | | | | | 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?)
* Let shambling mangroves sometimes nest ravens instead of waspsDracoOmega2014-01-281-1/+1
| | | | | | | | | 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).
* Give treants a 'grasping roots' abilityDracoOmega2013-08-221-0/+2
| | | | | | | | | | | | | | | | | | | | 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.
* Revise treant bee-keepingDracoOmega2013-08-221-0/+1
| | | | | | | | | | | | | 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.
* New water monster for Forest: Water NymphsDracoOmega2013-06-241-0/+1
| | | | | | | | | | | | | | | | | | | | | | | 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.
* New monster: Spirit WolvesDracoOmega2013-06-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | 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.
* Snaplasher Vines (for later use)DracoOmega2013-06-241-1/+1
| | | | | | | | | | 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.
* Heal flayed damage immediately when a flayed ghost is pacifiedDracoOmega2013-06-081-0/+1
|
* New monster: lost soulsDracoOmega2013-05-261-0/+3
| | | | | | | | | | | | | | | | | | | | | | | 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.
* Let flayed ghosts flay their victimsDracoOmega2013-05-261-0/+2
| | | | | | | | | | | | | | 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.
* Add formatting fixes, and rename more variables for clarity.David Lawrence Ramsey2013-03-281-2/+2
|
* Make monster pushing from imprison more aware of neighbour destinationsDracoOmega2013-03-111-2/+4
| | | | | | | | 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.
* Make Zin's Imprison ability less picky about its surroundingsDracoOmega2013-03-111-0/+4
| | | | | | | | | | | | | 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.
* Remove unneeded blank lines.David Lawrence Ramsey2013-03-031-1/+0
|
* Add Ironbrand ConvokersDracoOmega2013-03-031-0/+1
| | | | | | | | 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.
* Separate polymorph vs malmutate for monsters too.Adam Borowski2013-01-301-1/+1
| | | | | | | | | | | 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.
* Make starcursed masses merge with a neighbour when damaged.DracoOmega2012-12-171-0/+1
| | | | | | 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.
* Ancient zymesDracoOmega2012-12-171-0/+2
| | | | | | 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.
* Refactoring of tentacle codeDracoOmega2012-12-091-1/+1
| | | | | Only partially done, but some stuff commited now since I fear that some of the next bits may break things.
* Make another bunch of functions static or gone.Adam Borowski2012-04-051-1/+0
|
* Don't copy the entire monster whenever one of several properties is queried.Adam Borowski2011-11-061-1/+1
| | | | | | 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.
* Make file headers doxygen-friendly, drop useless fields.Adam Borowski2011-03-281-5/+4
| | | | | | | "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.
* Merged slimes split on polymorphArxale2010-10-231-0/+1
|
* Simplify _get_kraken_head() a bit.David Lawrence Ramsey2010-10-161-0/+2
|
* Clean up Tiamat's color-changing routine.David Lawrence Ramsey2010-10-111-0/+2
| | | | | | | | | | | | | 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.
* Merge branch 'master' into malign_gatewayJude Brown2010-09-281-8/+8
|\ | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Rename class "monsters" to "monster".Robert Vollmert2010-09-051-7/+7
| |
| * Rename variables named "monster" to "mons" or similar.Robert Vollmert2010-09-051-4/+4
| |
* | Add a "demonic tentacle" monster, refactor tentacle code to support itCharles Otto2010-07-251-0/+1
|/ | | | | | | | | | | 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.).
* Merge master into articulated_krakenCharles Otto2010-07-071-1/+0
|\
| * Make a few random functions static.Adam Borowski2010-07-061-1/+0
| |
* | Let the main kraken body move againCharles Otto2010-06-131-0/+2
|/ | | | | | | | 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.
* Ballistomycete exp changesCharles Otto2010-02-011-1/+2
| | | | | Don't give experience for killing ballistomycetes, instead give experience for killing all ballistos and giant spores on a level.
* headers: fix inconsistent struct/class forward declarationsSteven Noonan2009-12-291-1/+1
| | | | | | | Some classes were erroneously referred to as 'struct' in forward declarations, and vice versa. Signed-off-by: Steven Noonan <steven@uplinklabs.net>
* Change ballistomycete spawn mechanics (again)Charles Otto2009-11-131-1/+0
| | | | | | | | | | | 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.
* Change ballistomycete messagingCharles Otto2009-11-131-1/+1
| | | | | Drop the deactivation message, simplify and change the activation messaging.
* Change ballistomycete spore mechanics againCharles Otto2009-11-121-0/+2
| | | | | | | | 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.
* Give giant spores a chance of spawning ballistos while wanderingCharles Otto2009-11-111-0/+2
| | | | | | 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.
* Split up monstuff.ccMatthew Cline2009-11-011-0/+19
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.