From f0677ab85fce5490f22d6b5be2b361a0e5bfd964 Mon Sep 17 00:00:00 2001 From: mumra Date: Tue, 7 May 2024 22:14:23 +0100 Subject: [PATCH] Add gadget shops to various vaults Added gadget shops in a few places where specific "good" shops were already being placed (mainly Orc and Vaults endings and Bazaars). Since Nicolae's "Gadget Gallery" vault-defined shop now seemed rather vanilla I gave it an overhaul, adding a selection of evocable armours and jewelleries (+Inv, +Blink etc. items you won't find in a regular gadget shop). --- crawl-ref/source/dat/des/branches/orc.des | 10 +++++----- crawl-ref/source/dat/des/branches/vaults.des | 7 ++++--- crawl-ref/source/dat/des/builder/shops.des | 11 +++++++++-- crawl-ref/source/dat/des/portals/bazaar.des | 14 +++++++------- 4 files changed, 25 insertions(+), 17 deletions(-) diff --git a/crawl-ref/source/dat/des/branches/orc.des b/crawl-ref/source/dat/des/branches/orc.des index 32148daf23a..3494ba49c9c 100644 --- a/crawl-ref/source/dat/des/branches/orc.des +++ b/crawl-ref/source/dat/des/branches/orc.des @@ -1912,7 +1912,7 @@ KMONS: V = orc warlord KFEAT: V = T # This one has a lot more high level orcs than the rest, # so instead of adding more shops, guarantees good shops. -KFEAT: S = general shop +KFEAT: S = general shop / gadget shop KFEAT: A = antique armour shop KFEAT: B = antique weapon shop KFEAT: C = book shop / jewellery shop @@ -2009,7 +2009,7 @@ ORIENT: float dgn.persist.grunt_orc_gardens_giant_problem = crawl.one_chance_in(7) hook("post_place", function() local stores = { "antique weapon shop", "antique armour shop", - "general shop", "book shop / jewellery shop" } + "general shop / gadget shop", "book shop / jewellery shop" } local which = crawl.random2(#stores) + 1 dgn.persist.grunt_orc_gardens_store = stores[which] table.remove(stores, which) @@ -2271,7 +2271,7 @@ KMONS: B = Nergalle w:2 / orc sorcerer, orc sorcerer KMONS: C = Urug w:2 / orc knight, orc knight KMONS: D = Blorkula the orcula w:2 / orc wizard, orc wizard KMONS: E = Erolcha w:2 / ogre mage band, ogre mage band -KFEAT: J = general shop +KFEAT: J = general shop / gadget shop KFEAT: K = antique armour shop KFEAT: L = antique weapon shop KFEAT: M = book shop / jewellery shop @@ -2313,7 +2313,7 @@ MONS: orc knight / kobold blastminer w:1 MONS: demonspawn / obsidian bat w:2 / nothing w:8 MONS: orc high priest / orc sorcerer KFEAT: A = w:20 general shop / distillery shop / scroll shop -KFEAT: B = book shop / jewellery shop +KFEAT: B = book shop / jewellery shop / gadget shop KFEAT: C = antique weapon shop / antique armour shop KFEAT: P = enter_pandemonium SHUFFLE: BC @@ -2362,7 +2362,7 @@ KMONS: 4 = Erolcha / ogre mage, ogre mage KMONS: 5 = Nergalle / orc sorcerer, orc sorcerer KMONS: 6 = obsidian bat KFEAT: A = distillery shop / scroll shop -KFEAT: B = book shop / jewellery shop +KFEAT: B = book shop / jewellery shop / gadget shop KFEAT: C = antique weapon shop / antique armour shop KFEAT: D = altar_beogh KFEAT: E = altar_kikubaaqudgha diff --git a/crawl-ref/source/dat/des/branches/vaults.des b/crawl-ref/source/dat/des/branches/vaults.des index 0c223656d23..68e3e81d9a8 100644 --- a/crawl-ref/source/dat/des/branches/vaults.des +++ b/crawl-ref/source/dat/des/branches/vaults.des @@ -1332,14 +1332,15 @@ x.................xxxxx...x ENDMAP ############################################################ -# Consumable shops (scrolls, potions). +# Consumable shops (scrolls, potions, evocables). # Monsters in rooms. NAME: vaults_end_dpeg_shops2 TAGS: vaults_end_quadrant vaults_end_quadrant_mall unrand SHUFFLE: Ll / Mm / Nn / Oo / Pp / Qq / Rr / Ss / Tt SUBST: o = k, lmnpqrst = ', LMNPQ = S99, RT = S NSUBST: A = 1:+ / *:x+, B = 1:+ / *:x+, C = 1:+ / *:x+ -KFEAT: S = scroll shop / distillery shop / abandoned_shop +KFEAT: S = scroll shop w:7 / distillery shop w:7 / \ + gadget shop w:6 / abandoned_shop NSUBST: ' = 20:9 / *:. NSUBST: . = 5:9 / *:. SUBST: 9 = 8 9 .:20 @@ -2391,7 +2392,7 @@ SHUFFLE: AB, CD, Ee / Ff / Gg / Hh / Ii SUBST: A = +, B : xx+, C : xxx+, D : xxxx+ SUBST: E = O, e = k, fghi = ', FG = S, HI : RRU9 KFEAT: S = jewellery shop / antique armour shop / distillery shop -KFEAT: R = general shop / book shop / scroll shop / \ +KFEAT: R = general shop / book shop / scroll shop / gadget shop / \ antique weapon shop / distillery shop KFEAT: U = stone_arch NSUBST: ' = 22:9 / *:., . = 2:9 / *:. diff --git a/crawl-ref/source/dat/des/builder/shops.des b/crawl-ref/source/dat/des/builder/shops.des index 53d09b19f58..f78c5463c9a 100644 --- a/crawl-ref/source/dat/des/builder/shops.des +++ b/crawl-ref/source/dat/des/builder/shops.des @@ -1454,11 +1454,18 @@ MAP ENDMAP # Gadget shops are back! Well, one gadget shop is back. +# (Now gadget shops are really back, I've added a unique gimmick: here we +# can also find +Blink and +Inv evocables armour and jewellery. I would have +# liked to add these items rarely to normal gadget shops, but the complexity +# of doing so seems not worth it, so it's nicely handled by a vault. -mumra) NAME: nicolae_shop_gadgets TAGS: transparent DEPTH: D:4-, Depths, Orc, Elf, Shoals, Snake, Vaults -KFEAT: S = general shop type:Gadget suffix:Gallery count:5 use_all ; \ - any wand | any wand | any wand | any wand | any misc +KFEAT: S = gadget shop type:Gadget suffix:Gallery count:8 ; \ + w:40 any wand | w:20 any misc | w:15 any talisman | orb | \ + w:2 any armour artprops:+Inv | w:2 any jewellery artprops:+Inv | \ + w:3 any armour artprops:+Blink | w:3 any jewellery artprops:+Blink | \ + w:2 scarf ego:invisibility | w:2 cloak ego:invisibility SHUFFLE: cvmb MAP cc.vv diff --git a/crawl-ref/source/dat/des/portals/bazaar.des b/crawl-ref/source/dat/des/portals/bazaar.des index 05b595053b1..bc889b99ccb 100644 --- a/crawl-ref/source/dat/des/portals/bazaar.des +++ b/crawl-ref/source/dat/des/portals/bazaar.des @@ -409,7 +409,7 @@ SUBST: A = Y SHUFFLE: XY SUBST: X = <, Y = > # high quality shops, pity they don't stay :p -KFEAT: B = general shop +KFEAT: B = general shop / gadget shop KFEAT: C = book shop / jewellery shop KFEAT: D = antique weapon shop KFEAT: E = antique armour shop @@ -471,7 +471,7 @@ SHUFFLE: Aa/Zz, Bb/Yy, Cc/Rr, Dd/Ss # two guaranteed shops, expected four shops KFEAT: A = any shop / antique weapon shop KFEAT: B = any shop / antique armour shop -KFEAT: C = any shop / antiques shop +KFEAT: C = any shop / antiques shop / gadget shop KFEAT: D = any shop / jewellery shop KFEAT: E = any shop / weapon shop / armour shop KFEAT: F = any shop / book shop / scroll shop @@ -586,7 +586,7 @@ KFEAT: D = antique armour shop / book shop : else SUBST: T = <, A = > KFEAT: B = antique weapon shop -KFEAT: C = antique armour shop +KFEAT: C = antique armour shop / gadget shop KFEAT: D = general shop / distillery shop :end : if crawl.coinflip() then @@ -1108,7 +1108,7 @@ SHUFFLE: AX SUBST: X = <, A = > SUBST: B : T G KFEAT: C = any shop -KFEAT: D = weapon shop / book shop / jewellery shop +KFEAT: D = weapon shop / book shop / jewellery shop / gadget shop : bazaar_setup(_G) : local colour = dgn.get_floor_colour() : if colour == "red" then @@ -1357,7 +1357,7 @@ SUBST: "=l , '=. , A=l , B=! SUBST: "=. , '=l , A=! , B=l : end KFEAT: ! = jewellery shop / jewellery shop / antiques shop / scroll shop / \ - book shop + book shop / gadget shop LFLOORCOL: darkgrey : set_border_fill_type("endless_lava") : bazaar_setup(_G, false, false) @@ -1716,7 +1716,7 @@ ORIENT: encompass WEIGHT: 1 SHUFFLE: AC, BD KFEAT: A = armour shop / weapon shop / jewellery shop -KFEAT: B = general shop +KFEAT: B = general shop / gadget shop KFEAT: C = scroll shop / book shop / distillery shop SUBST: D = > SUBST: = : +x @@ -1776,7 +1776,7 @@ SHUFFLE: AEST NSUBST: A = 1:A / 1:B / 1:C / 1:D SUBST: E=>, S=T, T:TUV, D=ABC. KFEAT: A = armour shop / weapon shop / jewellery shop -KFEAT: B = general shop +KFEAT: B = general shop / gadget shop KFEAT: C = scroll shop / book shop / distillery shop : if crawl.coinflip() then SUBST: '=+, "=x, :=x