New Content - Implemented Deck of Every Card

Veracity

Developer
Staff member
I's certainly implying a lack of care about loss of resources due to manipulation of urls (which of course we do a lot). However, it's missing the point that this could also presumably happen by just clicking twice ?
I submitted take 2 of the bug report explaining how you can submit the URL via chat - which is part of "the native interface for KoL" - and thereby lose player resources in the form of 5 daily draws. No third party programs required.

That should eliminate the "this can't happen in the native interface, so it is unimportant" knee-jerk reaction, but, depending on who takes the report this time, perhaps losing player resources by doing something that is built-in to KoL will be seen as a bad thing.
 

Veracity

Developer
Staff member
I cheated The Emperor this morning. My session log says:

Code:
[493] Deck of Every Card
play IV - The Emperor (45)
Encounter: IV - The Emperor
Encounter: fratty The Emperor
Round 0: Veracity wins initiative!
Round 1: Veracity executes a macro!
Round 1: Veracity attacks!
Round 2: The Emperor takes 238 damage.
Round 2: Tubert runs in circles around your opponent, tangling him up in the nasty child leash and dealing 18 damage.
Round 2: The Emperor takes 18 damage.
Round 2: Veracity wins the fight!
You acquire an item: The Emperor's dry cleaning
You acquire an item: homoerotic frat-paddle
You acquire an item: homoerotic frat-paddle
You acquire an item: frilly skirt
After Battle: Tubert is so excited about Crimbo that he starts doing backflips. (+11 Stats)
After Battle: You gain 10 Muscleboundness
After Battle: You gain 7 Wizardliness
After Battle: You gain 29 Chutzpah
So, it automated it as expected.

Revision 16044 makes "cheat" a synonym for "play" and soups up the options as described in the commit text:

Code:
The "cheat" command is a synonym for the "play" command. options:
play random - play a random card (1 draw)
cheat phylum PHYLUM - cheat (5 draws) a fight with specified phylum
cheat stat STAT - cheat (5 draws) 500 substats of specified stat
cheat buff BUFF - cheat (5 draws) 20 turns of the specified buff, either by name
or by effect: muscle, mysticality, moxie, item drop (or items), initiative
cheat CARD - cheat (5 draws) the specified card name.
PHYLUM, STAT, BUFF, and CARD all use fuzzy matching.
So:

cheat stat muscle

will get you 500 substats of muscle, and

cheat buff muscle

will get you 20 turns of the +200% muscle effect.

Anything else we might want? Maybe items, but what is the advantage of saying:

cheat item knife

rather than simply

cheat knife

... since, in many cases, the card name is the same as the item name? Maybe not for mana, but if you know anything whatsoever about MtG,

cheat island

is OBVIOUSLY going to get you blue mana. And if you don't know MtG, it won't hurt you to learn enough about it to understand the 5 skills and the 5 mana sources. :)
 

Veracity

Developer
Staff member
Choice #1086 is the "Pick a Card" screen for cheating. Option 1 (with an additional field) selects a card from the dropdown. Option 2 says "no, I'm not going to cheat".

Can you walk away from that screen? I.e., just navigate to main.php or whatever. Or do you HAVE to select option 2 in order to leave it?

Since there IS an option 2, I would argue that you should be able to walk away, but that's up to KoL.

If you can't walk away, I need to make our "you already cheated that card today" detection take option 2.
 

Veracity

Developer
Staff member
OK, thanks. Revision 16045 should submit 1086/2 to decline the cheat, if the card you are going for is not on the dropdown.
 

Pantsless

New member
I know who it was who responded to the original bug report (no, it was not me), and I can assure you, knowing his character, that it was intended as a playful/lighthearted response, and not dismissive. I'm sure he regrets how it was taken and will respond to your bug reports differently in the future.

I submitted take 2 of the bug report explaining how you can submit the URL via chat - which is part of "the native interface for KoL" - and thereby lose player resources in the form of 5 daily draws. No third party programs required.

That should eliminate the "this can't happen in the native interface, so it is unimportant" knee-jerk reaction, but, depending on who takes the report this time, perhaps losing player resources by doing something that is built-in to KoL will be seen as a bad thing.

Chat commands which require a macro containing a reference to the player's password hash are not dramatically different than URL manipulation using a third-party program, so bugs involving such chat commands are probably not going to be prioritized any differently than bugs that require mafia to reproduce. However, that doesn't mean that this bug isn't worth fixing, and I am sorry if anyone got that impression. I'll poke CDM next time he has a few minutes to see if he can make failing to cheat at cards not cost 5 draws (but he has been pretty busy lately, so please have patience).

EDIT: Whoops, I see that you guys have already come up with a workaround for Mafia. Well done! I'll still poke CDM about the fix, though.
 
Last edited:

Veracity

Developer
Staff member
Chat commands which require a macro containing a reference to the player's password hash are not dramatically different than URL manipulation using a third-party program, so bugs involving such chat commands are probably not going to be prioritized any differently than bugs that require mafia to reproduce.
I completely agree - but I was trying to eliminate the "this only happens if you use KoLmafia or Greasemonkey" argument. For amusement, I point you to this thread on G_D, where sausssage explains how to include the password hash in the URL that you submit via the /goto chat command - as well as this post where greycat (a known non-user of KoLmafia) shows how to craft a /cheat macro using that technique.

In any case, thank you very much for stepping up and taking this under your wing; my kmail tells me my 2nd bug report was not received well, so this was unexpected. Thank you!
 

bonerici

New member
im trying "use 15 deck of every card"

to get 15 uses of a random card in my breakfast script but can't figure out what the "choice" option is supposed to be. I always get the error message you are in a choice.

How do I breakfast 15 random uses of deck of every card?
 

fronobulax

Developer
Staff member
Since I have not automated drawing 15 cards yet, I just drew them in the relay browser. I noticed that Universal Recovery did did not trigger before or after cards that led to fights. That was not the behavior I expected. Should I change my expectations or is running scripts "around" card draws something we have yet to implement but will?
 

Theraze

Active member
I think the expectation with 'before' is that since automating that would involve turning one server hit (make the cheating choice) to 3 (walk away, <run script>, cheat, make the cheating choice) minimum, that it should be on the user to do any before actions before they start. How you propose to unpack the KoL RNG (besides always 5) to figure out which random cards will lead to fights... no clue. But if you figure it out, I'd imagine that they'd change it. Always 6?

For post-item-fights in the relay browser, just verifying... you do have the preference to run your afterAdventureScript after relay adventuring, right?
 

Pantsless

New member
KoL bug fixed:

Failing to cheat a card (because you already drew it earlier that day) should no longer use up any draws.
 

fronobulax

Developer
Staff member
For post-item-fights in the relay browser, just verifying... you do have the preference to run your afterAdventureScript after relay adventuring, right?

My preferences are set to run post adventure scripts during relay. My problem may be that a recovery script is neither and my post script isn't trying to recover. I agree that KoLmafia cannot determine beforehand whether a card use is an adventure or not, so if it doesn't determine after a card draw that an adventure occurred then I can easily adjust my expectations and just manage this in a script. Thanks.
 

Veracity

Developer
Staff member
We always log using the deck with the current turn counter, for exactly that reason. Yes, it should do restoration before drawing from the deck, just as it does when you are adventuring somewhere.
 

Veracity

Developer
Staff member
And, although I thought I was done submitting code for this project, this is something which affects me, so, what the heck.

Revision 16064 should do "between battle checks" - moods, recovery, mana burning, between battle script, etc. - before submitting a request to use the deck which is known to lead to a fight ("cheat" of a monster) or might lead to a fight ("play random").

I also (I think) set it up so that if you "use" the deck of every card, it will do the same thing as "play random".

Neither of those is tested. You-all will do that. ;)
 
Top