summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-place.cc
Commit message (Collapse)AuthorAgeFilesLines
* Don't use the current level's vault monster list in Weave Shadows.Neil Moore2014-08-061-1/+2
| | | | | Only use vault_mon_types if we requested a monster from the current level (Shadow Creatures), not another level (Weave Shadows).
* allow iterating over branches in a non-enum order (8742)Jesse Luehrs2014-08-021-5/+5
| | | | | | | | | | | | 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.
* Fix ugly thing banding (|amethyst)Nicholas Feinberg2014-07-301-4/+4
|
* Make Crawl a little uglier (upgrade ugly things)Nicholas Feinberg2014-07-301-0/+5
| | | | | | | | | | | 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.)
* Don't mark friendly illusions/ghosts as interesing (#8817)Neil Moore2014-07-261-0/+6
|
* Experimentally add torpor snails to DepthsNicholas Feinberg2014-07-231-7/+15
|
* Don't hang when Yredites cast Shadow Creatures in holy_panNeil Moore2014-07-211-0/+5
| | | | | We had an infinite loop when there were monsters on the random list but none of them were acceptible.
* Separate 'permanent' and 'temporary' monster hit diceNicholas Feinberg2014-07-131-5/+5
| | | | As part of a wider scheme to make draining temporary.
* Record objects for objstat after the level builder has completedgammafunk2014-07-121-5/+0
| | | | | | | | 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.
* Clean up function and variable names for objstatgammafunk2014-06-251-1/+1
| | | | | | | | | 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
* Write object statistics in one file per branchgammafunk2014-06-251-1/+1
| | | | | | 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.
* objstat: Item and monster generation statisticsgammafunk2014-06-251-0/+5
| | | | | | | | 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.
* The great mon-stuff migration.Shmuale Mark2014-06-221-1/+1
| | | | | | | | | 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.
* Recognize gastropodal leadership potential (gammafunk)Nicholas Feinberg2014-06-201-0/+2
|
* Rename functions (|amethyst).Shmuale Mark2014-06-191-2/+2
|
* Try to reduce duplication in Recite code.Shmuale Mark2014-06-191-2/+2
| | | | | | | | | | | | | | 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.
* Comment and simplify.Shmuale Mark2014-06-181-6/+6
|
* Replace randomly-generate teleport traps with 1-shot versionsNicholas Feinberg2014-06-171-1/+1
|
* Fix braces for Torpor Snail bandsreaverb2014-06-171-0/+2
|
* Add torpor snailsNicholas Feinberg2014-06-151-0/+32
|
* Merge branch 'mon-pickup'Shmuale Mark2014-06-111-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Give mercs better items.Shmuale Mark2014-06-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | 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.
* | Revert "Make random_choose_weighted() end on -1 weight"reaverb2014-06-101-32/+32
| | | | | | | | | | | | | | This reverts commit 7e81480cda18144ff185f5248639a072b654deff. Turns out I missed some calls to random_choose_weighted(), this change might not even be worth doing.
* | Make random_choose_weighted() end on -1 weightreaverb2014-06-101-32/+32
| | | | | | | | For consistency with random_choose().
* | Make Crawl a little bit more metalNicholas Feinberg2014-06-071-1/+16
| | | | | | | | | | Iron Trolls are back, by popular demand! Now only present in deep troll shaman packs.
* | Don't claim that monster open portal gates (#8655)Neil Moore2014-06-071-1/+1
|/ | | | | | 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.
* Remove plague shamblers.Shmuale Mark2014-05-141-2/+1
| | | | | | | | | 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.
* Remove Shedureaverb2014-05-131-19/+0
| | | | | They never really worked as enemies - their only unique aspect, partner resurrection, was just annoying.
* Formatting fixes (add braces).Neil Moore2014-05-121-0/+12
| | | | This fixes all the instances caught by unbrace.
* Allow random monsters on random monster lists (#8520).Neil Moore2014-05-101-2/+7
|
* Fixes for Gozag bugs related to level generation.Steve Melenchuk2014-05-071-47/+5
| | | | | | | | * 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).
* Gozag: Don't let bribes take effect until the player spots the monster.Steve Melenchuk2014-05-071-6/+10
| | | | | Prevents abuses like clearing out the Orc:$ end entirely offscreen; also gives the opportunity for some nice dialogue.
* Gozag wrath: counter-bribe.Steve Melenchuk2014-05-071-1/+2
| | | | | When you spot monsters, Gozag can incite them against you, granting them one of a handful of beneficial effects.
* Gozag: prelimiary implementation of Bribe Branch.Steve Melenchuk2014-05-071-0/+46
| | | | | | | | | | 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.
* Fix place: random monsters for real.Neil Moore2014-05-051-6/+6
| | | | | | | 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.
* Abstractify.Shmuale Mark2014-05-051-3/+3
|
* Let draconians grow up.Shmuale Mark2014-05-051-31/+22
| | | | | | | | 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.
* Don't crash on Shadow Creatures in Zigs.Neil Moore2014-05-051-2/+3
| | | | | | | 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.
* Remove spriggan enchanters.Shmuale Mark2014-05-051-1/+1
| | | | | 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.
* Really don't crash on "nothing" in random monster list.Neil Moore2014-05-031-7/+12
| | | | | | | 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.
* Don't crash when resolving MONS_NO_MONSTER from vault lists.Steve Melenchuk2014-05-021-2/+3
| | | | Relevant for Shadow Creatures in pitsprint, etc.
* Remove flaming corpses.Shmuale Mark2014-04-291-1/+1
| | | | | | | | 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.
* Reduce the sizes of plain demonspawn bandsChris Campbell2014-04-261-15/+30
|
* Don't give plain salamanders bandsChris Campbell2014-04-261-9/+0
| | | | Leave the bands to the classed salamanders instead.
* De-dwarfify death knights.Steve Melenchuk2014-04-241-3/+3
| | | | Complete with a bad tile, which could/should be replaced ASAP.
* Hopefully avoid a BAND_RANDOM_SINGLE crash (wheals).Steve Melenchuk2014-04-181-1/+4
| | | | | 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.
* Allow BAND_RANDOM_SINGLE to select from vault-defined monster lists.Steve Melenchuk2014-04-171-4/+21
| | | | | | | | 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.
* Don't allow raskshasa's BAND_RANDOM_SINGLE in monsterless branches.Steve Melenchuk2014-04-171-1/+1
| | | | Like wizlabs, where it was causing crashes.
* Remove vapour monstersgammafunk2014-04-091-3/+1
| | | | | | | | | | | | | | | | | 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.
* Remove spriggan assassins.Shmuale Mark2014-04-021-1/+1
| | | | | | | | 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.