Attached Files |
vaults0116.des [^] (11,323 bytes) 2015-01-17 03:21 [Show Content] [Hide Content]# Crypt vaults. ################################################################
NAME: nicolae_crypt_statuary_hall
DEPTH: Crypt, !Crypt:1, !Crypt:$
TAGS: decor transparent
SHUFFLE: {[(, }])
MAP
x@x
x.x
x.x
xxxx.xxxx
x..G.G..x
x..x.x..x
xxxx..G.G..xxxx
@....{x.x}....@
xxxx..G.G..xxxx
x..x.x..x
x..G.G..x
xxxx.xxxx
x.x
x.x
x@x
ENDMAP
NAME: nicolae_crypt_cryptocurrency
DEPTH: Crypt
TAGS: extra decor no_item_gen no_trap_gen no_monster_gen
KPROP: $-c = no_rtele_into
KMASK: .@ = !opaque
KITEM: $ = $ / $ good_item w:3
KFEAT: m = iron_grate
MAP
xxxxxxxxx
xxxcccxxx@
xxcc$ccxx.x
xcc---ccx.x
xc$-c--m..x
xcc---ccx.x
xxcc$ccxx.x
xxxcccxxx@
xxxxxxxxx
ENDMAP
NAME: nicolae_crypt_little_mausoleum
DEPTH: Crypt
TAGS: transparent allow_dup
SHUFFLE: ab/ab/ab/ab/ba
SUBST: b = ., G : G:60 xV0 .:5 t:2 P:2, a = sGVe0 _:5 $:5 %:5
: if you.depth() == 1 then
SUBST: s = ]})>
: elseif you.depth() == dgn.br_depth(you.branch()) then
SUBST: s = [{(<
: else
SUBST: s = ]})>[{(<
: end
KFEAT: _ = altar_kikubaaqudgha w:15 / altar_yredelemnul w:15 / \
altar_dithmenos w:5 / altar_the_shining_one w:1
KMONS: 0 = zombie / skeleton
KMONS: P = w:2 col:darkgrey plant name:withered name_adjective \
tile:mons_withered_plant / w:1 col:lightgrey plant name:withered \
name_adjective tile:mons_withered_plant
: dgn.delayed_decay(_G, 'e', 'human skeleton / orc skeleton / elf skeleton')
TILE: t = dngn_tree_dead
: set_feature_name("tree", "dead tree")
MAP
xxxxx
xbabx
x...x
xx.xx
Gx+xG
.....
ENDMAP
# Snake vaults. ################################################################
NAME: nicolae_snake_squiggles
TAGS: transparent extra decor
NSUBST: A = x / ., B = x / ., C = x / ., D = x / ., E = x / ., F = x / ., \
G = x / ., H = x / ., I = x / ., J = x / ., K = x / ., L = x / ., \
M = x / ., N = x / ., O = x / ., P = x / ., Q = x / ., R = x / ., \
S = x / ., T = x / ., U = x / ., V = x / ., W = x / ., X = x / .
MAP
.......
..Xx.xA..
..WxX.AxB..
..VxW...BxC..
..UxV.. ..CxD..
..TxU.. ..DxE..
.SxT.. ..ExF.
.xS.. ..Fx.
.... ....
.xR.. ..Gx.
.RxQ.. ..HxG.
..QxP.. ..IxH..
..PxO.. ..JxI..
..OxN...KxJ..
..NxM.LxK..
..Mx.xL..
.......
ENDMAP
# Shoals vaults. ###############################################################
# KFEAT: x = open_sea
NAME: nicolae_shoals_island_circles
DEPTH: Shoals
ORIENT: float
TAGS: decor transparent
SHUFFLE: abc/xyz
SUBST: Z = Ww, ab = ., c = sG, xy = xx., z = x
: if you.depth() == 1 then
SUBST: s = ]})
: elseif you.depth() == dgn.br_depth(you.branch()) then
SUBST: s = [{(
: else
SUBST: s = ]})[{(
: end
MAP
wwwwwww
wwwZZZwww
wwwwwwwwwwZ...Zwww
wwwZZZwwwwZ.....Zww
wwZZ...ZZwZ...a...Zw
wwZ.......ZZ..aaa..Zwwwww
wwZ...a...WW...a...ZZZZwww
wZ...aba...ZZ.....WZ...Zww
wZ..abcba..ZwZ...ZW.....Zw
wZ...aba...ZwwZZZwZ..a..Zw
wwZ...a...ZwwwwwwwZ.....Zw
wwZ.......ZwwwwwwwwZ...Zww
wwwZW...ZZwwwwwwwwwwZZWWwww
wwwZZWZZZwwwwwwwwwwwwwwZ.Zww
wwwZ...ZwwwwwwwwwwwwwwwZ...Zw
wwZ.....ZwwwwwwwwwwwwwwwZ.Zww
wZ...a...ZwwwwwwwwwwwwwwwWwww
wZ..aaa..ZwwwwwwwwwwwwwwZWZw
wZ...a...Zwwwwwwwwwwwww @
wwZ.....Zwwwwwwwwwwww
wwwZ...WWZZwwwwwwwww
wwwZZZZ...Zwwwwwww
wwwwZ.....Zwwwwww
wZ..a..ZwZwww
wZ.....WZ.ZwZ
wwZ...ZW...WW@
wwwZZZwwZ.ZwZ
wwwwwwwwZwww
wwwww
ENDMAP
NAME: nicolae_shoals_loop_pool
DEPTH: Shoals
TAGS: transparent decor
KPROP: w- = no_tide
SUBST: Y = yZ, y = x___, Z = w.___, - = .
CLEAR: _
MAP
yxxxyyY
yxx-----Y
yx--www--YZZZ
yx-wwwww-....@
yx-wwwwwxxxxxxy
yx-wwwww-----xxy
yx--www--www--xy
yxx-----wwwww-xy
yxxxxxxwwwww-xy
@....-wwwww-xy
ZZZY--www--xy
Y-----xxy
Yyyxxxy
ENDMAP
# Spider vaults. ###############################################################
NAME: nicolae_spider_webbed_stairs
DEPTH: Spider
TAGS: transparent decor
: if you.depth() == 1 then
SUBST: s = ]})
: elseif you.depth() == dgn.br_depth(you.branch()) then
SUBST: s = [{(
: else
SUBST: s = ]})[{(
: end
SHUFFLE: abcde/^._^^/..x^^/..x^x/.._x^/x^___/^x___/..^xx/x.xx^/^^__^/^^___/ \
^._x^/x.^^^/..^^x/x._^x/^^x^_
SUBST: ab = ., cde = ^
KFEAT: ^ = web
CLEAR: _
MAP
cdedc
dabad
ebsbe
dabad
cdedc
ENDMAP
# Swamp vaults. ################################################################
# http://i.imgur.com/H7nvQFo.jpg
NAME: nicolae_swamp_little_tower
DEPTH: Swamp
TAGS: decor no_pool_fixup
NSUBST: X = - / x
SUBST: T = t-, - = ....P, z = WWw, _ = __w
KMONS: P = plant
CLEAR: _
MAP
ttt___
ttTwwww___
tTWwwwwwww___
tTWwwwwwwwwww___
tt.Wwwwzzzzzwwwzz
t.Tzwwzx---xzwwz.
.tzwwzx-xXx-xzzz.
.Ttwwwz-xx-xx-zz-.
@Ttwwwz-X---X-WW-@
.Ttwwwz-xx-xx-zz-.
.tzwwzx-xXx-xzzz.
t.Tzwwzx---xzwwz.
tt.Wwwwzzzzzwwwzz
tTWwwwwwwwwww___
tTWwwwwwww___
ttTwwww___
ttt___
ENDMAP
NAME: nicolae_swamp_dense_foliage
DEPTH: Swamp
TAGS: decor transparent
SUBST: _ = ._, - = t_, t = tttttt., . = ......W
CLEAR: _
MAP
-_-
-_-.t.---
-_-.t.ttt.t.-
-.t.ttt.t.t.t.-
-.ttt.t.t.t.ttt_
-t.t.t.t.ttt.t.-
-.t.t.ttt.t.t.t.-
-.t.ttt.t.t.t.ttt_
_ttt.t.t.t.ttt.t.-
-.t.t.t.ttt.t.t.t.-
-.t.ttt.t.t.t.ttt_
_ttt.t.t.t.ttt.t.-
-.t.t.t.ttt.t.t.-
-.t.ttt.t.t.t.t-
_ttt.t.t.t.ttt.-
-.t.t.t.ttt.t.-
-.t.ttt.t.-_-
---.t.-_-
-_-
ENDMAP
NAME: nicolae_swamp_very_dense_foliage
DEPTH: Swamp
TAGS: decor transparent
SUBST: _ = ._, - = t_, t = tttttt., . = ......W
CLEAR: _
MAP
-_-
tt.----_
--tttt.--.-_-
-.ttttt..tt.-----
--.tt..ttttt.--.-
--.t.tt.ttttt..tt
--.t.tttt.tt..ttttt
_.tt.tttt.t.tt.tttt-
_-tttt.tt.t.tttt.tt._
-.ttttt..tt.tttt.t.--
--.tt..ttttt.tt.t.--
--.t.tt.ttttt..tt.--
--.t.tttt.tt..ttttt.-
_.tt.tttt.t.tt.ttttt_
-tttt.tt.t.tttt.tt._
ttttt..tt.tttt.t.--
tt..ttttt.tt.t.--
-.--.ttttt..tt.--
-----.tt..ttttt.-
-_-.--.ttttt-
_----.tt
-_-
ENDMAP
NAME: nicolae_swamp_phyte_club
DEPTH: Swamp
ORIENT: float
TAGS: transparent no_monster_gen
NSUBST: D = 1:d, MD = 2:M / 1:M. / 1:H / 2:A / *:., O = 2:O / *:HH.
SUBST: T = t., A = A.., Z = ttW, _ = t_, v = t--
KMONS: S = patrolling giant spore / nothing
KMONS: M = shambling mangrove
KMONS: A = wandering mushroom
KMONS: F = fungus
KMONS: d = dryad
KMONS: O = oklob plant / oklob sapling w:2
KMONS: H = thorn hunter
KMONS: . = plant w:5 / fungus w:5 / nothing w:100
KMONS: - = plant / fungus / nothing w:80
KFEAT: , = .
CLEAR: _
MAP
@
,
_______tT,Tt_______
__tttttttT,Tttttttt__
_ttO--tttT,Tttt--Ott_
_t----vAttFttAv----t_
_t--v.....t.....v--t_
_t--.M..ZZZZZ..M.--t_
_tv...ZZ..S..ZZ...vt_
tttA..Z.........Z..Attt
@ TTTtt.Z.S..WWW..S.Z.ttTTT @
,,,,,t.Z..WW...WW..Z.t,,,,,
TTTtFZ...W..D..W...ZFtTTT
_ttt.Z..W.DtttD.W..Z.ttt_
__tA..ZS.W..ttt..W.SZ..At__
_ttv..Z..W..ttt..W..Z..vtt_
__t--..Z...W.D.D.W...Z..--t__
_tt--.M.Z..WW...WW..Z.M.--tt_
_tO-v...Z.S..WWW..S.Z...v-Ot_
_tt---...Z.........Z...---tt_
__ttt-vA..ZZ..S..ZZ..Av-ttt__
___tttttF..ZZZZZ..Fttttt___
__ttT,t....M....t,Ttt__
tT,Ttt.......ttT,Tt
T,TtttAv...vAtttT,T
,Tt__tt--v--tt__tT,
@ __t-----t__ @
_tttOttt_
___ttt___
_____
ENDMAP
# Abyss vaults. ################################################################
NAME: nicolae_abyss_entry_one_way_or_another
TAGS: nolayout_encompass patrolling
: abyss_entry(_G, 'O')
NSUBST: 1 = 1111111112 / .
# All of these are guaranteed to have banishment in their spell sets.
# One in ten chance they get a distortion weapon too.
: local elfweapon = "long sword ego:distortion w:20 | short sword " ..
: "ego:distortion | rapier ego:distortion | dagger ego:distortion"
: local louiseweapon = "long sword ego:distortion | short sword " ..
: "ego:distortion | battleaxe ego:distortion | hand axe ego:distortion | " ..
: "mace ego:distortion | dire flail ego:distortion | glaive ego:distortion w:2"
KMONS: 1 = Louise, deep elf demonologist / deep elf sorcerer w:5
: kmons( "2 = Louise ; " .. louiseweapon .. " , deep elf demonologist ; " ..
: elfweapon .. " / deep elf sorcerer w:5 ; " .. elfweapon)
MAP
......
..bbbb..
..b....b..
..b......b..
.b..bb1..b...
...b.1O1.b...
...b..1bb..b.
..b......b..
..b....b..
..bbbb..
......
ENDMAP
NAME: nicolae_abyss_rune_left_handed
TAGS: abyss_rune unrand no_monster_gen
SUBST: 0 = 0.
NSUBST: X = 1 / 2 / 3 / 123.., Q = 6 / 7 / 67...
SHUFFLE: 12, 45
MONS: ancient zyme, wretched star, starcursed mass, lurking horror, \
thrashing horror, tentacled starspawn, apocalypse crab
KITEM: O = abyssal rune of zot
KMONS: O = worldbinder
MAP
...
..c....
..cc0.c.
..ccc.......
..cccccccccc..
..0ccc.4cc.cc..
..cc.+cc+...nc.
..c.5.cc..X..c.
.ccc+ccc.XcX.c.
.....Q.c..X..c.
..Q....cn...nc.
.....Q..ccOcc..
.ccccc...ccc..0
.ccc.ccccc.cc..
.ccc...0....cc.
............c0.
.cc.
....
ENDMAP
NAME: nicolae_abyss_rune_containment_breach
TAGS: abyss_rune patrolling
SUBST: N = nn., n = nnnc
NSUBST: v = 2:v / *:v.
KITEM: O = abyssal rune of zot
KMONS: O = spatial maelstrom
KMONS: v = spatial vortex
MAP
.....
.........
....NNNNN....
...NNnnnnnNN...
..NnnnnnnnnnN..
..NnnnnnnnnnnnN..
..NnnnnNNNnnnnN..
..NnnnnN.v.NnnnnN..
..NnnnN.....NnnnN..
..NnnnNv.O.vNnnnN..
..NnnnN.....NnnnN..
..NnnnnN.v.NnnnnN..
..NnnnnNNNnnnnN..
..NnnnnnnnnnnnN..
..NnnnnnnnnnN..
...NNnnnnnNN...
....NNNNN....
.........
.....
ENDMAP
# Dungeon arrival vaults. ######################################################
NAME: nicolae_arrival_washed_ashore
ORIENT: northwest
TAGS: arrival no_monster_gen no_item_gen no_pool_fixup
SUBST: B = bb., S = bWW, Z = WWw
COLOUR: b : brown
FTILE: b{ = floor_sand
KFEAT: O = open_sea
KFEAT: b = .
MAP
OOOOOOOOOOOOOOOOOOOx
Owwwwwwwwwwwwwwwwxxx
Owwwwwwwwwwwwwwwxxxx
OwwwwwwwwwwwwZZZxxxx
OwwwwwwwwwZZZZSSxxxx
OwwwwwwwZZZSSSSSbxxx
OwwwwwwZZSSSSSSbbxxx
OwwwwwZZSSSSbbbbbxxx
OwwwwZZSSSbbbbbbbbx
OwwwwZSSS{bbbbbbbbx
OwwwZZSSbbbbbbbbbbx
OwwwZSSSbbbbbbbbbxx
OwwwZSSbbbbbbbbbbx
OwwZZSSbbbbbbbbbbx
OwwZSSSbbbbbbbbbBB
OwwZSSbbbbbbbbbBB@
OwxxxbbbbbbbbbBB@
OxxxxxxxbbbxxxB@
Oxxxxxxxxxxx
xxxxxxx
ENDMAP
NAME: nicolae_arrival_memento_mori
TAGS: arrival no_monster_gen no_trap_gen no_item_gen \
no_species_mu no_species_vp no_species_gh no_species_gr
KPROP: u = no_rtele_into
SUBST: m = mM
KPROP: Mu = bloody
SUBST: M = m
PLACE: D:1
: local yourcorpse = you.genus() .. " name:" .. you.name() .. " corpse"
: dgn.delayed_decay(_G, 'u', yourcorpse )
MAP
xxxxxxxxxxx
x.........x
x...mmm...x
x.{.mum...+
x...mmm...x
x.........x
xxxxxxxxxxx
ENDMAP
# Just, you know, whatever. ####################################################
NAME: nicolae_doorway_surprise
DEPTH: D:8-, Depths, Elf, Snake, Crypt
KFEAT: -9 = open_door
KMONS: 9 = 9 / 8 w:5
MAP
xxxxxx
+---9x
xxxxxx
ENDMAP
mementomori.des [^] (974 bytes) 2015-01-17 19:08 [Show Content] [Hide Content]NAME: nicolae_arrival_memento_mori
TAGS: arrival no_monster_gen no_trap_gen no_item_gen
SUBST: n = nN
KPROP: u = no_rtele_into
KPROP: Nu = bloody
SUBST: N = n, u = uU
: local yourcorpse = ""
: local yourskel = ""
: if you.race() == "Vampire" or you.race() == "Mummy" or
: you.race() == "Ghoul" or you.race() == "Gargoyle" then
: yourcorpse = "human name:" .. you.name() .. " corpse"
: yourskel = "human name:" .. you.name() .. " skeleton"
: elseif you.race() == "Formicid" then
: yourcorpse = you.genus() .. " name:" .. you.name() .. " corpse"
: yourskel = you.genus() .. " name:" .. you.name() .. " corpse"
: else
: yourcorpse = you.genus() .. " name:" .. you.name() .. " corpse"
: yourskel = you.genus() .. " name:" .. you.name() .. " skeleton"
: end
: dgn.delayed_decay(_G, 'u', yourcorpse )
: dgn.delayed_decay(_G, 'U', yourskel )
MAP
xxxxxxxxxxx
x.........x
x...nnn...x
x.{.nun...+
x...nnn...x
x.........x
xxxxxxxxxxx
ENDMAP
mementomori2.des [^] (922 bytes) 2015-01-17 20:19 [Show Content] [Hide Content]NAME: nicolae_arrival_memento_mori
TAGS: arrival no_monster_gen no_trap_gen no_item_gen
SUBST: n = nN
KPROP: u = no_rtele_into
KPROP: Nu = bloody
SUBST: N = n, u = uU
: local yourcorpse = ""
: local yourskel = ""
: if you.race() == "Vampire" or you.race() == "Mummy" or
: you.race() == "Ghoul" or you.race() == "Gargoyle" then
: yourcorpse = "human corpse"
: yourskel = "human skeleton"
: elseif you.race() == "Formicid" then
: yourcorpse = you.genus() .. " name:" .. you.name() .. " corpse"
: yourskel = you.genus() .. " name:" .. you.name() .. " corpse"
: else
: yourcorpse = you.genus() .. " name:" .. you.name() .. " corpse"
: yourskel = you.genus() .. " name:" .. you.name() .. " skeleton"
: end
: dgn.delayed_decay(_G, 'u', yourcorpse )
: dgn.delayed_decay(_G, 'U', yourskel )
MAP
xxxxxxxxxxx
x.........x
x...nnn...x
x.{.nun...+
x...nnn...x
x.........x
xxxxxxxxxxx
ENDMAP
alphashops.des [^] (11,327 bytes) 2015-01-24 23:00 [Show Content] [Hide Content]# A shop (or perhaps really a series of shops) that sells items whose names all
# start with the same letter. For alphabetizing purposes, any initial class
# description such as "amulet/book/manual/pair/potion/ring/rod/scroll/staff/
# wand of (the)" was ignored so the shops would have more variety between them.
# Various items, such as carrion, hides, blessed weapons, and nonphysical decks,
# aren't listed. Letters with less than five items don't get shops. Code exists
# for shopless letters anyway, so there's less code editing needed if they get
# new items at some point in the future.
{{
function ownername(s)
if s == "N" and crawl.one_chance_in( 30 ) then
return "Nicolae"
else
-- The string.lower and .gsub calls are to crunch names with spaces down
-- into a single word. Otherwise it messes up the "KFEAT" shop line.
local name = s .. string.sub(string.lower(crawl.make_name()), 2)
return string.gsub( name, " ", "" )
end
end
function shopname(s)
-- Shop letters that have too few item types to generate still get names
-- on the off chance they do get five items someday.
-- X and Z are really hard letters to make shop names with, so it's
-- a good thing they'll probably be unused for a while.
local n
if s == "A" then n = " type:Alliterative suffix:Accessories "
elseif s == "B" then n = " type:Bounteous suffix:Boutique "
elseif s == "C" then n = " type:Commerce suffix:Corner "
elseif s == "D" then n = " type:Desiderata suffix:Depot "
elseif s == "E" then n = " type:Eclectic suffix:Emporium "
elseif s == "F" then n = " type:Fabulous suffix:Fripperies "
elseif s == "G" then n = " type:Goods suffix:Gallery "
elseif s == "H" then n = " type:Humungous suffix:Hoard "
elseif s == "I" then n = " type:Incredible suffix:Inventory "
elseif s == "J" then n = " type:Jolly suffix:Junkyard "
elseif s == "K" then n = " type:Killer suffix:Kiosk "
elseif s == "L" then n = " type:Luxury suffix:Loot "
elseif s == "M" then n = " type:Merry suffix:Market "
elseif s == "N" then n = " type:Needful suffix:Niceties "
elseif s == "O" then n = " type:Offbeat suffix:Offerings "
elseif s == "P" then n = " type:Practical suffix:Paraphernalia "
elseif s == "Q" then n = " type:Quotidian suffix:Quintessences "
elseif s == "R" then n = " type:Retail suffix:Resort "
elseif s == "S" then n = " type:Superlative suffix:Supplies "
elseif s == "T" then n = " type:Tempting suffix:Trifles "
elseif s == "U" then n = " type:Unparalleled suffix:Utilities "
elseif s == "V" then n = " type:Vending suffix:Venue "
elseif s == "W" then n = " type:Whimsical suffix:Warehouse "
elseif s == "X" then n = " type:Xenial suffix:Xenodochy "
elseif s == "Y" then n = " type:Yearning suffix:Yield "
elseif s == "Z" then n = " type:Zaibatsu suffix:Zone "
end
return n
end
function shopcontents(s)
local i
if s == "A" then i = "akashic record | arbalest | book of alchemy | " ..
"book of air | manual of air magic | book of annihilations | arrow | " ..
"potion of agility | potion of ambrosia | scroll of acquirement | " ..
"scroll of amnesia | staff of air | manual of axes | manual of armour"
elseif s == "B" then i = "bardiche | battleaxe | beef jerky | " ..
"bolt | book of battle | book of beasts | book of burglary | " ..
"box of beasts | bread ration | broad axe | pair of boots | " ..
"potion of beneficial mutation | potion of berserk rage | blowgun | " ..
"potion of blood | potion of brilliance | scroll of blinking | " ..
"scroll of brand weapon | manual of bows | buckler"
elseif s == "C" then i = "amulet of clarity | book of callings | " ..
"book of cantrips | book of changes | book of control | cutlass | " ..
"book of conjurations | centaur barding | chain mail | club | " ..
"crystal ball of energy | crystal plate armour | rod of clouds | " ..
"wand of cold | potion of cancellation | potion of cure mutation | " ..
"book of clouds | cloak | staff of cold | wand of confusion | " ..
"staff of conjuration | deck of changes | manual of crossbows | " ..
"manual of conjurations | manual of charms | potion of curing "
elseif s == "D" then i = "book of death | book of debilitation | " ..
"book of dreams | book of the dragon | dagger | deck of defence | " ..
"deck of destruction | demon blade | demon trident | demon whip | " ..
"dire flail | disc of storms | double sword | potion of decay | " ..
"potion of degeneration | ring of dexterity | rod of destruction | " ..
"staff of death | wand of digging | wand of disintegration | " ..
"wand of draining | manual of dodging"
elseif s == "E" then i = "book of enchantments | executioner's axe | " ..
"staff of earth | deck of escape | eveningstar | ring of evasion | " ..
"potion of experience | scroll of enchant armour | staff of energy | " ..
"wand of enslavement | book of envenomations | book of the earth | " ..
"scroll of enchant weapon | manual of earth magic | manual of evocations"
elseif s == "F" then i = "book of fire | book of flames | flail | " ..
"book of frost | falchion | fan of gales | fire dragon armour | " ..
"wand of fire | potion of flight | ring of fire | scroll of fear | " ..
"fen folio | ring of flight | scroll of fog | staff of fire | " ..
"wand of fireball | fruit | swand of flame | wand of frost | " ..
"manual of fighting | amulet of faith | manual of fire magic"
elseif s == "G" then i = "amulet of guardian spirit | giant club | " ..
"giant spiked club | amulet of the gourmand | book of geomancy | " ..
"glaive | gold dragon armour | grand grimoire | great mace | " ..
"greatsling | great sword | pair of gloves"
elseif s == "H" then i = "book of hinderance | halberd | hammer | " ..
"hand axe | hand crossbow | hunting sling | wand of hasting | " ..
"potion of heal wounds | potion of haste | scroll of holy word | " ..
"wand of heal wounds | manual of hexes | hat | helmet"
elseif s == "I" then i = "amulet of inaccuracy | ring of ice | " ..
"scroll of immolation | ice dragon armour | book of ice | iron rod | " ..
"rod of ignition | potion of invisibility | ring of intelligence | " ..
"ring of invisibility | scroll of identify | wand of invisibility | " ..
"rod of inaccuracy | manual of ice magic | manual of invocations "
elseif s == "J" then i = "javelin"
elseif s == "K" then i = "any"
elseif s == "L" then i = "lamp of fire | lantern of shadows | " ..
"large rock | large shield | leather armour | lightning rod | " ..
"long sword | potion of lignification | ring of loudness | " ..
"wand of lightning | manual of long blades | lajatang | longbow "
elseif s == "M" then i = "manual of maces & flails | meat ration | " ..
"book of minor magic | morningstar | mottled dragon armour | mace | " ..
"potion of magic | ring of magical power | potion of mutation | " ..
"potion of might | scroll of magic mapping | wand of magic darts | " ..
"book of maledictions"
elseif s == "N" then i = "book of necromancy | naga barding | " ..
"necronomicon | needle | scroll of noise | manual of necromancy"
elseif s == "O" then i = "any"
elseif s == "P" then i = "book of party tricks | book of power | " ..
"pearl dragon armour | phantom mirror | phial of floods | " ..
"plate armour | potion of poison | ring of poison resistance | " ..
"wand of polymorph | ring of positive energy | ring of protection | " ..
"manual of poison magic | staff of power | wand of paralysis | " ..
"ring of protection from fire | ring of protection from magic | " ..
"staff of poison | ring of protection from cold | manual of polearms"
elseif s == "Q" then i = "quarterstaff | quicksilver dragon armour | " ..
"quick blade"
elseif s == "R" then i = "amulet of rage | amulet of regeneration | " ..
"rapier | amulet of resist corrosion | amulet of resist mutation | " ..
"royal jelly | potion of resistance | scroll of recharging | robe | " ..
"ring mail | scroll of random uselessness | scroll of remove curse | " ..
"wand of random effects | potion of restore abilities"
elseif s == "S" then i = "scimitar | amulet of stasis | short sword | " ..
"sling bullet | scale mail | book of summonings | book of the sky | " ..
"deck of summoning | potion of slowing | ring of see invisible | " ..
"ring of slaying | spear | ring of stealth | ring of strength | " ..
"rod of shadows | rod of the swarm | ring of sustain abilities | " ..
"sack of spiders | slice of pizza | scroll of summoning | scythe | " ..
"book of spatial translocations | scroll of silence | shield | " ..
"shortbow | stone of tremors | wand of slowing | manual of staves | " ..
"steam dragon armour | shadow dragon armour | storm dragon armour | " ..
"swamp dragon armour | manual of short blades | staff of summoning | " ..
"manual of slings | manual of shields | manual of spellcasting | " ..
"manual of summonings | manual of stealth | stone "
elseif s == "T" then i = "book of the tempests | scroll of torment | " ..
"book of transfigurations | ring of teleport control | " ..
"ring of teleportation | scroll of teleportation | triple sword | " ..
"triple crossbow | troll leather armour | manual of throwing | " ..
"wand of teleportation | manual of translocations | " ..
"manual of transmutations | tomahawk | trident | throwing net "
elseif s == "U" then i = "book of unlife | manual of unarmed combat"
elseif s == "V" then i = "scroll of vulnerability"
elseif s == "W" then i = "ring of wizardry | book of the warp | " ..
"deck of war | deck of wonders | whip | amulet of warding | " ..
"staff of wizardry | war axe"
elseif s == "X" then i = "any"
elseif s == "Y" then i = "young poisoner's handbook"
elseif s == "Z" then i = "any"
else i = "any"
end
return i
end
}}
NAME: nicolae_alphabet_shops
TAGS: transparent allow_dup
DEPTH: D:4-, Depths, Orc, Elf, Snake, Shoals
# Add or remove a letter in the options string to change what shops generate.
: local options = "ABCDEFGHILMNPRSTW"
: local number = crawl.random2(string.len(options)) + 1
: local letter = string.sub(options, number, number)
: local count = crawl.random2(4) + 7
: tags( "uniq_alphashops_" .. letter )
: kfeat( "s = general shop name:" .. ownername(letter) .. shopname(letter) ..
: " count:" .. count .. " ; " .. shopcontents(letter) )
MAP
...
.....
..s..
.....
...
ENDMAP
vaults0224.des [^] (2,758 bytes) 2015-02-25 03:47 [Show Content] [Hide Content]NAME: nicolae_shop_scaring_up_business
TAGS: allow_dup extra shop transparent
WEIGHT: 1
KFEAT: O = food shop
KMONS: O = patrolling hungry ghost
MAP
...
.O.
...
ENDMAP
NAME: nicolae_pan_sick_transit
DEPTH: Pan
TAGS: transparent extra decor allow_dup
SHUFFLE: Aai/Bbj/Cck/Ddl/Eem/Ffn/Ggo/Hhp, Ffn/Qqr/Qqr, Ggo/Sst/Sst, Hhp/Uuv/Uuv
SUBST: ABCDFGHijklnop = x, abcdfgh = -, EQSU = @, emqrstuv = ., \
I : x., J : x., K : x., L: x., M: x., N : x.
KFEAT: - = transit_pandemonium w:36 / known permanent teleport trap w:1 / \
exit_pandemonium w:1 / exit_through_abyss w:1
MAP
xxxAxxx
xxxxaxxxx
Hpx.....xjB
xph..I.I..bjx
xxx..KJ.JK..xxx
xx..KLM.MLK..xx
xx.IJMN.NMJI.xx
Gg...........cC
xx.IJMN.NMJI.xx
xx..KLM.MLK..xx
xxx..KJ.JK..xxx
xnf..I.I..dlx
Fnx.....xlD
xxxxexxxx
xxxExxx
ENDMAP
NAME: nicolae_ashenzari_panopticon
TAGS: uniq_altar_ashenzari temple_overflow_1 temple_overflow_ashenzari \
transparent decor
SHUFFLE: ABCDEF/abcdef
SUBST: ACEbdf = x, Ba = m, Dc = ., Fe = @
NSUBST: m = + / m
KFEAT: _ = altar_ashenzari
MAP
E....F..E..F...CE
CC...D..C..D..CC.
.CC..DD.C.DD.CC..
..CC..D.C.D.CC...
...CC.DDCDDCC....
FDD.CC.DCDCC..DDF
..DDDCABABA.DDD..
....DDB...BDD....
ECCCCCA._.ACCCCCE
....DDB...BDD....
..DDD.ABABACDDD..
FDD..CCDCD.CC.DDF
....CCDDCDD.CC...
...CC.D.C.D..CC..
..CC.DD.C.DD..CC.
.CC..D..C..D...CC
EC...F..E..F....E
ENDMAP
# 6, 8, 9, 12, 15, or 18 gods.
NAME: nicolae_temple_no_exploring_needed
PLACE: Temple
ORIENT: encompass
TAGS: temple_variable no_pool_fixup temple_altars_6 temple_altars_8 \
temple_altars_9 temple_altars_12 temple_altars_15 temple_altars_18
{{
local altar_count = get_altar_count(_G, 18)
if altar_count == "6" then
subst("ADGJMP = _")
subst("BCEFHIKLNOQR = .")
elseif altar_count == "8" then
subst("RBDGIKMP = _")
subst("ACEFHJLNOQ = .")
elseif altar_count == "9" then
subst("ACEGIKMOQ = _")
subst("BDFHJLNPR : ....TG")
elseif altar_count == "12" then
subst("BCEFHIKLNOQR = _")
subst("AGM = p")
subst("DJP = q")
shuffle("pq/rr/rr")
subst("p : TG")
subst("q : TG")
subst("r = .")
elseif altar_count == "15" then
subst("BCDEFHIJKLNOPQR = _")
subst("AGM : TG")
elseif altar_count == "18" then
subst("ABCDEFGHIJKLMNOPQR = _")
else
subst("ABCGHIMNO = _")
subst("DEFJKLPQR = Y")
end
}}
SUBST: _ = B
SHUFFLE: abdefgh
SUBST: abd = w, e : .w, f : .w, g : .w, h : .w
MAP
ccccccccc
ccD.E.F.Gcc
cc.........cc
ccC..gh.hg..Hcc
c...bef.feb...c
cB.gead.daeg.Ic
c..hfd...dfh..c
cA.....{.....Jc
c..hfd...dfh..c
cR.gead.daeg.Kc
c...bef.feb...c
ccQ..gh.hg..Lcc
cc.........cc
ccP.O.N.Mcc
ccccccccc
ENDMAP
panglyphs.des [^] (4,736 bytes) 2015-02-27 03:38 [Show Content] [Hide Content]NAME: nicolae_pan_strange_glyphs
DEPTH: Pan
TAGS: allow_dup luniq transparent decor extra
# 2/15 chance of five glyphs, 1/3 chance of four glyphs, 1/3 chance of three,
# 2/15 chance of two, 1/15 chance of just one.
: local count = crawl.random2(15)
: if count < 13 then
SUBST: Ee = _
: end
: if count < 8 then
SUBST: Dd = _
: end
: if count < 3 then
SUBST: Cc = _
: end
: if count < 1 then
SUBST: Bb = _
: end
SUBVAULT: A : sub_strange_glyph
SUBVAULT: B : sub_strange_glyph
SUBVAULT: C : sub_strange_glyph
SUBVAULT: D : sub_strange_glyph
SUBVAULT: E : sub_strange_glyph
SUBST: bcde = .
CLEAR: _
MAP
.........bbbbbbbbccccccccddddddddeeeeeeee
.AAAAAAA.BBBBBBBbCCCCCCCcDDDDDDDdEEEEEEEe
.AAAAAAA.BBBBBBBbCCCCCCCcDDDDDDDdEEEEEEEe
.AAAAAAA.BBBBBBBbCCCCCCCcDDDDDDDdEEEEEEEe
.AAAAAAA.BBBBBBBbCCCCCCCcDDDDDDDdEEEEEEEe
.AAAAAAA.BBBBBBBbCCCCCCCcDDDDDDDdEEEEEEEe
.AAAAAAA.BBBBBBBbCCCCCCCcDDDDDDDdEEEEEEEe
.AAAAAAA.BBBBBBBbCCCCCCCcDDDDDDDdEEEEEEEe
.........bbbbbbbbccccccccddddddddeeeeeeee
ENDMAP
NAME: nicolae_pan_strange_glyph_acedia
TAGS: unrand sub_strange_glyph allow_dup
SHUFFLE: abcde
SUBST: abcd = x, e : x.
MAP
.x..a.b
x.x.a.b
x.x.a.b
.xxxxxx
..c.d.e
..c.d.e
..c.d.e
ENDMAP
NAME: nicolae_pan_strange_glyph_angst
TAGS: unrand sub_strange_glyph allow_dup
SHUFFLE: AaBbCc/dd-D-E/-E-Ddd
SUBST: AC- = ., Bbd = x, ac = X, E = .D, D : .x, X = .x
MAP
xxxxx.X
ABC..x.
ABC...x
ABC...x
ABC...x
ABC...x
abc..Xx
ENDMAP
NAME: nicolae_pan_strange_glyph_contempt
TAGS: unrand sub_strange_glyph allow_dup
SHUFFLE: ab, cd, ef
SUBST: ace = x, bdf = .
NSUBST: A = . / x, B = . / x, C = . / x, D = . / x
MAP
ab.xeex
AA.cx.f
BB.c.xf
CC.xddx
DD....x
ba...x.
.bxxx..
ENDMAP
NAME: nicolae_pan_strange_glyph_despair
TAGS: unrand sub_strange_glyph allow_dup
SHUFFLE: Aa, Bb
SUBST: AB = X, ab = ., X = .x
MAP
xa....x
Axxxxxx
..x...X
...x...
.xxxx..
.x...xb
xxX..Bx
ENDMAP
NAME: nicolae_pan_strange_glyph_disappointment
TAGS: unrand sub_strange_glyph allow_dup
SHUFFLE: PQ/PQ/pq, RS/RS/rs, TU/TU/tu
SUBST: PRT = x, QSU = ., prt = Y, qsu = x, Y : xx.
MAP
xxx.xxx
..x.x.x
...x..x
......x
YxPxRxT
x.Q.S.U
x.Q.S.U
ENDMAP
NAME: nicolae_pan_strange_glyph_disgust
TAGS: unrand sub_strange_glyph allow_dup
NSUBST: X = Y / x, Y = 2:x... / 1:x. / *:x
MAP
..xxxxx
.x..X..
x..YxY.
X...X..
x..YxY.
.x..X..
..xxxxx
ENDMAP
NAME: nicolae_pan_strange_glyph_envy
TAGS: unrand sub_strange_glyph allow_dup
SHUFFLE: ab, cd, ef, gh
SUBST: ac = ., bdeg = x, fhX = .x
MAP
exX.Xxg
f.x.x.h
.cd.dc.
.x...x.
x.....x
x..a..x
.xxbxx.
ENDMAP
NAME: nicolae_pan_strange_glyph_fear
TAGS: unrand sub_strange_glyph allow_dup
SHUFFLE: ABCDabcd/-X--XyzX/--X-XXyz/---XzXXy, ab, yz, \
12345/rrprp/prrpp
SUBST: AXyacd = x, BCDbz- = ., 245p = x, 13r = ., Q : ...x, V = .x
MAP
V.xDDDx
x.Aa.dC
x.A.x.C
x.Ab.cC
x2xBBBx
134....
115QQQQ
ENDMAP
NAME: nicolae_pan_strange_glyph_humiliation
TAGS: unrand sub_strange_glyph allow_dup
SUBST: A : ..x, B : xx., C : xx.
MAP
x.A...x
x..A.x.
x...x..
xBBxxx.
x.x...x
xx....x
xCCxxx.
ENDMAP
NAME: nicolae_pan_strange_glyph_loneliness
TAGS: unrand sub_strange_glyph allow_dup
SHUFFLE: abcd
SUBST: X = .x, abc = x, d = .
MAP
xbxxx.X
a.c..x.
xdx...x
x.....x
x...X.x
.x...x.
X.xxx.X
ENDMAP
NAME: nicolae_pan_strange_glyph_melancholia
TAGS: unrand sub_strange_glyph allow_dup
SHUFFLE: pq, rs, tu, vw, yz
SUBST: prtvy = x, qsuwz = .
MAP
txx.xxv
u..x..w
..yzy..
x..x..x
xpqxrsx
xqpxsrx
x..x..x
ENDMAP
NAME: nicolae_pan_strange_glyph_rage
TAGS: unrand sub_strange_glyph allow_dup
SHUFFLE: PQS/pqs, YZ/yz
SUBST: S : .P, P : .x, Qpr = ., s = q, q : .x, \
Y : .x, Z : .x, yz = .
MAP
xyyYzzx
xYY...x
x....x.
xxxxx..
x..Q...
x...Q..
xPPPPSS
ENDMAP
NAME: nicolae_pan_strange_glyph_regret
TAGS: unrand sub_strange_glyph allow_dup
SUBST: X : .x, Y : ..x, Z : ...x
MAP
xxxxxxx
X.Y.Z.x
X.Y...x
X....x.
.....x.
...xx..
xxx....
ENDMAP
NAME: nicolae_pan_strange_glyph_schadenfreude
TAGS: unrand sub_strange_glyph allow_dup
SHUFFLE: ab
SUBST: c = a, b = ., a : ..x, d : .x
MAP
xxxxaac
...x..b
...x..b
x..xxxx
x.d...x
.x...x.
d.xxx..
ENDMAP
NAME: nicolae_pan_strange_glyph_spite
TAGS: unrand sub_strange_glyph allow_dup
SHUFFLE: ab, cd, ef, gh
SUBST: aceg = x, bdfh = .
MAP
xxxxxxb
x....ax
.x....x
.gh...x
..x...x
e.gh.cx
fxxxxxd
ENDMAP
NAME: nicolae_pan_strange_glyph_worry
TAGS: unrand sub_strange_glyph allow_dup
SHUFFLE: Aa, Bb, Cc
SUBST: ABC = x, abc = ., q = .pr, p : .x, r : .x, Q = .PR, P : .x, R : .x
MAP
.xpqrx.
x.....x
xAA.CCx
xaxbxcx
x.BBB.x
x.....x
.xPQRx.
ENDMAP
alphashops2.des [^] (11,702 bytes) 2015-03-20 03:59 [Show Content] [Hide Content]# A shop (or perhaps really a series of shops) that sells items whose names all
# start with the same letter. For alphabetizing purposes, any initial class
# description such as "amulet/book/manual/pair/potion/ring/rod/scroll/staff/
# wand of (the)" was ignored so the shops would have more variety between them.
# Various items, such as carrion, hides, blessed weapons, and nonphysical decks,
# aren't listed. Letters with less than five items don't get shops. Code exists
# for shopless letters anyway, so there's less code editing needed if they get
# new items at some point in the future.
{{
function ownername(s)
if s == "N" and crawl.one_chance_in( 30 ) then
return "Nicolae"
elseif s == "G" and crawl.one_chance_in( 30 ) then
return "Gammafunk"
else
-- The string.lower and .gsub calls are to crunch names with spaces down
-- into a single word. Otherwise it messes up the "KFEAT" shop line.
local name = s .. string.sub(string.lower(crawl.make_name()), 2)
return string.gsub( name, " ", "" )
end
end
function shopname(s)
-- Shop letters that have too few item types to generate still get names
-- on the off chance they do get five items someday.
-- X and Z are really hard letters to make shop names with, so it's
-- a good thing they'll probably be unused for a while.
local n
if s == "A" then n = " type:Alliterative suffix:Accessories "
elseif s == "B" then n = " type:Bounteous suffix:Boutique "
elseif s == "C" then n = " type:Commerce suffix:Corner "
elseif s == "D" then n = " type:Desiderata suffix:Depot "
elseif s == "E" then n = " type:Eclectic suffix:Emporium "
elseif s == "F" then n = " type:Fabulous suffix:Fripperies "
elseif s == "G" then n = " type:Goods suffix:Gallery "
elseif s == "H" then n = " type:Humungous suffix:Hoard "
elseif s == "I" then n = " type:Incredible suffix:Inventory "
elseif s == "J" then n = " type:Jolly suffix:Junkyard "
elseif s == "K" then n = " type:Killer suffix:Kiosk "
elseif s == "L" then n = " type:Luxury suffix:Loot "
elseif s == "M" then n = " type:Merry suffix:Market "
elseif s == "N" then n = " type:Needful suffix:Niceties "
elseif s == "O" then n = " type:Offbeat suffix:Offerings "
elseif s == "P" then n = " type:Practical suffix:Paraphernalia "
elseif s == "Q" then n = " type:Quotidian suffix:Quintessences "
elseif s == "R" then n = " type:Retail suffix:Resort "
elseif s == "S" then n = " type:Superlative suffix:Supplies "
elseif s == "T" then n = " type:Tempting suffix:Trifles "
elseif s == "U" then n = " type:Unparalleled suffix:Utilities "
elseif s == "V" then n = " type:Vending suffix:Venue "
elseif s == "W" then n = " type:Whimsical suffix:Warehouse "
elseif s == "X" then n = " type:Xenial suffix:Xenodochy "
elseif s == "Y" then n = " type:Yearning suffix:Yield "
elseif s == "Z" then n = " type:Zaibatsu suffix:Zone "
end
return n
end
function shopcontents(s)
local i
if s == "A" then i = "akashic record | arbalest | book of alchemy | " ..
"book of air | manual of air magic | book of annihilations | arrow | " ..
"potion of agility | potion of ambrosia | scroll of acquirement | " ..
"scroll of amnesia | staff of air | manual of axes | manual of armour"
elseif s == "B" then i = "bardiche | battleaxe | beef jerky | " ..
"bolt | book of battle | book of beasts | book of burglary | " ..
"box of beasts | bread ration | broad axe | pair of boots | " ..
"potion of beneficial mutation | potion of berserk rage | blowgun | " ..
"potion of blood | potion of brilliance | scroll of blinking | " ..
"scroll of brand weapon | manual of bows | buckler"
elseif s == "C" then i = "amulet of clarity | book of callings | " ..
"book of cantrips | book of changes | book of control | cutlass | " ..
"book of conjurations | centaur barding | chain mail | club | " ..
"crystal ball of energy | crystal plate armour | rod of clouds | " ..
"wand of cold | potion of cancellation | potion of cure mutation | " ..
"book of clouds | cloak | staff of cold | wand of confusion | " ..
"staff of conjuration | deck of changes | manual of crossbows | " ..
"manual of conjurations | manual of charms | potion of curing "
elseif s == "D" then i = "book of death | book of debilitation | " ..
"book of dreams | book of the dragon | dagger | deck of defence | " ..
"deck of destruction | demon blade | demon trident | demon whip | " ..
"dire flail | disc of storms | double sword | potion of decay | " ..
"potion of degeneration | ring of dexterity | rod of destruction | " ..
"staff of death | wand of digging | wand of disintegration | " ..
"wand of draining | manual of dodging"
elseif s == "E" then i = "book of enchantments | executioner's axe | " ..
"staff of earth | deck of escape | eveningstar | ring of evasion | " ..
"potion of experience | scroll of enchant armour | staff of energy | " ..
"wand of enslavement | book of envenomations | book of the earth | " ..
"scroll of enchant weapon | manual of earth magic | manual of evocations"
elseif s == "F" then i = "book of fire | book of flames | flail | " ..
"book of frost | falchion | fan of gales | fire dragon armour | " ..
"wand of fire | potion of flight | ring of fire | scroll of fear | " ..
"fen folio | ring of flight | scroll of fog | staff of fire | " ..
"wand of fireball | fruit | wand of flame | wand of frost | " ..
"manual of fighting | amulet of faith | manual of fire magic"
elseif s == "G" then i = "amulet of guardian spirit | giant club | " ..
"giant spiked club | amulet of the gourmand | book of geomancy | " ..
"glaive | gold dragon armour | grand grimoire | great mace | " ..
"greatsling | great sword | pair of gloves"
elseif s == "H" then i = "book of hinderance | halberd | hammer | " ..
"hand axe | hand crossbow | hunting sling | wand of hasting | " ..
"potion of heal wounds | potion of haste | scroll of holy word | " ..
"wand of heal wounds | manual of hexes | hat | helmet"
elseif s == "I" then i = "amulet of inaccuracy | ring of ice | " ..
"scroll of immolation | ice dragon armour | book of ice | iron rod | " ..
"rod of ignition | potion of invisibility | ring of intelligence | " ..
"ring of invisibility | scroll of identify | wand of invisibility | " ..
"rod of inaccuracy | manual of ice magic | manual of invocations "
elseif s == "J" then i = "javelin"
elseif s == "K" then i = "any"
elseif s == "L" then i = "lamp of fire | lantern of shadows | " ..
"large rock | large shield | leather armour | lightning rod | " ..
"long sword | potion of lignification | ring of loudness | " ..
"wand of lightning | manual of long blades | lajatang | longbow "
elseif s == "M" then i = "manual of maces & flails | meat ration | " ..
"book of minor magic | morningstar | mottled dragon armour | mace | " ..
"potion of magic | ring of magical power | potion of mutation | " ..
"potion of might | scroll of magic mapping | wand of magic darts | " ..
"book of maledictions"
elseif s == "N" then i = "book of necromancy | naga barding | " ..
"necronomicon | needle | scroll of noise | manual of necromancy"
elseif s == "O" then i = "any"
elseif s == "P" then i = "book of party tricks | book of power | " ..
"pearl dragon armour | phantom mirror | phial of floods | " ..
"plate armour | potion of poison | ring of poison resistance | " ..
"wand of polymorph | ring of positive energy | ring of protection | " ..
"manual of poison magic | staff of power | wand of paralysis | " ..
"ring of protection from fire | ring of protection from magic | " ..
"staff of poison | ring of protection from cold | manual of polearms"
elseif s == "Q" then i = "quarterstaff | quicksilver dragon armour | " ..
"quick blade"
elseif s == "R" then i = "amulet of rage | amulet of regeneration | " ..
"rapier | amulet of resist corrosion | amulet of resist mutation | " ..
"royal jelly | potion of resistance | scroll of recharging | robe | " ..
"ring mail | scroll of random uselessness | scroll of remove curse | " ..
"wand of random effects | potion of restore abilities"
elseif s == "S" then i = "scimitar | amulet of stasis | short sword | " ..
"sling bullet | scale mail | book of summonings | book of the sky | " ..
"deck of summoning | potion of slowing | ring of see invisible | " ..
"ring of slaying | spear | ring of stealth | ring of strength | " ..
"rod of shadows | rod of the swarm | ring of sustain abilities | " ..
"sack of spiders | slice of pizza | scroll of summoning | scythe | " ..
"book of spatial translocations | scroll of silence | shield | " ..
"shortbow | stone of tremors | wand of slowing | manual of staves | " ..
"steam dragon armour | shadow dragon armour | storm dragon armour | " ..
"swamp dragon armour | manual of short blades | staff of summoning | " ..
"manual of slings | manual of shields | manual of spellcasting | " ..
"manual of summonings | manual of stealth | stone "
elseif s == "T" then i = "book of the tempests | scroll of torment | " ..
"book of transfigurations | ring of teleport control | " ..
"ring of teleportation | scroll of teleportation | triple sword | " ..
"triple crossbow | troll leather armour | manual of throwing | " ..
"wand of teleportation | manual of translocations | " ..
"manual of transmutations | tomahawk | trident | throwing net "
elseif s == "U" then i = "book of unlife | manual of unarmed combat"
elseif s == "V" then i = "scroll of vulnerability"
elseif s == "W" then i = "ring of wizardry | book of the warp | " ..
"deck of war | deck of wonders | whip | amulet of warding | " ..
"staff of wizardry | war axe"
elseif s == "X" then i = "any"
elseif s == "Y" then i = "young poisoner's handbook"
elseif s == "Z" then i = "any"
else i = "any"
end
return i
end
}}
NAME: nicolae_alphabet_shops
TAGS: transparent allow_dup
DEPTH: D:4-, Depths, Orc, Elf, Snake, Shoals
# Add or remove a letter in the options string to change what shops generate.
: local options = "ABCDEFGHILMNPRSTW"
: local number = crawl.random2(string.len(options)) + 1
: local letter = string.sub(options, number, number)
: local _, itemcount = string.gsub(shopcontents(letter), "|", "|")
: itemcount = itemcount + 1;
: local variance = 1 + math.floor(itemcount / 3)
: variance = math.max(4, math.min( 8, variance ))
: local base = math.floor(itemcount / 2)
: base = math.max(5, math.min( 10, base ))
: local count = crawl.random2avg(variance, 3) + base
: tags( "uniq_alphashops_" .. letter )
: kfeat( "s = general shop name:" .. ownername(letter) .. shopname(letter) ..
: " count:" .. count .. " ; " .. shopcontents(letter) )
MAP
...
.....
..s..
.....
...
ENDMAP
alphashops3.des [^] (12,248 bytes) 2015-03-21 21:08 [Show Content] [Hide Content]# A shop (or perhaps really a series of shops) that sells items whose names all
# start with the same letter. For alphabetizing purposes, any initial class
# description such as "amulet/book/manual/pair/potion/ring/rod/scroll/staff/
# wand of (the)" was ignored so the shops would have more variety between them.
# Various items, such as carrion, hides, blessed weapons, and nonphysical decks,
# aren't listed. Letters with less than five items don't get shops. Code exists
# for shopless letters anyway, so there's less code editing needed if they get
# new items at some point in the future.
{{
function ownername(s)
if s == "N" and crawl.one_chance_in( 30 ) then
return "Nicolae"
elseif s == "G" and crawl.one_chance_in( 30 ) then
return "Gammafunk"
else
-- The string.lower and .gsub calls are to crunch names with spaces down
-- into a single word. Otherwise it messes up the "KFEAT" shop line.
local name = s .. string.sub(string.lower(crawl.make_name()), 2)
return string.gsub( name, " ", "" )
end
end
function shopname(s)
-- Shop letters that have too few item types to generate still get names
-- on the off chance they do get five items someday.
-- X and Z are really hard letters to make shop names with, so it's
-- a good thing they'll probably be unused for a while.
local n
if s == "A" then n = " type:Alliterative suffix:Accessories "
elseif s == "B" then n = " type:Bounteous suffix:Boutique "
elseif s == "C" then n = " type:Commerce suffix:Corner "
elseif s == "D" then n = " type:Desiderata suffix:Depot "
elseif s == "E" then n = " type:Eclectic suffix:Emporium "
elseif s == "F" then n = " type:Fabulous suffix:Fripperies "
elseif s == "G" then n = " type:Goods suffix:Gallery "
elseif s == "H" then n = " type:Humungous suffix:Hoard "
elseif s == "I" then n = " type:Incredible suffix:Inventory "
elseif s == "J" then n = " type:Jolly suffix:Junkyard "
elseif s == "K" then n = " type:Killer suffix:Kiosk "
elseif s == "L" then n = " type:Luxury suffix:Loot "
elseif s == "M" then n = " type:Merry suffix:Market "
elseif s == "N" then n = " type:Needful suffix:Niceties "
elseif s == "O" then n = " type:Offbeat suffix:Offerings "
elseif s == "P" then n = " type:Practical suffix:Paraphernalia "
elseif s == "Q" then n = " type:Quotidian suffix:Quintessences "
elseif s == "R" then n = " type:Retail suffix:Resort "
elseif s == "S" then n = " type:Superlative suffix:Supplies "
elseif s == "T" then n = " type:Tempting suffix:Trifles "
elseif s == "U" then n = " type:Unparalleled suffix:Utilities "
elseif s == "V" then n = " type:Vending suffix:Venue "
elseif s == "W" then n = " type:Whimsical suffix:Warehouse "
elseif s == "X" then n = " type:Xenial suffix:Xenodochy "
elseif s == "Y" then n = " type:Yearning suffix:Yield "
elseif s == "Z" then n = " type:Zaibatsu suffix:Zone "
end
return n
end
function shopcontents(s)
local i
if s == "A" then i = "akashic record | arbalest | book of alchemy | " ..
"book of air | manual of air magic | book of annihilations | arrow | " ..
"potion of agility | potion of ambrosia | scroll of acquirement | " ..
"scroll of amnesia | staff of air | manual of axes | manual of armour"
elseif s == "B" then i = "bardiche | battleaxe | beef jerky | " ..
"bolt | book of battle | book of beasts | book of burglary | " ..
"box of beasts | bread ration | broad axe | pair of boots | " ..
"potion of beneficial mutation | potion of berserk rage | blowgun | " ..
"potion of blood | potion of brilliance | scroll of blinking | " ..
"scroll of brand weapon | manual of bows | buckler"
elseif s == "C" then i = "amulet of clarity | book of callings | " ..
"book of cantrips | book of changes | book of control | cutlass | " ..
"book of conjurations | centaur barding | chain mail | club | " ..
"crystal ball of energy | crystal plate armour | rod of clouds | " ..
"wand of cold | potion of cancellation | potion of cure mutation | " ..
"book of clouds | cloak | staff of cold | wand of confusion | " ..
"staff of conjuration | deck of changes | manual of crossbows | " ..
"manual of conjurations | manual of charms | potion of curing "
elseif s == "D" then i = "book of death | book of debilitation | " ..
"book of dreams | book of the dragon | dagger | deck of defence | " ..
"deck of destruction | demon blade | demon trident | demon whip | " ..
"dire flail | disc of storms | double sword | potion of decay | " ..
"potion of degeneration | ring of dexterity | rod of destruction | " ..
"staff of death | wand of digging | wand of disintegration | " ..
"wand of draining | manual of dodging"
elseif s == "E" then i = "book of enchantments | executioner's axe | " ..
"staff of earth | deck of escape | eveningstar | ring of evasion | " ..
"potion of experience | scroll of enchant armour | staff of energy | " ..
"wand of enslavement | book of envenomations | book of the earth | " ..
"scroll of enchant weapon | manual of earth magic | manual of evocations"
elseif s == "F" then i = "book of fire | book of flames | flail | " ..
"book of frost | falchion | fan of gales | fire dragon armour | " ..
"wand of fire | potion of flight | ring of fire | scroll of fear | " ..
"fen folio | ring of flight | scroll of fog | staff of fire | " ..
"wand of fireball | fruit | wand of flame | wand of frost | " ..
"manual of fighting | amulet of faith | manual of fire magic"
elseif s == "G" then i = "amulet of guardian spirit | giant club | " ..
"giant spiked club | amulet of the gourmand | book of geomancy | " ..
"glaive | gold dragon armour | grand grimoire | great mace | " ..
"greatsling | great sword | pair of gloves"
elseif s == "H" then i = "book of hinderance | halberd | hammer | " ..
"hand axe | hand crossbow | hunting sling | wand of hasting | " ..
"potion of heal wounds | potion of haste | scroll of holy word | " ..
"wand of heal wounds | manual of hexes | hat | helmet"
elseif s == "I" then i = "amulet of inaccuracy | ring of ice | " ..
"scroll of immolation | ice dragon armour | book of ice | iron rod | " ..
"rod of ignition | potion of invisibility | ring of intelligence | " ..
"ring of invisibility | scroll of identify | wand of invisibility | " ..
"rod of inaccuracy | manual of ice magic | manual of invocations "
elseif s == "J" then i = "javelin"
elseif s == "K" then i = "any"
elseif s == "L" then i = "lamp of fire | lantern of shadows | " ..
"large rock | large shield | leather armour | lightning rod | " ..
"long sword | potion of lignification | ring of loudness | " ..
"wand of lightning | manual of long blades | lajatang | longbow "
elseif s == "M" then i = "manual of maces & flails | meat ration | " ..
"book of minor magic | morningstar | mottled dragon armour | mace | " ..
"potion of magic | ring of magical power | potion of mutation | " ..
"potion of might | scroll of magic mapping | wand of magic darts | " ..
"book of maledictions"
elseif s == "N" then i = "book of necromancy | naga barding | " ..
"necronomicon | needle | scroll of noise | manual of necromancy"
elseif s == "O" then i = "any"
elseif s == "P" then i = "book of party tricks | book of power | " ..
"pearl dragon armour | phantom mirror | phial of floods | " ..
"plate armour | potion of poison | ring of poison resistance | " ..
"wand of polymorph | ring of positive energy | ring of protection | " ..
"manual of poison magic | staff of power | wand of paralysis | " ..
"ring of protection from fire | ring of protection from magic | " ..
"staff of poison | ring of protection from cold | manual of polearms"
elseif s == "Q" then i = "quarterstaff | quicksilver dragon armour | " ..
"quick blade"
elseif s == "R" then i = "amulet of rage | amulet of regeneration | " ..
"rapier | amulet of resist corrosion | amulet of resist mutation | " ..
"royal jelly | potion of resistance | scroll of recharging | robe | " ..
"ring mail | scroll of random uselessness | scroll of remove curse | " ..
"wand of random effects | potion of restore abilities"
elseif s == "S" then i = "scimitar | amulet of stasis | short sword | " ..
"sling bullet | scale mail | book of summonings | book of the sky | " ..
"deck of summoning | potion of slowing | ring of see invisible | " ..
"ring of slaying | spear | ring of stealth | ring of strength | " ..
"rod of shadows | rod of the swarm | ring of sustain abilities | " ..
"sack of spiders | slice of pizza | scroll of summoning | scythe | " ..
"book of spatial translocations | scroll of silence | shield | " ..
"shortbow | stone of tremors | wand of slowing | manual of staves | " ..
"steam dragon armour | shadow dragon armour | storm dragon armour | " ..
"swamp dragon armour | manual of short blades | staff of summoning | " ..
"manual of slings | manual of shields | manual of spellcasting | " ..
"manual of summonings | manual of stealth | stone "
elseif s == "T" then i = "book of the tempests | scroll of torment | " ..
"book of transfigurations | ring of teleport control | " ..
"ring of teleportation | scroll of teleportation | triple sword | " ..
"triple crossbow | troll leather armour | manual of throwing | " ..
"wand of teleportation | manual of translocations | " ..
"manual of transmutations | tomahawk | trident | throwing net "
elseif s == "U" then i = "book of unlife | manual of unarmed combat"
elseif s == "V" then i = "scroll of vulnerability"
elseif s == "W" then i = "ring of wizardry | book of the warp | " ..
"deck of war | deck of wonders | whip | amulet of warding | " ..
"staff of wizardry | war axe"
elseif s == "X" then i = "any"
elseif s == "Y" then i = "young poisoner's handbook"
elseif s == "Z" then i = "any"
else i = "any"
end
return i
end
-- Automatically determine which letters have sufficient variety for a shop,
-- and then pick one.
function pickletter()
local alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for i=1, string.len(alphabet) do
local checkletter = string.sub(alphabet, i, i)
local _, itemcount = string.gsub(shopcontents(checkletter), "|", "|")
itemcount = itemcount + 1
if itemcount < 5 then
alphabet = string.gsub( alphabet, checkletter, "-" )
end
end
local options = string.gsub( alphabet, "-", "" )
local number = crawl.random2(string.len(options)) + 1
local letter = string.sub(options, number, number)
return letter
end
}}
NAME: nicolae_alphabet_shops
TAGS: transparent allow_dup
DEPTH: D:4-, Depths, Orc, Elf, Snake, Shoals
PLACE: D:6
: local letter = pickletter()
: local _, itemcount = string.gsub(shopcontents(letter), "|", "|")
: itemcount = itemcount + 1;
: local variance = 1 + math.floor(itemcount / 3)
: variance = math.max(4, math.min( 8, variance ))
: local base = math.floor(itemcount / 2)
: base = math.max(5, math.min( 10, base ))
: local count = crawl.random2avg(variance, 3) + base
: tags( "uniq_alphashops_" .. letter )
: kfeat( "s = general shop name:" .. ownername(letter) .. shopname(letter) ..
: " count:" .. count .. " ; " .. shopcontents(letter) )
MAP
...
.....
..s..
.....
...
ENDMAP
phyteclub2.des [^] (2,971 bytes) 2015-03-24 02:57 [Show Content] [Hide Content]# Dryadless version
NAME: nicolae_swamp_phyte_club
DEPTH: Swamp
ORIENT: float
TAGS: transparent no_monster_gen
NSUBST: D = 1:H / 1:h / 1:b, MD = 2:M / 1:M. / 2:A / *:., \
O = 1:O / 1:o / 1:h / *:h^
SUBST: T = t., A = A.., Z = ttW, _ = t_, v = t--
KMONS: S = patrolling giant spore / nothing
KMONS: M = shambling mangrove
KMONS: A = wandering mushroom
KMONS: F = fungus
KMONS: Oo = oklob plant / oklob sapling w:2
KMONS: Hh = thorn hunter
KMONS: . = plant w:5 / fungus w:5 / nothing w:100
KMONS: - = plant / fungus / nothing w:80
KITEM: h^ = % / * w:5
KITEM: o = * / | w:5
KITEM: b = Fen Folio ident:type
KFEAT: ^, = .
CLEAR: _
MAP
@
,
_______tT,Tt_______
__tttttttT,Tttttttt__
_ttO--tttT,Tttt--Ott_
_t----vAttFttAv----t_
_t--v.....t.....v--t_
_t--.M..ZZZZZ..M.--t_
_tv...ZZ..S..ZZ...vt_
tttA..Z.........Z..Attt
@ TTTtt.Z.S..WWW..S.Z.ttTTT @
,,,,,t.Z..WW...WW..Z.t,,,,,
TTTtFZ...W..D..W...ZFtTTT
_ttt.Z..W.DtttD.W..Z.ttt_
__tA..ZS.W..ttt..W.SZ..At__
_ttv..Z..W..ttt..W..Z..vtt_
__t--..Z...W.D.D.W...Z..--t__
_tt--.M.Z..WW...WW..Z.M.--tt_
_tO-v...Z.S..WWW..S.Z...v-Ot_
_tt---...Z.........Z...---tt_
__ttt-vA..ZZ..S..ZZ..Av-ttt__
___tttttF..ZZZZZ..Fttttt___
__ttT,t....M....t,Ttt__
tT,Ttt.......ttT,Tt
T,TtttAv...vAtttT,T
,Tt__tt--v--tt__tT,
@ __t-----t__ @
_tttOttt_
___ttt___
_____
ENDMAP
# Dryadful version.
NAME: nicolae_swamp_phyte_club
DEPTH: Swamp
ORIENT: float
TAGS: transparent no_monster_gen
NSUBST: D = 1:d / 1:^, MD = 2:M / 1:M. / 1:H / 2:A / *:., \
O = 1:O / 1:o / 1:h / *:h^
SUBST: T = t., A = A.., Z = ttW, _ = t_, v = t--
KMONS: S = patrolling giant spore / nothing
KMONS: M = shambling mangrove
KMONS: A = wandering mushroom
KMONS: F = fungus
KMONS: d = dryad
KMONS: Oo = oklob plant / oklob sapling w:2
KMONS: Hh = thorn hunter
KMONS: . = plant w:5 / fungus w:5 / nothing w:100
KMONS: - = plant / fungus / nothing w:80
KITEM: h^ = % / * w:5
KITEM: o = * / | w:5
KITEM: d = Fen Folio ident:type
KFEAT: , = .
CLEAR: _
MAP
@
,
_______tT,Tt_______
__tttttttT,Tttttttt__
_ttO--tttT,Tttt--Ott_
_t----vAttFttAv----t_
_t--v.....t.....v--t_
_t--.M..ZZZZZ..M.--t_
_tv...ZZ..S..ZZ...vt_
tttA..Z.........Z..Attt
@ TTTtt.Z.S..WWW..S.Z.ttTTT @
,,,,,t.Z..WW...WW..Z.t,,,,,
TTTtFZ...W..D..W...ZFtTTT
_ttt.Z..W.DtttD.W..Z.ttt_
__tA..ZS.W..ttt..W.SZ..At__
_ttv..Z..W..ttt..W..Z..vtt_
__t--..Z...W.D.D.W...Z..--t__
_tt--.M.Z..WW...WW..Z.M.--tt_
_tO-v...Z.S..WWW..S.Z...v-Ot_
_tt---...Z.........Z...---tt_
__ttt-vA..ZZ..S..ZZ..Av-ttt__
___tttttF..ZZZZZ..Fttttt___
__ttT,t....M....t,Ttt__
tT,Ttt.......ttT,Tt
T,TtttAv...vAtttT,T
,Tt__tt--v--tt__tT,
@ __t-----t__ @
_tttOttt_
___ttt___
_____
ENDMAP
phyteclub3.des [^] (1,488 bytes) 2015-03-27 05:17 [Show Content] [Hide Content]# Dryadless version
NAME: nicolae_swamp_phyte_club
DEPTH: Swamp
ORIENT: float
TAGS: transparent no_monster_gen
NSUBST: D = 1:H / 1:h / 1:b / *:M, M = 1:M / 1:M. / 2:A / *:., \
O = 1:O / 1:o / 1:h / 1:h^ / *:^
SUBST: T = t., A = A.., Z = ttW, _ = t_, v = t--
KMONS: S = patrolling giant spore / nothing
KMONS: M = shambling mangrove
KMONS: A = wandering mushroom
KMONS: F = fungus
KMONS: Oo = oklob plant / oklob sapling w:2
KMONS: Hh = thorn hunter
KMONS: . = plant w:5 / fungus w:5 / nothing w:100
KMONS: - = plant / fungus / nothing w:80
KITEM: h^ = % / * w:5
KITEM: o = * / | w:5
KITEM: b = Fen Folio ident:type
KFEAT: ^, = .
CLEAR: _
MAP
@
,
_______tT,Tt_______
__tttttttT,Tttttttt__
_ttO--tttT,Tttt--Ott_
_t----vAttFttAv----t_
_t--v.....t.....v--t_
_t--.M..ZZZZZ..M.--t_
_tv...ZZ..S..ZZ...vt_
tttA..Z.........Z..Attt
@ TTTtt.Z.S..WWW..S.Z.ttTTT @
,,,,,t.Z..WW...WW..Z.t,,,,,
TTTtFZ...W..D..W...ZFtTTT
_ttt.Z..W.DtttD.W..Z.ttt_
__tA..ZS.W..ttt..W.SZ..At__
_ttv..Z..W..ttt..W..Z..vtt_
__t--..Z...W.D.D.W...Z..--t__
_tt--.M.Z..WW...WW..Z.M.--tt_
_tO-v...Z.S..WWW..S.Z...v-Ot_
_tt---...Z.........Z...---tt_
__ttt-vA..ZZ..S..ZZ..Av-ttt__
___tttttF..ZZZZZ..Fttttt___
__ttT,t....M....t,Ttt__
tT,Ttt.......ttT,Tt
T,TtttAv...vAtttT,T
,Tt__tt--v--tt__tT,
@ __t-----t__ @
_tttOttt_
___ttt___
_____
ENDMAP
phyteclub3actual.des [^] (1,490 bytes) 2015-03-27 05:23 [Show Content] [Hide Content]NAME: nicolae_swamp_phyte_club
DEPTH: Swamp
ORIENT: float
TAGS: transparent no_monster_gen no_item_gen
NSUBST: M = 1:M / 1:H / 2:hmm / 2:A / 1:f / *:., \
O = 1:O / 1:o / 1:Hh / 1:h^ / 1:b
SUBST: T = t., A = A.., Z = ttW, _ = t_, v = t--
KMONS: S = patrolling giant spore w:6 / nothing
KMONS: Mm = shambling mangrove
KMONS: A = wandering mushroom
KMONS: F = fungus
KMONS: Oo = oklob plant / oklob sapling w:2
KMONS: Hh = thorn hunter
KMONS: . = plant w:5 / fungus w:5 / nothing w:100
KMONS: - = plant / fungus / nothing w:80
KITEM: h^m = % / * w:5
KITEM: o = * / | w:5
KITEM: f = fruit
KITEM: b = Fen Folio ident:type
KFEAT: ^, = .
CLEAR: _
MAP
@
,
_______tT,Tt_______
__tttttttT,Tttttttt__
_ttO--tttT,Tttt--Ott_
_t----vAttFttAv----t_
_t--v.....t.....v--t_
_t--.M..ZZZZZ..M.--t_
_tv...ZZ..S..ZZ...vt_
tttA..Z.........Z..Attt
@ TTTtt.Z.S..WWW..S.Z.ttTTT @
,,,,,t.Z..WW...WW..Z.t,,,,,
TTTtFZ...W..M..W...ZFtTTT
_ttt.Z..W.MtttM.W..Z.ttt_
__tA..ZS.W..ttt..W.SZ..At__
_ttv..Z..W..ttt..W..Z..vtt_
__t--..Z...W.M.M.W...Z..--t__
_tt--.M.Z..WW...WW..Z.M.--tt_
_tO-v...Z.S..WWW..S.Z...v-Ot_
_tt---...Z.........Z...---tt_
__ttt-vA..ZZ..S..ZZ..Av-ttt__
___tttttF..ZZZZZ..Fttttt___
__ttT,t....M....t,Ttt__
tT,Ttt.......ttT,Tt
T,TtttAv...vAtttT,T
,Tt__tt--v--tt__tT,
@ __t-----t__ @
_tttOttt_
___ttt___
_____
ENDMAP
|