| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Only use vault_mon_types if we requested a monster from the current level
(Shadow Creatures), not another level (Weave Shadows).
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows us to have a consistent and logical ordering of branches
without requiring the branch enum itself to be reordered (which could
have save compatibility implications). The new ordering of branches just
moves Depths to the place in the ordering that it already is planned to
go on the next major save compat bump, but other changes are possible,
if desired. All places in the code that iterate over branches have been
updated to use the new iterator except for code dealing with save files,
which still uses enum order, so that we can change the display ordering
without affecting saves.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Ugly things now have the stats of old very ugly things; very
ugly things are now... miniature elemental dire elephants, more
or less. (A little weaker.) They've been adjusted to not spawn
in bands below a certain depth (d:13 for ugly things), ala
the famous d:1 gnoll.
Ideally, they'll be potentially threatening in Vaults/Depths
now. (Their primary spawning spot.)
|
| |
|
| |
|
|
|
|
|
| |
We had an infinite loop when there were monsters on the random list but
none of them were acceptible.
|
|
|
|
| |
As part of a wider scheme to make draining temporary.
|
|
|
|
|
|
|
|
| |
Previously we were recording during the monster and item creation
functions, but this resulted in some excess counting, due to
(probably) objects placed in vaults on levels that were eventually
rejected. We now iterate over objects after the level generation is
complete.
|
|
|
|
|
|
|
|
|
| |
We now consistently use objstat_ as a prefix for non-static functions
and don't use prefixes for static functions and variables. Various
enums, classes, and defines have also been renamed to more clearly
reflect their function.
I also added command-line help documentation for mapstat and objstat
|
|
|
|
|
|
| |
All output in a single file was difficult to view and work with. Each
file uses a common prefix of "objstat_", and the file names are printed
to stdout.
|
|
|
|
|
|
|
|
| |
The -objstat command-line option will generate iterations of the given
levels, compiling stats on every item and monster generated, and
average the results over the iterations. It's only available in debug
builds and uses the same map specification format as -mapstat. The
default number of iterations is 100.
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is_chaotic() and is_unclean() have been changed to return an int
roughly equal to what would have been returned before by the Zin
recite function. Some bool flags were added to the function to make
it still work right for the other uses (e.g. silver).
Prince Ribbit is no longer specially vulnerable to Recite, and insane/
sluggish uniques are unclean rather than chaotic, which seems more
consistent with the other uses of the terms.
The special case for nonliving and plant monsters to be unrecitable
is removed.
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The problem with monster pickup of the type that this branch removes
is that it encourages tedious behaviour to achieve the optimum result.
While in general people don't bother to pick up every weapon and armour
and stuff it upstairs, that would be a way to prevent monsters from ever
picking up items you've seen. With Apportation, you don't even have to
reach the item, and on a mummy, say, you don't even have to worry about
the infintesimal food cost. People do already do this for chaos and
distortion weapons, and it is not a very good thing.
Not allowing allies to pick up items is related, in that it means that the
code can be simpler, but it also has problems of micromanagement,
weirdnesses with the ctrl-T command, and allies already have their share
of problems. I hope that the compensations for Beogh and mercenaries make
up for what is lost in terms of fun.
Conflicts:
crawl-ref/source/tag-version.h
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
They automatically get their items set as MAKE_GOOD_ITEM, which
might not be enough to make up for the mediocre weapon types they
tend to start with, but it's the simplest solution for now. They're
also marked as MF_HARD_RESET so that you can't not pay and then take
their stuff.
Also, fix compilation: I'll fix this (so that git bisect works) while
merging into master.
|
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 7e81480cda18144ff185f5248639a072b654deff.
Turns out I missed some calls to random_choose_weighted(), this change
might not even be worth doing.
|
| |
| |
| |
| | |
For consistency with random_choose().
|
| |
| |
| |
| |
| | |
Iron Trolls are back, by popular demand! Now only present
in deep troll shaman packs.
|
|/
|
|
|
|
| |
SC_ARCH was added in 0.14-a0-2782-gadab473, but the places that should
have used it used SC_GATE instead. And of course a gate is not the same
as a gate.
|
|
|
|
|
|
|
|
|
| |
The idea behind the miasma death explosion is interesting, but in
general miasma can be extremely annoying and the cloud rather easy
to avoid. This is especially true in the layout of Crypt, which is
the only place they show up outside of vaults. The retching attack
gave a rare special case that very rarely mattered and didn't help
to distinguish them all that much.
|
|
|
|
|
| |
They never really worked as enemies - their only unique aspect, partner
resurrection, was just annoying.
|
|
|
|
| |
This fixes all the instances caught by unbrace.
|
| |
|
|
|
|
|
|
|
|
| |
* Properly unmark off-level shops (#8498).
* Don't deduct bribes for vetoed levels (if, say, Elf:3 vetoed a lot
you'd notice your bribe running out immediately on entering the
level).
|
|
|
|
|
| |
Prevents abuses like clearing out the Orc:$ end entirely offscreen; also
gives the opportunity for some nice dialogue.
|
|
|
|
|
| |
When you spot monsters, Gozag can incite them against you, granting them
one of a handful of beneficial effects.
|
|
|
|
|
|
|
|
|
|
| |
Spend 3000 gold for a chance of temporarily turning some of the
inhabitants of a branch good neutral, or possibly even friendly. Bribes
are only effective against newly generated monsters (i.e. on level
creation or monsters that spawn afterwards); the fund times out over
time and more quickly with the number of enemies affected, upon which
neutral enemies turn hostile again; friendly followers will continue to
follow the player subject to occasional follow-up payments.
|
|
|
|
|
|
|
| |
In 0.15-a0-360-gf5e0bc2 I made a monster_type variable that could
sometimes hold a -1... but then the == -1 check was being optimised
away. I didn't see it locally because I compiled with -O0, where the
code worked as expected.
|
| |
|
|
|
|
|
|
|
|
| |
They will now be able to mature into whatever drac type they can
(i.e. white scorchers will still be disallowed) upon reaching the
appropriate HD. The goal is mostly to make draconian mercenaries
more attractive, since if they can survive they can become rather
strong.
|
|
|
|
|
|
|
| |
If a random monster list has a place: entry on it, RANDOM_COMPATIBLE_MONSTER
would crash when trying to look up compatibility of (monster_type)-1 .
This extends the MONS_NO_MONSTER fix in 0.15-a0-360-gf5e0bc2.
|
|
|
|
|
| |
The monster. It didn't really exist anywhere, nor did the idea seem
to add too much to the good-sized danger that spriggans already posed.
|
|
|
|
|
|
|
| |
And preserve the intended "don't spawn anything this time" behaviour.
The previous commit didn't work anyway because it checked the wrong
variable, but were it not for that it would have caused "nothings" to
be rerolled.
|
|
|
|
| |
Relevant for Shadow Creatures in pitsprint, etc.
|
|
|
|
|
|
|
|
| |
Sticky flame damage is hardly noticeable in D, and basically
non-existent in Crypt -- the only thing an average game noticed
about these monsters was that they liked to destroy scrolls. It was
nice for some vaults to have an undead counterpart to simulacra but
there are plenty of other evil fiery monsters.
|
| |
|
|
|
|
| |
Leave the bands to the classed salamanders instead.
|
|
|
|
| |
Complete with a bad tile, which could/should be replaced ASAP.
|
|
|
|
|
| |
I haven't been able to reproduce the crash that was mentioned to me, but
these fields being NULL probably has to do with it.
|
|
|
|
|
|
|
|
| |
Mainly so rakshasas in wizlabs can be accompanied by appropriate enemies
without crashing.
Also allows RANDOM_MOBILE_MONSTER and RANDOM_COMPATIBLE_MONSTER to be
resolved properly with vault monster lists.
|
|
|
|
| |
Like wizlabs, where it was causing crashes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Always confused, permanently invisible monsters that only know how to
check your electricity resistance are not very fun to fight. For
vaults, I've replaced many instances of vapours with wind drakes where
the "air" is the theme, replaced a couple instances with lightning
spires where the theme was electricity or with thorn hunters if the
theme is merely swamp. Other instances have been outright removed. For
the cloud mage wizlab, I've replaced vapours with wind drakes but have
down-weighted them relative to air elementals and insubstantial wisps.
For the foxfire card, I've moved vampire mosquitos into the position
where vapours were, put insubstantial wisps as lower-power summons
behind fireflies, since the latter got a buff some time ago, and added
killer bees in between insubstantial wisps and fireflies to keep the
number of summon types the same.
|
|
|
|
|
|
|
|
| |
There doesn't seem to be a very good place for these guys, as
attested to by their rather limited placement (1/4 of the time, in
a high-level spriggan band). They fill a similar niche as spriggan
enchanters, and, absent the Forest branch, aren't common enough
for their differences to be obvious.
|