Page 1 of 1

Curio shop vault

PostPosted: Friday, 30th August 2013, 19:35
by Lasty
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)

Re: Curio shop vault

PostPosted: Friday, 30th August 2013, 20:09
by dpeg
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

Re: Curio shop vault

PostPosted: Friday, 30th August 2013, 20:11
by tcjsavannah
+2 shield of slimification

Re: Curio shop vault

PostPosted: Friday, 30th August 2013, 20:28
by spudwalt
+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.

Re: Curio shop vault

PostPosted: Saturday, 31st August 2013, 00:33
by dck
-1 boots of the Archmagi eh.
Sounds good.
Shop vaults are pretty fun.

Re: Curio shop vault

PostPosted: Saturday, 31st August 2013, 01:43
by nicolae
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

Re: Curio shop vault

PostPosted: Saturday, 31st August 2013, 07:44
by savageorange
^
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.

Re: Curio shop vault

PostPosted: Saturday, 31st August 2013, 13:20
by Lasty
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.

Re: Curio shop vault

PostPosted: Saturday, 31st August 2013, 18:34
by nicolae
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.

Re: Curio shop vault

PostPosted: Saturday, 31st August 2013, 19:41
by siprus
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.

Re: Curio shop vault

PostPosted: Saturday, 28th December 2013, 03:04
by Lasty
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

Re: Curio shop vault

PostPosted: Saturday, 28th December 2013, 03:11
by nicolae
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.

Re: Curio shop vault

PostPosted: Saturday, 28th December 2013, 04:29
by duvessa
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.

Re: Curio shop vault

PostPosted: Saturday, 28th December 2013, 10:36
by Leafsnail
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.

Re: Curio shop vault

PostPosted: Saturday, 28th December 2013, 13:38
by Lasty
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.

Re: Curio shop vault

PostPosted: Saturday, 28th December 2013, 15:10
by epsilon
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.

Re: Curio shop vault

PostPosted: Saturday, 28th December 2013, 16:25
by Tiktacy
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.

Re: Curio shop vault

PostPosted: Saturday, 28th December 2013, 17:14
by brendan
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.

Re: Curio shop vault

PostPosted: Saturday, 28th December 2013, 17:30
by earLOBe
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.

Re: Curio shop vault

PostPosted: Saturday, 28th December 2013, 18:21
by crate
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.)

Re: Curio shop vault

PostPosted: Monday, 6th January 2014, 19:29
by partial
(Personally I don't like vaults placing items that cannot otherwise generate.)

Why (specifically)?

imo they add flavor (but obviously shouldn't be overused)