| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
.cc, moving its contents into the new stepdown.cc and strings.cc.
(The latter also got many donations from libutil.h.)
Down with stuff! Up the new flesh!
|
|
|
|
| |
As part of a wider scheme to make draining temporary.
|
|
|
|
|
|
|
|
| |
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!).
|
|
|
|
|
|
|
|
|
| |
A good deal of functions move to the two new files, mon-poly and
mon-message. Of the others, some go to where they are used, some to
mon-util, and a few are made member methods of monster.
This probably breaks Xcode compilation, and I'm not able to test
the changes I made to MSVC that will (hopefully) keep it working.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Prevents "blown up by lich" (sic) and "blasted by (bolt of fire)".
|
|
|
|
|
|
|
| |
Touches a lot of files since their #includes have to be edited.
(Pushing now since it shouldn't break anything and keeping it updated
is nasty.)
|
|
|
|
|
| |
Orbs that have only travelled one square will just dissipate. Should
prevent accidental self-explosion with the spell or the Orb card.
|
|
|
|
|
|
| |
The OOD explosion made noise, but less than the collision itself should
have (radius-1 explosion makes 15 noise, out-of-view OOD collision 40).
Boulder beetle collisions made no noise at all when visible to the player.
|
|
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
| |
Besides, why should they even get to start rolling if there's an enemy
next to them? Isn't rolling damage supposed to require some space to
gain momentum? They can keep biting when up close.
|
|
|
|
|
| |
In this case, this was an inner flame explosion, which we really should
make a fineff.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Including #6900 - boulders reverting position after dispersal.
Then there were several cases where code assumed mons_is_projectile checked rolling boulder beetles, but in fact it didn't.
I added a monster::is_projectile() check which looks at both mons_is_projectile and mons_is_boulder, and called this
from the relevant places. Several times mons_is_projectile is actually just required for an IOOD check.
Also added support for catchup_move for boulders; previously they would be sat on the same square (not rolling) when you
returned to a level no matter how long you'd been gone. This was omitted from the original implementation.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The word "familiar" suggests a summon rather than a magical construct; this
spell is much more like Conjure Ball Lightning than Call Canine Familiar.
Since the suggestion "battlesphere" has met with great approval (or at
least nobody has come up with better), let's use that.
|
| |
|
|
|
|
|
| |
Besides simplifying the code, this makes suppression apply to monster inacc,
and also fixes monster IOOD being affected by an amulet worn by the player.
|
|
|
|
|
|
|
|
|
|
|
| |
Airstrike, Tornado, spines, earth miscasts, Mi headbutts.
In the case of Airstrike, this is a nerf by 0.5 points of damage on the
average.
Monster minotaur headbutts get a big buff as their attacker's (ie, usually
your) AC is no longer applied as a constant, but as random2(1 + ac) like in
other cases.
|
|
|
|
|
|
| |
They were players once, and thus couldn't possibly get the full version (per
the spell's description). All other users are centuries old, or don't need
books in the first place.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
Apparently this was present on account of some inconsistencies in the
beam code which have since been addressed.
Fixes #6118.
|
|
|
|
|
| |
Previously, one would see "The boulder beetle hits you! The boulder
beetle smashes into you!"; now one only sees the latter message.
|
| |
|
|
|
|
|
|
|
|
| |
They'll continue iff the victim dies.
They used to fail to stop, resulting in teleporting through people. Their
internal idea of position was out of sync with reality, making them think
they were on the actor they hit, rather than the place before.
|
|
|
|
| |
Only "you" was correct there.
|
| |
|
|
|
|
|
| |
This allows us to make the obituary have a reasonable wording: beams are all
about hitting stuff from afar, rolling boulders not so.
|
|
|
|
|
|
|
|
| |
This wasn't previously being accounted for properly, and was resulting
in boulder beetles getting extra moves the turn after they stopped
rolling.
Fixes 0005839.
|
| |
|
|
|
|
|
|
|
|
| |
For technical reasons (vault_placement), subvaults use renaming data of the
top-level vault, this might be changed one day; that'd require a bit more
writing but would allow different renames in different subvaults.
TODO: "line of fire blocked by XXX".
|
| |
|
| |
|
| |
|
|
|
|
| |
There are a whole bunch of places in the code where effects on the player are determined by directly checking for whether a single item is equipped. For example, `wearing_amulet(AMU_STASIS)`. This commit abstracts all of these checks into actual effects, such as `player_effect_stasis()`, to more easily jive with checking for suppression. For some effects, especially resist mutation, more work still needs to be done to unify effect checking... but this suffices for the moment.
|
|
|
|
|
|
|
|
|
|
|
| |
This first round of suppression effects focuses solely on denying the player
any advantages (and disadvantages!) from equipped magical items. Specifically,
I searched for the following three strings in the source: "wearing",
"player_equip", and "scan_artefact" and added a "you.suppressed()" clause to
ensure that effects only apply outside of fields of magical suppression.
There's a lot more to do, but this is a good start. Specifically, this
addresses the most important aspect of the suppression aura, which is to deny
the player any resists from items.
|
| |
|
|\ |
|
| | |
|
| | |
|