| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
That is, there's a one in three chance that any given Abyss spawn is
from somewhere else in the dungeon - the rest of the implementation of
what ba20e99 was meant to do.
|
|
|
|
| |
This adds branches to the abyss. These will be used for monster generation.
|
|
|
|
|
|
|
|
| |
A good enough fix would be to re-cast the depth to unsigned during
unmarshalling so it doesn't get sign-extended before putting into an
uint64_t variable. Bits above 32 can't be ever used, though -- even
bits over 31 hardly ever do (initial value is < 0x80000000 but increases
with time).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* game exit: placates valgrind
* leaving the Abyss: saves some memory
* game load: could corrupt the Abyss with restart_after_game
The last case is quite convoluted (you'd need to restore a game that was
saved in the Abyss, and previous one had to visit it this session), and
corrupting the Abyss is like trolling /b/, but let's keep saving have
strictly no effect on the game. Someone could scum AKs until getting a
layout they want.
Note that there's an unbounded memory leak as well, in WorleyLayout: it
doesn't free source layouts passed to it. These are sometimes malloced,
sometimes references to static objects, so it's not as simple a matter.
|
|
|
|
|
| |
Mistakes were made.
We need per-abyss excursion state.
|
|
|
|
|
|
| |
* Remove seed. It's unnecessary, the abyss is huge enough.
* Add a wizmode command to set your location in the abyss.
* Fix an overflow bug with abyss depth.
|
|
|
|
|
|
| |
If a player is in the abyss when their game moves from newabyss to
inception, mark the dungeon as nuked. This will cause it to decay over a
number of rounds rather than jumping in one turn. Vaults won't be disrupted.
|
|
|
|
| |
Restore abyss shifting.
|
|
|
|
|
| |
Mask features that have been dug, deconstructed or otherwise nuked as
MMT_NUKED. This is used in the abyss to facilitate Abyss self-healing.
|
|
|
|
|
|
|
|
| |
Convert abyss depth into an int, rip up all the phase logic (sorry).
Each procedural generator declares a changepoint, a lower bound estimate
on where the terrain type can change. This way, we can partially
recompute the abyss without experiencing aliasing.
|
|
|
|
|
| |
Procedural layout for the abyss using a mixture of sparse and dense
columns!
|
|
|
|
|
| |
This works like the spell tab, but with intrinsic/evocable abilities,
invocations, and ZotDef abilities.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Memoize the feature computed for a cell in the previous turn, rather
than computing it twice per turn. This allows us to preserve digging
etc. in the abyss without the doubled CPU usage introduced by
0.10-a0-3040-ga00d525. On my (somewhat slow) machine, the time for a
1000-turn run of the abyss stress test is reduced from ~85 s to ~55 s.
Currently we recompute the cache (i.e., run the worley routines on each
map cell) when loading a saved game and when the abyss shifts as a
result of hitting the map edge. The last case could be avoided by shifting
around features in the cached array, but abyss shifts are infrequent
enough that this is probably not necessary.
|
|
|
|
|
|
|
|
|
|
|
| |
Morphing now happens in "jerks". During a jerk, the morphing rate is
about three times what it used to be; between jerks, it is nearly zero.
Jerks are around 100--300 turns apart, depending on abyss speed
(200--600 for Cheibriadites), and last for about 1/3 of that time.
For some reason, loading old saves causes some major jerking for a few
turns before reaching the slow initial speed. I'm not clear why
this is happening.
|
|
|
|
|
|
|
|
|
| |
Objects, even const ones, should not be defined in header files, or
there will be one copy for each source file that included that header.
Move the offending definitions into source files, and replace them
with extern declarations in the headers.
Also, make the opc_* instances const and not static.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Also, some clean up and simplification, especially with the handling of
vaults. No longer protects player dropped items from being eaten by the
abyss. Vaults are more resilient to morphing and don't decay until the
player is close by to avoid having them all messed up before the player
has a chance to see them.
The morphing speed is a bit fast for now. It will start slower when we
make it variable.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Suppress the assertion checks of player position vs. map border in
wizard mode to allow wizmode-movement commands in the Abyss. This
may result in incomplete Abyss shifts, so it's not a reliable means
to actually testing the shifts themselves. However, this does allow
to use the wizmode-movement as a tool in exploring the Abyss to test
other things.
This also means that the assertions won't be triggered in debug mode,
though there _is_ a message in this case. Ideally, the asserts should
only be suppressed if the wizmode movement was the *cause* of the
shift.
|
|
|
|
|
|
|
| |
"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.
|
| |
|
|
|
|
| |
radius to the LOS radius.
|
|
|
|
|
|
|
|
| |
Clean up the code involved in generating and shifting the abyss. This is spadework in preparation for abyss vaults.
Fixes abyss shifts copying the area around the player to the centre of the abyss and not clearing the old area (irc conversation between Linley and dpeg confirms that the old behaviour of not clearing the duplicate shifted terrain is a bug).
Fixes abyssal runes being more likely to appear at the NW of the abyss level, particularly as time spent in the abyss increases.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
plus: thrown weapon permabrand being removed when
DUR_WEAPON_BRAND is active
plus: double messaging of "You are now empty-handed."
Fix 2810517: Added a pre-ability requirements check that handles Lugonu's
enter/exit abyss, berserking, recite, breath attacks and
some more. If the requirements aren't met, the check fails
before the success check, thus no turn is wasted.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10360 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
| |
(OK, so I wanted r8888. Sue me.)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8888 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
| |
into a file crawlhistory.txt in docs/obsolete.
I used a perl script to do this under the assumption that all these
change logs used the same system following the keyword "Change History".
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6930 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
summoned creatures being incapable of bleeding on the floor. This makes
things more difficult for Vampires; on the other hand there was a (more
or less) recent change that lets them regain 1 hp *per turn* when
draining corpses. We might also increase the duration of blood
potions...
Apart from that, various clean-ups.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6393 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed patrol definitions in maps not actually working.
Tested both by teleporting the minotaur in a labyrinth. About 50 turns
later it arrived back in its lair. :)
Since the minotaur proved to have a high magic resistance, it had plenty
of time to loot the stash at the labyrinth entrance once I'd woken it
before I finally managed to teleport it away (in wizmode you can force
monsters not noticing you).
This resulted in
"A minotaur, wielding the demon trident "Suyn Oma", and wearing a heavily
runed ring mail." o_O
It had also picked up a scroll and a wand. Ouch... (but cool!)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5536 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
How it works:
* Pick 12 random grids on the map and make them bloody.
* Recursively and with decreasing chances, allow their neighbours to get
spattered as well.
I think the effect is rather nice but the numbers might need to be
tweaked anyway.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5533 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
| |
huge number of files. Also correct file name comments.
No coding changes.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3539 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
there needs to be an invocation that can train Invocations, and Banishment is
too costly to use for everyday training.
Corruption is still a first-cut, needs more work and playtesting:
- Terrain modification is one-time only. Creeping modification requires too
much savegame magic.
- The monsters gated in during the corruption effect are occasionally hostile,
but mostly neutral. Neutrals will attack hostile monsters and also pets,
but will leave other neutrals and the player alone (in general). A neutral
that wants to go somewhere, but finds the player in the way will still take
a swing at the player.
- Beams are still not fixed to handle neutrals correctly (so neutrals do not
target and shoot right yet), will fix soon.
Breaks save compatibility.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1990 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
non-uniques may also get the Abyss treatment if they clear a HD roll.
Crawl tries very hard not to lose banished monsters, preserving them across
Abyss shifts and teleports, and saving them on the transit list when the player
escapes the Abyss.
Breaks savefile compatibility.
Toned down Vehumet and wizardry boosts a touch.
Fixed bugginess where player could get aux unarmed attacks on a monster that
just teleported away (by weapon of distortion).
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1052 c06c8d41-db1a-0410-9941-cceddc491573
|
|
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10 c06c8d41-db1a-0410-9941-cceddc491573
|