loathers / autoscend

An ascension script for KoLMafia
Other
45 stars 66 forks source link

Add Lights Out option #35

Open macgregor opened 4 years ago

macgregor commented 4 years ago

Issue by Saklad5 Friday May 24, 2019 at 11:24 GMT _Originally opened as https://github.com/soolar/sl_ascend/issues/223_


The Lights Out non-combats at Spookyraven Manor don’t take any turns or resources, apart from the final stages. It’d be nice if sl_ascend advanced to the aforementioned stages (when possible) during a run, allowing the player to complete them in aftercore.

Since KoLmafia already has extremely thorough support for these quests, it should be fairly trivial to automate (I’ve done it myself with a counter script) and have no impact on a run. I recommend the following logic:

macgregor commented 4 years ago

Comment by Saklad5 Wednesday Jul 10, 2019 at 17:45 GMT


This has non-negligible ascension relevance, especially compared to the existing option to waste actual adventures getting the Pretentious Artist quest done (I really think that option should be changed to just start the quest and do nothing else).

macgregor commented 4 years ago

Comment by Saklad5 Wednesday Jul 10, 2019 at 17:52 GMT


This is extremely messy, and mainly the result of my unfamiliarity with sl_ascend’s conventions, but I’ve been using this by inserting it under the call to burn delay:

if(get_counters("Spookyraven Lights Out", 0, 0) == "Spookyraven Lights Out" && get_property("questM20Necklace") == "finished")
    {
        location lights_room = get_property("nextSpookyravenStephenRoom").to_location();
        if(lights_room == $location[The Haunted Laboratory])
            lights_room = get_property("nextSpookyravenElizabethRoom").to_location();
        if(lights_room != $location[The Haunted Gallery] && (lights_room == $location[The Haunted Bedroom] || get_property("questM21Dance") == "finished"))
        {
            boolean disabled = get_property("sl_disableAdventureHandling").to_boolean();
            set_property("sl_disableAdventureHandling", true);
            lights_room.adv1(0, "");
            set_property("sl_disableAdventureHandling", disabled);
        }
    }

Besides the general scruffiness, this has one flaw: it actually used an adventure by getting a semi-rare at the Haunted Storage Room once. This can be avoided by simply skipping rooms with semi-rares during the corresponding window.