Here is my script to automate the Gingerbread City. It is fully configurable as documented by the following from the code:
Note that it assumes by default that you have a Chocolate Lab. If you don't have one, you must set VGC.Familiar to the familiar you want to use and equip it with the familiar item you want it to wear (unless you have a candy dog collar, which it will use in its place, since that gives +Sprinkle Drop).
Here is the current To Do list:
I'll get to these, by and by. The "banish" list - which will use Licorice Leash, if possible - comes first. I expect I will eventually also use Gingerbread Mob Hit, but that will depend on me being able to get the skill book for a price I am willing to pay. Which, using Spelunky's model, will probably be a year from now.
Code:
// ****** Configuration ******
// If you want to advance the clock and spend 5 fewer turns in The
// Gingerbread City, you can do that.
boolean vgc_advance_clock = define_property( "VGC.AdvanceClock", "boolean", "false" ).to_boolean();
// The following are valid adventuring locations in the Gingerbread
// City. Specifying any other location results in an invalid plan
//
// Gingerbread Civic Center
// Gingerbread Industrial Zone
// Gingerbread Upscale Retail District
// Gingerbread Sewers
// Gingerbread Train Station
//
// If any of the following are "none", adventuring ceases in Gingerbread City at that phase
location vgc_morning = define_property( "VGC.Morning", "location", "none" ).to_location();
location vgc_afternoon = define_property( "VGC.Afternoon", "location", "none" ).to_location();
location vgc_night = define_property( "VGC.Night", "location", "none" ).to_location();
// You have a wide variety of options for Noon:
//
// "candy" collect candy in Train Station
// "lever" enlarge alligators in sewers
// "schedule" study the train schedule
// "fancy marzipan briefcase" off-hand item that decreases combat frequency and lasts until rollover
// "column" allows a fight with Judge Fudge at midnight
// "briefcase full of sprinkles" turn in blackmail photos
// "creme brulee torch" buy for 25 sprinkles; opens civic center midnight choice
// "candy crowbar" buy for 50 sprinkles; opens unsupported train station midnight choice
// "candy screwdriver" buy for 100 sprinkles; opens train station midnight choice
// "teethpick" buy for 1000 sprinkles; opens train station midnight choice
// "robbery" requires robbery outfit; activates vigilantes
// "gingerbread dog treat" buy for 200 sprinkles; opens civic center midnight choice
// "pumpkin spice candle" buy for 140 sprinkles; opens train station midnight choice
// "gingerbread spice latte" buy for 50 sprinkles; +10 Familiar Weight potion
// "gingerbread trousers" buy for 500 sprinkles; part of Gingerbread Best outfit
// "gingerbread waistcoat" buy for 500 sprinkles; part of Gingerbread Best outfit
// "gingerbread tophat" buy for 500 sprinkles; part of Gingerbread Best outfit
//
// An invalid choice will be treated as "candy"
string vgc_noon = define_property( "VGC.Noon", "string", "candy" );
// You have a wide variety of options for Midnight:
//
// "mainstat" gain muscle, mysticality, or moxie, depending on your class
// "Judge Fudge" fight Judge Fudge: activated by "column" at noon
// "Muscle" gain muscle stats; eventually activates a train station midnight choice
// "Mysticality" gain mysticality stats; eventually allows purchase of teethpick
// "Moxie" gain moxie stats
// "broken chocolate pocketwatch" part of Gingerbread Best outfit; requires "pumpkin spice candle" at noon
// "meat" 5,000 Meat; requires "candy crowbar" at noon
// "fat loot token" requires "candy crowbar" at noon
// "sprinkles" 250 sprinkles; requires "candy crowbar" at noon
// "priceless diamond" requires "candy crowbar" at noon
// "pristine fish scales" 5 pristine fish scales; requires "candy crowbar" at noon
// "dig" gain items; requires teethpick in inventory; becomes unavailable after sugar raygun
// "counterfeit city" buy for 300 sprinkles
// "gingerbread moneybag" requires creme brulee torch in inventory
// "gingerbread cigarettes" buy for 5 sprinkles
// "chocolate puppy" requires gingerbread dog treat in inventory
// "gingerbread pistol" buy for 300 sprinkles
// "ginger beer" requires gingerbread mug in inventory
// "spare chocolate parts" required to convert broken chocolate pocketwatch to chocolate pocketwatch
// "GNG-3-R" fight GNG-3-R; requires (and consumes) gingerservo
// "tattoo" buy for 100,000 sprinkles
// "fake cocktail" potion: MP +50, MP Regen 20-30
// "high-end ginger wine" requires Gingerbread Best outfit; EPIC booze
// "fancy chocolate sculpture" buy for 300 sprinkles; chocolate
// "Pop Art: a Guide" buy for 1,000 sprinkles; grants skill: Fifteen Minutes of Flame
// "No Hats as Art" buy for 1,000 sprinkles; grants skill: Ceci N'Est Pas Un Chapeau
//
// An invalid choice will be treated as "mainstat"
string vgc_midnight = define_property( "VGC.Midnight", "string", "mainstat" );
// You can specify monsters to banish if you are looking for particular drops
boolean [monster] vgc_banish = define_property( "VGC.Banishes", "monster", "none" ).to_set_of_monster();
// The preconfigured outfit to wear while adventuring in The Gingerbread City
string vgc_outfit = define_property( "VGC.Outfit", "string", "Gingerbread City" );
// The familiar to take adventuring in The Gingerbread City
familiar vgc_familiar = define_property( "VGC.Familiar", "familiar", "Chocolate Lab" ).to_familiar();
Here is the current To Do list:
Code:
// ****** To Do **************
//
// Test setting clock ahead
// Implement VGC.Banishes
// Use tracking settings, as appropriate
// gingerDigCount
// gingerLawChoice
// gingerMuscleChoice
// gingerNegativesDropped
// gingerSubwayLineUnlocked
// Configure remaining Noon options:
// "bribery" : new GingerChoice( GINGERBREAD_CIVIC_CENTER, 1000, $item[ none ], 1202, 3 ),
// Leads to another choice to buy a city upgrade
// "photo counter" : new GingerChoice( GINGERBREAD_RETAIL_DISTRICT, 500, $item[ none ], 1208, 8 ),
// Drop off negatives (one day) pick up photos (next day)
// Configure remaining Midnight options:
// "fruit leather negatives" : new GingerChoice( GINGERBREAD_TRAIN_STATION, 0, $item[ none ], 1205, 4 ),
// Once only, must be unlocked
// Make Mood configurable
Code:
git checkout Veracity0/gingerbread