New vaults (Lemuel).
Tweaked dungeon.cc so that vault and minivault depths are no longer hardcoded, and the depth settings in .des files are respected.
Okawaru now looks to see if the player already has enough ammo before doing ammo gifts (needs testing, maybe some tuning of the enough-ammo condition).
Map lexer now accepts any non-space character in the map, for SUBST convenience.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@979 c06c8d41-db1a-0410-9941-cceddc491573
MI7CWKRDXHAU7PIHLXXOSFBULRGT2OOMIMOSQLMVYOUVGABIVXGAC
Y5XWAO2NIF6NL5PW52LUCEYW3KSXLOHB37UA3OHKGFYUEOUQREAAC
RIRJ746W5ESARX4HUEA4JRVAKXXF3WYVXUCFFONPJMMKWHQAGI2AC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
7J3H7JY6AUO2UHNF6DAHDZI4O33JMTUUTYTPRM3CKNPUOF2RQOGAC
A3CO4KBFTFU3ZSHWRY2OPPX3MMTFV7OUCZGL7Q4Y2FU7JO4AP7MAC
TY6JR6MSAREXQ3JH44ILKPYBVVCBVDXWD2UA74RLIDULCU23XRHQC
MEWWBZ4BFFNSOTNP5BCNMYD627GCX26OZZLH2VQAWEJIFOFPQCYQC
}
static const item_def *find_missile_launcher(int skill)
{
for (int i = 0; i < ENDOFPACK; ++i)
{
if (!is_valid_item(you.inv[i]))
continue;
const item_def &item = you.inv[i];
if (is_range_weapon(item)
&& range_skill(item) == skill_type(skill))
{
return (&item);
}
}
return (NULL);
}
static int ammo_count(const item_def *launcher)
{
int count = 0;
const missile_type mt = launcher? fires_ammo_type(*launcher) : MI_DART;
for (int i = 0; i < ENDOFPACK; ++i)
{
if (!is_valid_item(you.inv[i]))
continue;
const item_def &item = you.inv[i];
if (item.base_type == OBJ_MISSILES && item.sub_type == mt)
count += item.quantity;
}
return (count);
static bool need_missile_gift()
{
const int best_missile_skill = best_skill(SK_SLINGS, SK_RANGED_COMBAT);
const item_def *launcher = find_missile_launcher(best_missile_skill);
return (you.piety > 80
&& random2( you.piety ) > 70
&& !grid_destroys_items( grd[you.x_pos][you.y_pos] )
&& one_chance_in(8)
&& you.skills[ best_missile_skill ] >= 8
&& (launcher || best_missile_skill == SK_DARTS)
&& ammo_count(launcher) < 20 + random2(35));
}
// Tagged levels cannot be selected by depth. This is
// the only thing preventing Pandemonium demon vaults from
// showing up in the main dungeon.
&& vdefs[i].tags.empty()
&& vdefs[i].is_minivault() == want_minivault)
// Tagged levels cannot be selected by depth. This is
// the only thing preventing Pandemonium demon vaults from
// showing up in the main dungeon.
&& !vdefs[i].has_tag("entry")
&& !vdefs[i].has_tag("pan")
&& vdefs[i].is_minivault() == want_minivault)
##############################################################################
# Rats! (Lemuel)
NAME: RatsNest
ORIENT: float
DEPTH: 3-8
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxx...xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxx343.xx.xxxxxxxx.334433xxxxxxxxx23...x
xx.222...xxxxxxxx..224422xxxxxx1111...xx
x..111..xxxxxxxxx..111111.xxx.111...xxxx
xx.111..xxxxxxxxxx.11111..x......xxxxxxx
xxxx..xx.x.xxxxxx.xx..........xxxxxxxxxx
xxxxx.xxx.x..x.xx.x.xx....x.xxxxxxxxxxxx
xxxxx...x.xxx.x33xx.xxxx.xxxxxxxxxxxxxxx
xxxxxxx.x.xxxx221x.xxx...xxxxxxxxxxxxxxx
xxxxxxxx.xxxxx111.xxxx.xxxxxxxxxxxxxxxxx
xxxxxxxxx..xxx.x.x.xxx.xxxxxxxxxxxxxxxxx
xxxxxxxxxx..x.xx.x.xx.xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxx..xx.xx.x.xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx.xxxx.xxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx@xxxxxxxxxxxxxxxxxxxxxx
ENDMAP
MONS: rat, grey rat, green rat, orange rat
##############################################################################
# Beware the mummy's curse (Lemuel)
NAME: MiniTomb
ORIENT: float
DEPTH: 10-26
MAP
xxxxcccccxxxx
xxxxc$|$cxxxx
xxxxc$|$cxxxx
xxxxc$4$cxxxx
xxcccc=ccccxx
xxc$55155$cxx
xxc1211121cxx
xxc...F...cxx
xxc.......cxx
xxc.......cxx
xxcccc=ccccxx
xxc.......cxx
xxc.......cxx
x$=.12321.=$x
x$c.......c$x
x3c.......c3x
xxcccc+ccccxx
xxxxxc.cxxxxx
xxxxxc.cxxxxx
xxxxxc.cxxxxx
xxxx.=.=.xxxx
xxxx$c.c$xxxx
xxxx2c1c2xxxx
xxxxxc1cxxxxx
xxxccc1cccxxx
xxccFc+cFccxx
ENDMAP
MONS: large zombie, mummy, guardian mummy, greater mummy
MONS: large zombie
ENDMAP
##############################################################################
# Things aren't always what they seem (Lemuel)
NAME: fake_naga_vault
# Intentionally moved this deeper because explore will gladly run into the
# room, and being hit by multiple mimics is un-fun.
DEPTH: 15-26
MAP
xxxxxxxxx
x1111111x
x1111111x
x1111111x
x11.2.11x
xxxx+xxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xXXXXXXXXXXXXXXXXXXXXXXXXXx
xX|$*.....WWW.WWW.....*$*Xx
xXXX$XXXXcccc+ccccXXXXX$*Xx
xX2XXXcccc.......ccccXXX$Xx
xX.Xccc....5...5....cccXXXx
xX.cc.................ccXXx
xX.c....3....4....3....c.Xx
xX.+.........U.........+.Xx
xX.c......2.2.2.2......c.Xx
xX.cc.................cc.Xx
xX.Xcc.cccccc.cccccc.cc..Xx
xX.XXc.c.3.ww.ww.4.ccc...Xx
xX3XXc.....ww.ww.........Xx
xX$$$ccc...ww.ww...cXXXX.Xx
xX$$$XXc.1.ww.ww.5.cXXXX.Xx
xX$$$XXcccccc.ccccccX12..Xx
xXXX+XXXXXXXc.cXXXXXXXXX.Xx
xX|*|*|**|*XXWXX$|$*$|$|.Xx
xX**|*|||||XcWcX|$|$*$*$.Xx
xX5|*||4**|XcWcX$*$*$*$|3Xx
xX|**|*|||*Xc.cX|$|$|$|$.Xx
xXXXXXXXXXXXc.cXXXXXXXXXXXX
xxxxxxxxxxxxx@xxxxxxxxxxxxx
ccccccccccccccccccccccccc
c2ccccccc.......ccccccccc
c.cccc....5...5....cccccc
c.cc.................cccc
c.c....3....4....3....c.c
c.+.........U.........+.c
c.c......2.2.2.2......c.c
c.cc.................cc.c
c.ccc.cccccc.cccccc.cc..c
c.ccc.c.3.ww.ww.4.ccc...c
c3ccc.....ww.ww.........c
c$$$ccc...ww.ww...ccccc.c
c$$$ccc.1.ww.ww.5.ccccc.c
c$$$cccccccc.ccccccc12..c
ccc+cccccccc.cccccccccc.c
c|*|*|**|*ccWcc$|$*$|$|.c
c**|*|||||ccWcc|$|$*$*$.c
c5|*||4**|ccWcc$*$*$*$|3c
c|**|*|||*cc.cc|$|$|$|$.c
cccccccccccc.cccccccccccc
xxxxxxxxxxxx@xxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xXXXXXXXXXXXXXXXXXXXXXXXXXx
xX|$*.....lll.lll.....*$*Xx
xXXX$XXXXcccc+ccccXXXXX$*Xx
xX2XXXcccc.......ccccXXX$Xx
xX.Xccc....5...5....cccXXXx
xX.cc.................ccXXx
xX.c....3....4....3....c.Xx
xX.+.........U.........+.Xx
xX.c......2.2.2.2......c.Xx
xX.cc.................cc.Xx
xX.Xcc.cccccc.cccccc.cc..Xx
xX.XXc.c.3.WW.WW.4.ccc...Xx
xX3XXc.....WW.WW.........Xx
xX$$$ccc...WW.WW...cXXXX.Xx
xX$$$XXc.1.WW.WW.5.cXXXX.Xx
xX$$$XXcccccc.ccccccX12..Xx
xXXX+XXXXXXXc.cXXXXXXXXX.Xx
xX|*|*|**|*Xc.cX$|$*$|$|.Xx
xX**|*|||||Xc.cX|$|$*$*$.Xx
xX5|*||4**|XXlXX$*$*$*$|3Xx
xX|**|*|||*Xc.cX|$|$|$|$.Xx
xXXXXXXXXXXXc.cXXXXXXXXXXXX
xxxxxxxxxxxxx@xxxxxxxxxxxxx
ccccccccccccccccccccccccc
c2ccccccc.......ccccccccc
c.cccc....5...5....cccccc
c.cc.................cccc
c.c....3....4....3....c.c
c.+.........U.........+.c
c.c......2.2.2.2......c.c
c.cc.................cc.c
c.ccc.cccccc.cccccc.cc..c
c.ccc.c.3.ww.ww.4.ccc...c
c3ccc.....ww.ww.........c
c$$$ccc...ww.ww...ccccc.c
c$$$ccc.1.ww.ww.5.ccccc.c
c$$$cccccccc.ccccccc12..c
ccc+cccccccc.cccccccccc.c
c|*|*|**|*cc.cc$|$*$|$|.c
c**|*|||||cc.cc|$|$*$*$.c
c5|*||4**|cclcc$*$*$*$|3c
c|**|*|||*cclcc|$|$|$|$.c
cccccccccccc.cccccccccccc
xxxxxxxxxxxx@xxxxxxxxxxxx
MONS: curse skull, curse toe
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob
SUBST: ~ = ~ .:30
SUBST: ! = 1 5
SUBST: ? = . ?
SUBST: ? : 2 3
cxccccccc...cccccc.......cccccc...cccccccxc
cxccccc4......ccc...ccc...ccc......4cccccxc
cxccccc...3...cc...cc|cc...cc...3...cccccxc
cxcccc.........+5.cc*|*=c.5+.........ccccxc
cxcccc...2|2...c..cce|ecc..c...2|2...ccccxc
cxccc=c..c^c..cc..3cc|cc3..cc..c^c..cccccxc
cxc..ccccc+cccccc...ccc...cccccc+ccccc..cxc
cx.e|ccc.....ccccc.......ccccc.....ccc%d.xc
cx.e*cc4.1.3..ccccccccccccccc..3.1.4cc%d.xc
cxc..cc.....22cccc.......cccc22.....cc..cxc
cxccccc3..2...ccc..cc.cc..ccc...2..3cccccxc
cxcccccc.......|^.ccc.ccc.^|.......ccccccxc
cxccccccc...cccccc...?...cccccc...cccccccxc
cxccccc.....?.ccc...ccc...ccc.?.....cccccxc
cxccccc.2.!.?.cc.6.cc|cc.6.cc.?.!.3.cccccxc
cxcccc.........+.4cc*|*=c4.+.........ccccxc
cxcccc....|....c.6cce|ecc6.c....|....ccccxc
cxcccc=..c~c..cc...cc|cc...cc..c~c..cccccxc
cxc..=cccc+cccccc...ccc...cccccc+ccccc..cxc
cx.e|ccc.~~~.ccccc.......ccccc.~~~.ccc%d.xc
cx.e*cc.......ccccccccccccccc.......cc%d.xc
cxc..cc...!...cccc.......cccc...!...cc..cxc
cxccccc.......ccc~6cc?cc6~ccc.......cccccxc
cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc
MONS: curse skull, curse toe
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob
SUBST: ~ = ^ .:30
SUBST: ! = 1 5
SUBST: ? = . ?
SUBST: ? : 2 3
cxccc=c$$|*|*c..2c...U...c2..c***|$$cccccxc
cxcccc$$$c|**3...c...1...c...3*||c$$$ccccxc
cxcccc$$$c*|*c.....5.c.5.....c***c$$$ccccxc
cxccc=c$$|*|*c...c...U...c...c***|$$cccccxc
cxcccc$$$c|**...4c...!...c4..3*||c$$$ccccxc
cxcccc$$$c*|*c.......c.......c***c$$$ccccxc
cxccccccc...cccccc.......cccccc...cccccccxc
cxccccc4......ccc...c=c...ccc......4cccccxc
cxccccc...3...cc...cc|cc...cc...3...cccccxc
cxcccc.........+5.cc*|*cc.5+.........ccccxc
cxcccc...2|2...c..cce|ecc..c...2|2...ccccxc
cxccccc..c^c..cc..3cc|cc3..cc..c^c..cccccxc
cxccccccc...cccccc...?...cccccc...cccccccxc
cxccccc.....?.ccc...c=c...ccc.?.....cccccxc
cxccccc.2.!.?.cc.6.cc|cc.6.cc.?.!.3.cccccxc
cxcccc.........+.4cc*|*cc4.+.........ccccxc
cxcccc....|....c.6cce|ecc6.c....|....ccccxc
cxccccc..c~c..cc...cc|cc...cc..c~c..cccccxc
cx.e|ccc.....ccccc.......ccccc.....ccc%d.xc
cx.e*c=4.1.3..ccccccccccccccc..3.1.4cc%d.xc
cxc..=c.....22cccc.......cccc22.....cc..cxc
cxccccc3..2...cc...cc.cc..ccc...2..3cccccxc
cxcccccc......|^..ccc.ccc.^|.......ccccccxc
cx.e|ccc.~~~.ccccc.......ccccc.~~~.ccc%d.xc
cx.e*c=.......ccccccccccccccc.......cc%d.xc
cxc..=c...!...cccc.......cccc...!...cc..cxc
cxccccc.......ccc~6cc?cc6~ccc.......cccccxc
cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc
MONS: curse skull, curse toe
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob
SUBST: ~ = ^ .:30
SUBST: ! = 1 5
SUBST: ? = . ?
SUBST: ? : 2 3
cxccccc$$|*|*c..2c...U...c2..c***|$$cc=ccxc
cxcccc$$$c|**3...c...1...c...3*||c$$$c=ccxc
cxcccc$$$c*|*c.....5.c.5.....c***c$$$c=ccxc
cxccccc$$|*|*c...c...U...c...c***|$$cc=ccxc
cxcccc$$$c|**...4c...!...c4...*||c$$$c=ccxc
cxcccc$$$c*|*c.......c.......c***c$$$c=ccxc
cxccccccc...cccccc.......cccccc...cccc=ccxc
cxccccc4......ccc...ccc...ccc......4cc=ccxc
cxccccc...3...cc...cc|cc...cc...3...cc=ccxc
cxcccc.........+5.cc*|*cc.5+.........c=ccxc
cxcccc...2|2...c..cce|ecc..c...2|2...c=ccxc
cxccccc..c^c..cc..3=c|cc3..cc..c^c..cc=ccxc
cxccccccc...cccccc...?...cccccc...cccc=ccxc
cxccccc.....?.ccc...ccc...ccc.?.....cc=ccxc
cxccccc.2.!.?.cc.6.cc|cc.6.cc.?.!.3.cc=ccxc
cxcccc.........+.4cc*|*cc4.+.........c=ccxc
cxcccc....|....c.6cce|ecc6.c....|....c=ccxc
cxccccc..c~c..cc...=c|cc...cc..c~c..cc=ccxc
cx.d%ccc.....ccccc.......ccccc.....ccc|e.xc
cx.d%cc4.1.3..ccccccccccccccc..3.1.4cc*e.xc
cxc..cc.....22cccc.......cccc22.....cc..cxc
cxccccc3..2...ccc..cc.cc..ccc...2..3cccccxc
cxcccccc.......|^.ccc.ccc.^|.......ccccccxc
cx.d%ccc.~~~.ccccc.......ccccc.~~~.ccc|e.xc
cx.d%cc.......ccccccccccccccc.......cc*e.xc
cxc..cc...!...cccc.......cccc...!...cc..cxc
cxccccc.......ccc~6cc?cc6~ccc.......cccccxc
cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc
MONS: curse skull, curse toe
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob
SUBST: ~ = ^ .:30
SUBST: ! = 1 5
SUBST: ? = . ?
SUBST: ? : 2 3
cxccccc$$|*|*c..2c...U...c2..c***|$$c=cccxc
cxcccc$$$c|**3...c...1...c...3*||c$$$ccccxc
cxcccc$$$c*|*c.....5.c.5.....c***c$$$ccccxc
cxccccc$$|*|*c...c...U...c...c***|$$c=cccxc
cxcccc$$$c|**...4c...!...c4...*||c$$$ccccxc
cxcccc$$$c*|*c.......c.......c***c$$$ccccxc
cxccccccc...cccccc.......cccccc...cccccccxc
cxccccc4......ccc...=cc...ccc......4cccccxc
cxccccc...3...cc...cc|cc...cc...3...cccccxc
cxcccc.........+5.cc*|*cc.5+.........ccccxc
cxcccc...2|2...c..cce|ecc..c...2|2...ccccxc
cxccccc..c^c..cc..3cc|cc3..cc..c^c..cccccxc
cxccccccc...cccccc...?...cccccc...cccccccxc
cxccccc.....?.ccc...=cc...ccc.?.....cccccxc
cxccccc.2.!.?.cc.6.cc|cc.6.cc.?.!.3.cccccxc
cxcccc.........+.4cc*|*cc4.+.........ccccxc
cxcccc....|....c.6cce|ecc6.c....|....ccccxc
cxccccc..c~c..cc...cc|cc...cc..c~c..cccccxc
cx.d%ccc.....ccccc.......ccccc.....ccc*e.xc
cx.d%cc4.1.3..ccccccccccccccc..3.1.4cc|e.xc
cxc..cc.....22cccc.......cccc22.....c=..cxc
cxccccc3..2...ccc..cc.cc..ccc...2..3=ccccxc
cxcccccc.......|^.ccc.ccc.^|.......ccccccxc
cx.d%ccc.~~~.ccccc.......ccccc.~~~.ccc*e.xc
cx.d%cc.......ccccccccccccccc.......cc|e.xc
cxc..cc...!...cccc.......cccc...!...c=..cxc
cxccccc.......ccc~6cc?cc6~ccc.......=ccccxc
cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc
MONS: curse skull, curse toe
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob
SUBST: ~ = ^ .:30
SUBST: ! = 1 5
SUBST: ? = . ?
SUBST: ? : 2 3
cxccccc$$|*|*c..2c...U...c2..c***|$$cccccxc
cxcccc$$$c|**3...c...1...c...3*||c$$$ccccxc
cxcccc$$$c*|*c.....5.c.5.....c***c$$$ccccxc
cxccccc$$|*|*c...c...U...c...c***|$$cccccxc
cxcccc$$$c|**...4c...!...c4...*||c$$$ccccxc
cxcccc$$$c*|*c.......c.......c***c$$$ccccxc
cxccccccc...cccccc.......cccccc...cccccccxc
cxccccc4......ccc...ccc...ccc......4cccccxc
cxccccc...3...cc...c=|cc...cc...3...cccccxc
cxcccc.........+5.cc|||cc.5+.........ccccxc
cxcccc...2|2...c..cce|ecc..c...2|2...=cccxc
cxccccc..c^c..cc..3cc|cc3..cc..c^c..cc=ccxc
cxccccccc...cccccc...?...cccccc...cccccccxc
cxccccc.....?.ccc...ccc...ccc.?.....cccccxc
cxccccc.2.!.?.cc.6.c=|cc.6.cc.?.!.3.cccccxc
cxcccc.........+.4cc|||cc4.+.........ccccxc
cxcccc....|....c.6cce|ecc6.c....|....=cccxc
cxccccc..c~c..cc...cc|cc...cc..c~c..cc=ccxc
cx.e|=cc.....ccccc.......ccccc.....ccc|e.xc
cx.e|cc4.1.3..ccccccccccccccc..3.1.4cc|e.xc
cxc..cc.....22cccc.......cccc22.....cc..cxc
cxccccc3..2...ccc..cc.cc..ccc...2..3cccccxc
cxcccccc.......|^.ccc.ccc.^|.......ccccccxc
cx.e|=cc.~~~.ccccc.......ccccc.~~~.ccc|e.xc
cx.e|cc.......ccccccccccccccc.......cc|e.xc
cxc..cc...!...cccc.......cccc...!...cc..cxc
cxccccc.......ccc~6cc?cc6~ccc.......cccccxc
cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc
MONS: curse skull, curse toe
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob
SUBST: ~ = ^ .:30
SUBST: ! = 1 5
SUBST: ? = . ?
SUBST: ? : 2 3
cxcc=cc$$|*|*c..2c...U...c2..c***|$$c=cccxc
cxcc=c$$$c|**3...c...1...c...3*||c$$$ccccxc
cxcc=c$$$c*|*c.....5.c.5.....c***c$$$ccccxc
cxcc=cc$$|*|*c...c...U...c...c***|$$c=cccxc
cxcc=c$$$c|**...4c...!...c4...*||c$$$ccccxc
cxcc=c$$$c*|*c.......c.......c***c$$$ccccxc
cxccc=ccc...cccccc.......cccccc...cccccccxc
cxccccc4......ccc...ccc...ccc......4cccccxc
cxccccc...3...cc...cc|cc...cc...3...cccccxc
cxcccc.........+5.cc*|*cc.5+.........ccccxc
cxcccc...2|2...c..ccd|dcc..c...2|2...ccccxc
cxccccc..c^c..cc..3cc|cc3..cc..c^c..cccccxc
cxccc=ccc...cccccc...?...cccccc...cccccccxc
cxccccc.....?.ccc...ccc...ccc.?.....cccccxc
cxccccc.2.!.?.cc.6.cc|cc.6.cc.?.!.3.cccccxc
cxcccc.........+.4cc*|*cc4.+.........ccccxc
cxcccc....|....c.6ccd|dcc6.c....|....ccccxc
cxccccc..c~c..cc...cc|cc...cc..c~c..cccccxc
cx.e*ccc.....ccccc.......ccccc.....ccc%d.xc
cx.e|cc4.1.3..ccccccccccccccc..3.1.4cc%d.xc
cxc..cc.....22cccc.......cccc22.....cc..cxc
cxccc=c3..2...ccc..cc.cc..ccc...2..3cccccxc
cxcc=ccc.......|^.ccc.ccc.^|.......ccccccxc
cx.e*ccc.~~~.ccccc.......ccccc.~~~.ccc%d.xc
cx.e|cc.......ccccccccccccccc.......cc%d.xc
cxc..cc...!...cccc.......cccc...!...cc..cxc
cxccc=c.......ccc~6cc?cc6~ccc.......cccccxc
cxcc=ccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc
MONS: curse skull, curse toe
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob
SUBST: ~ = ^ .:30
SUBST: ! = 1 5
SUBST: ? = . ?
SUBST: ? : 2 3
cxcc=cc$$|*|*c..2c...U...c2..c***|$$cccccxc
cxcc=c$$$c|**3...c...1...c...3*||c$$$ccccxc
cxcc=c$$$c*|*c.....5.c.5.....c***c$$$ccccxc
cxcc=cc$$|*|*c...c...U...c...c***|$$cccccxc
cxcc=c$$$c|**...4c...!...c4...*||c$$$ccccxc
cxcc=c$$$c*|*c.......c.......c***c$$$ccccxc
cxcc=cccc...cccccc.......cccccc...cccccccxc
cxcc=cc4......ccc...ccc...ccc......4cccccxc
cxccc=c...3...cc...cc%cc...cc...3...cccccxc
cxcccc.........+5.cc*|%cc.5+.........ccccxc
cxcccc...2|2...c..cce%ecc..c...2|2...ccccxc
cxccc=c..c^c..cc..3cc|cc3..cc..c^c..cccccxc
cxcc=cccc...cccccc...?...cccccc...cccccccxc
cxcc=cc.....?.ccc...ccc...ccc.?.....cccccxc
cxccc=c.2.!.?.cc.6.cc%cc.6.cc.?.!.3.cccccxc
cxcccc.........+.4cc*|%cc4.+.........ccccxc
cxcccc....|....c.6cce%ecc6.c....|....ccccxc
cxccc=c..c~c..cc...cc|cc...cc..c~c..cccccxc
cx.e|ccc.....ccccc.......ccccc.....ccc*e.xc
cx.e|cc4.1.3..ccccccccccccccc..3.1.4cc*e.xc
cxc..cc.....22cccc.......cccc22.....cc..cxc
cxccccc3..2...ccc..cc.cc..ccc...2..3cccccxc
cxcccccc.......|^.ccc.ccc.^|.......ccccccxc
cx.e|ccc.~~~.ccccc.......ccccc.~~~.ccc*e.xc
cx.e|cc.......ccccccccccccccc.......cc*e.xc
cxc..cc...!...cccc.......cccc...!...cc..cxc
cxccccc.......ccc~6cc?cc6~ccc.......cccccxc
cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc
MONS: curse skull, curse toe
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob
SUBST: ~ = ^ .:30
SUBST: ! = 1 5
SUBST: ? = . ?
SUBST: ? : 2 3
cxccccc$$|*|*c..2c...U...c2..c***|$$cc=ccxc
cxcccc$$$c|**3...c...1...c...3*||c$$$c=ccxc
cxcccc$$$c*|*c.....5.c.5.....c***c$$$c=ccxc
cxccccc$$|*|*c...c...U...c...c***|$$cc=ccxc
cxcccc$$$c|**...4c...!...c4...*||c$$$c=ccxc
cxcccc$$$c*|*c.......c.......c***c$$$c=ccxc
cxccccccc...cccccc.......cccccc...cccc=ccxc
cxccccc4......ccc...ccc...ccc......4==cccxc
cxccccc...3...cc...cc%cc...cc...3...cccccxc
cxcccc.........+5.cc*%*cc.5+.........ccccxc
cxcccc...2|2...c..cce|e=c..c...2|2...ccccxc
cxccc=c..c^c..cc..3cc*cc3..cc..c^c..cccccxc
cxccccccc...cccccc...?...cccccc...cccc=ccxc
cxccccc.....?.ccc...ccc...ccc.?.....==cccxc
cxccccc.2.!.?.cc.6.cc%cc.6.cc.?.!.3.cccccxc
cxcccc.........+.4cc*%*cc4.+.........ccccxc
cxcccc....|....c.6cce|e=c6.c....|....ccccxc
cxccc=c..c~c..cc...cc*cc...cc..c~c..cccccxc
cx.e%ccc.....ccccc.......ccccc.....ccc%d.xc
cx.e%cc4.1.3..ccccccccccccccc..3.1.4cc%d.xc
cxc..cc.....22cccc.......cccc22.....cc..cxc
cxccccc3..2...ccc..cc.cc..ccc...2..3=ccccxc
cxcccccc.......|^.ccc.ccc.^|.......ccccccxc
cx.e%ccc.~~~.ccccc.......ccccc.~~~.ccc%d.xc
cx.e%cc.......ccccccccccccccc.......cc%d.xc
cxc..cc...!...cccc.......cccc...!...cc..cxc
cxccccc.......ccc~6cc?cc6~ccc.......=ccccxc
cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc
MONS: curse skull, curse toe
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob
SUBST: ~ = ^ .:30
SUBST: ! = 1 5
SUBST: ? = . ?
SUBST: ? : 2 3
cxccccc$$|*|*c..2c...U...c2..c***|$$cccccxc
cxcccc$$$c|**3...c...1...c...3*||c$$$ccccxc
cxcccc$$$c*||c.....5.c.5.....c***c$$$ccccxc
cxccccc$$|*|*c...c...U...c...c***|$$cccccxc
cxcccc$$$c|**...4c...!...c4...*||c$$$ccccxc
cxcccc$$$c*||c.......c.......c***c$$$ccccxc
cxccccccc...cccccc.......cccccc...cccccccxc
cxccccc4......ccc...ccc...ccc......4cccccxc
cxccccc...3...cc...cc|cc...cc...3...cccccxc
cxcccc.........+5.cc||*cc.5+.........ccccxc
cxcccc...2|2...c..c=e|ecc..c...2|2...ccccxc
cxccccc..c^c..cc..3cc|cc3..cc..c^c..cccccxc
cxccccccc...cccccc...?...cccccc...cccccccxc
cxccccc.....?.ccc...ccc...ccc.?.....cccccxc
cxccccc.2.!.?.cc.6.cc|cc.6.cc.?.!.3.cccccxc
cxcccc.........+.4cc||*cc4.+.........ccccxc
cxcccc....|....c.6c=e|ecc6.c....|....ccccxc
cxccccc..c~c..cc...cc|cc...cc..c~c..cccccxc
cx.d%ccc.....ccccc.......ccccc.....ccc%d.xc
cx.d%cc4.1.3..ccccccccccccccc..3.1.4cc%d.xc
cxc..cc.....22cccc.......cccc22.....cc..cxc
cxccccc3..2...ccc..cc.cc..ccc...2..3cccccxc
cxcccccc.......|^.ccc.ccc.^|.......ccccccxc
cx.d%ccc.~~~.ccccc.......ccccc.~~~.ccc%d.xc
cx.d%cc.......ccccccccccccccc.......cc%d.xc
cxc..cc...!...cccc.......cccc...!...cc..cxc
cxccccc.......ccc~6cc?cc6~ccc.......cccccxc
cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc
MONS: curse skull, curse toe
MONS: deep elf conjurer / deep elf fighter / deep elf summoner / deep elf knight / nothing
MONS: curse skull / curse toe / oklob plant / azure jelly / acid blob
SUBST: ~ = ^ .:30
SUBST: ! = 1 5
SUBST: ? = . ?
SUBST: ? : 2 3
cxccccc$$|*|*c..2c...U...c2..c***|$$cccccxc
cxcccc$$$c|**3...c...1...c...3*||c$$$ccccxc
cxcccc$$$c*||c.....5.c.5.....c***c$$$ccccxc
cxccccc$$|*|*c...c...U...c...c***|$$cccccxc
cxcccc$$$c|**...4c...!...c4...*||c$$$ccccxc
cxcccc$$$c*||c.......c.......c***c$$$ccccxc
cxccccccc...cccccc.......cccccc...cccccccxc
cxccccc4......ccc...ccc...ccc......4cccccxc
cxccccc...3...cc...cc|cc...cc...3...cccccxc
cxcccc.........+5.cc||*cc.5+.........ccccxc
cxcccc...2|2...c..ccd|dcc..c...2|2...ccccxc
cxccccc..c^c..cc..3cc|cc3..cc..c^c..cccccxc
cxccccccc...cccccc...?...cccccc...cccccccxc
cxccccc.....?.ccc...ccc...ccc.?.....cccccxc
cxccccc.2.!.?.cc.6.cc|cc.6.cc.?.!.3.cccccxc
cxcccc.........+.4cc||*cc4.+.........ccccxc
cxcccc....|....c.6ccd|dcc6.c....|....ccccxc
cxccccc..c~c..cc...cc|cc...cc..c~c..cccccxc
cx.d%ccc.....ccccc.......ccccc.....ccc%d.xc
cx.d%cc4.1.3..ccccccccccccccc..3.1.4cc%d.xc
cxc..cc.....22cccc.......cccc22.....cc..cxc
cxccccc3..2...ccc..cc.cc..ccc...2..3cccccxc
cxcccccc.......|^.ccc.ccc.^|.......ccccccxc
cxccc...ccccccccc.ccccccccc...cccccccccccxc
ccccccccccccccccc@ccccccccccccccccccccccccc
cx.d%ccc.~~~.ccccc.......ccccc.~~~.ccc%d.xc
cx.d%cc.......ccccccccccccccc.......cc%d.xc
cxc..cc...!...cccc.......cccc...!...cc..cxc
cxccccc.......ccc~6cc?cc6~ccc.......cccccxc
cxcccccc.3..6..|~~ccc.ccc~~|..6..2.ccccccxc
cxccccccc...ccccccccc.ccccccccc...cccccccxc
ccccccccccccccccccccc@ccccccccccccccccccccc