diff options
author | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-01-07 12:03:36 +0000 |
---|---|---|
committer | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-01-07 12:03:36 +0000 |
commit | 7ce4f0c31ffe27368d7a62298dcb45fd244904b1 (patch) | |
tree | 582135bc457bb1aa6d8978f3208f291469719c59 /crawl-ref/source/monplace.cc | |
parent | f001432886469258339851993d506a8ec3d0b097 (diff) | |
download | crawl-ref-7ce4f0c31ffe27368d7a62298dcb45fd244904b1.tar.gz crawl-ref-7ce4f0c31ffe27368d7a62298dcb45fd244904b1.zip |
Yet another fix to the arena win/loss/tie logic.
During arena mode don't reserve any of mitm[] when creating new items, and when
mitm[] fills up call arena_cull_items() instead of _cull_items(), since in
arena mode we can cull via how boring/interesting the items are rather than
having to consider game balance and fairness to the player.
Allow the arena to veto monster placement, rather than culling them immediately
after they're placed.
New arena tags:
* "no_bands" prevents band members from being placed.
* "move_spawners" teleports test spawners every turn to spread their
summons randomly over the arena.
* "ban_glyphs:" lists a set of text glyphs of types of monsters which
shouldn't be allowed in the arena.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8300 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/monplace.cc')
-rw-r--r-- | crawl-ref/source/monplace.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/crawl-ref/source/monplace.cc b/crawl-ref/source/monplace.cc index d1ace875bf..0a0574b523 100644 --- a/crawl-ref/source/monplace.cc +++ b/crawl-ref/source/monplace.cc @@ -1003,6 +1003,12 @@ static int _place_monster_aux(const mgen_data &mg, ASSERT(mgrd(fpos) == NON_MONSTER); + if (crawl_state.arena) + { + if (arena_veto_place_monster(mg, first_band_member, fpos)) + return (-1); + } + // Now, actually create the monster. (Wheeee!) menv[id].type = mg.cls; menv[id].base_monster = mg.base_type; @@ -2041,6 +2047,9 @@ static int _ood_limit() void mark_interesting_monst(struct monsters* monster, beh_type behaviour) { + if (crawl_state.arena) + return; + bool interesting = false; // Unique monsters are always intersting |