summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/actor.h
Commit message (Collapse)AuthorAgeFilesLines
* "Maras are frozen" -> "The Maras are frozen" (5054)Jesse Luehrs2014-08-141-1/+2
|
* Make ranged weapon delay display properly on @Nicholas Feinberg2014-07-251-2/+2
| | | | | | | | It only works if you have the appropriate projectile type quivered (otherwise it shows you as if using the weapon in melee, i.e. breadswing speed), but that's still an improvement. Also, constify.
* 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 :(
* Handle another engulf ender (#7437)Neil Moore2014-07-181-1/+1
| | | | | | | | | This time when your engulfer is trampled away. We don't handle the case where a monster's engulfer is trampled away, sorry: if we want to do that, we should generalise the constriction code and remove the engulf enchantment/duration. Make clear_far_engulf() public to support this change.
* Clear Engulf status when forcibly separated (#7437)Neil Moore2014-07-181-0/+1
| | | | | The status still doesn't end immediately when the engulfer dies etc.: see bug #7394.
* Separate 'permanent' and 'temporary' monster hit diceNicholas Feinberg2014-07-131-0/+1
| | | | As part of a wider scheme to make draining temporary.
* Refactor duplicate code from can_wield()Nicholas Feinberg2014-07-131-1/+2
|
* Improve sleep codeNicholas Feinberg2014-07-111-2/+2
| | | | | | Refactor put_to_sleep() and hibernate() together. Also improve messenging for resisting repeated sleep (by replacing a generic canned message).
* Fix magical shields being unable to block most ranged attacks (#8772)Chris Campbell2014-07-091-0/+1
| | | | | | | | They checked that the player either had a shield equipped or had the bone plates mutation, so TSO's divine shield, Qazlal shielding and Condensation shield could all never block ranged attacks (except for those from ranged weapons, since those now follow the same codepath as melee attacks!).
* Remove unused parameters from umbra() and backlit().Neil Moore2014-07-051-5/+2
|
* Rename functions (|amethyst).Shmuale Mark2014-06-191-1/+1
|
* Try to reduce duplication in Recite code.Shmuale Mark2014-06-191-1/+1
| | | | | | | | | | | | | | is_chaotic() and is_unclean() have been changed to return an int roughly equal to what would have been returned before by the Zin recite function. Some bool flags were added to the function to make it still work right for the other uses (e.g. silver). Prince Ribbit is no longer specially vulnerable to Recite, and insane/ sluggish uniques are unclean rather than chaotic, which seems more consistent with the other uses of the terms. The special case for nonliving and plant monsters to be unrecitable is removed.
* Make profane servitors ignore holy wrath, like holy energy (#7089).Shmuale Mark2014-06-171-0/+1
|
* Clean up holy attacks slightly (#6071).Shmuale Mark2014-06-111-1/+0
| | | | | | | Mostly this just merges res_holy_energy and res_holy_flames, keeping Djinn's special-case immunity to the latter but not the former. The only gameplay change should be that (a) demons will take slightly more damage from holy flames and (b) distracted monsters will be immune to them.
* Move go_berserk() out of misc.ccNicholas Feinberg2014-06-041-1/+1
|
* New mutation: Forlornreaverb2014-05-311-1/+1
| | | | | | | | | This mutation acts as an anti-faith, making piety gain slower. This probably doesn't work well with wretched stars, but it seems like a good, long term, strategic effect. This idea has been floated around before as a species mutation. It could be added to one of the blander species, or given to a new species.
* Remove jewelry and armour sources of conservationgammafunk2014-05-281-1/+1
| | | | | | The amulet of conservation and cloaks of preservation are no longer necessary without item destruction. Maxwell's patent armour now has the resistance ego and grants rF+ and rC+.
* Destroy item destructiongammafunk2014-05-281-1/+0
| | | | | | | | | | | | | | | | | | | Now that inventory weight and player burden states are gone, item destruction doesn't serve one purpose it clearly accomplished: help prevent the player from being at or next to burden capacity at all times. Outright destruction of strategic consumables encourages more needless inventory management, so we'd like to exclude these from any form of destruction and possibly prevent them from taking up inventory space at all. Denial of tactical consumables, either temporarily or permanently, is something we're going to look into later on, possibly in the release after next, since it can create interesting and generally not frustrating gameplay if done correctly. Needless to say, item destruction wasn't a player favorite and may have a sparsely attended funeral. RIP in peace. For now we aren't adjusting the rate of consumable generation to compensate for no item destruction, but that balancing will happen after play-testing shows how much adjustment is necessary.
* Don't use inventory weight for the chance of activating a shaft trapgammafunk2014-05-261-1/+0
| | | | | | | Shaft traps previously considered the actor's total inventory weight in addition to body weight, but the player burden calculation code isn't worth keeping for this consideration alone. The chance of a shaft trap activating now depends only on the actor's body weight.
* Melt away lava orcs.Steve Melenchuk2014-05-141-0/+4
| | | | | | | | | | | | | | | | When you strip away the fundamentally broken tension mechanic, you're left with a species that is essentially "Hill Orcs WITH FIRE". No effort has come forward with code to fix either aspect of them despite the length of time they've been around in trunk, and the code is littered with a very large number of special cases in their presence. Current lava orcs should be able to finish their games fine, but new starts are disallowed. There are a couple of bits I've left present but which will have no function for the moment, mostly related to interactions with lava (as there are a couple of species proposals floating around that benefit from having those interactions).
* Fix rounding errors with drained skills.elliptic2014-05-141-1/+2
| | | | | | | | | Previously you could have a drained skill display as 10.5 on the m screen but have you.skill(SK_blah) return 9 for it because of inconsistent rounding. This fixes that issue, though I wonder if it might be simpler to just use a fixed large scale during all the skill calculations and then convert to the requested scale at the end.
* Don't trigger berserkitis on ranged attacks (#8516).Steve Melenchuk2014-05-081-1/+1
| | | | Oops.
* Ranged weapon delay.Steve Melenchuk2014-04-271-0/+5
| | | | | | Moves the delay calculations into player and monster respectively so that it can properly be done at the start of the ranged attack; it doesn't make sense to have them in attack or ranged_attack.
* Make all abyss teleports shift the Abyss (minmay).Shmuale Mark2014-03-081-1/+0
| | | | | | | | | | | | | | | | Partly this is to (somewhat) make the Abyss a little easier. Teleports still take longer than orbrun teleports to kick in on average, and in general letting the player know what an action will do is a good thing. But the main reason is that, due to maprot, same-area abyss teleports are a pretty awful interface screw. You are prevented from remembering what monsters were around (this was quite annoying when being marked was more common in the abyss), and though you can see for one second what direction you came from, immediately after the screen refreshes and you can't anymore. Possibly this could lead to improving/removing altogether maprot.
* Make a function non-virtual.Adam Borowski2014-01-101-1/+1
|
* Drop double newlines where they seem to serve no purpose.Adam Borowski2013-12-211-1/+0
| | | | | Sometimes, they're there to emphasize a break between two sections of code, which is good. In a majority of cases, though, they're just inconsistent.
* Unmark actor::pos() as virtual.Adam Borowski2013-11-271-1/+1
| | | | | | | This prevented inlining this trivial function, and it gets called ~15M times per gprof's virtual second: %time self #called 0.81 6.25 0.12 160842498 0.00 0.00 actor::pos() const
* Remove moths of suppressionChris Campbell2013-11-111-3/+0
| | | | | | | | | | | 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.]
* Merge branch 'dwants'. Bring some Raid.Adam Borowski2013-11-061-0/+2
|\
| * Merge branch 'master' into dwantsAdam Borowski2013-11-011-5/+7
| |\
| * \ Merge branch 'master' into dwantspubby2013-10-011-1/+4
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: crawl-ref/source/dat/des/variable/mini_monsters.des crawl-ref/source/enum.h crawl-ref/source/itemprop.cc crawl-ref/source/main.cc crawl-ref/source/mutation-data.h crawl-ref/source/mutation.cc crawl-ref/source/newgame.cc crawl-ref/source/ng-restr.cc crawl-ref/source/rltiles/dc-player.txt crawl-ref/source/spl-selfench.cc crawl-ref/source/throw.cc crawl-ref/source/tilepick-p.cc crawl-ref/source/wiz-you.cc
| * \ \ Merge branch 'master' into dwantspubby2013-08-311-6/+8
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: crawl-ref/docs/crawl_manual.reST crawl-ref/source/abl-show.cc crawl-ref/source/dat/descript/ability.txt crawl-ref/source/delay.cc crawl-ref/source/enum.h crawl-ref/source/main.cc crawl-ref/source/mon-cast.cc crawl-ref/source/mon-gear.cc crawl-ref/source/mon-spll.h crawl-ref/source/mutation-data.h crawl-ref/source/mutation.cc crawl-ref/source/ng-restr.cc crawl-ref/source/ng-setup.cc crawl-ref/source/output.cc crawl-ref/source/player-act.cc crawl-ref/source/player.cc crawl-ref/source/species.cc crawl-ref/source/spl-data.h crawl-ref/source/wiz-you.cc
| * | | | Fix whitespace.Neil Moore2013-08-281-1/+1
| | | | |
| * | | | Create Formicid species and monsters.pubby2013-08-251-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tavern post: https://crawl.develz.org/tavern/viewtopic.php?f=8&t=8298 Wierdness & mutations: - poison weakness - retractable antennae (can wear headgear and ignore mutation) - chitin skin (+3 AC) - most weapons 1-handed, big weapons 2-handed - permanent stasis - ability to shaft self - ability to dig - Starts with 2 curing pots 3 monster versions of formicids were added: formicid, a weak fighter formicid drone, a stronger fighter formicid venom mage, a magician with olgreb's and mass cure poison [ Pushing to a branch for experimental playtesting on CSZO. Also optimised the new tiles. -nfm ]
* | | | | Less los_def usage.Adam Borowski2013-11-051-1/+0
| | | | |
* | | | | Remove get_los().Adam Borowski2013-11-051-7/+0
| | | | |
* | | | | Drop "soul auras".Adam Borowski2013-11-051-5/+4
| |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | They costed us complex bookkeeping every turn if there were any lost souls on the level. Instead, just check the "hard way" (faster than one turn worth of aura processing) whenever a monster dies. No functional changes.
* | | | Make actor->get_los() const.Adam Borowski2013-10-311-4/+4
| | | | | | | | | | | | | | | | Really, I'd like to make it nonexistant instead...
* | | | Unrand: the +2 hat of the High Council {Archmagi, Wiz- Noisy Contam Stlth-}.Steve Melenchuk2013-10-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It has an anti-wizardry effect, e.g. it negatively impacts spell success rates - on the whole, it's basically a hat of wild magic. There's a minor adjustment here to item name code to get the noises to display properly.
* | | | Evokable Jump attack abilitygammafunk2013-10-011-0/+2
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Player chooses a monster target within range where there's at least one valid landing site adjacent to the target. * There must be a monster to target to use the ability, but the monster can be friendly or neutral. * A random valid landing site is chosen, the player is moved to that square, and weapon melee occurs against the target at the landing site. * Jump attacks are melee with the wielded weapon and get a 20% damage bonus * Valid landing sites are always habitable squares with no monster and no thing that's dangerous to the player. * Flying monsters or giant monsters not standing in deep water or lava can 'block' the path of a landing site by being in the ray path from the player to the landing site. * If a visible monster blocks the path to a landing site, it won't be considered as a valid landing site. * If something invisible blocks a landing site, the site will be shown as valid and can be randomly chosen, in which case the player 'rebounds off something unseen' and never leaves the starting square, but wastes a turn (delay 10aut). * If the player is adjacent to the monster, sites adjacent to the player are not valid; you have to 'jump over' the monster in this case. * Player can't jump if exhausted or standing in water/lava/liquefied ground * Exhaustion duration is set after jump (regardless of success) to prevent a second jump, with a duration formula that's the same as the breath duration. * The usual melee checks wielded weapon/friendly etc. checks are performed for the jump melee. * If any of the valid landing sites would cause problems with self-electrocution or sanctuary violation, the player is warned first. * Range is determined by evocations training; starting attack range is 3 (movement 2), and it increases by one at evocations 5 and 10. * The cost of the jump is 2MP and a hunger cost using the same calculation as for flame breath. * The delay of a successful jump is the same as melee delay. * Fail rate for the ability calculation based on evoke taken from breath fail rate code
* | | Clear held and escape_attempts when resetting constrictions.Neil Moore2013-09-211-1/+3
| | |
* | | Move mons_is_stationary() to struct actor.Adam Borowski2013-09-131-0/+1
| |/ |/| | | | | Simplifies code in a number of places, and also fixes a few tree-moving bugs.
* | Revert "Bye bye clinging."Raphael Langella2013-08-121-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | Clinging might be a minor feature, but it's a distinguishing one, it's thematic and it's working quite well. Player/monster symmetry has never been a goal, so it seems dubious to invoke it as the reason to throw away all the work that has been put into clinging. We can always say that the player turns into a different kind of spider which is unable to cling for some reason. This reverts commit bdc56382eacf7af1b2330dc6444916d368741fec. This reverts commit d689486464fcaaac025a6f469ab69674a2f4d173. This reverts commit 1addaaf8ee92de5060fdb436f93251843abd2035.
* | Bye bye clinging.Adam Borowski2013-07-101-5/+0
| | | | | | | | | | | | | | | | | | | | | | With player clinging removed, monster doesn't make much sense. Note that I personally somehow like clinging -- even if it's rarely useful except early on, it was quite harmless. However, I'm strongly against having players and monsters inconsistent when there's no very good reason. Thus, reverting this and MarvinPA's change is an option. Just please keep or revert them together.
* | Revamp player xp drainingDracoOmega2013-07-061-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of permanently reducing player xp (and xl), draining attacks now inflict a temporary reduction in all skill levels (similar to Ash wrath) which is worked off by gaining xp. The xp used to overcome the penalty is not actually deducted, so draining does not reduce long-term xp totals. Draining causes both a flat and (smaller) percentile reduction (meaning that higher level skills are somewhat more strongly affected than low ones). The amount of draining inflicted by an attack scales with the damage taken, meaning that low EV, high AC characters will be less proportionately vulnerable to draining than their inverse counterparts, at least compared to the present situation. The xp cost of removing a point of draining decreases the more heavily drained the player is, so that it is a bit easier to dig yourself out of a deep hole if you manage to end up in one. The numbers are provisional, but should hopefully be fairly sane. Ideally, I think it would be good if draining had a noticable enough impact to encourage wearing rN more often than is presently done, as a counter to it, but let's see how it plays. For the time-being, draining still works the same against monsters as it always has.
* | Move shield_blocks from monster+player to actor.Adam Borowski2013-07-061-0/+2
| | | | | | | | Also, fix an uninitialized use for monsters.
* | Remove use of 'you' inside player member functionspubby2013-06-301-1/+1
| | | | | | | | | | | | 'you' seemed to be pointless in such context anyways, and lead to some const correctness bugs since '*this' could have a different const-ness from 'you'.
* | Fixed some effects being applied twice to damage.Ed Gonzalez2013-06-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge branch 'newskald'Pete Hurst2013-06-241-0/+1
|\ \
| * | Added reach_range() to actor and player classes.Ed Gonzalez2013-06-111-0/+1
| |/