| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was strange that the light would magically follow everyone who was in the
initial spot for a duration -- with five independent spotlights no less.
Sunlight now creates a stationary halo instead.
Evaporating water is no longer instant, but the area potentially evaporated
is bigger, to compensate. The old cross-shaped area is guaranteed, the rest
of haloed stuff (ie, corners of the 3x3 space) have a 50% chance.
Also, the 1/100 chance to spawn a plant per evaporated square of shallow
water is no more, it was too obscure.
|
|
|
|
|
|
|
|
|
|
| |
suppressed() calls _update_agrid(), which calls halo_radius2(),
which indirectly called suppressed(). Reading a scroll of silence
with nothing else around would crash the game.
Not to say that it shouldn't be suppressed, but it will be tricky
to do so properly (without crashing and without using a half-updated
agrid).
|
| |
|
| |
|
|
|
|
|
| |
This also reveals how bad the beam blaming code is, need to rewrite that soon
-- mostly because of problems with reflection.
|
| |
|
| |
|
|
|
|
|
|
| |
The check is supposed to work for either, not both (oops).
This reverts commit 481fcd091885b300bd5d64fa3b64e10bc5b3816a.
|
| |
|
| |
|
| |
|
|
|
|
| |
This reverts commit 1fea46646227a73c906d5d425c8482207f9d6cca.
|
| |
|
|
|
|
| |
Not meant to spawn anywhere else than the Pan level though.
|
| |
|
|
|
|
|
|
|
| |
Also remove the teleport and change behaviour. Speed is reduced to 8 so they
are still easy to escape.
They start being generated at dungeon level 7. Any item has 1 chance in 500 of
being a mimic.
|
|
|
|
|
|
|
|
|
|
|
| |
Only for doors now. The mimic is a fully functional feature (monsters can open
door mimics) until it is replaced by a monster mimic when revealed.
When walking into it (or trying to open or close it), the mimic is revealed
and attacks first.
For gameplay reasons, the mimic isn't revealed by ranged attacks and spells
(or else, the player tediously check every feature by throwing stones).
Only passive abilities (antennae) and ones with a strategical cost (sanctuary)
can reveal mimics at range.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Profane servitor: An angel twisted into an undead monster by
Yredelemnul. He gifts these as a new tier above bone dragons. They are
in Yred's elemental colors, generated wielding a demon whip, probably
slightly better than a bone dragon in melee, and have res holy instead
of holy vuln like most undead. It also generates an umbra. Only Yred
gifts spawn them currently though they'd be great for some vaults.
umbra: An 'antihalo' composed of flickering darkness, which is the
opposite of a halo. Creatures in an umbra are harder to hit with both
ranged/melee, but get a stealth bonus. Currently only profane servitors
generate an umbra. Demons, undead, and worshipers of Yredelemnul
(at **+ for players, but all monsters) aren't harmed by an umbra but
still get the stealth boost.
The patch also changes the "Glow" status light to "Contam", and displays
"Glow" when actually backlit (for whatever reason: halo, sticky flame,
corona).
|
|
|
|
|
| |
No tiles yet, fixed radius and an ugly random colour scheme.
Pushing so we can play with variants.
|
|
|
|
|
| |
On some STL structures size() is slow. I did not bother limitting sed,
so innocent bystanders got pulled into the machine, but there's no loss.
|
| |
|
| |
|
|
|
|
|
|
|
| |
With a tile!
Since they are nothing but holy demons, it is wrong for them to have
different resistances where TSO is not concerned.
|
|
|
|
|
|
|
| |
"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.
|
|
|
|
| |
Also, fix shallow water being treated as solid ground.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
"Pearl" has some interesting religious connotations and it sounds
infinitely better than "holy dragon". The latter is much like <a randomly
generate adjective> + "dragon", whereas the former sounds different and
has thought put into it.
Thanks, OG17!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously loading a save while under the silence effect (or any effect
that uses the agrid; silent spectres, liquefaction) did not have the
agrid properly initialised.
Thus, until either you move, or another monster with relevant agrid came
onto the screen, even if you had the "Sil" effect, silence (or
liquefaction, etc) was not actually in effect.
This made it possible to use silence offensively and still cast spells.
I'm not sure if it was every *used* like this, but the possibility was
there for abuse.
Finally, it was also extremely odd for a TSO worshipper or when fighting
holy monsters (where I first noticed it when testing ophan).
|
|
|
|
|
|
|
| |
Liquefaction can now be cast and now affects all features that have
solid floors; it also recolours anything with a solid floor, rather
than just individual floor tiles. Reasoning: as it affects all solid
features, it should give visual indication of this effect.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This one's gone through a couple of iterations during discussions.
Finally, though, we have this: an area of effect slowing. It's a circle
around you that slows you and anyone not insubstantial and not flying
who crosses into that circle.
The slowing effect is implemented as though it were ponderousness (well,
slightly more than ponderousness), rather than as ENCH_SLOW. For
monsters, when cast by the player, it counts as a slightly less speed
malus than standard ENCH_SLOW. Reasoning: the monster casting it has
more stability for being at the centre of the effect.
Currently, I've stolen the colouring from KiloByte's _etc_tornado. It's
implemented using areas, which I've written some additional code for
that finds the "centre" of an area from a coordinate within that area.
Greensnark had a quick look over it for me earlier, but I'd appreciate
further checks for quickness, saneness, etc.
It appears in the Book of the Earth.
Finally: no tile (yet). I attempted to do one up, spent an hour or so
tweaking it, and then compared it to our current spell tiles and decided
that I can't make spell tiles. :-)
|
|
|
|
|
|
|
|
|
|
| |
Especially constructs like: long foo = x.props[].get_int()
can get you by surprise on 32 bit arches -- even worse now that most
devs are on amd64.
Item flags I typedeffed as iflags_t, as it's likely we'll have to extend
it soon, yet defining it as uint64_t now would be misleading since there
are so many places it's used in a 32 bit manner.
|
|
|
|
|
|
|
|
|
|
|
|
| |
They still need to summon a top-tier holy monster when they day, and
need better indications of how far along they are to actually carking
it; currently their message shifts from "fading away" to "mostly faded
away" when they're less than 20 or so turns from completely going.
They're implemented as constantly fleeing, but are quite slow. You can't
actually corner them ever, which may be a problem from an interface
point of view. It's not necessarily the best implementation, but it did
the trick... might have to change. :)
|
|
|
|
|
|
| |
The radius was restricted to squares of full integers, producing a
"bloated diamond", looking worse than X^2+1 we use in other places.
This version allows intermediate radii, reducing sudden jumps.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| | |
They radiate silence in a large radius, and spawn in the Crypt (pretty often),
Tartarus and the Abyss (rarely).
|
|/
|
|
|
| |
They are all a lot bigger than the old angel/daeva halo, not sure how
big we want them.
|
| |
|
|
|
|
|
| |
Any benefits from better inlining are infinitessimally small here, but with
profiling, we can see how many times the actual run was needed.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
For one, fix several crash bugs related to the player being outside
LOS. These are prevented by checking against actor->alive() to check
actor validity, and having you.alive() return false in the arena.
Then, make sure LOS is actually invalidated for the arena, since
that doesn't go through the usual level initialization path.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is all not very nice.
los_base is now an abstract base class for both los_def and
los_glob (global LOS-backed los_def variant), and interators
now take a *los_base.
actor::update_los is gone.
Arena LOS is quite probably broken again at the moment.
|
|
|
|
| |
Also move the call to areas_actor_moved to actor::set_position.
|
|
|
|
| |
Monsters can now cast Silence, though none (other than player ghosts) have it.
|