Tweaked monster generation, which had become too bland.
Reintroduced shoal vault (onia_ninara_012_swampy_vault_shoal) which seems to work now.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1844 c06c8d41-db1a-0410-9941-cceddc491573
L5CVPV5IUBSO4EE3WK4O6SQGIMIEPSMQONFBWEVGJBR2HATLPZIAC
P52QVYEFQXNK6IXNN2EMZIBLOIHHGQ7LODWIGWPJLANGVIPQK5IAC
VCISXSXE6WGRO6PQN7Y6IFZ7C4VFUMKQK6KGAXA6YZ5RCZIB64WAC
JW2KRJHES33W7UTWZ6NDO4TLMK4EFU4HKZXBWR2UJOMPCCOTR4CQC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
CQ24AVAI6SW3AHTIDMLPSTRRBEU6FHRF5I5FD6G5QIYE6PO4BQMQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
52W74WXL5XIH6YFJBQRVAO47YHCS3CPMUUZS4Q3AZ3HAPDWMT54AC
QDTVLBRGHDTRUVT7I3O72K6TMOYAUSAJBZUHGOEFU2RKJNUPWZSQC
YATODO2EN3AW7IXW5PL25HHK34YHF6Y32QBMOUZXEATZZ4YQQWZQC
KFZYPFHHOWRUZEK2PW26EI73Z6I6DLHW2YEJV2CB5XBWFRRNBFXQC
ZHFUXYUHS6V47WK2NRH7OU6RX77NRKTXOZC3MND2GG7PEEWSGFTAC
H3552BCIAVBLKAYKE4DHFLBLFW5RGRMYBMRRYHYEB5IPIJRUVU5QC
LL4FGIKVSJDKSCBNGS4ANIJGVTR6Q3LZPAJWGX3MY6V42P3BMZ6QC
if (you.piety >= 120)
racial_bonus *= 6;
else if (you.piety >= 100)
racial_bonus *= 5;
else if (you.piety >= 75)
racial_bonus *= 4;
else if (you.piety >= 50)
racial_bonus *= 3;
else if (you.piety >= 30)
racial_bonus *= 2;
if (you.piety >= 185)
racial_bonus += racial_bonus * 3;
else if (you.piety >= 160)
racial_bonus += racial_bonus * 5 / 2;
else if (you.piety >= 120)
racial_bonus += racial_bonus * 2;
else if (you.piety >= 80)
racial_bonus += racial_bonus * 3 / 2;
else if (you.piety >= 40)
racial_bonus += racial_bonus;
return (env.turns_on_level > 700 - lev_mons * 117
&& one_chance_in(50));
return (env.turns_on_level > 700 - lev_mons * 117? one_chance_in(40) :
one_chance_in(50));
}
*/
static int fuzz_mons_level(int level)
{
int fuzz = random2avg(11, 5);
if (fuzz > 5)
level += fuzz - 5;
return (level);
void debug_list_monsters()
{
std::string mons = "Monsters: ";
int nfound = 0;
for (int i = 0; i < MAX_MONSTERS; ++i)
{
const monsters *m = &menv[i];
if (!m->alive())
continue;
const std::string mname = m->name(DESC_PLAIN, true);
std::string news = (nfound++? ", " : "") + mname;
if (news.length() + mons.length() >= (unsigned) get_number_of_cols() - 1)
{
mpr(mons.c_str());
mons.clear();
news = mname;
}
mons += news;
}
if (!mons.empty())
mpr(mons.c_str());
mprf("%d monsters", nfound);
}
#NAME: onia_ninara_012_swampy_vault_shoal
#TAGS: no_pool_fixup no_monster_gen
#ORIENT: float
#SHUFFLE: AB@
#SUBST: A : x, B : x
#SUBST: D = .:30 W
#KFEAT: E = w:20 . / x / w:50 W / w:30 w / ~
#KFEAT: F = w:150 w / w:70 W / ~ / . / x
#FEAT: G = x / . / w / W
#KFEAT: H = . / W
#KMONS: D = Plant / w:200 nothing
#KMONS: E = w:2 slime creature / swamp worm / giant blowfly / w:2 giant mosquito / w:1 electrical eel / w:1000 nothing
#KMONS: F = w:2 slime creature / swamp worm / giant blowfly / w:2 giant mosquito / w:2 electrical eel / w:1000 nothing
#KMONS: H = swamp drake / swamp dragon / hydra / w:20 nothing
#KITEM: H = any good_item / any potion / w:20 nothing / gold
#DEPTH: Shoal
#MAP
# wwwwwwwwwwwwwwwwwww.wwwwwwwwwwwwwwwww
#wwwwwwwwwwwwwwwwwww...wwwwwwwwwwwwwwwww
#wwwwwwxxxxxxxxxxxxxx@xxxxxxxxxxxxwwwwww
#wwwwxxxxxGGGxxxxxxGEDEExxxxGGxxxxxxwwww
#wwwxxxxGHHFFGGGGFFFEEDEEGGFFFxxGGxxxwww
#wwwxxFFFHHFFFFFGFFFFEEDEEFFFFFFFFGxxwww
#wwwxGGFFFFDDEEFFFFFEEDEEFFFFFFFFFFGxwww
#wwwxxGFFFFEEDDEEFFEEDEEFFFEEEFFFFGxxwww
#wwwxGFFFFFFFEEDEEEDDEEEEEEEDDEEEFFGxwww
#wwwxGGFFFFFFFEEDEDEEEEEEEDDEEDDDEEDBwww
#wwwxxGFFFFFFFFEEDEDDEDDDDEEEEEEEDDxxwww
#wwwxxxGFFFFFFEEDEEEEDEEEEEFFFFFFFFxxwww
#wwwxxxxFFFFFEEDEEFFFFDDFFFFFFFFFGGGxwww
#wwwxxxGFFFFEEDEEFFFFFFEDEFFFFFFFxxxxwww
#wwwxGGFFFFFFDEEFFFFFFFFEDFFFFFFGGxxwwww
#wwwxGFFFFFFEEDEEFFFFFFFFEDEFFFGxxxwwwww
#wwwxxGxxxGFEEDEEFFFFGGGFFHHHGxxxxwwwwww
#wwwwxxxxxxGFEEDEEGGxxxxxGFHGxxxxxwwwwww
#wwwwwwxxxxxGFDEGGxxxxwxxxxxGxxxxxwwwwww
#wwwwwwwwxxxxxAxxxxxxwwwxxxxxxxwwwwwwwww
#wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
# wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
#ENDMAP
NAME: onia_ninara_012_swampy_vault_shoal
TAGS: no_pool_fixup no_monster_gen
ORIENT: float
SHUFFLE: AB@
SUBST: A : x, B : x
SUBST: D = .:30 W
KFEAT: E = w:20 . / x / w:50 W / w:30 w / ~
KFEAT: F = w:150 w / w:70 W / ~ / . / x
KFEAT: G = x / . / w / W
KFEAT: H = . / W
KMONS: D = Plant / w:200 nothing
KMONS: E = w:2 slime creature / swamp worm / giant blowfly / w:2 giant mosquito / w:1 electrical eel / w:1000 nothing
KMONS: F = w:2 slime creature / swamp worm / giant blowfly / w:2 giant mosquito / w:2 electrical eel / w:1000 nothing
KMONS: H = swamp drake / swamp dragon / hydra / w:20 nothing
KITEM: H = any good_item / any potion / w:20 nothing / gold
DEPTH: Shoal
MAP
wwwwwwwwwwwwwwwwwww.wwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwww...wwwwwwwwwwwwwwwww
wwwwwwxxxxxxxxxxxxxx@xxxxxxxxxxxxwwwwww
wwwwxxxxxGGGxxxxxxGEDEExxxxGGxxxxxxwwww
wwwxxxxGHHFFGGGGFFFEEDEEGGFFFxxGGxxxwww
wwwxxFFFHHFFFFFGFFFFEEDEEFFFFFFFFGxxwww
wwwxGGFFFFDDEEFFFFFEEDEEFFFFFFFFFFGxwww
wwwxxGFFFFEEDDEEFFEEDEEFFFEEEFFFFGxxwww
wwwxGFFFFFFFEEDEEEDDEEEEEEEDDEEEFFGxwww
wwwxGGFFFFFFFEEDEDEEEEEEEDDEEDDDEEDBwww
wwwxxGFFFFFFFFEEDEDDEDDDDEEEEEEEDDxxwww
wwwxxxGFFFFFFEEDEEEEDEEEEEFFFFFFFFxxwww
wwwxxxxFFFFFEEDEEFFFFDDFFFFFFFFFGGGxwww
wwwxxxGFFFFEEDEEFFFFFFEDEFFFFFFFxxxxwww
wwwxGGFFFFFFDEEFFFFFFFFEDFFFFFFGGxxwwww
wwwxGFFFFFFEEDEEFFFFFFFFEDEFFFGxxxwwwww
wwwxxGxxxGFEEDEEFFFFGGGFFHHHGxxxxwwwwww
wwwwxxxxxxGFEEDEEGGxxxxxGFHGxxxxxwwwwww
wwwwwwxxxxxGFDEGGxxxxwxxxxxGxxxxxwwwwww
wwwwwwwwxxxxxAxxxxxxwwwxxxxxxxwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ENDMAP