Bale
Minion
Whenever a grimstone mask is used for the stepmother path KoLmafia should reset the locations at the Prince's Ball, but does not. This never bothered me much before since I only used it once for the ornate dowsing rod, but things have changed and now I may need to use a grimstone mask more than once an ascension. Because the winter garden is going out of standard.
There's precendence for this since mafia resets the batfellow queues upon using another batfellow comic.
My script checks the noncombat queue to see if which locations I've gotten the coins from and decide if I need to use another mask. Unfortunately the queue fills up after I get all the coins and doesn't clear when I use a new mask so the noncombat queue becomes uselessly clogged with old information.
My script won't work properly until the feature is implemented, but if anyone is curious, the script's relevant functions look like this:
There's precendence for this since mafia resets the batfellow queues upon using another batfellow comic.
My script checks the noncombat queue to see if which locations I've gotten the coins from and decide if I need to use another mask. Unfortunately the queue fills up after I get all the coins and doesn't clear when I use a new mask so the noncombat queue becomes uselessly clogged with old information.

Code:
int coins_to_find() {
int c;
if(get_property("grimstoneMaskPath") == "stepmother")
foreach loc in $locations[The Prince's Balcony, The Prince's Dance Floor, The Prince's Lounge, The Prince's Kitchen, The Prince's Canapes Table, The Prince's Restroom]
if(!loc.noncombat_queue.contains_text("The Prince's Ball"))
c += 1;
return c;
}
boolean retrieve_coins(int x) {
while(available_amount($item[odd silver coin]) < x && (coins_to_find() > 0 || available_amount($item[grimstone mask]) > 0)) {
if(coins_to_find() == 0 && retrieve_item(1, $item[grimstone mask])) {
set_property("choiceAdventure829", "1");
use(1, $item[grimstone mask]);
}
foreach loc in $locations[The Prince's Balcony, The Prince's Dance Floor, The Prince's Lounge, The Prince's Kitchen, The Prince's Canapes Table, The Prince's Restroom]
while(!loc.noncombat_queue.contains_text("The Prince's Ball") && available_amount($item[odd silver coin]) < x) {
string page = visit_url(to_url(loc));
if(page.contains_text("You're fighting"))
run_combat();
else
run_choice(1);
}
}
return available_amount($item[odd silver coin]) > x;
}
void unlockPainting() {
if(!retrieve_item(1, $item[fancy oil painting])) {
retrieve_coins(4 - available_amount($item[odd silver coin]));
(retrieve_item(1, $item[fancy oil painting]));
}
}
void unlockDowsing() {
if(!retrieve_item(1, $item[ornate dowsing rod])) {
retrieve_coins(5 - available_amount($item[odd silver coin]));
!(retrieve_item(1, $item[ornate dowsing rod]));
}
}
Last edited: