BatMan Relay -- more info, less clicking

Bale

Minion
Advice from a different thread:

It's the change made in r17381. The names of the monsters changed from slime1 - slime5 to: Slime, Slime Hand, Slime Mouth, Slime Construct, and Slime Colossus. I'm not able to test right now but my guess is that editing the script and replacing instances of "slime1" with "Slime", etc.. would get you back in action.
 

zarqon

Well-known member
I fixed it the same day as the change (I use Factroid every day to easily faxputty for factoids) but forgot to upload the changes. Will update when I get home in about 3 hours. It also checks for NOMANUAL now as described by Veracity in the missingManuel thread, so it should be a bit more future-proof.

EDIT: And fixed in r49! Also includes some suggestions to the Adventure Again box for Thanksgarden items.
 
Last edited:

fronobulax

Developer
Staff member
I just ran Factroid, because it was there and Manual Progress needs some edits. I noticed several cases where the information appeared to be incorrect. One example included the Castle basement. It told me it was unavailable and that there were faxtoids available for three Giants. However it is available and viewing manual via Quests showed three faxtoids for all three giants. This character has never ascended so it is possibly that the KoLmafia tracking for Castle has not been set properly/correctly but I am not sure how the faxtoid counts got off.

Feature request - a toggle so unavailable areas and their monsters are not displayed?

Thanks.
 

Lxndr

Member
Code:
The string "use 3643" is not an integer; returning 3643 (BatMan_RE.ash, line 363)
The string "use 357" is not an integer; returning 357 (BatMan_RE.ash, line 363)
The string "use 357" is not an integer; returning 357 (BatMan_RE.ash, line 363)
The string "use 8425" is not an integer; returning 8425 (BatMan_RE.ash, line 363)
The string "use 8489,8425" is not an integer; returning 84898425 (BatMan_RE.ash, line 363)
The string "use 8489,8425" is not an integer; returning 84898425 (BatMan_RE.ash, line 363)
 

zarqon

Well-known member
I just ran Factroid, because it was there and Manual Progress needs some edits.

I just decided to reply to your post, because it was there and I didn't have anyone else to reply to. :p

I do believe your Castle availability issue is due to your mafia preferences never being correctly set. Do a "prefref lastCastle" and see what you get. As for the factoids being out of whack, I've never seen that with the giants -- only with monsters that mafia identifies incorrectly (like translated El Vibrato monsters, whose factoids count for the untranslated ones until you refresh -- it's kinda funny seeing monsters with 6 factoids though). Try hitting the "Refresh Data" button at the bottom and if that doesn't solve it, we can dive into why.

Feature request noted -- a great idea! I've begun implementing it but it's nontrivial so haven't been able to finish it yet. But since I've started, the next update will almost surely include your requested feature. It will still degrade nicely if you don't have CanAdv, since BatMan RE doesn't have a dependency on CanAdv.

@Lxndr: Ah yes, item #84,898,425. Maybe someday, when KoL has been around for centuries.

KoLmafia's recent change to sync to KoL's round number when it detects a difference has led to some undesirable results with BatBrain's actions tracking, since previously only multiple items could happen on the same round (due to funkslinging), but now ANY actions can happen on the same round, which will require a lot more sanity checking -- which I haven't had time to add yet. Until I can, try to avoid anything that causes those "KoLmafia thinks..." messages and you'll be fine.

ETA: The day has arrived. I'm OUT of monsters to faxputty for factoids. Though I think that's partly due to there being fewer monsters in the fax network now, I'm still quite pleased to note that thanks to Factroid! I have been able to faxputty all the available things without much hassle. Still have a fair number of Spelunky monsters left, Dread bosses, pickle factory monsters, and a smattering of orphans. Woohoo!

And on that note, if anyone would like to time prank me in the next day or two, I'd appreciate the factoids. :)
 
Last edited:

fronobulax

Developer
Staff member
lastCastleGroundUnlock=0
lastCastleTopUnlock=0

If I have never ascended does that mean mafia thinks they are not open or that I opened them on my current ascension?
 

zarqon

Well-known member
Finally got around to updating the first post to include a few screenshots and descriptions of BatMan RE's three extensions: Factroid!, Sera, and GROSS.

GROSS is, of course, a secret. Which is why I'm only just now getting around to letting people know it exists.
 

fronobulax

Developer
Staff member
Finally got annoyed enough to revisit this.

For the Castle, KoLmafia checks to see whether something is a valid adventure.

KolAdventure.java does

Code:
this.isValidAdventure = Preferences.getInteger( "lastCastleGroundUnlock" ) == KoLCharacter.getAscensions();

and

Code:
this.isValidAdventure = Preferences.getInteger( "lastCastleTopUnlock" ) == KoLCharacter.getAscensions();

In both examples KoLmafia accepts equality.

In canadv.ash, we have

Code:
case $location[The Castle in the Clouds in the Sky \(Top Floor\)]: if (!qprop("questL10Garbage") && get_property("lastCastleTopUnlock").to_int() < my_ascensions()) return false;

case $location[The Castle in the Clouds in the Sky \(Ground Floor\)]: if (!qprop("questL10Garbage") && get_property("lastCastleGroundUnlock").to_int() < my_ascensions()) return false;

I don't know which is actually incorrect or inconsistent with other usages, but the fact that 0 == 0 is true and 0 < 0 is false explains to me why Factroid is wrong about my ability to access two castle floors.
 

Theraze

Active member
You missed the active part of that comparison. In addition to posting a CanAdv question in the BatManRE thread. But...
Code:
   case $location[The Castle in the Clouds in the Sky \(Top Floor\)]: if (!qprop("questL10Garbage") && get_property("lastCastleTopUnlock").to_int() < my_ascensions()) return false;
   case $location[The Castle in the Clouds in the Sky \(Ground Floor\)]: if (!qprop("questL10Garbage") && get_property("lastCastleGroundUnlock").to_int() < my_ascensions()) return false;
   case $location[The Castle in the Clouds in the Sky \(Basement\)]: return itemcheck($item[S.O.C.K.]);
So working from the end, if we have a sock, we have started the castle.
If we have started the garbage quest and have unlocked the ground and we have a sock, we've unlocked the ground.
If we've started the garbage quest and have unlocked the top and we've unlocked the ground and we have a sock, we've unlocked the top.

So... what problem?
 

fronobulax

Developer
Staff member
You missed the active part of that comparison. In addition to posting a CanAdv question in the BatManRE thread. But...
Code:
   case $location[The Castle in the Clouds in the Sky \(Top Floor\)]: if (!qprop("questL10Garbage") && get_property("lastCastleTopUnlock").to_int() < my_ascensions()) return false;
   case $location[The Castle in the Clouds in the Sky \(Ground Floor\)]: if (!qprop("questL10Garbage") && get_property("lastCastleGroundUnlock").to_int() < my_ascensions()) return false;
   case $location[The Castle in the Clouds in the Sky \(Basement\)]: return itemcheck($item[S.O.C.K.]);
So working from the end, if we have a sock, we have started the castle.
If we have started the garbage quest and have unlocked the ground and we have a sock, we've unlocked the ground.
If we've started the garbage quest and have unlocked the top and we've unlocked the ground and we have a sock, we've unlocked the top.

So... what problem?

Aside from the usual self induced problems...

The post was here because this is the thread for Factroid and running Factroid was what was giving the user visible problem.

Factroid presently reports the Castle is not available to me. Factorid also incorrectly reports that I have only two factoids for the Basement Giants even though looking at them individually in the Manual (via Quests) says I have three.

I modified canadv to prove my point to myself and Factroid still reported the castle as unavailable. I then deleted canadv in expectation that something would automagically realize I had done so and replace the working version with the SVN copy. The Castle then showed available although the Giants are still wrong.

Since I have no more time to deal with this at the moment, I intend to see whether the presence of both canadv and cango is a factor. I want to confirm that Manual is "up to date" to verify that Factroid is not having a refresh problem in my environment.

I believe there is a logic error somewhere, at least for the edge case of a never ascended character. The lastUnlock preferences are zero after the quest was completed and the number of ascensions is also zero.
 

Theraze

Active member
Well, if you had both CanGo and CanAdv installed as svn scripts... it used only CanGo.
Code:
   if (svn_exists("omniquest")) page.append("<script>cancan = 'cango.ash';</script>\n");
    else if (svn_exists("therazekolmafia-canadv")) page.append("<script>cancan = 'canadv.ash';</script>\n");  // tell jQuery which script to Ajax to
That's what the ordering says. :)

Per CanAdv, as long as mafia itself knows and has marked your castle quest as completed, it should have the castle unlocked. A "refresh quest" should do so, or you could just look at the questlog. Either way.
Per current versions of CanGo... no clue. :) Don't think I have OQ currently installed as an svn script. Don't think it's officially released, though several of Zarqon's other scripts reference it.
 

zarqon

Well-known member
Cango and CanAdv are mostly identical these days. And their code for the castle is, in fact, identical. Having either or both ought to work as intended.

Fronobulax, it does sound like there's probably an edge case to do with your character never having ascended. I had several characters who didn't ascend for years, and scripts started doing odd things as quests were being revamped, since the characters were in an odd state of having completed the quests the old way. Do you even have a S.O.C.K.? If not, that would be the problem.

Also, is the number of giant factoids still incorrect after clicking "Refresh Manuel Data" at the bottom of the Factroid! page?
 

fronobulax

Developer
Staff member
I discovered the refresh button and the fact that the data was several months old explained the Giant problem. I could argue that having the button on the bottom of a very long page is not the best user interface design and caching Manual data was unexpected :)

I isolated the CanAdv issue and posted in that thread.
 

zarqon

Well-known member
Glad we're getting you all sorted.

Factroid!'s storing your factoid data in a file is clearly explained in the first post. At least, I thought it was clearly explained. :)
 

fronobulax

Developer
Staff member
Factroid!'s storing your factoid data in a file is clearly explained in the first post. At least, I thought it was clearly explained. :)

meaning that if nothing has changed it doesn't need to re-scrape Manuel

But something had changed but I didn't recall that it was MY job to trigger the update. This is a philosophy discussion, but the vast majority of cached data that I am aware of in KoL land uses an expiration date and will automatically refresh old data even if there is no reason other than data age to do so. Since other actions I took were refreshing mafia's understanding of Manual data it never occurred to me that Factroid! would not be aware that mafia's knowledge was newer that it's own knowledge and update accordingly.

No longer a problem. I will just always manually refresh Factroid! before I do anything with it.
 

zarqon

Well-known member
If you're using a BatBrain-powered script to handle your combats, theoretically you'll never need to hit that button. If you're acquiring factoids outside my script universe (hehe), hitting the button is advisable in the event that Factroid! didn't scrape Manuel when it loaded.
 

fronobulax

Developer
Staff member
If you're using a BatBrain-powered script to handle your combats, theoretically you'll never need to hit that button. If you're acquiring factoids outside my script universe (hehe), hitting the button is advisable in the event that Factroid! didn't scrape Manuel when it loaded.

That's part of it. WHAM stopped making sense for that character so BatBrain is not involved.
 

Theraze

Active member
WHAM stopped making sense for that character so BatBrain is not involved.

For curiosity's sake, have you tried SimpleSmack lately? I find that for aftercore, it gives better and faster results than WHAM. For some runs as well, but since it doesn't do the niche hits as well, the RAM and meatwall both get WHAM even on otherwise SS runs.
 
Top