Curio shop vault


Although the central place for design discussion is ##crawl-dev on freenode, some may find it helpful to discuss requests and suggestions here first.

Dungeon Master

Posts: 3160

Joined: Sunday, 5th August 2012, 14:52

Post Friday, 30th August 2013, 19:35

Curio shop vault

I had an idea for a vault which contains a shop that sells curios -- items that can't normally generate. Before I make the vault, I thought I'd throw the basic concept out for discussion to see if its the sort of thing that should exist within crawl.

Below are some ideas I have for the sorts of items that might be included in the shop. The idea was to create items that are 1) potentially useful, 2) are non-artifact but could not spawn by random generation, and 3) create interesting tensions. Next to them I have potential costs -- note that all are very high. In each case the ego specified is one that normally doesn't spawn on items of that sort, except the oddly asymmetrical ring of slaying.

-2 boots of resistance (4000)
+5 plate armour of guardian spirit (4500)
+3 shield of running (2500)
+12/+0 ring of slaying (1500)
-1 cloak of regeneration (2000)
+5 ringmail of evasion (2500)
+10 crystal plate armour of stasis (6000)
+0 robe of wizardry (1500)
+4 chain armour of archery (2500)

For this message the author Lasty has received thanks: 2
and into, Tiber

Dungeon Master

Posts: 3618

Joined: Thursday, 23rd December 2010, 12:43

Post Friday, 30th August 2013, 20:09

Re: Curio shop vault

I like this!

We should collect some more, and the shop should certainly randomise the list.

+1 large shield of conservation
-2 buckler of magic resistance
+0 plate mail of wizardry
User avatar

Vaults Vanquisher

Posts: 482

Joined: Thursday, 16th December 2010, 21:08

Location: Savannah, Ga.

Post Friday, 30th August 2013, 20:11

Re: Curio shop vault

+2 shield of slimification
  Code:
Jory screams, "No, no!" before exploding into a cloud of blood!

Spider Stomper

Posts: 221

Joined: Thursday, 29th August 2013, 09:40

Post Friday, 30th August 2013, 20:28

Re: Curio shop vault

+0 gloves of preservation

Also, who says it has to sell only armor/jewellery?
+3/+2 giant spiked club of speed
15 silver arrows

Wait, there's already a type of shop for weird ammunition brands, isn't there? Scratch that last one, I guess.
You hear the distant roaring of an enraged eggplant.

dck

Vestibule Violator

Posts: 1653

Joined: Tuesday, 30th July 2013, 11:29

Post Saturday, 31st August 2013, 00:33

Re: Curio shop vault

-1 boots of the Archmagi eh.
Sounds good.
Shop vaults are pretty fun.

Tartarus Sorceror

Posts: 1888

Joined: Saturday, 9th July 2011, 20:57

Post Saturday, 31st August 2013, 01:43

Re: Curio shop vault

I actually wrote a shop vault that generates egos on things that don't normally have them (a few bugs had to get fixed in the process) but eventually the list got really huge and unwieldly and I just trimmed it down to ammunition. Here's my original:

Spoiler: show
  Code:

NAME: nicolae_offbrand_merchanise
DEPTH: D
PLACE: D:1
TAGS: no_hmirror no_vmirror
KFEAT: S = general shop type:Off-Brand suffix:Merchandise ; \
       robe plus:10 ego:ponderousness | pair of boots plus:5 ego:ponderousness | \
       troll leather armour ego:ponderousness | gold dragon armour plus:10 ego:ponderousness | \
       pearl dragon armour ego:ponderousness | fire dragon armour ego:ponderousness | \
       crystal plate armour plus:10 ego:ponderousness | dagger plus:-13 plus2:-13 ego:reaching | \
       naga barding plus:8 ego:ponderousness | throwing net ego:returning | \
       demon trident ego:reaping w:3 | demon whip ego:reaping w:3 | demon blade ego:reaping w:3 | \
       quick blade ego:venom | quick blade ego:electrocution | dagger ego:orc_slaying | \
       dagger ego:reaping w:3 | short sword ego:pain | sabre ego:pain | sabre ego:orc_slaying | \
       falchion ego:reaching | long sword ego:reaping | scimitar ego:venom | \
       great sword ego:venom | double sword ego:venom | triple sword ego:venom | \
       great sword ego:pain | double sword ego:pain | triple sword ego:pain | \
       great sword ego:reaching w:3 | double sword ego:reaching w:3 | triple sword ego:reaching w:3 | \
       hand axe ego:reaching | hand axe ego:reaping | hand axe ego:holy_wrath | \
       hand axe ego:protection | hand axe ego:draining | hand axe ego:speed | \
       broad axe ego:reaching | war axe ego:reaching | executioner's axe ego:reaching | \
       executioner's axe ego:reaping w:3 | executioner's axe ego:protection | \
       whip ego:protection | whip ego:orc_slaying | whip ego:reaping w:3 | \
       hammer ego:flaming | hammer ego:freezing | hammer ego:venom | hammer ego:speed | \
       hammer ego:reaching | hammer ego:reaping | hammer ego:vampiricism | \
       spiked flail ego:electrocution | spiked flail ego:venom | dire flail ego:vampiricism | \
       dire flail ego:reaping | eveningstar ego:reaping | morningstar ego:reaping | \
       spear ego:electrocution | trident ego:electrocution | halberd ego:electrocution | \
       scythe ego:electrocution | glaive ego:electrocution | bardiche ego:electrocution | \
       spear ego:returning | spear ego:protection | spear ego:holy_wrath | \
       club ego:electrocution w:3 | club ego:reaping w:3 | club ego:venom w:3 | \
       club ego:flaming w:3 | club ego:freezing w:3 | club ego:anti-magic w:3 | \
       club ego:reaching w:3 | club ego:orc_slaying w:3 | \
       giant club ego:reaping w:3 | giant spiked club ego:reaping w:3 | \
       giant club ego:reaching w:3 | giant spiked club ego:reaching w:3 | \
       giant club ego:venom w:3 | giant spiked club ego:venom w:3 | \
       giant club ego:electrocution w:3 | giant spiked club ego:electrocution w:3 | \
       giant club ego:protection w:3 | giant spiked club ego:protection w:3 | \
       giant club ego:flaming w:3 | giant spiked club ego:flaming w:3 | \
       giant club ego:freezing w:3 | giant spiked club ego:freezing w:3 | \
       giant club ego:vampiricism w:3 | giant spiked club ego:vampiricism w:3 | \
       large rock ego:returning | large rock ego:exploding w:15 | large rock ego:chaos | \
       large rock ego:poisoned | large rock ego:dispersal | large rock ego:penetration | \
       large rock ego:flame | large rock ego:ice | large rock ego:steel | large rock ego:silver | \
       stone ego:flame | stone ego:silver | stone ego:returning | stone ego:exploding | \
       stone ego:dispersal | stone ego:poisoned | stone ego:chaos | stone ego:ice | \
       stone ego:steel | javelin ego:dispersal w:15 | javelin ego:exploding | javelin ego:chaos | \
       arrow ego:silver | arrow ego:steel | arrow ego:exploding | arrow ego:returning | \
       arrow ego:penetration | arrow ego:chaos | \
       bolt ego:exploding | bolt ego:returning | bolt ego:dispersal | bolt ego:chaos | \
       sling bullet ego:dispersal | sling bullet ego:chaos | sling bullet ego:returning | \
       blowgun ego:speed | blowgun ego:protection | sling ego:penetration | \
       bow ego:penetration | crossbow ego:penetration | longbow ego:penetration | \
       robe ego:levitation | robe ego:strength | robe ego:dexterity | \
       leather armour ego:levitation | leather armour ego:archmagi w:1 | \
       leather armour ego:strength | leather armour ego:dexterity | \
       ring mail ego:levitation | ring mail ego:archmagi w:1 | \
       ring mail ego:dexterity | ring mail ego:strength | scale mail ego:dexterity | \
       scale mail ego:levitation | scale mail ego:archmagi w:1 | chain mail ego:levitation | \
       splint mail ego:levitation | splint mail ego:strength | \
       plate armour ego:levitation | plate armour ego:strength | plate armour ego:preservation | \
       crystal plate armour ego:positive_energy | crystal plate armour ego:poison_resistance | \
       crystal plate armour ego:fire_resistance | crystal plate armour ego:cold_resistance | \
       crystal plate armour ego:archmagi w:1 | crystal plate armour ego:resistance | \
       crystal plate armour ego:strength | crystal plate armour ego:dexterity | \
       troll leather armour ego:archmagi w:1 | troll leather armour ego:levitation | \
       troll leather armour ego:resistance w:3 | troll leather armour ego:poison_resistance w:3 | \
       troll leather armour ego:fire_resistance w:3 | troll leather armour ego:cold_resistance w:3 | \
       troll leather armour ego:resistance w:3 | troll leather armour ego:positive_energy w:3 | \
       troll leather armour ego:strength w:3 | troll leather armour ego:dexterity w:3 | \
       steam dragon armour ego:levitation | mottled dragon armour ego:levitation | \
       swamp dragon armour ego:levitation | swamp dragon armour ego:fire_resistance w:3 | \
       swamp dragon armour ego:cold_resistance w:3 | swamp dragon armour ego:resistance w:3 | \
       swamp dragon armour ego:archmagi w:1 | swamp dragon armour ego:positive_energy w:3 | \
       fire dragon armour ego:levitation | ice dragon armour ego:levitation | \
       fire dragon armour ego:poison_resistance w:3 | fire dragon armour ego:positive_energy w:3 | \
       ice dragon armour ego:poison_resistance w:3 | ice dragon armour ego:positive_energy w:3 | \
       storm dragon armour ego:levitation | storm dragon armour ego:resistance w:3 | \
       storm dragon armour ego:positive_energy w:3 | storm dragon armour ego:poison_resistance w:3 | \
       storm dragon armour ego:fire_resistance w:3 | storm dragon armour ego:cold_resistance w:3 | \
       pearl dragon armour ego:levitation | pearl dragon armour ego:fire_resistance w:3 | \
       pearl dragon armour ego:cold_resistance w:3 | pearl dragon armour ego:poison_resistance w:3 | \
       pearl dragon armour ego:archmagi w:1 | gold dragon armour ego:archmagi w:1 | \
       gold dragon armour ego:levitation | gold dragon armour ego:positive_energy w:3 | \
       helmet ego:positive_energy | helmet ego:dexterity | helmet ego:strength | \
       pair of boots ego:positive_energy | pair of boots ego:dexterity | \
       pair of gloves ego:positive_energy | centaur barding ego:poison_resistance | \
       shield ego:positive_energy | shield ego:dexterity | shield ego:strength | \
       naga barding ego:resistance | naga barding ego:positive_energy | \
       naga barding ego:strength | naga barding ego:dexterity | \
       centaur barding ego:resistance | centaur barding ego:positive_energy | \
       centaur barding ego:strength | centaur barding ego:dexterity | \
       helmet ego:spirit_shield | buckler ego:spirit_shield | shield ego:spirit_shield | \
       large shield ego:spirit_shield | robe ego:spirit_shield | leather armour ego:spirit_shield | \
       ring mail ego:spirit_shield | scale mail ego:spirit_shield | chain mail ego:spirit_shield | \
       splint mail ego:spirit_shield | plate armour ego:spirit_shield | \
       crystal plate armour ego:spirit_shield | troll leather armour ego:spirit_shield | \
       pearl dragon armour ego:spirit_shield | gold dragon armour ego:spirit_shield | \
       buckler ego:strength | shield ego:strength | large shield ego:strength       
MAP
.......
.lllll.
.lG.Gl.
.l.S.l.
.lG.Gl.
.ll.ll.
.......
ENDMAP


(As you can see, I wrote it a couple versions ago and haven't bothered updating it.)

dck wrote:-1 boots of the Archmagi eh.
Sounds good.
Shop vaults are pretty fun.


they are and I can't stop making new ones, help

Blades Runner

Posts: 546

Joined: Saturday, 7th May 2011, 02:43

Post Saturday, 31st August 2013, 07:44

Re: Curio shop vault

^
Have you considered writing code (Lua or possibly Python) that generates the definition, rather than writing the definition out in full yourself in its obligatorily badly-formatted way?
This would allow you to

a) compact variations, eg "['crystal plate armour'] = 'positive_energy|poison_resistance|fire_resistance|cold_resistance|spirit_shield|archmagi w:1'", or
['buckler|shield|large shield'] = 'strength'
b) have an arbitrarily long list of items without becoming cumbersome (because you can format them more or less however you like), and
c) easily filter out obsolete item types (though ideally you would remove them from the list to begin with).

Here's a quick demo (Python3 based) that I wrote demoing the technique.

Dungeon Master

Posts: 3160

Joined: Sunday, 5th August 2012, 14:52

Post Saturday, 31st August 2013, 13:20

Re: Curio shop vault

I would advocate that the store not include all possible items which cannot normally be generated, but rather only ones that put a desirable ego in a place where it conflicts with other similarly-desirable egos. Adding in GSC of Pain doesn't achieve that because it's just a very good weapon which normally doesn't spawn in-game. Something like Shield of Running has much more interesting trade-offs.

Tartarus Sorceror

Posts: 1888

Joined: Saturday, 9th July 2011, 20:57

Post Saturday, 31st August 2013, 18:34

Re: Curio shop vault

savageorange wrote:^
Have you considered writing code (Lua or possibly Python) that generates the definition, rather than writing the definition out in full yourself in its obligatorily badly-formatted way?


Yes, but I don't care enough about the idea anymore to bother.

Lasty wrote:I would advocate that the store not include all possible items which cannot normally be generated, but rather only ones that put a desirable ego in a place where it conflicts with other similarly-desirable egos. Adding in GSC of Pain doesn't achieve that because it's just a very good weapon which normally doesn't spawn in-game. Something like Shield of Running has much more interesting trade-offs.


At the moment, implementing shields of running would require changing the game code -- the running ego is only checked in the boot slot. You can generate other armors with running but they won't actually make you faster when worn.

Shoals Surfer

Posts: 267

Joined: Friday, 26th April 2013, 17:05

Post Saturday, 31st August 2013, 19:41

Re: Curio shop vault

I don't think this shop should contain weapons. Weapons brands and item ego fill completely different role. If you want to make similar weapon shop i'd rather see a shop that sells gimmicky unrandarts like dagger of accuracy. (though we might need to come up with more unrandarts for weapons.)

Also if we come up with lots of gimmicky unrandarts we might need to tweak item generation formula so that your chance of getting actually get lowered when bunch of gimmicky unrandarts are added to the game.

Dungeon Master

Posts: 3160

Joined: Sunday, 5th August 2012, 14:52

Post Saturday, 28th December 2013, 03:04

Re: Curio shop vault

So I was thinking of something like this:

  Code:
############################################################################
# The Curio Shop
#
# This shop contains items which have egos that cannot normally generate
# for obscene prices. The idea is to create interesting tradeoffs in these
# items.
NAME:   curio_shop_lasty
WEIGHT: 3
DEPTH: 3-16
ORIENT: float
MONS:   stone golem
KFEAT:  a = any shop type: Curio suffix: Shop greed:10 ; \
         pair of boots plus:-2 ego:resistance \
        | scale mail plus:10 \
                  | cap ego:dexterity \
        | pair of boots plus:-2 ego:archmagi
                 
#The following substitutions rough up the edges a bit and remove all but 2-3 of the granite statues.
NSUBST: C = 5:. / *:x
NSUBST: D = 7:. / *:x
NSUBST: G = 2:G / 1: =G. / *:.
MAP
xx@xxxxxxxxx
xxD.xxCCCCCxx
xDD.xC.GGG.Cx
xD.DxC.1a1.Cx
xxD.xC.GGG.Cx
xD.DxxCCCCCxx
xxD.Dxc+++cxx
xxDD.xx...xDx
xxDD.xD.DDDxx
 xxDx..DDxxx
  xxxxxxxxx
ENDMAP


But I found that the map wouldn't load most of the interesting items, since most of them aren't properly egos or are not available on some items. dpeg, you expressed some interest in this vault idea, would you have any interest in enabling forced generation of some of these items?

  Code:
| ring ego:archmagi
|wizard hat ego:regeneration
| wizard hat ego:resist mutation
| robe plus:5 ego:sustenance
| gauntlets plus:-4 ego:protection
| large shield ego:conservation
| plate armour ego:clarity
| leather armour ego:preservation
| robe plus:5 ego:sustain abilities
| +10 crystal plate armour ego:stasis
| +12/+0 ring of slaying
| cloak ego:regeneration
| plate armour plus:5 ego:guardian spirit
| ringmail plus:8 ego:evasion
| pearl dragon armour ego:hunger
| shield ego:running
| plate armour plus:0 ego:wizardry
| robe ego:wizardry
| chain mail ego:archery

Tartarus Sorceror

Posts: 1888

Joined: Saturday, 9th July 2011, 20:57

Post Saturday, 28th December 2013, 03:11

Re: Curio shop vault

Lasty wrote:But I found that the map wouldn't load most of the interesting items, since most of them aren't properly egos or are not available on some items. dpeg, you expressed some interest in this vault idea, would you have any interest in enabling forced generation of some of these items?


It's not just a matter of egos being incompatible with given item types; I'm pretty sure jewellery types aren't even implemented or checked in the same way as armour and weapon egos. What you want would require a ton of work changing item code, item parsing code, implementation of effects, etc. for the benefit of a single gimmick vault. As for the non-jewellery egos:

"gauntlets plus:-4 ego:protection" - The item is called "pair of gauntlets", and in 0.14 gauntlets don't exist, so it'd just be "pair of gloves"
"+12/+0 ring of slaying" - The format is "ring of slaying plus:12 plus2:0"
"plate armour plus:5 ego:guardian spirit" - The armour ego is called "spirit shield"
"shield ego:running" - The last I checked, the code doesn't even check non-boot items for the running ego.

Ziggurat Zagger

Posts: 8786

Joined: Sunday, 5th May 2013, 08:25

Post Saturday, 28th December 2013, 04:29

Re: Curio shop vault

nicolae wrote:At the moment, implementing shields of running would require changing the game code -- the running ego is only checked in the boot slot. You can generate other armors with running but they won't actually make you faster when worn.
Much as I despise encouraging this behaviour in any way, "fixing" this issue would require changing exactly two lines (actor.cc 301 and ghost.cc 353). Not much of an obstacle.

Vaults Vanquisher

Posts: 508

Joined: Tuesday, 1st November 2011, 00:36

Post Saturday, 28th December 2013, 10:36

Re: Curio shop vault

Cloak of Regeneration sounds overpowered. Other than that it seems odd to flood one game with weird egos. I think it might be better if you were only allowed to buy one item from the shop or something.

Dungeon Master

Posts: 3160

Joined: Sunday, 5th August 2012, 14:52

Post Saturday, 28th December 2013, 13:38

Re: Curio shop vault

nicolae wrote:What you want would require a ton of work changing item code, item parsing code, implementation of effects, etc. for the benefit of a single gimmick vault.


Yeah, I get that, which is why I was addressing the one dev who had previously expressed interest, so that I could gauge whether he thought it was worth the work.

Thanks for your assistance with the syntax on the other items.

Leafsnail wrote:Cloak of Regeneration sounds overpowered. Other than that it seems odd to flood one game with weird egos. I think it might be better if you were only allowed to buy one item from the shop or something.


I can't imagine that it is overpowered: in the cloak slot it is competing with invis, MR, and preservation, all of which are (I believe) generally considered stronger. The idea behind these items is to provoke the choice the sacrifice the types of abilities normally found in those equipment slots for something normally not available.

In terms of what one can buy from the shop, I think it would be reasonable to give the shop a relatively short list of actually-offered items from the total list, but the real limiter will be gold, as the shop keeper will charge outrageously for these items.

That's all supposing that some dev likes this idea enough to enable it, which is not a foregone conclusion.

Halls Hopper

Posts: 84

Joined: Saturday, 3rd August 2013, 08:49

Post Saturday, 28th December 2013, 15:10

Re: Curio shop vault

Dunno about how balanced this idea is, but I sure it's very interesting. I was very amused when I got my hands on gauntlets of cold resistance.
User avatar

Vestibule Violator

Posts: 1591

Joined: Saturday, 3rd August 2013, 18:59

Post Saturday, 28th December 2013, 16:25

Re: Curio shop vault

Just a suggestion: Perhaps we could make these spawn 100% of the time in elven halls 3? Elven halls usually gives pretty good rewards, but it would be all the more interesting if you were able to get a curio shop as well.

Also:

+1 Robe of Chaos
+7 Robe of Ponderousness
____ of Poison(staff analogue)
____ of Conjurations(staff analogue)
____ of Air(staff analogue)
____ of Fire(staff analogue)
____ of ect.
To all new players: Ignore all strategy guides posted on the wiki, ask questions in the Advice forum, players with lots of posts normally have the best advice.

crawl.akrasiac.org:8080 <- take this link to play online or spectate.
User avatar

Dungeon Master

Posts: 162

Joined: Sunday, 29th May 2011, 10:18

Post Saturday, 28th December 2013, 17:14

Re: Curio shop vault

duvessa wrote:
nicolae wrote:At the moment, implementing shields of running would require changing the game code -- the running ego is only checked in the boot slot. You can generate other armors with running but they won't actually make you faster when worn.
Much as I despise encouraging this behaviour in any way, "fixing" this issue would require changing exactly two lines (actor.cc 301 and ghost.cc 353). Not much of an obstacle.


It's useful for unrands, which by their nature break the rules. It would be fairly easy to make resistances check every slot.
Last edited by brendan on Saturday, 28th December 2013, 17:57, edited 1 time in total.

Lair Larrikin

Posts: 29

Joined: Friday, 20th September 2013, 13:25

Post Saturday, 28th December 2013, 17:30

Re: Curio shop vault

These shops (with high prices), particularly if they generate reasonably in Pan (for the blink-and-you'll-miss-it factor) would be good for giving extended players something to do with all that gold now that zigs no longer charge fees.

Ziggurat Zagger

Posts: 4055

Joined: Tuesday, 10th January 2012, 19:49

Post Saturday, 28th December 2013, 18:21

Re: Curio shop vault

brendan wrote:
duvessa wrote:
nicolae wrote:At the moment, implementing shields of running would require changing the game code -- the running ego is only checked in the boot slot. You can generate other armors with running but they won't actually make you faster when worn.
Much as I despise encouraging this behaviour in any way, "fixing" this issue would require changing exactly two lines (actor.cc 301 and ghost.cc 353). Not much of an obstacle.


It's useful for unrands, which by their nature break the rules. It would be fairly easy to make resistances check every slot.

You can also already get aux armour with rC/rF because ice caves/volcanoes are bad and generate them.

(Personally I don't like vaults placing items that cannot otherwise generate.)
User avatar

Shoals Surfer

Posts: 293

Joined: Tuesday, 19th February 2013, 18:55

Post Monday, 6th January 2014, 19:29

Re: Curio shop vault

(Personally I don't like vaults placing items that cannot otherwise generate.)

Why (specifically)?

imo they add flavor (but obviously shouldn't be overused)
I love pitsprint and pitsprint culture.
dpeg wrote:The only good player is a dead player.

Return to Game Design Discussion

Who is online

Users browsing this forum: No registered users and 14 guests

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.