diff options
-rw-r--r-- | crawl-ref/source/dat/bazaar.des | 81 | ||||
-rw-r--r-- | crawl-ref/source/dat/lab.des | 2 | ||||
-rw-r--r-- | crawl-ref/source/dat/lair.des | 2 | ||||
-rw-r--r-- | crawl-ref/source/dat/large.des | 5 |
4 files changed, 63 insertions, 27 deletions
diff --git a/crawl-ref/source/dat/bazaar.des b/crawl-ref/source/dat/bazaar.des index deb057bff8..1d77eb5648 100644 --- a/crawl-ref/source/dat/bazaar.des +++ b/crawl-ref/source/dat/bazaar.des @@ -5,11 +5,6 @@ ############################################################################### # Bazaar entries -# What is still missing: -# The timer should be more generous for lower levels. -# Bazaars would also make sense outside of the dungeon (at least in the Vaults, -# Orc, and Elf). - # Utility functions lua {{ @@ -33,6 +28,32 @@ function bazaar_message(e) e.welcome("You enter an inter-dimensional bazaar!") end +function random_bazaar_colour() + local colours = {"blue", "red", "lightblue", "magenta", "green"} + + crawl.mpr("#colours = " .. #colours) + + local ret = colours[crawl.random2(#colours) + 1] + + crawl.mpr("ret = " .. ret) + + return ret +end + +function fixup_bazaar() + dgn.fixup_stairs("stone_arch", "exit_portal_vault") + dgn.floor_halo("enter_shop", "yellow") + + if (dgn.get_floor_colour() == "black") then + dgn.change_floor_colour(random_bazaar_colour()) + end + + if (dgn.get_rock_colour() == "black") then + dgn.change_rock_colour("yellow") + end +end + +dgn.set_lt_callback("bazaar", "fixup_bazaar") }} default-depth: D:10-27 @@ -174,7 +195,10 @@ ENDMAP # upstair, which will be converted into a stone arch (and on which the player # will be placed when entering the bazaar). If there's no upstair, the player # will arrive on a random square. - +# +# You can force a particular colour for the rock walls or floor using +# ROCKCOL and FLOORCOL directives. +# NAME: bazaar_general_marketplace TAGS: bazaar allow_dup FLAGS: no_rotate @@ -253,10 +277,12 @@ ITEM: any jewellery / good_item any jewellery ITEM: any book / good_item any book, any staff SUBST: d=.d, e=.e, f=.f # special cases for blue/red floor -: if you.bazaar_floor() == "red" then +: local colour = random_bazaar_colour() +: _G.floor_colour(colour) +: if colour == "red" then SUBST: l = w : else -: if you.bazaar_floor() == "blue" then +: if colour == "blue" then SUBST: w = l : end : end @@ -284,10 +310,12 @@ KFEAT: B = distillery shop ITEM: any wand, ring of levitation SHUFFLE: leAB/wdBA # special cases for blue/red floor -: if you.bazaar_floor() == "red" then +: local colour = random_bazaar_colour() +: _G.floor_colour(colour) +: if colour == "red" then SUBST: l = w : else -: if you.bazaar_floor() == "blue" then +: if colour == "blue" then SUBST: w = l : end : end @@ -338,11 +366,13 @@ SUBST: y=z, r=z, s=z, z=V, Y=Z, R=Z, S=Z KFEAT: Z = stone_arch SHUFFLE: lw # special cases for blue/red floor -: if you.bazaar_floor() == "red" then -SUBST: l : wWx +: local colour = random_bazaar_colour() +: _G.floor_colour(colour) +: if colour == "red" then +SUBST: l = w : else -: if you.bazaar_floor() == "blue" then -SUBST: w : Wx +: if colour == "blue" then +SUBST: w = l : end : end # @@ -379,11 +409,13 @@ KFEAT: Z = stone_arch SUBST: a=T, z=V SHUFFLE: lw # special cases for blue/red floor -: if you.bazaar_floor() == "red" then -SUBST: l : wWx +: local colour = random_bazaar_colour() +: _G.floor_colour(colour) +: if colour == "red" then +SUBST: l = w : else -: if you.bazaar_floor() == "blue" then -SUBST: w : Wx +: if colour == "blue" then +SUBST: w = l : end : end # @@ -404,7 +436,6 @@ ENDMAP ####################################### # circle bazaar # - NAME: bazaar_circle_1 CHANCE: 2 TAGS: bazaar allow_dup @@ -705,8 +736,10 @@ KFEAT: D = antique weapon shop KFEAT: E = antique armour shop KFEAT: F = scroll shop / distillery shop : bazaar_message(_G) -# special case for floor -: if you.bazaar_floor() == "blue" then +# special cases for blue floor +: local colour = random_bazaar_colour() +: _G.floor_colour(colour) +: if colour == "blue" then SUBST: w = W : end # @@ -829,10 +862,12 @@ SHUFFLE: zZ SUBST: z = ., Z = w SHUFFLE: wl, ABCD # special cases for blue/red floor -: if you.bazaar_floor() == "red" then +: local colour = random_bazaar_colour() +: _G.floor_colour(colour) +: if colour == "red" then SUBST: l = w : else -: if you.bazaar_floor() == "blue" then +: if colour == "blue" then SUBST: w = l : end : end diff --git a/crawl-ref/source/dat/lab.des b/crawl-ref/source/dat/lab.des index 314866b554..6500618317 100644 --- a/crawl-ref/source/dat/lab.des +++ b/crawl-ref/source/dat/lab.des @@ -106,7 +106,7 @@ TAGS: minotaur generate_loot allow_dup MONS: minotaur NSUBST: d = 1 / % SUBST: c : cvv -MAi +MAP ............ .cccccccccc. .cxxxxdxxxc. diff --git a/crawl-ref/source/dat/lair.des b/crawl-ref/source/dat/lair.des index 35f36423d4..8418595331 100644 --- a/crawl-ref/source/dat/lair.des +++ b/crawl-ref/source/dat/lair.des @@ -253,7 +253,7 @@ ENDMAP # edited and varied by Eino. Placing into Lair only because of the floor colour. # would be nice to have in the main dungeon, if it once becomes possible to # change the floor colour (to green/brown) -รค adapted towards less strawberries (dp). I'm against using these outside Lair. +# adapted towards less strawberries (dp). I'm against using these outside Lair. # NAME: strawberry_fields_big ORIENT: float diff --git a/crawl-ref/source/dat/large.des b/crawl-ref/source/dat/large.des index ca3d208822..a85a8d791a 100644 --- a/crawl-ref/source/dat/large.des +++ b/crawl-ref/source/dat/large.des @@ -202,7 +202,8 @@ SUBST: . = .:100 !:1 6:4 SUBST: ; = .:200 !:1 1:3 SUBST: 1 = 1:20 . SUBST: 3 = 3:20 . -KFEAT: ! = amnesia trap +#KFEAT: ! = amnesia trap +KFEAT: ! = ^ MONS: plant MONS: wolf/warg/hell hound MONS: nothing @@ -220,7 +221,7 @@ KMONS: C = lich w:20/shadow fiend SUBST: b = b| SUBST: | = |* SUBST: _ = x= -ITEM: scroll of forgetfulness, potion of experience +ITEM: any scroll, potion of experience SHUFFLE: dD/eE/fF/gG SUBST: D==, d=|, E=x, e=%%*, F=x, f=%, G=x, g=% SHUFFLE: PQ |