| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
As part of a wider scheme to make draining temporary.
|
|
|
|
|
| |
Since it claims that it will do so and prevents casting Ozo's Armour and
Condensation Shield.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
It previously put out forest fires, which made sense in Forest but
is mostly a rare special case now. It also gave friendlies ENCH_WIND
_AIDED, which was supposed to increase their ranged accuracy. Since
spriggan air mages aren't around fauns and satyrs anymore, there's
no need for it.
I didn't actually remove the code for the effects of ENCH_WIND_AIDED,
since I couldn't find them. Either it was never actually implemented
or I was missing something obvious.
|
| |
|
|
|
|
| |
Since it requires empty space to cast in all other cases.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Trees are in some ways yet another type of transparent wall, and, as
MarvinPA has said, "in general having areas full of trees where you
can see lots of enemies but not target them just plays badly."
There were two differences between trees and mangroves, besides LOS:
the latter didn't start forest fires and left shallow water when
destroyed. That behaviour is kept, instead checking whether
the tree (technically, the player) is in Swamp.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The three special cloud types unique to this rod were vanishingly
rare until very high evo (impossible until 15, but a minority even
at 22 skill) and since most are not even greatly stronger than
'normal' clouds, I thought it was a shame that it was so hard to see
them without a level of evocations skill that very few characters
would realistically get.
This allows negative energy and acid clouds to show up earlier,
increases their relative weight compared to normal clouds (in
asecending order of general power), makes rain a bit less common and
meph somewhat more common as low-tier clouds. Storm clouds (the
only new cloud type that tends to be more powerful than normal clouds
in absolute terms) are more strongly favored at the highest power,
which seems fine given the investment that represents.
|
|
|
|
|
|
|
|
|
| |
The way it used shotgun rays meant that clouds placed directly in
front of you could have extremely high durations compared to clouds
just slightly to the side (an average of about 97 turns at 16 evo!).
This commit makes all the clouds in the cone have the same base
duration as each other (individually randomized and lower overall).
|
|
|
|
|
|
|
|
|
|
|
| |
Sprays clouds over a cone-shaped area in front of the caster. At low
power it gives rain, mist, or noxious fumes; mid-tier gives flames,
freezing vapour, or poison gas; high-tier gives one of three new cloud
types - acidic fog, negative energy, or storm clouds.
The targeter is from an experimental implementation of a spell called
"Scattershot", hence the name and some of the functionality it provides
which goes unused here.
|
| |
|
|
|
|
|
|
|
| |
Forest fires, Conjure Flame, and Ring of Flames now incur piety hits
properly, and the piety hits for everything else are much harsher
(you're probably going to get penance for trying to do anything
fire-related).
|
| |
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
It previously gave the "you smell decay" line if you could smell, and
could see the caster. That means that if you were invisible and cast
the spell, there would be no message.
Now give the message whenever you are the caster, can see the caster, or
can see a resulting miasma cloud. If you can't smell, give a message
that doesn't involve smell.
|
| |
|
|
|
|
| |
See Mantis for discussion.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It had a constructor with two optional ints, defaulting to zero.
Unfortunately, since we can't rely on C++11's explicit keyword,
this meant that dice_def foo = 7; would "work", rolling 7d0.
The user probably expected 7d1, but rather than doing that just
remove the argument defaults altogether, and add a separate
default constructor.
One replaced call used beam.damage = INSTANT_DEATH as a "convenient
non-zero", but since INSTANT_DEATH is negative, even something like
dice_def(INSTANT_DEATH, 1) would result in a negative roll. Use
42d1 instead.
|
|
|
|
|
| |
This also fixes a bunch of "act through glass" or "doesn't obey nightstalker/
lantern of shadows" bugs.
|
|
|
|
|
| |
Can't test Android, MSVC or Mac, but a very brief glance at the diff suggests
it's unlikely they're affected.
|
| |
|
|
|
|
|
| |
It degenerated to a simple loop over menv, hardly worth any syntactic sugar.
I kept it for now, though.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
Some cloud generators have the cloud flow from a wall or a statue. They
use targetter_cloud which doesn't allow that, except they don't use the
regular interface but read the targetter's internal data, which skips some
validation.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Allies monsters within a few squares of someone with Control Winds
active now get a boost to their accuracy with missile and thrown
weapons, so long as the enchantment lasts.
This doesn't currently affect spells, and I'm not sure it should.
Somewhat awkwardly, it also doesn't affect things like manticore
spines, due to seperate codepaths. Perhaps this effect should
actually be checked in the beam code itself?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This spell allows the caster to continously manipulate the winds to
aid them and their allies. It is a self-enchant that will act
continuously for a decent number of turns after being cast, with the
following effects:
Firstly, it will immediately extinguish any forest fires in LoS of
the caster (both acting as a fire suppressor against the player's
actions as well as stray lightning bolts of the caster's own)
Secondly, it will blow clouds away from the caster. The path taken
by them is primarily direct repulsion from the caster, but with
three caveats:
a) A cloud will never be blown onto an ally. Alternate paths will be
used instead, where possible.
b) A cloud currently engulfing a hostile will not be moved at all.
c) If there is no possible path to move a cloud engulfing an ally,
instead greatly reduce that cloud's remaning duration.
This will allow spriggan air mages to stop starting raging forest
fires in their own home, prevent the player from doing likewise, and
generally provide protection for others against cloud spells, which
spriggans are highly vulnerable to.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This follows removal of documentation in 747b1a2d.
Giving penance for a pointless act you need to go out your way for is quite
strange -- it doesn't in any way restrict the player and thus has no balance
gains, and there's a cost of making an already long god description even
longer. Plus, you can get rid of decks simply by dropping them; on a
non-permanent level if you really want to keep ^F clean.
Not sure if the source tracking should be kept; for now I reverted it to
keep things simple and to avoid an use of deprecated mindex (let's get rid
of it already!), but if there's an use, please unrevert this part.
This reverts commit 46bfda39a8d584164fa475188367f331314a644d.
|
|
|
|
|
| |
Also in a couple of cases add other messages. The goal here is to always
print something when a prompt is dealt with.
|
|
|
|
|
|
|
|
|
| |
The framework here could be adopted to, say, give brownie points to
Yredelemnul worshippers for destroying holy items, or other creative
item-related god conducts.
(More importantly, you can now reliably become an Unlucky Tengu.
Hooray.)
|
| |
|
|
|
|
|
|
|
|
| |
This updates the beam code to check for the impact of a cloud forming at
the beam's endpoint, and updates the player implementations of the cloud
spells to fire a tracer cloud at that endpoint; thus players will be
warned for targetting themself and/or allies, and monsters will take
allies into consideration when using cloud spells.
|
|
|
|
| |
Also, rename the still-used BEAM_POTION_MEPHITIC entry to BEAM_MEPHITIC.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
Mephitic, poison and miasma clouds from a level 2 spell just isn't
balanced at all (compare to Poisonous Cloud, a very strong spell at
level 6). Fulsome makes the first two of these completely unlimited
in practice, and miasma is absurdly strong even with decay corpses
being rarer.
|
| |
|
| |
|
|
|
|
|
| |
Since these are opaque (and therefore behave differently from normal trees),
a renaming is warranted.
|
|
|
|
|
|
| |
It is used only in a few vaults, and where it does, it only confuses players
about which sources of fire can melt it and which can't. The last problem
applies to trees as well, but at least it's somewhat more intuitive there.
|
| |
|
|
|
|
|
|
|
|
|
| |
These accumulate but never get removed; no wonder compilation times keep
rising.
The includes.sh script has lots of false negatives (and positives...), and
can't check .h files which cause the biggest slowdown, it'd be nice to run
multidelta on those somehow.
|
| |
|