KennySheep wrote:Thank you for all the help I've gotten here already, by the way. I feel sort of weird spamming so many new topics when I'm so new around here.
This is still a work in progress. I'm posting it here mostly so that if anyone wants to they can critique it. I want this vault to be challenging, but not unfairly murderous. I can take out halflings one at a time on floor 1 with a human wizard or fighter without too much trouble, but they can get lucky and appear in swarms of slingy death so that probably needs fixing. Other things probably also need fixing that I'm not aware of.
The vault has two main parts: killing the endless hordes of ranged hobbits, followed by getting ambushed by a group of dwarves and their wizard buddy. The hallways are all two tiles wide, which help keep the player from getting cornered as a mage or from finding a good hallway to fight monsters individually as a fighter. Since most of the monsters have slings, this may make this vault a little too deadly as it currently is. The player will hopefully see and run towards the escape hatch in the back if the ambush is too strong to beat.
Stuff left to do: I need to add more room vaults, and the ones I have are all a bit boring now and could use spicing up. I also would like to have a few other versions of the map that could spawn, at the very least add an undead themed version and an orc invasion themed version. The current loot in the vault, beyond a guaranteed ring of invisibility and a mostly unhelpful short sword of orc slaying, is food and far too much of it. This will hopefully be solved as other treasure vaults are added to water down the food ones. I'd also like to add a garden to this. although I have no idea if it's a good idea to make giant, sprawling vaults that aren't branch ends.
Well, I haven't tried out the vault in play yet, so I can't speak to the challenge, but just from a cursory four-in-the-morning lookover, I can see that it's got a lot of unnecessary stuff. Extra lines (particularly the empty ones, see how many vaults in the game use empty lines outside of lua code), a lot of unnecessary lua coding, some general errors:
1) You can condense the multiple FTILE: (glyph) = floor_grass into just one line: FTILE: `pt = floor_grass ...Same with the long list of SUBST: when you could just do SUBST: GHIJKQRSTWV = .
2) It doesn't appear that you actually place a _ glyph to serve as the ambush lua trigger. (And, frankly, I'm not so sure you need lua to stage an ambush anyway; you could just put the dwarfs behind a runed door). Your message for the trigger also needs to be capitalized and punctuated.
3) Try to do something about the long lines: there's the \ symbol, or in lua commands you can break up a long string by writing "abcdefgh" as "abcde" .. "fgh".
4) Giving specific monsters specific items is considered kind of spoilery but if you do give Bilbo a guaranteed ring of invisibility it's probably best to pre-ID it with ident:all
5) I feel like you could replace most of the functionality of the initial_setup() function with some SHUFFLE: directives. Also, crawl.random2(2) will only ever return a 0 or 1 (random2() doesn't include its argument), meaning the if-else statement with rand in initial_setup() will never choose "boring".
6) The lua in garden_room could be replaced entirely with SHUFFLE: ab/ab/ba, or simply SHUFFLE: ab if you're not picky about keeping the one-in-three chance.
7) Condense fruit_storeroom and food_storeroom into a single vault with SHUFFLE: fF or SUBST: f : fF or perhaps more interestingly SUBST: f = fF
8) The WEIGHT: 1025 in dragon_cage is either a testing weight accidentally left in or a completely ridiculous actual weight. Either way, it should probably get trimmed down to like 5 or less.
9) Is there a particular reason for the specific gold count in KITEM: $ = gold q:27 (and you don't even use a $ glyph anywhere anyway). You also define FTILE: ' = floor_dirt but don't appear to use ' anywhere.
10) There are lines for lua_marker('2', tm) and lua_marker('3', tm) but it doesn't appear that the 2 or 3 glyphs are specified anywhere. Likewise, you have four MONS: statements for halfings but, again, the numbers other than 1 aren't used as glyphs anywhere.
11) Since you only use halflingString once, as an argument to e.kmons(), why not just put the string definition in the function call: e.kmons(". = halfling ; [bunch of equipment specifications that I'm not convinced are fully necessary but whatever] / nothing w:" .. weight)
I like the general idea of the vault but it really feels like you over-designed the heck out of it. (Still, it's more ambitious than my own first vault...)