Page 1 of 2 1 2 LastLast
Results 1 to 10 of 13

Thread: infinite loop in volcano: lavaco lamp factory

  1. #1
    Senior Member
    Join Date
    Oct 2017
    Posts
    421

    Default infinite loop in volcano: lavaco lamp factory

    in volcano lavaco lamp factory, if you set the choice adventure "LavaCo Lamp Factory 1" to "empty lava bottle -> full lava bottle" and then run out of empty bottles mafia will go into an infinite loop of trying to click that button and failing

  2. #2
    Senior Member
    Join Date
    Jan 2012
    Location
    Texas
    Posts
    453

    Default

    That needs to go to a bug report in that section of the forums

  3. #3
    Developer fronobulax's Avatar
    Join Date
    Feb 2009
    Location
    Central Virginia, USA
    Posts
    4,430

    Default

    That needs to go to a bug report in that section of the forums
    Originally Posted by txrangersxx View Post
    I'm confused. Are you saying this is a KoL bug? If so it is appropriate to make a feature request here for KoLmafia to work around a KoL bug, if possible.

    (My confusion may also be based on ignorance since I have mo recollection of ever visiting the Volcano).
    Well, thank you.
    Originally Posted by Veracity View Post

  4. #4
    Developer Veracity's Avatar
    Join Date
    Mar 2006
    Location
    The Unseelie Court
    Posts
    12,000

    Default

    (He filed it under Community Support or something and I moved it.)

    KoLmafia should revert to Manual Control - which will abort automation - when the user has configured a choice option which is not available. For the large majority of choices, options do not become available or become unavailable, but this is one that does.

    This could/should presumably be a general fix, rather than be tied to this particular choice.

  5. #5
    Developer Veracity's Avatar
    Join Date
    Mar 2006
    Location
    The Unseelie Court
    Posts
    12,000

    Default

    Actually, we already do that. In ChoiceManager.processChoiceAdventure:

    Code:
    			// Make sure that KoL currently allows the chosen choice
    
    			if ( !ChoiceUtilities.optionAvailable( decision, request.responseText ) )
    			{
    				KoLmafia.updateDisplay( MafiaState.ABORT, "Requested choice (" + decision + ") for choice #" + choice + " is not currently available." );
    				ChoiceCommand.printChoices();
    				request.showInBrowser( true );
    				return;
    			}
    So, I require further info. You say "mafia will go into an infinite loop of trying to click that button and failing".
    What were you doing? Adventuring via the GUI? Running a script? Clicking "auto" when you encounter the choice in the Relay Browser?

  6. #6
    Senior Member
    Join Date
    Oct 2017
    Posts
    421

    Default

    (He filed it under Community Support or something and I moved it.)
    Originally Posted by Veracity View Post
    I apologize, I was sure I put it under bug reports, my bad there.
    Actually, we already do that. In ChoiceManager.processChoiceAdventure:

    Code:
                // Make sure that KoL currently allows the chosen choice
    
                if ( !ChoiceUtilities.optionAvailable( decision, request.responseText ) )
                {
                    KoLmafia.updateDisplay( MafiaState.ABORT, "Requested choice (" + decision + ") for choice #" + choice + " is not currently available." );
                    ChoiceCommand.printChoices();
                    request.showInBrowser( true );
                    return;
                }
    So, I require further info. You say "mafia will go into an infinite loop of trying to click that button and failing".
    What were you doing? Adventuring via the GUI? Running a script? Clicking "auto" when you encounter the choice in the Relay Browser?
    Originally Posted by Veracity View Post
    I do 1 turn in lamp factory so mafia auto selects it for adventure. Then I set choice adv in GUI to convert to full lava bottle, then I hit begin button.
    Picture showing steps to reproduce:


    results in:


    Actually, I bet it would also do it with the other craftables in that encounter... let me test it real quick

  7. #7
    Senior Member
    Join Date
    Oct 2017
    Posts
    421

    Default

    Alright, I tested the other options in that NC adventure:
    1,970 carat gold -> thin gold wire
    confirmed infinite loop

    new age healing crystal -> empty lava bottle
    confirmed infinite loop

    glowing new age healing crystal -> crystaline light bulb
    confirmed infinite loop
    Also in the above the name is misspelled, "glowing new age healing crystal" is not a thing that exists, the item is called "glowing new age crystal" without the word healing.

    crystaline light bulb + insulated wire + heat-resistant sheet meta...
    does not actually trigger infinite loop because clicking on it without the materials skips adventure.

    colored globs and fuse do not require any mats so they can't fail.

  8. #8
    Developer Veracity's Avatar
    Join Date
    Mar 2006
    Location
    The Unseelie Court
    Posts
    12,000

    Default

    OK, obviously I misunderstood how KoL handles these choices. There are many places where, if you don't have the necessary condition (materials, whatever), it won't show you the button. Apparently that is not the case here.

    Code:
    crystaline light bulb + insulated wire + heat-resistant sheet meta...
    does not actually trigger infinite loop because clicking on it without the materials skips adventure.
    What do you mean "skips adventure"? exits the choice?

    Code:
    1,970 carat gold -> thin gold wire
    confirmed infinite loop
    
    new age healing crystal -> empty lava bottle
    confirmed infinite loop
    
    glowing new age healing crystal -> crystaline light bulb
    confirmed infinite loop
    So these do not "skip adventure" (exit from choice?). What do they say in browser?

    Looking at Wiki, every option in this choice has a message appropriate to "missing materials" and an item that you get if you have the materials. Are you saying that one (and only one) will exit the choice if you select it without the appropriate materials?

    Code:
    colored globs and fuse do not require any mats so they can't fail.
    According to the Wiki:

    Code:
    Use the glob dyer	
    You don't have any globs. Well, you don't have any appropriate globs.
    
    With viscous lava globs leads to Dyer Maker
    It lists a message for the glob dryer if you don't have viscous globs.

    It's just weird that taking a choice without the materials exits the choice for making the lamp housing (and the glob dyer) but not for the others. I'm not sure we have a mechanism to deal with this.

    Could I see a DEBUG log of the (beginning of) the infinite loop, please?

    Thanks.

  9. #9
    Developer Veracity's Avatar
    Join Date
    Mar 2006
    Location
    The Unseelie Court
    Posts
    12,000

    Default

    OK, never mind. I found our mechanism for dealing with this. For example, in the Spooky Gravy Barrow, if you don't have inexplicably glowing rock, we will not enter the dark part of the cave, even if you are configured to do that.

    I'll code up something similar for the factory floor.

  10. #10
    Developer Veracity's Avatar
    Join Date
    Mar 2006
    Location
    The Unseelie Court
    Posts
    12,000

    Default

    Try revision 19428

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •