New Content Grey Goo

Erosion

Member
One more thing, Mafia thinks you finish ronin at 1000 turns played, but Goo ronin is actually 9999. This won't ever pop up in competitive play, but has some implications for heavy-turngen lazy runs.
Was this an issue for Pokefam (which has infinite ronin)? Might need some kind of new feature to account for Pokefam, Goo, and any future paths where ronin isn't 1000.
 

Veracity

Developer
Staff member
One more thing, Mafia thinks you finish ronin at 1000 turns played, but Goo ronin is actually 9999. This won't ever pop up in competitive play, but has some implications for heavy-turngen lazy runs.
Near as I can tell, we already support that. At least, it worked fine for me when I did my (single) Goocore run. Not that I spent anything close to 1000 turns on that, but showed the correct amount of remaining Ronin on the compact side pane.

Code:
	public static final boolean inRonin()
	{
		return KoLCharacter.inRonin;
	}

	public static int initialRonin()
	{
		return KoLCharacter.inGoocore() ? 10000 : 1000;
	}

	public static int roninLeft()
	{
		return KoLCharacter.inRonin ? ( KoLCharacter.initialRonin() - KoLCharacter.getCurrentRun() ) : 0;
	}
What did you do (or see) that indicated that KoLmafia thought you were out of Ronin at 1000 turns?

Was this an issue for Pokefam (which has infinite ronin)? Might need some kind of new feature to account for Pokefam, Goo, and any future paths where ronin isn't 1000.
I wasn't doing Normal runs for anything except the Standard rewards, back then, so I never saw (or heard) any mention of that.
 

Veracity

Developer
Staff member
Was this an issue for Pokefam (which has infinite ronin)?
Looking at the code, in Pokefam, the compact sidepane says "(Endless Ronin)" .

Might need some kind of new feature to account for Pokefam, Goo, and any future paths where ronin isn't 1000.
The only place KoLmafia exposes how many turns of ronin you have left is the compact side pane.
ASH does not have a function to return that value.

Other than that, KoLmafia only checks if you are in ronin, not how many turns you have left of it.
It determines that (boolean) value from the CharSheet or from api.php, which tells how many turns of ronin you have left.

What kind of new Feature do you envision? Do you want an ASH function to return ronin left? What would that give you that the current can_interact() function doesn't?
 

Erosion

Member
What did you do (or see) that indicated that KoLmafia thought you were out of Ronin at 1000 turns?
Once I hit 1000 turns played, maximizer would start giving me suggestions to pull arbitrary things to increase stats even when my remaining pulls was 0. In addition, Guide would start telling me about all the daily resources I would supposedly have, had I not been in standard restrictions/ronin.
I'm on 20460.
 

Veracity

Developer
Staff member
OK, I found the issue - and it affects scripts, as well. We decide that a character "can interact" - vis KoLCharacter.canInteract(), which is also used by the ASH can_interact() function - when we refresh the charpane of api.php by comparing your turns this run via the length of Ronin - but that was hardcoded to be 1000, rather than using the new "KoLCharacter.initialRonin()" function I added when Grey Goo first came out.

Revision 20472 fixes this.
 
Top