| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Ideally, we wouldn't be using special for unrands totally different from
how items of the same type do, but that's less trivial than this commit.
A centralised place to check for being an unrand should at least make such
a change easier.
|
|
|
|
|
|
|
| |
.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!
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
| |
They never really worked as enemies - their only unique aspect, partner
resurrection, was just annoying.
|
|
|
|
|
| |
Fighting near the gold piles of recently-defeated enemies boosts your
skills.
|
|
|
|
|
|
| |
Both of their spells work by dealing ridiculous amounts of damage to a few,
vulnerable species and little or no damage otherwise, which does not make for
an interesting monster.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Players have been picking up the Orb and entering a Zig only to
discover that Orb spawns don't generate, thus depriving them of HUGE
GUTS to RIP AND TEAR. Their complaints have been overwhelming, so now
Orb run spawns generate in Pan and all portals. We don't generate the
spawns in the Abyss, since the player can be banished there on the
ascension, whereas entering other places with the Orb is voluntary.
This commit also fixes the monster spawn rate when starting in the
abyss with Lucy, which was being set to the orb run spawn rate instead
of once per five turns as intended, and cleans up and documents some
functions.
|
| |
|
|
|
|
| |
It looks/plays a bit better and is consistent with spell ranges.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The old formula had three issues:
* Smallest radius was 1, meaning that orthogonally adjacent squares were in
the halo but not diagonally adjacent squares. This meant that TSOites with
this size halo wanted to avoid meleeing diagonally, which was awkward.
* Largest radius was 8, meaning that it missed a few squares at the edge of
LOS (those at distance sqrt(65)), which was ugly and confusing for stuff
like Dith's shadow step ability.
* Largest radius was reached at 170 piety, which was inconsistent with other
god abilities (which either stop at 160 piety = ****** or go all the way to
200 piety.
This commit addresses all of these issues: the smallest radius is sqrt(2),
the largest radius is sqrt(65), and the largest radius is reached at 160
piety exactly. This does mean a slight increase in halo size in general, so
it is a (very minor) buff to these gods.
|
|
|
|
|
|
| |
The size is equivalent to Brilliance's halo, and the stealth modifier
is 1.5. It loses +4 EV and -4 Acc since lower accuracy is an inherent
trait of an umbra.
|
|
|
|
|
|
|
|
|
|
| |
See for example:
http://crawl.lantea.net/crawl/morgue/letownia/crash-letownia-20140224-004021.txt
Introduced by 0.14-a0-622-g0c137b5, which replaced radius_iterator with
C_SQUARE by rectangle_iterator. Unfortunately, the latter did not clip
the iterator to the map. Add a flag to do so: false by default because
iterated rectangles are not always in map coordinates.
|
|
|
|
|
| |
At least three devs are probably waiting for this to be pushed if
they're not about to push it themselves. So now it's done.
|
| |
|
|
|
|
| |
This works exactly like TSO's halo, only it's an umbra.
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.]
|
| |
|
|
|
|
| |
So use the correct iterator. No functional changes.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
It makes no sense for liquefaction to be stopped by clouds, or for some to
work through glass.
|
|
|
|
|
| |
It degenerated to a simple loop over menv, hardly worth any syntactic sugar.
I kept it for now, though.
|
| |
|
|
|
|
|
| |
It still, however, costs 60 aum to carry, and has all of its other
effects.
|
|
|
|
| |
They hinder attempts of untangling the iterator/los mess.
|
|
|
|
|
| |
I'm not changing suspiciously low radius for now -- it there was some talk
about it vs silence radius before.
|
|
|
|
| |
Ie, 404 compliant.
|
| |
|
|
|
|
|
|
| |
'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'.
|
|
|
|
|
|
|
|
|
|
|
| |
It seems a bit unnecessary and even boring that literally EVERY holy
creature has a halo, especially when this seems more of a crusder/TSO
shtick and some of these creatures explicitly belong to someone else.
I have removed them from phoenix, apises, and pearl dragons. I would
have done so from Shedu as well, except their cast text specifically
mentions The Shining One. I left the one on holy swine for now, since
that is at least amusing (and they're basically joke monsters anyway).
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| | |
|
|/ |
|
|
|
|
|
| |
While some religions have a fetish with playing with body parts, it's only
the evil side who ever animates them.
|
|
|
|
|
|
|
|
|
| |
Level 8 translocation spell.
Blinks away everything with diminishing probability with:
P(~blink) = 0.8^(1/(dist+1)/(dist-1))
Over 10 ticks, a monster adjacent to the caster will blink with probability 0.9.
Monsters may be blinked repeatedly.
|
|
|
|
|
|
|
|
|
|
| |
For most header files, this only saves on having to recompile a
small number of source files, but there are also a few headers
where small changes would now take significantly less time.
This is most obvious for the Tiles build for which the dependencies
have been greatly reduced, so that the only additional includes
when compared to console are strictly library or tile related.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
It's the same radius, only all blue instead of mutagenic.
|
|
|
|
|
| |
This is incomplete, partially because of me getting bored, partially because
of doubts about the point of leaving simple addition/etc in parentheses.
|
| |
|
| |
|
|
|
|
| |
For way too paranoid and underinclusive values of "simple".
|