New Content - Implemented PVP Revamp

Is there a property for the hippy stone that I could use as a switch in my logoff script to maximize pvp fights rather than advs? Could we get one?
 

Bale

Minion
That would be nice! I'm posting a feature request.

(It doesn't seem like default functionality to implement the PvP revamp so I'm not cluttering this thread with it. That's my call since sometimes these threads get a bazillion feature requests and become impossible to complete.)
 
Last edited:

lostcalpolydude

Developer
Staff member
The steal command now works. Specify what you want to take, and optionally specify a stance. It looks like I got flowers working along the way (I could make swagger another term that runs the same command). It's probably reasonable to get attack/pvp working, but if no one cares about picking their target then I might just rename steal to pvp and remove the other command.

I think I'm going to remove the Flower Hunter frame, with the minis changing every 2 months. Unless someone actually wants it still...

There's still a good amount of page parsing left. In the end, PeeVPeeRequest should handle everything and PvpRequest can be deleted.
 

Bale

Minion
Why did you choose the name steal? It's main point is that it does random PvP for swagger and it won't necessarily steal stuff.
 

lostcalpolydude

Developer
Staff member
That name already existed, and it previously had the option to "steal" flowers or dignity (in other words, not really steal anything). It was the only one where the same syntax as before could be used and the result would match the most common current use of pvp. I figured I would leave decisions about permanently removing functionality for another day.
 

Veracity

Developer
Staff member
I added the Swagger Shop coinmaster a while ago. There are a few bugs:

- You cannot spend swagger in Ronin or Hardcore.
- When I go to the Creatable panel of the Item Manager, I see, for example:
puppet strings (2,147,483,646)

Considering that they cost 100 swagger and I only have 630 swagger - aside from being in Hardcore - that seems incorrect.
 

lostcalpolydude

Developer
Staff member
10997 updates swagger after you attack. I think that all the necessary page parsing is done now. Remaining steps:

*Coinmaster stuff
*Delete (or update, but probably not) the Flower Hunter window
*Get a command working where you can provide a list of targets. Go for fame while in run, items in aftercore?
 

Veracity

Developer
Staff member
10997 updates swagger after you attack. I think that all the necessary page parsing is done now.
Thanks.

Revision 11001 adds the call to update the CoinmastersFrame when you gain swagger.

I noticed something today doing my PVP fights. I did them at the beginning of the day. Probably not the wisest idea, but it was a tradeoff between using the expensive-ish buffs I had up and leveling up some more, and I opted for the former. In any case, sadly, I lost some fights. Probably inevitable; all those people I was rolling right over when I was L32 are still up there, but I had just completed a Bugbear Invasion ascension and was back to L14, and, for whatever reason, the "random opponent" algorithm ended up picking some of the bigger guys...

When I lost fights, I lost substats. My question: do we notice that loss?

I ask because I then proceeded to do 101 Basement levels (not a bad way to level, even at L14) and near the end, the maximizer tried to equip Hodgeman's bow-tie - and KoL said "You have to have 200 Mysticality to equip that."

KoLmafia thought I had 200 Myst, but KoL said I had 198 - and KoL wins.

Other than my PVP-lost-stats not being accounted for, I can't explain the discrepancy. I've never seen a lack of synchronization like that before.

*Coinmaster stuff
What is this?

*Delete (or update, but probably not) the Flower Hunter window
Never looked at it. Is it really tied to the old system?

*Get a command working where you can provide a list of targets. Go for fame while in run, items in aftercore?
Considering that flowers are still a mini, I'm going for flowers, both in-run and in aftercore. I'm actually winning that mini some of the time now. Maybe it's time to switch to fame...
 

lostcalpolydude

Developer
Staff member
When I lost fights, I lost substats. My question: do we notice that loss?
Apparently not. Last time I looked at it, I thought I would have to do something fancy stuff to get ResultProcessor to parse the page in addition to PeeVPeeRequest. However, I just realized that ResultProcessor is already parsing stuff because "You gain a little swagger" is printed after every fight (automated or relay). The message is in the form of
lostcalpolydude lost 2 Fortitude.
so I think a check for
KoLCharacter.getUserName() + " lost "
in ResultProcessor.processNextResult() and AdventureResult.parseResult() would do it. Since that code is called many times in a typical session, I wonder if the check for pvp stat loss should be its own function in PeeVPeeRequest instead. I'm not really sure which is better for performance, code maintainability, and such.

Either way, my statement of page parsing being finished is incorrect.

What is this?
Based on your previous post, I assumed there was still stuff to do without really checking.

Never looked at it. Is it really tied to the old system?
The primary use is finding people based on criteria relevant to the current minis, I think. Even if most of the minis could have relevant information displayed there (verbosity, current fame (only indirectly related to a mini), and slimy eyeballs are the only ones that could be checked), it will change every 2 months. But mostly, who is using search to find specific people to attack? It seems like you either have targets in mind for some reason (I don't pretend to understand the club mentality) or you want to attack random targets to maximize swagger.

Considering that flowers are still a mini, I'm going for flowers, both in-run and in aftercore. I'm actually winning that mini some of the time now. Maybe it's time to switch to fame...
I tried to imagine what someone specifying their target(s) would want, since I didn't really feel like adding a way to specify what to take. I expect that both fame and flowers will rotate out as minis at least sometimes.
 
Last edited:

Veracity

Developer
Staff member
Apparently not. Last time I looked at it, I thought I would have to do something fancy stuff to get ResultProcessor to parse the page in addition to PeeVPeeRequest. However, I just realized that ResultProcessor is already parsing stuff because "You gain a little swagger" is printed after every fight (automated or relay). The message is in the form of so I think a check for in ResultProcessor.processNextResult() and AdventureResult.parseResult() would do it. Since that code is called many times in a typical session, I wonder if the check for pvp stat loss should be its own function in PeeVPeeRequest instead. I'm not really sure which is better for performance, code maintainability, and such.
We also correctly detect flowers you pick, so, yeah.

I think we should put PVP-specific parsing into PeeVPeeRequest.parseResponse.

Based on your previous post, I assumed there was still stuff to do without really checking.
Oh, right. I forgot about that.

I put in a check for Hardcore/Ronin into SwaggerRequest.run(). I considered putting it into SwaggerRequest.accessible() so that the options to buy stuff with swagger in the CoinMastersFrame Swagger Shop card would be greyed out, but that also disabled the ability to "visit" - which was needed to check/update your swagger count. Perhaps I need another method for shops which you can visit but cannot buy from.

And there is the bug with "puppet strings (2,147,483,646)" on the Creatable panel...

The primary use is finding people based on criteria relevant to the current minis, I think. Even if most of the minis could have relevant information displayed there (verbosity, current fame (only indirectly related to a mini), and slimy eyeballs are the only ones that could be checked), it will change every 2 months. But mostly, who is using search to find specific people to attack? It seems like you either have targets in mind for some reason (I don't pretend to understand the club mentality) or you want to attack random targets to maximize swagger.
I agree with that. We do not want to have to update every two months and yes, I suspect that attacking a specific player will be used by people who have specific targets in mind, rather than looking for, essentially, random-but-named prey in order to get less swagger.

I tried to imagine what someone specifying their target(s) would want, since I didn't really feel like adding a way to specify what to take. I expect that both fame and flowers will rotate out as minis at least sometimes.
Yeah, I don't really care. I don't expect I'll ever attack a specific target.
 

Veracity

Developer
Staff member
Additional new content from this:

- fettucini épines Inconnu recipe teaches you the recipe for fettucini épines Inconnu.
-- What is the recipe?
-- item number/etc. for fettucini épines Inconnu?
-- given the item number, add unknownrecipeXXX setting

-slap and slap again recipe teaches you the recipe for slap and slap again
-- What is the recipe?
-- item number/etc. for slap and slap again?
-- given the item number, add unknownrecipeXXX setting

-cursed microwave lets you summon 5 gunpowder burritos per day
- breakfast?
- item number, etc. for gunpowder burrito

-cursed pony keg lets you summon 5 beery blood per day
- breakfast?
- item number, etc. for beery blood

-How to Hold a Grudge gives you a skill: Chip on Your Shoulder
- Passive skill, #81, according to Wiki, automatically HP

-How to Tolerate Jerks gives you a skill: Thick-Skinned
- Passive skill, #80, according to Wiki, automatically HP
 

Theraze

Active member
The new fettucini item has shown up in the restaurant twice since it was put in... most recently yesterday. I'll post if I see it again and the item id is still unknown.
 

lostcalpolydude

Developer
Staff member
Stat loss is tracked now (I was able to watch my stats decrease as fights were used).

It's probably worth having pvp fights gained from consuming pvp foods tracked. Then maybe a function could be added to retrieve that value (which already exists, but is currently only updated when parsing the fight page).
 

lostcalpolydude

Developer
Staff member
All of the old code should be working or removed now.

I tried looking at the coinmaster briefly, but this result confused me:
> ash get_ingredients($item[ferret bait])

Returned: aggregate int [item]
4-dimensional guitar => 1
I can't find anything in the code that could possibly explain it. And for comparison:
> ash get_ingredients($item[huggler radio])

Returned: aggregate int [item]
none => 50
 

Veracity

Developer
Staff member
> ash get_ingredients($item[ferret bait])

Returned: aggregate int [item]
4-dimensional guitar => 1
You can buy a ferret bait at the Dimemaster for 1 dime. The 4-dimensional guitar uniquely matches a dime, it seems.
Huh.

The huggler radio, hoever costs 50 swagger. Nothing matches swagger.

I think get_ingredients() should only return things whose ingredients are actual items. A "dime" and "swagger" are tokens which are not items.
 

Veracity

Developer
Staff member
OK, revision 11074 has a few tweaks for concoctions made via Coinmaster purchase using non-item tokens:

- get_ingredients( item ) returns an empty array for such items.
- ConcoctionDatabase.refreshConcoctions() calls Concoction.calculate2() and calculate3(), as always, but Concoction.canMake() now has special code for Coinmaster mixing methods, which should work whether the token is an actual item or not.
 

Veracity

Developer
Staff member
I eventually got a mood set up for PVP fights that I like. I like seeing the [mood pvp] in the charpane. I can click on it, when it's time to refresh it.

I'd like it if KoLmafia would automatically refresh my mood, as needed, when I press the "Fight!" button in the relay browser, just as it automatically does moods and other between battle actions when you are about to have an adventure or a fight in the Relay Browser and have "Run moods before manual adventures" (relayMaintainsEffects) selected.

Maybe I'm the only one who still does fites by hand; I assume others are using lost's updates to the CLI PVP commands. Those would count as automation, I think. Do they maintain your mood for you?
 

Donavin69

Member
My mood isn't maintained during PvP (auto or manual), I just always get enough buffs for all of my fights...
 

Veracity

Developer
Staff member
I just always get enough buffs for all of my fights...
You are explaining what you do to work around KoLmafia's deficiency, rather than explaining why we shouldn't fix it. :)

I'd rather let the computer figure that out for me, rather than having to calculate and execute "I need to acquire X of that item to get 55 turns, and Y of that one, I need to cast that set of skills Z times, and that set of skills W times.
 
Top