New Content - Implemented Dreadsylvania choice tree

Veracity

Developer
Staff member
This started out on the big "Dreadsylvania" thread, but I want to continue it here. Unlike most of the things - new items, effects, and so on - this is a fairly substantial project of its own.

There are nine special places that you can visit in Dreadsylvania - three each in the Woods, Village, and Castle. They are all implemented as chains of choice adventures: you are presented with a top level choice with several options and a "leave" option. If you don't "leave", you are redirected to another choice with multiple options and a "leave". If you "leave" from a lower level choice, you pop back up to the previous choice. If you "leave" from a top level choice, you exit out of the choice tree entirely.

In all cases, option "6" is the "leave" option. For the top-level choices, "5" is "use a ghost pencil", which lets you make a permanent shortcut to this choice tree.

The trees are chock-full of conditional options which are shown to you only if you have a particular mainstat (Muscle/Mysticality/Moxie) or if you have certain items in inventory. Additionally, even if you are shown a particular option, taking it doesn't always give you the same result; certain things are 1/instance or 10/instance, a given player can only use an adventure - follow a choice tree to a tangible result - once per instance, and so on.

It would be easy to put in spoilers for all the options. I envision something like we do for the Spooky Forest, where a choice with 3 options, each of which has 3 other options, tells you about multiple things you will be able to do. Unlike the Spooky Forest, you can always back out and try again if you didn't go where you thought you were going - and you may have to do that, if your desired result was no longer available because other players in the same instance had used up the quota.

We need to recognize things that consume items from inventory and remove them - but only if you succeeded. For example, if you have a replica key, you can open the lockbox and retrieve the Dreadsylvanian Auditor's badge - but somebody else might have gotten there first. If you get the badge, you lose the key. If you don't get the badge, you don't lose the key. (I think.)

Automation would be trickier, though. I don't really want to set up KoLmafia to let you say "go get item X if it is available, otherwise get item Y, otherwise back out of this choice tree." I can envision "go to final goal X in this tree or exit it if you can't get it." In any case, we should probably make it impossible to loop forever trying and failing to go somewhere because you've already adventured in this choice tree or are the wrong class or don't have necessary items or whatever.

Here is what I have found so far. I've only actually visited places that a Myst character can go, so the actual option numbers in inaccessible places are guesses. Thanks to Darzil for helping clarify some of this.


clan_dreadsylvania.php?action=forceloc&loc=1
The Cabin in the Dreadsylvanian Woods (choice 721)
- (1) The Kitchen in the Woods (choice 722)
-- (1) Spice rack -> dread tarragon
-- (2) Flour mill (Muscle only) (with old dry bone) -> bone flour
-- (3) Disposal -> remove stench monsters
-- (6) Back out
- (2) What Lies Beneath (the Cabin) (choice 723)
-- (1) newspapers -> 5-7 Freddy Krueggerands (10/instance)
-- (2) diary -> Bored Stiff (100 adventures)-> +100 Spooky Damage
-- (3) lockbox (with replica key) -> Dreadsylvania Auditor's badge (once per instance)
-- (4) Stick a wax banana into the lock (with wax banana) -> complicated lock impression
-- (6) Climb back up
- (3) Where it's Attic (locked) (choice 724)
-- (1) Turn off the music box -> intricate music box parts (AT only) & remove spooky monsters
-- (2) Check out the wolfsbane -> fewer werewolves
-- (3) Poke around in the rafters -> fewer vampires
-- (4) Look through the photo albums -> +X Moxie substats
-- (6) Climb back down
- (5) Use a ghost pencil
- (6) Leave

clan_dreadsylvania.php?action=forceloc&loc=2
Tallest Tree in the Forest (choice 725)
- (1) Top of the Tree, Ma! (Muscle only) (choice 726)
-- (1) stomp on the fruit branch (drops fruit to clannie)
-- (2) kick the nest -> remove sleaze monsters
-- (3) grab the shiny thing -> moon-amber (once per instance)
-- (6) Climb back down
- (2) All Along the Watchtower (locked) (choice 727)
-- (1) Wind up the siren -> fewer ghosts
-- (2) Raid the footlocker -> 7-11 Freddy Krueggerands (10/instance)
-- (3) Lift the weights -> +X Muscle substats
-- (6) Leave the tower
- (3) Treebasing (choice 728)
-- (1) Staring Upwards... (choice 761)
--- (1) Keep staring upwards
--- (clannie drops fruit) -> blood kiwi (1/instance)
--- (2) Stop staring upwards
-- (2) Stand near the base looking downward -> Dreadsylvanian seed pod
-- (6) Abandon the base
- (5) Use a ghost pencil
- (6) Leave (ha ha)

clan_dreadsylvania.php?action=forceloc&loc=3
Below the Roots (choice 729)
- (1) Hot Coals (choice 730)
-- (1) pull the cork -> remove hot monsters
-- (2) play in the fire -> Dragged Through the Coals (100 adventures) -> +100 Hot Damage
-- (3) Melt down an old ball and chain (with old ball and chain) -> cool iron ingot
-- (6) Leave the fire behind
- (2) The Heart of the Matter (choice 731)
-- (1) Read the heart a story -> remove cold monsters
-- (2) Listen to the Heart -> +X Mysticality substats
-- (3) Drink some of the Green stuff -> Nature's Bounty (100 adventures) ->
-- (6) Go straight back from the heart
- (3) Once Midden, Twice Shy (choice 732)
-- (1) Smash the eggs -> fewer bugbears
-- (2) Dig through the garbage -> 5-6 Freddy Krueggerands (10/instance)
-- (6) Flee the scene
- (5) Use a ghost pencil
- (6) Go back the way you came

clan_dreadsylvania.php?action=forceloc&loc=4
Dreadsylvanian Village Square (choice 733)
- (1) Fright School (locked) (choice 734)
-- (1) Clean the erasers -> fewer ghosts
-- (2) Rummage through the teacher's desk -> ghost pencil (10/instance)
-- (3) Read the carvings on the students' desks -> +X Mysticality substats
-- (6) Quit school
- (2) Smith, Black as Night (choice 735)
-- (1) Stoke the furnace -> remove hot monsters
-- (2) Dig through the till -> 5-6 Freddy Krueggerands (10/instance)
-- (3) Try New Extra-Strength Anvil (with hothammer in inventory) (choice 762)
--- (1) Make a helmet (with cool iron ingot and warm fur) -> cooling iron helmet
--- (2) Make a breastplate (with cool iron ingot and warm fur) -> cooling iron breastplate
--- (3) Make some greaves (with cool iron ingot and warm fur) -> cooling iron greaves
--- (6) Leave
-- (6) Fade from the blacksmith's
- (3) Gallows (choice 736)
-- (1) Paint the noose pink -> remove spooky monsters
-- (2) Hello Gallows (choice 765)
--- (1) Keep standing
--- (clannie pulls lever) -> hangman's hood (1/instance) (Muscle)
--- (clannie pulls lever) -> cursed ring finger ring (1/instance) (Mysticality)
--- (clannie pulls lever) -> Dreadsylvanian clockwork key (1/instance) (Moxie)
--- (2) Stop standing
-- (3) Stand around gawking (stays in choice)
-- (4) Pull the lever
-- (6) Stop hanging out here
- (5) Use a ghost pencil
- (6) Leave

clan_dreadsylvania.php?action=forceloc&loc=5
The Even More Dreadful Part of Town (choice 737)
- (1) A Dreadful Smell (choice 738)
-- (1) Unclog the grate -> remove stench monsters
-- (2) Slosh in the muck -> Sewer-Drenched (100 adventures)
-- (6) Climb back out
- (2) Eight, Nine, Tenement (choice 740)
-- (1) Drive out the rats -> fewer skeletons
-- (2) Paint over the graffiti -> remove sleaze monsters
-- (3) Move bricks around -> +X Muscle substats
-- (6) Leave
- The Tinker's. Damn. (Moxie only) (choice 739)
-- (1) Rummage through the shelves -> 5-6 Freddy Krueggerands (10/instance)
-- (2) Make a key using the wax lock impression (with wax lock impression and intricate music box part) -> replica key
-- (3) Polish the moon-amber (with moon-amber) -> polished moon-amber
-- (4) Assemble a clockwork bird (with intricate music box part (3) + Dreadsylvanian clockwork key) -> unwound mechanical songbird
-- (5) Look through the boxes -> length of old fuse (3)
-- (6) Leave
- (5) Use a ghost pencil
- (6) Leave

clan_dreadsylvania.php?action=forceloc&loc=6
The Old Duke's Estate (choice 741)
- (1) The Plot Thickens (choice 742)
-- (1) Close the gates -> fewer zombies
-- (2) Rob some graves -> 5-6 Freddy Krueggerands (10/instance)
-- (3) Read some tombstones -> Fifty Ways to Bereave Your Lover (100 adventures)
-- (6) Leave
- (2) No Quarter (choice 743)
-- (1) Turn off the ovens -> remove hot monsters
-- (2) Make a shepherd's pie (Mysticality only) (with dread tarragon + bone flour + dreadful roast + stinking agaricus) -> shepherd's pie
-- (3) Look through the cabinets -> +X Moxie substats
-- (6) Take off
- (3) The Master Suite -- Sweet! (locked) (choice 744)
-- (1) Blow the whistle -> fewer werewolves
-- (2) Check out the nightstand -> eau de mort (10/instance)
-- (3) Mess with the loom -> ?
-- (6) Leave the suite
- (5) Use a ghost pencil
- (6) Leave

clan_dreadsylvania.php?action=forceloc&loc=7
This Hall is Really Great (choice 745)
- (1) The Belle of the Ballroom (locked) (choice 746)
-- (1) Play the organ -> fewer vampires
-- (2) Trip the light fantastic -> +X Moxie substats
-- (6) Bail
- (2) Cold Storage (choice 747)
-- (1) Turn down the freezer -> remove cold monsters
-- (2) Hang out in the freezer -> Staying Frosty (100 adventures)
-- (6) Get out of the kitchen
- (3) Dining In (the Castle) (choice 748)
-- (1) Grab the Roast -> dreadful roast (1/instance)
-- (2) Clear the dishes -> remove stench monsters
-- (3) Levitate up to the rafters (Mysticality only) -> wax banana (1/instance)
-- (6) No thanks, I'll eat somewhere else
- (5) Use a ghost pencil
- (6) Great haul ass out of there

clan_dreadsylvania.php?action=forceloc&loc=8
Tower Most Tall (choice 749)
- Working in the Lab, Late One Night (locked) (choice 750)
-- (1) Turn on the lamp -> fewer bugbears
-- (2) Examine the brains in jars -> fewer zombies
-- (3) Approach the Machine -> ?
-- (4) Use the still (Moxie only) (with blood kiwi and eau de mort) -> bloody kiwitini
-- (6) Leave the lab
- Among the Quaint and Curious Tomes. (Mysticality only) (choice 751)
-- (1) Read "Bone-Dissolving Incantations: A Treatise" -> fewer skeletons
-- (2) Read "Amazing Ancient Mystical Secrets" -> +X Mysticality substats
-- (3) Read "Enchanted Jewelry, Then and Now" -> learn to craft moon-amber necklace
-- (6) Read the exit sign and follow it
- In The Boudoir (choice 752)
-- (1) Shut the parrot up -> remove sleaze monsters
-- (2) Check the dresser -> 5-6 Freddy Krueggerands (10/instance)
-- (3) Turn on the magic fingers -> Magically Fingered (100 adventures)
-- (6) Bid adieu to the bedroom
- (5) Use a ghost pencil
- (6) Leave

clan_dreadsylvania.php?action=forceloc&loc=9
The Dreadsylvanian Dungeon (choice 753)
- (1) Live from Dungeon Prison (choice 754)
-- (1) Flush the toilet -> remove spooky monsters
-- (2) Do some pushups -> +X Muscle substats
-- (3) Take a nap -> +X MP
-- (6) Escape
- (2) The Hot Bowels (choice 755)
-- (1) Let off some steam -> remove hot monsters
-- (2) Check in the incinerator -> 5-6 Freddy Krueggerands (10/instance)
-- (3) Relax in the furnace -> +X/Y/Z Muscle/Mysticality/Moxie substats
-- (6) Be too cool for this room
- (3) Among the Fungus (choice 756)
-- (1) Break off some choice bits -> stinking agaricus (1/instance)
-- (2) Roll around in it -> Spore-wreathed (100 adventures)
-- (6) Leave the shroom
- (5) Use a ghost pencil
- (6) Leave
 
Last edited:

Fluxxdog

Active member
I know one thing that may help. Ghost pencils. As you use more, there is no consequence for leaving a choice adventure. If you have to back out and have the shortcut for that particular adventure, you can go back to it at any time. Since the shortcuts last across ascensions and instances, it should be easy for mafia to detect what you have open and keep track of that.

Other than that, each set of adventures is going to have a list of option to do. The only thing that would make proper sense is to allow people to build their own list, ranked, for what they want to do. Take the Cabin in the Woods. 11/12 different options plus the leave option. (For this, assume already penciled.) They would build their own list of what they want done, similar to the Custom Combat, and have those choices executed in sequence until the first success. For Example:

Dreadsylvania Auditor's badge <= only if you have a replica key
music box parts <= Won't choose that unless you're an AT
complicated lock impression <= Won't choose unless you have a wax banana
bone flour <= Won't choose that unless you're a muscle class AND have an old dry bone
dread terragon
Freddy Krueggerands
exit

If each option is unavailable or fails, it moves to the next. If you've already been here, you'll get a fail right away preventing you from going anywhere. Leaving costs no adventures.

The scope of this is a Custom Choice, which I think would be a lot of work. It'd need to present a list of options that the person could build his list from or some documentation for each choice adventure supported.

EDIT: You know, after writing that, I realize I had that thought before when they revamped the spooky forest. I didn't write anything because of the scope of the problem. But with how they've been changing things, like the Giant's Castle, we may be getting more complicated choice adventures where some may need their own set up, like the Louvre.

Times like this I wish I knew my code better :/
 
Last edited:

Cool12309

Member
I'm no mafia code writer, but you'd need to store some new variables. You'd have to store if you used an action for each of the 9 noncombats. This is a bit finnicky, though, as, for example, the pencils can be gotten up to 10 times. If you choose even just one pencil, you get locked out of the rest of the actions. If you choose a different action, you'll still be locked out of the pencils. So on top of a way to know if each action has been used, and whether they were pencils, krues, or other (and I've heard of multiple eau's), you'd also need to track the amount of krues for each noncombat taken as well as how many pencils. These reset on instance-changing. Oh, I've just thought of a huge problem. Different clans. You'd have to track these settings for each clan, and that could get really bulky. Maybe an entire new settings file could be needed if someone was into clanhopping. Some have said these also reset on ascension, but some haven't. Oh, also the machine can only be used 3 times when you charge it with the skull capacitor. AAAnd another thing, it'd be useful to track what locked options were open. And some things (like banishing elements for a zone, or monsters, or getting certain items) are locked clan-wide, so that'd have to be tracked as well.

Or, you could just not track these at all and just keep trying each option like above until you find one that works.
 

Bale

Minion
At the tallest tree in the forest, There's a folder to find if you have the over-the-shoulder Folder Holder equipped:

clan_dreadsylvania.php?action=forceloc&loc=2
Tallest Tree in the Forest (choice 725)
- (3) Treebasing (choice 728)
-- (1) Staring Upwards... (choice 761)
--- (1) Keep staring upwards
--- (clannie drops fruit) -> blood kiwi (1/instance)
--- (2) Stop staring upwards
-- (2) Stand near the base looking downward -> Dreadsylvanian seed pod
-- (3) Investigate the hole -> You acquire an item: folder (owl)
-- (6) Abandon the base
 

Winterbay

Active member
Also, if Mafia was to have persistent settings for this dungeon it would also be a good idea to have that for the two previous ones and then the work snowballs quickly :)
 

Veracity

Developer
Staff member
Presumably because of clan hopping?
It doesn't even require clan hopping to invalidate per-instance settings: you do stuff in an instance and your clannies come in and change the state on you - and then the instance is shut down and restarted. KoL apparently has a global dungeon instance number and stores data for each one. We'd have to do the same thing - but we don't have access to that number. Even if we did, we have no way of knowing whether a particular instance has been reset and is no longer valid so we can flush the data for it.

Persistant per-player settings - like deducing which pencils you have used when you look at the map - are fine.
 

Fluxxdog

Active member
It doesn't even require clan hopping to invalidate per-instance settings: you do stuff in an instance and your clannies come in and change the state on you - and then the instance is shut down and restarted. KoL apparently has a global dungeon instance number and stores data for each one. We'd have to do the same thing - but we don't have access to that number. Even if we did, we have no way of knowing whether a particular instance has been reset and is no longer valid so we can flush the data for it.
Well, on that, each dungeon's unique identifier is revealed when it's closed and put in the clan's logs. So we could tell if a dungeon has been reset by looking at the logs and noting if the newest instance in logs has a different number. Just have to catch which clan you're in that goes with each number, but that in itself shouldn't be too difficult.

The only reason not to do it is constantly changing info that there's no way to access without a trip to the logs anyway :/
 

Veracity

Developer
Staff member
Revision 12387 attempts to remove consumed items from inventory for every choice where that can happen. It does it by looking for a "success" message, rather than assuming that every time you choose a particular option it will use up the items.

Incomplete: I do not have the message you get when you successfully unlock the attic in the cabin in the woods. If somebody could post that, I'll add it. Thanks.
 

Rinn

Developer
Locally i've just set all the choice adventures to skip, it might be worth adding just show in browser and skip adventure for now until we figure out the best way to handle them, just like with hobopolis.
 

Crowther

Active member
Locally i've just set all the choice adventures to skip, it might be worth adding just show in browser and skip adventure for now until we figure out the best way to handle them, just like with hobopolis.
I'd like to second this. Sure I can flip them by looking up the adventure number and setting the variable, but it would be nice to be able to GUI them. Or it would have been when I had fewer pencils.
 

Fluxxdog

Active member
If GUI for NCs is added, might I suggest a "skip IF penciled" option? We established that the pencils are consistent across instances and ascensions. Which means we can attack the NCs as we choose. So if a NC shows up that we have penciled, just skip it.
 

Veracity

Developer
Staff member
Locally i've just set all the choice adventures to skip, it might be worth adding just show in browser and skip adventure for now until we figure out the best way to handle them, just like with hobopolis.
I'm thinking this.

Perhaps having all the raw choices available, so that the session log doesn't say it is "unknown" when you take option 2, say, but that will allow people to set up unfulfillable collections of choices: tell KoLmafia to take the dread roast will dump you out of the entire tree, if you are the first to go there, but will leave you in the Great Hall if someone beat you to it.

But, yeah - being able to say "skip" would allow you to automate, once you have all your pencils and have done all of the choices manually...
 

Bale

Minion
skipping? I'm surprised that more people haven't asked for the option so that I could recommend the following copy/paste as a work-around while we wait for Veracity's truly awesome solution to be implemented.

Code:
ash foreach c in $ints[721, 725, 729, 733, 737, 741, 745, 749, 753] set_property("choiceAdventure"+c, "6");
 

Veracity

Developer
Staff member
Revision 12451 begins support for this:

- Each of the nine top-level Dreadsylvania shortcuts can be configured via the Choice Option GUI. You have three options: "show in browser", "learn shortcut", and "skip adventure".
- "learn shortcut" says to use a ghost pencil. If KoL doesn't offer you that option (because you have no ghost pencil in inventory) or if KoLmafia knows that you've already learned this shortcut, when you automate, it goes to "skip adventure" instead.
- I set up each of those nine choice adventures with "spoilers", so that if you find them in the Relay Browser, it will print something appropriate for the options you are presented. Currently, the only ones it knows about are 5 = "learn shortcut" and 6 = skip adventure. Eventually, I want the "go to kitchen" option to list everything you can do in the kitchen, say - just like we do for higher level choices in the Spooky Forest.
- The configuration of the choices in the GUI is completely independent of the spoilers. Eventually, we'll be able to say "go get dread tarragon" in the Cabin, say, and it will set up several choice options to navigate there. Obviously, it will have to abort out, or something, if it can't get it. But, that's what we're trying to design in this thread.
 

Fluxxdog

Active member
Do you wants we should starts getting some HTML for yous? Drunk today but I can start nabbing it after rollover.
 
Top