thank you for doing this study and proving my point about wonder picks (what you call miraculous draw). Also really hopeful with some of the other things you stated! My most desired and I think the most helpful for everyone would be visible wonder picks.
here is a video where I manage to decode the protobuff packets entering the game. (I speak French on it but in summary I just explain that we see the ids that change when my requests return)
what I can tell you:
- it is not possible to do an xray of the cards because they are indeed already chosen when selecting the type of packet.
- it is likely that we can do an xray for the miraculous draws(I don't know what it's called in English but I'm talking about the thing that lets you choose a card from 5), but since I do not yet have the outgoing packets to decode I do not know yet
- it is quite possible to create bots by resimulating the manual connection with the protobuff
- it is possible to create a private server (complicated for the management of the fights on the backend side)
- it is probably possible to create an auto win script when playing against an AI, but I am not sure yet
here is a video where I manage to decode the protobuff packets entering the game. (I speak French on it but in summary I just explain that we see the ids that change when my requests return)
what I can tell you:
- it is not possible to do an xray of the cards because they are indeed already chosen when selecting the type of packet.
- it is likely that we can do an xray for the miraculous draws(I don't know what it's called in English but I'm talking about the thing that lets you choose a card from 5), but since I do not yet have the outgoing packets to decode I do not know yet
- it is quite possible to create bots by resimulating the manual connection with the protobuff
- it is possible to create a private server (complicated for the management of the fights on the backend side)
- it is probably possible to create an auto win script when playing against an AI, but I am not sure yet
That sounds a lot like the Pokemon Go tools like PGSharp and all that, which are awesome.It will be great seeing mods ONLY FOR PVE (Auto-Win and All Missions Done) and WONDERPICKS... PvP can be risky, since we can be banned...
Can you link me to it?Reminds me of early days Pokemon Go Bots. I miss those days, that's for sure.
I have a feeling you can enable auto-play even in PvP by simply setting the auto play boolean to true
Update: actually just checked github, there's already a bot running via adb with android emulators. idk if I'm allowed to link it here
{
"game": {
"origin": {
"match": {
"player1": {
"battlePlayerId": {
"value": 1
},
"name": "ITS MY NAME SORRYYYY #PRIVATE hihi",
"deck": {
"cards": [
{
"id": {
"value": 1000
},
"masterCardId": {
"value": "PK_10_001370_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1001
},
"masterCardId": {
"value": "PK_10_001370_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1002
},
"masterCardId": {
"value": "PK_10_001510_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1003
},
"masterCardId": {
"value": "PK_10_001510_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1004
},
"masterCardId": {
"value": "PK_10_001550_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1005
},
"masterCardId": {
"value": "PK_10_001600_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1006
},
"masterCardId": {
"value": "PK_10_001600_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1007
},
"masterCardId": {
"value": "PK_10_001380_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1008
},
"masterCardId": {
"value": "PK_10_001500_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1009
},
"masterCardId": {
"value": "PK_10_001610_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1010
},
"masterCardId": {
"value": "PK_10_001860_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1011
},
"masterCardId": {
"value": "PK_10_001890_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1012
},
"masterCardId": {
"value": "PK_10_001890_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1013
},
"masterCardId": {
"value": "PK_10_001900_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1014
},
"masterCardId": {
"value": "PK_10_001930_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1015
},
"masterCardId": {
"value": "PK_10_001980_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1016
},
"masterCardId": {
"value": "TR_90_000030_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1017
},
"masterCardId": {
"value": "TR_90_000030_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1018
},
"masterCardId": {
"value": "TR_90_000040_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 1019
},
"masterCardId": {
"value": "TR_90_000040_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
],
"energyTypes": [
"ENERGY_TYPE_FIGHTING"
],
"supply": {
"battleCoinId": "COIN_100160_MONSTERBALL"
}
},
"appPlayerId": "0255cbae-5fd8-40e4-8759-8cb2fe8e8dda"
},
"player2": {
"battlePlayerId": {
"value": 2
},
"name": "Adversaire",
"deck": {
"cards": [
{
"id": {
"value": 2000
},
"masterCardId": {
"value": "PK_10_001890_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2001
},
"masterCardId": {
"value": "PK_10_001890_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2002
},
"masterCardId": {
"value": "PK_10_001910_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2003
},
"masterCardId": {
"value": "PK_10_001930_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2004
},
"masterCardId": {
"value": "TR_90_000030_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2005
},
"masterCardId": {
"value": "PK_10_001990_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2006
},
"masterCardId": {
"value": "TR_90_000030_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2007
},
"masterCardId": {
"value": "PK_10_001860_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2008
},
"masterCardId": {
"value": "PK_10_001930_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2009
},
"masterCardId": {
"value": "PK_10_001860_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2010
},
"masterCardId": {
"value": "PK_10_000210_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2011
},
"masterCardId": {
"value": "PK_10_000290_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2012
},
"masterCardId": {
"value": "PK_10_000270_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2013
},
"masterCardId": {
"value": "PK_10_000270_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2014
},
"masterCardId": {
"value": "PK_10_000210_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2015
},
"masterCardId": {
"value": "PK_10_000140_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2016
},
"masterCardId": {
"value": "PK_10_000140_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2017
},
"masterCardId": {
"value": "PK_10_000020_00"
},
"viewInfo": {
"cardSkinId": {
"value": "KIRA_EFFECT_100030_PokeBall_NON"
}
}
},
{
"id": {
"value": 2018
},
"masterCardId": {
"value": "PK_10_000010_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
{
"id": {
"value": 2019
},
"masterCardId": {
"value": "PK_10_000290_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
],
"energyTypes": [
"ENERGY_TYPE_GRASS"
],
"supply": {}
},
"appPlayerId": "2"
}
},
"regulation": {
"finalTurnNumber": 50,
"prize": {
"changeWinningPrize": true,
"winningPrize": {
"value": 3
}
},
"firstTurnPlayer": {}
},
"random": {
"seed": "11583496663189996424"
}
},
"store": {
"turn": {
"phase": {
"step": {
"attackPhaseAttackJudgementStepInfo": {},
"attackDamageCalculationStepInfo": {
"publicBasicDamage": {
"amount": {}
},
"plusDamageAmount": {},
"originalAttackDamageOverride": {
"overrideValue": {}
},
"calculationResult": {
"damage": {}
},
"originalAttackReferenceOverride": {
"overrideValue": {}
},
"appliedResult": {
"damage": {}
}
},
"attackPhaseCommonStepInfo": {
"attackId": {},
"childAttackId": {}
},
"pokemonCheckupSpecialConditionStepInfo": {
"checkPlayer": {}
}
},
"actionPhaseInfo": {
"determineAttackInfo": {
"actionExpectedAttackId": {}
}
}
},
"flags": {
"usedSupport": {}
},
"turnPlayerId": {},
"actionRequirement": {
"causeLogic": {
"battleObjectId": {},
"cardId": {},
"attackId": {},
"abilityId": {},
"parentAttackId": {}
}
},
"procedure": {
"procedureState": "PROCEDURE_STATE_WILL_EXECUTE",
"knockedOutCheckInfo": {
"player1NextActive": {},
"player2NextActive": {}
}
},
"prevTurnPlayer": {}
},
"players": {
"player1": {
"id": {
"value": 1
},
"hand": {},
"library": {},
"discardPile": {
"energies": {}
},
"energyZone": {},
"prize": {},
"libraryRevealment": {},
"handRevealment": {},
"flags": {}
},
"player2": {
"id": {
"value": 2
},
"hand": {},
"library": {},
"discardPile": {
"energies": {}
},
"energyZone": {},
"prize": {},
"libraryRevealment": {},
"handRevealment": {},
"flags": {}
}
},
"field": {
"player1Field": {
"ownerId": {
"value": 1
},
"activeField": {
"owner": {
"value": 1
},
"activePokemon": {
"pokemon": {
"id": {},
"controller": {},
"damage": {},
"attachedEnergySet": {},
"willKnockedOutFrom": {},
"objectFlags": {}
}
},
"faceDownCard": {
"card": {
"id": {},
"controller": {},
"origin": {
"id": {},
"masterCardId": {},
"viewInfo": {
"cardSkinId": {}
}
}
}
}
},
"benchFields": [
{
"owner": {
"value": 1
},
"benchPokemon": {
"pokemon": {
"id": {},
"controller": {},
"damage": {},
"attachedEnergySet": {},
"willKnockedOutFrom": {},
"objectFlags": {}
}
},
"faceDownCard": {
"card": {
"id": {},
"controller": {},
"origin": {
"id": {},
"masterCardId": {},
"viewInfo": {
"cardSkinId": {}
}
}
}
}
},
{
"owner": {
"value": 1
},
"benchPokemon": {
"pokemon": {
"id": {},
"controller": {},
"damage": {},
"attachedEnergySet": {},
"willKnockedOutFrom": {},
"objectFlags": {}
}
},
"faceDownCard": {
"card": {
"id": {},
"controller": {},
"origin": {
"id": {},
"masterCardId": {},
"viewInfo": {
"cardSkinId": {}
}
}
}
}
},
{
"owner": {
"value": 1
},
"benchPokemon": {
"pokemon": {
"id": {},
"controller": {},
"damage": {},
"attachedEnergySet": {},
"willKnockedOutFrom": {},
"objectFlags": {}
}
},
"faceDownCard": {
"card": {
"id": {},
"controller": {},
"origin": {
"id": {},
"masterCardId": {},
"viewInfo": {
"cardSkinId": {}
}
}
}
}
}
]
},
"player2Field": {
"ownerId": {
"value": 2
},
"activeField": {
"owner": {
"value": 2
},
"activePokemon": {
"pokemon": {
"id": {},
"controller": {},
"damage": {},
"attachedEnergySet": {},
"willKnockedOutFrom": {},
"objectFlags": {}
}
},
"faceDownCard": {
"card": {
"id": {},
"controller": {},
"origin": {
"id": {},
"masterCardId": {},
"viewInfo": {
"cardSkinId": {}
}
}
}
}
},
"benchFields": [
{
"owner": {
"value": 2
},
"benchPokemon": {
"pokemon": {
"id": {},
"controller": {},
"damage": {},
"attachedEnergySet": {},
"willKnockedOutFrom": {},
"objectFlags": {}
}
},
"faceDownCard": {
"card": {
"id": {},
"controller": {},
"origin": {
"id": {},
"masterCardId": {},
"viewInfo": {
"cardSkinId": {}
}
}
}
}
},
{
"owner": {
"value": 2
},
"benchPokemon": {
"pokemon": {
"id": {},
"controller": {},
"damage": {},
"attachedEnergySet": {},
"willKnockedOutFrom": {},
"objectFlags": {}
}
},
"faceDownCard": {
"card": {
"id": {},
"controller": {},
"origin": {
"id": {},
"masterCardId": {},
"viewInfo": {
"cardSkinId": {}
}
}
}
}
},
{
"owner": {
"value": 2
},
"benchPokemon": {
"pokemon": {
"id": {},
"controller": {},
"damage": {},
"attachedEnergySet": {},
"willKnockedOutFrom": {},
"objectFlags": {}
}
},
"faceDownCard": {
"card": {
"id": {},
"controller": {},
"origin": {
"id": {},
"masterCardId": {},
"viewInfo": {
"cardSkinId": {}
}
}
}
}
}
]
}
},
"result": {
"winner": {},
"concededPlayer": {}
},
"logicStore": {},
"random": {},
"continuousEffectStore": {
"lastId": {}
},
"activatingTrainer": {
"id": {},
"controller": {},
"origin": {
"id": {},
"masterCardId": {},
"viewInfo": {
"cardSkinId": {}
}
}
},
"battleObjectStore": {
"lastPublishedId": {}
},
"battlePreparation": {
"firstTurnPlayer": {},
"prepareFieldInfo": {}
},
"cardStore": {}
},
"meta": {
"version": "2023060501"
}
},
"actions": [
{
"playerId": {
"value": 2
},
"prepareActiveField": {
"active": {
"value": 2018
}
}
},
{
"playerId": {
"value": 2
},
"endPrepareField": {}
},
{
"playerId": {
"value": 1
},
"prepareActiveField": {
"active": {
"value": 1015
}
}
},
{
"playerId": {
"value": 1
},
"prepareBenchField": {
"bench": {
"position": 1,
"cardId": {
"value": 1002
}
}
}
},
{
"playerId": {
"value": 1
},
"endPrepareField": {}
},
{
"playerId": {
"value": 2
},
"playPokemon": {
"bench": {
"cardId": {
"value": 2001
}
}
}
},
{
"playerId": {
"value": 2
},
"playPokemon": {
"bench": {
"position": 1,
"cardId": {
"value": 2019
}
}
}
},
{
"playerId": {
"value": 2
},
"playPokemon": {
"bench": {
"position": 2,
"cardId": {
"value": 2011
}
}
}
},
{
"playerId": {
"value": 2
},
"determineTurnEnd": {}
},
{
"playerId": {
"value": 1
},
"attachEnergyFromZone": {
"pokemon": {
"value": 1
}
}
},
{
"playerId": {
"value": 1
},
"determineAttack": {
"attackId": {
"value": "PK_001980_ATK_01"
}
}
},
{
"playerId": {
"value": 2
},
"attachEnergyFromZone": {
"pokemon": {
"value": 3
}
}
},
{
"playerId": {
"value": 2
},
"determineTurnEnd": {}
},
{
"playerId": {
"value": 1
},
"attachEnergyFromZone": {
"pokemon": {
"value": 2
}
}
},
{
"playerId": {
"value": 1
},
"determineAttack": {
"attackId": {
"value": "PK_001980_ATK_01"
}
}
},
{
"playerId": {
"value": 2
},
"selectBenchOnKnockedOut": {
"bench": {
"value": 4
}
}
},
{
"playerId": {
"value": 2
},
"playPokemon": {
"bench": {
"cardId": {
"value": 2016
}
}
}
},
{
"playerId": {
"value": 2
},
"attachEnergyFromZone": {
"pokemon": {
"value": 4
}
}
},
{
"playerId": {
"value": 2
},
"determineAttack": {
"attackId": {
"value": "PK_001890_ATK_01"
}
}
},
{
"playerId": {
"value": 1
},
"attachEnergyFromZone": {
"pokemon": {
"value": 2
}
}
},
{
"playerId": {
"value": 1
},
"determineAttack": {
"attackId": {
"value": "PK_001980_ATK_01"
}
}
},
{
"playerId": {
"value": 2
},
"selectBenchOnKnockedOut": {
"bench": {
"value": 7
}
}
},
{
"playerId": {
"value": 2
},
"playPokemon": {
"bench": {
"cardId": {
"value": 2015
}
}
}
},
{
"playerId": {
"value": 2
},
"attachEnergyFromZone": {
"pokemon": {
"value": 7
}
}
},
{
"playerId": {
"value": 2
},
"determineTurnEnd": {}
},
{
"playerId": {
"value": 1
},
"playPokemon": {
"bench": {
"cardId": {
"value": 1014
}
}
}
},
{
"playerId": {
"value": 1
},
"attachEnergyFromZone": {
"pokemon": {
"value": 9
}
}
},
{
"playerId": {
"value": 1
},
"determineAttack": {
"attackId": {
"value": "PK_001980_ATK_01"
}
}
},
{
"playerId": {
"value": 2
},
"attachEnergyFromZone": {
"pokemon": {
"value": 7
}
}
},
{
"playerId": {
"value": 2
},
"determineAttack": {
"attackId": {
"value": "PK_000140_ATK_01"
}
}
},
{
"playerId": {
"value": 1
},
"determineAttack": {
"attackId": {
"value": "PK_001980_ATK_01"
}
}
}
]
}
Not like I've been saying that since the beginning and yet you have uneducated people saying I'm wrong.I'm making good progress on the reverse of the app, I don't particularly want to share everything I found for the moment but what I can give you as information is that the wonder picks are decided by clicking on the card, and it's the server that chooses a random card for you between the 5, in short it doesn't matter what the card is it doesn't change anything, so no xray or tricks to do with that
View attachment 684402
I can now decode incoming and outgoing requests, what you can see on my screen is that when you click on a card the client sends the server the id of the pool you selected and it responds with the id of a card (card ids start with PK_)
What I can also tell you is that it is HIGHLY likely that fights against bots can make an instant win. Because the server does not manage the fight, it is the phone that sends the logs (only when it is fights against bots)
I know it might please some people to see how it's done, so here's a log excerpt from a finished fight:
JSON:{ "game": { "origin": { "match": { "player1": { "battlePlayerId": { "value": 1 }, "name": "ITS MY NAME SORRYYYY #PRIVATE hihi", "deck": { "cards": [ { "id": { "value": 1000 }, "masterCardId": { "value": "PK_10_001370_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1001 }, "masterCardId": { "value": "PK_10_001370_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1002 }, "masterCardId": { "value": "PK_10_001510_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1003 }, "masterCardId": { "value": "PK_10_001510_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1004 }, "masterCardId": { "value": "PK_10_001550_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1005 }, "masterCardId": { "value": "PK_10_001600_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1006 }, "masterCardId": { "value": "PK_10_001600_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1007 }, "masterCardId": { "value": "PK_10_001380_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1008 }, "masterCardId": { "value": "PK_10_001500_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1009 }, "masterCardId": { "value": "PK_10_001610_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1010 }, "masterCardId": { "value": "PK_10_001860_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1011 }, "masterCardId": { "value": "PK_10_001890_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1012 }, "masterCardId": { "value": "PK_10_001890_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1013 }, "masterCardId": { "value": "PK_10_001900_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1014 }, "masterCardId": { "value": "PK_10_001930_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1015 }, "masterCardId": { "value": "PK_10_001980_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1016 }, "masterCardId": { "value": "TR_90_000030_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1017 }, "masterCardId": { "value": "TR_90_000030_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1018 }, "masterCardId": { "value": "TR_90_000040_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1019 }, "masterCardId": { "value": "TR_90_000040_00" }, "viewInfo": { "cardSkinId": {} } } ], "energyTypes": [ "ENERGY_TYPE_FIGHTING" ], "supply": { "battleCoinId": "COIN_100160_MONSTERBALL" } }, "appPlayerId": "0255cbae-5fd8-40e4-8759-8cb2fe8e8dda" }, "player2": { "battlePlayerId": { "value": 2 }, "name": "Adversaire", "deck": { "cards": [ { "id": { "value": 2000 }, "masterCardId": { "value": "PK_10_001890_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2001 }, "masterCardId": { "value": "PK_10_001890_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2002 }, "masterCardId": { "value": "PK_10_001910_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2003 }, "masterCardId": { "value": "PK_10_001930_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2004 }, "masterCardId": { "value": "TR_90_000030_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2005 }, "masterCardId": { "value": "PK_10_001990_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2006 }, "masterCardId": { "value": "TR_90_000030_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2007 }, "masterCardId": { "value": "PK_10_001860_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2008 }, "masterCardId": { "value": "PK_10_001930_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2009 }, "masterCardId": { "value": "PK_10_001860_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2010 }, "masterCardId": { "value": "PK_10_000210_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2011 }, "masterCardId": { "value": "PK_10_000290_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2012 }, "masterCardId": { "value": "PK_10_000270_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2013 }, "masterCardId": { "value": "PK_10_000270_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2014 }, "masterCardId": { "value": "PK_10_000210_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2015 }, "masterCardId": { "value": "PK_10_000140_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2016 }, "masterCardId": { "value": "PK_10_000140_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2017 }, "masterCardId": { "value": "PK_10_000020_00" }, "viewInfo": { "cardSkinId": { "value": "KIRA_EFFECT_100030_PokeBall_NON" } } }, { "id": { "value": 2018 }, "masterCardId": { "value": "PK_10_000010_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2019 }, "masterCardId": { "value": "PK_10_000290_00" }, "viewInfo": { "cardSkinId": {} } } ], "energyTypes": [ "ENERGY_TYPE_GRASS" ], "supply": {} }, "appPlayerId": "2" } }, "regulation": { "finalTurnNumber": 50, "prize": { "changeWinningPrize": true, "winningPrize": { "value": 3 } }, "firstTurnPlayer": {} }, "random": { "seed": "11583496663189996424" } }, "store": { "turn": { "phase": { "step": { "attackPhaseAttackJudgementStepInfo": {}, "attackDamageCalculationStepInfo": { "publicBasicDamage": { "amount": {} }, "plusDamageAmount": {}, "originalAttackDamageOverride": { "overrideValue": {} }, "calculationResult": { "damage": {} }, "originalAttackReferenceOverride": { "overrideValue": {} }, "appliedResult": { "damage": {} } }, "attackPhaseCommonStepInfo": { "attackId": {}, "childAttackId": {} }, "pokemonCheckupSpecialConditionStepInfo": { "checkPlayer": {} } }, "actionPhaseInfo": { "determineAttackInfo": { "actionExpectedAttackId": {} } } }, "flags": { "usedSupport": {} }, "turnPlayerId": {}, "actionRequirement": { "causeLogic": { "battleObjectId": {}, "cardId": {}, "attackId": {}, "abilityId": {}, "parentAttackId": {} } }, "procedure": { "procedureState": "PROCEDURE_STATE_WILL_EXECUTE", "knockedOutCheckInfo": { "player1NextActive": {}, "player2NextActive": {} } }, "prevTurnPlayer": {} }, "players": { "player1": { "id": { "value": 1 }, "hand": {}, "library": {}, "discardPile": { "energies": {} }, "energyZone": {}, "prize": {}, "libraryRevealment": {}, "handRevealment": {}, "flags": {} }, "player2": { "id": { "value": 2 }, "hand": {}, "library": {}, "discardPile": { "energies": {} }, "energyZone": {}, "prize": {}, "libraryRevealment": {}, "handRevealment": {}, "flags": {} } }, "field": { "player1Field": { "ownerId": { "value": 1 }, "activeField": { "owner": { "value": 1 }, "activePokemon": { "pokemon": { "id": {}, "controller": {}, "damage": {}, "attachedEnergySet": {}, "willKnockedOutFrom": {}, "objectFlags": {} } }, "faceDownCard": { "card": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } } } }, "benchFields": [ { "owner": { "value": 1 }, "benchPokemon": { "pokemon": { "id": {}, "controller": {}, "damage": {}, "attachedEnergySet": {}, "willKnockedOutFrom": {}, "objectFlags": {} } }, "faceDownCard": { "card": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } } } }, { "owner": { "value": 1 }, "benchPokemon": { "pokemon": { "id": {}, "controller": {}, "damage": {}, "attachedEnergySet": {}, "willKnockedOutFrom": {}, "objectFlags": {} } }, "faceDownCard": { "card": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } } } }, { "owner": { "value": 1 }, "benchPokemon": { "pokemon": { "id": {}, "controller": {}, "damage": {}, "attachedEnergySet": {}, "willKnockedOutFrom": {}, "objectFlags": {} } }, "faceDownCard": { "card": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } } } } ] }, "player2Field": { "ownerId": { "value": 2 }, "activeField": { "owner": { "value": 2 }, "activePokemon": { "pokemon": { "id": {}, "controller": {}, "damage": {}, "attachedEnergySet": {}, "willKnockedOutFrom": {}, "objectFlags": {} } }, "faceDownCard": { "card": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } } } }, "benchFields": [ { "owner": { "value": 2 }, "benchPokemon": { "pokemon": { "id": {}, "controller": {}, "damage": {}, "attachedEnergySet": {}, "willKnockedOutFrom": {}, "objectFlags": {} } }, "faceDownCard": { "card": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } } } }, { "owner": { "value": 2 }, "benchPokemon": { "pokemon": { "id": {}, "controller": {}, "damage": {}, "attachedEnergySet": {}, "willKnockedOutFrom": {}, "objectFlags": {} } }, "faceDownCard": { "card": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } } } }, { "owner": { "value": 2 }, "benchPokemon": { "pokemon": { "id": {}, "controller": {}, "damage": {}, "attachedEnergySet": {}, "willKnockedOutFrom": {}, "objectFlags": {} } }, "faceDownCard": { "card": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } } } } ] } }, "result": { "winner": {}, "concededPlayer": {} }, "logicStore": {}, "random": {}, "continuousEffectStore": { "lastId": {} }, "activatingTrainer": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } }, "battleObjectStore": { "lastPublishedId": {} }, "battlePreparation": { "firstTurnPlayer": {}, "prepareFieldInfo": {} }, "cardStore": {} }, "meta": { "version": "2023060501" } }, "actions": [ { "playerId": { "value": 2 }, "prepareActiveField": { "active": { "value": 2018 } } }, { "playerId": { "value": 2 }, "endPrepareField": {} }, { "playerId": { "value": 1 }, "prepareActiveField": { "active": { "value": 1015 } } }, { "playerId": { "value": 1 }, "prepareBenchField": { "bench": { "position": 1, "cardId": { "value": 1002 } } } }, { "playerId": { "value": 1 }, "endPrepareField": {} }, { "playerId": { "value": 2 }, "playPokemon": { "bench": { "cardId": { "value": 2001 } } } }, { "playerId": { "value": 2 }, "playPokemon": { "bench": { "position": 1, "cardId": { "value": 2019 } } } }, { "playerId": { "value": 2 }, "playPokemon": { "bench": { "position": 2, "cardId": { "value": 2011 } } } }, { "playerId": { "value": 2 }, "determineTurnEnd": {} }, { "playerId": { "value": 1 }, "attachEnergyFromZone": { "pokemon": { "value": 1 } } }, { "playerId": { "value": 1 }, "determineAttack": { "attackId": { "value": "PK_001980_ATK_01" } } }, { "playerId": { "value": 2 }, "attachEnergyFromZone": { "pokemon": { "value": 3 } } }, { "playerId": { "value": 2 }, "determineTurnEnd": {} }, { "playerId": { "value": 1 }, "attachEnergyFromZone": { "pokemon": { "value": 2 } } }, { "playerId": { "value": 1 }, "determineAttack": { "attackId": { "value": "PK_001980_ATK_01" } } }, { "playerId": { "value": 2 }, "selectBenchOnKnockedOut": { "bench": { "value": 4 } } }, { "playerId": { "value": 2 }, "playPokemon": { "bench": { "cardId": { "value": 2016 } } } }, { "playerId": { "value": 2 }, "attachEnergyFromZone": { "pokemon": { "value": 4 } } }, { "playerId": { "value": 2 }, "determineAttack": { "attackId": { "value": "PK_001890_ATK_01" } } }, { "playerId": { "value": 1 }, "attachEnergyFromZone": { "pokemon": { "value": 2 } } }, { "playerId": { "value": 1 }, "determineAttack": { "attackId": { "value": "PK_001980_ATK_01" } } }, { "playerId": { "value": 2 }, "selectBenchOnKnockedOut": { "bench": { "value": 7 } } }, { "playerId": { "value": 2 }, "playPokemon": { "bench": { "cardId": { "value": 2015 } } } }, { "playerId": { "value": 2 }, "attachEnergyFromZone": { "pokemon": { "value": 7 } } }, { "playerId": { "value": 2 }, "determineTurnEnd": {} }, { "playerId": { "value": 1 }, "playPokemon": { "bench": { "cardId": { "value": 1014 } } } }, { "playerId": { "value": 1 }, "attachEnergyFromZone": { "pokemon": { "value": 9 } } }, { "playerId": { "value": 1 }, "determineAttack": { "attackId": { "value": "PK_001980_ATK_01" } } }, { "playerId": { "value": 2 }, "attachEnergyFromZone": { "pokemon": { "value": 7 } } }, { "playerId": { "value": 2 }, "determineAttack": { "attackId": { "value": "PK_000140_ATK_01" } } }, { "playerId": { "value": 1 }, "determineAttack": { "attackId": { "value": "PK_001980_ATK_01" } } } ] }
Wow man this is really awesome! Thank you for your work! I'm sad about the wonderpick thing but what can you do :'(. How come they don't get the card when you select the wonderpick instead of picking a card itself? That doesn't make sense to me. What about the after effects of showing "where" the other 4 cards were? Do you see info on that in your analysis?I'm making good progress on the reverse of the app, I don't particularly want to share everything I found for the moment but what I can give you as information is that the wonder picks are decided by clicking on the card, and it's the server that chooses a random card for you between the 5, in short it doesn't matter what the card is it doesn't change anything, so no xray or tricks to do with that
View attachment 684402
I can now decode incoming and outgoing requests, what you can see on my screen is that when you click on a card the client sends the server the id of the pool you selected and it responds with the id of a card (card ids start with PK_)
What I can also tell you is that it is HIGHLY likely that fights against bots can make an instant win. Because the server does not manage the fight, it is the phone that sends the logs (only when it is fights against bots)
I know it might please some people to see how it's done, so here's a log excerpt from a finished fight:
JSON:{ "game": { "origin": { "match": { "player1": { "battlePlayerId": { "value": 1 }, "name": "ITS MY NAME SORRYYYY #PRIVATE hihi", "deck": { "cards": [ { "id": { "value": 1000 }, "masterCardId": { "value": "PK_10_001370_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1001 }, "masterCardId": { "value": "PK_10_001370_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1002 }, "masterCardId": { "value": "PK_10_001510_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1003 }, "masterCardId": { "value": "PK_10_001510_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1004 }, "masterCardId": { "value": "PK_10_001550_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1005 }, "masterCardId": { "value": "PK_10_001600_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1006 }, "masterCardId": { "value": "PK_10_001600_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1007 }, "masterCardId": { "value": "PK_10_001380_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1008 }, "masterCardId": { "value": "PK_10_001500_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1009 }, "masterCardId": { "value": "PK_10_001610_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1010 }, "masterCardId": { "value": "PK_10_001860_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1011 }, "masterCardId": { "value": "PK_10_001890_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1012 }, "masterCardId": { "value": "PK_10_001890_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1013 }, "masterCardId": { "value": "PK_10_001900_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1014 }, "masterCardId": { "value": "PK_10_001930_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1015 }, "masterCardId": { "value": "PK_10_001980_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1016 }, "masterCardId": { "value": "TR_90_000030_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1017 }, "masterCardId": { "value": "TR_90_000030_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1018 }, "masterCardId": { "value": "TR_90_000040_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 1019 }, "masterCardId": { "value": "TR_90_000040_00" }, "viewInfo": { "cardSkinId": {} } } ], "energyTypes": [ "ENERGY_TYPE_FIGHTING" ], "supply": { "battleCoinId": "COIN_100160_MONSTERBALL" } }, "appPlayerId": "0255cbae-5fd8-40e4-8759-8cb2fe8e8dda" }, "player2": { "battlePlayerId": { "value": 2 }, "name": "Adversaire", "deck": { "cards": [ { "id": { "value": 2000 }, "masterCardId": { "value": "PK_10_001890_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2001 }, "masterCardId": { "value": "PK_10_001890_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2002 }, "masterCardId": { "value": "PK_10_001910_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2003 }, "masterCardId": { "value": "PK_10_001930_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2004 }, "masterCardId": { "value": "TR_90_000030_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2005 }, "masterCardId": { "value": "PK_10_001990_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2006 }, "masterCardId": { "value": "TR_90_000030_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2007 }, "masterCardId": { "value": "PK_10_001860_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2008 }, "masterCardId": { "value": "PK_10_001930_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2009 }, "masterCardId": { "value": "PK_10_001860_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2010 }, "masterCardId": { "value": "PK_10_000210_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2011 }, "masterCardId": { "value": "PK_10_000290_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2012 }, "masterCardId": { "value": "PK_10_000270_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2013 }, "masterCardId": { "value": "PK_10_000270_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2014 }, "masterCardId": { "value": "PK_10_000210_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2015 }, "masterCardId": { "value": "PK_10_000140_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2016 }, "masterCardId": { "value": "PK_10_000140_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2017 }, "masterCardId": { "value": "PK_10_000020_00" }, "viewInfo": { "cardSkinId": { "value": "KIRA_EFFECT_100030_PokeBall_NON" } } }, { "id": { "value": 2018 }, "masterCardId": { "value": "PK_10_000010_00" }, "viewInfo": { "cardSkinId": {} } }, { "id": { "value": 2019 }, "masterCardId": { "value": "PK_10_000290_00" }, "viewInfo": { "cardSkinId": {} } } ], "energyTypes": [ "ENERGY_TYPE_GRASS" ], "supply": {} }, "appPlayerId": "2" } }, "regulation": { "finalTurnNumber": 50, "prize": { "changeWinningPrize": true, "winningPrize": { "value": 3 } }, "firstTurnPlayer": {} }, "random": { "seed": "11583496663189996424" } }, "store": { "turn": { "phase": { "step": { "attackPhaseAttackJudgementStepInfo": {}, "attackDamageCalculationStepInfo": { "publicBasicDamage": { "amount": {} }, "plusDamageAmount": {}, "originalAttackDamageOverride": { "overrideValue": {} }, "calculationResult": { "damage": {} }, "originalAttackReferenceOverride": { "overrideValue": {} }, "appliedResult": { "damage": {} } }, "attackPhaseCommonStepInfo": { "attackId": {}, "childAttackId": {} }, "pokemonCheckupSpecialConditionStepInfo": { "checkPlayer": {} } }, "actionPhaseInfo": { "determineAttackInfo": { "actionExpectedAttackId": {} } } }, "flags": { "usedSupport": {} }, "turnPlayerId": {}, "actionRequirement": { "causeLogic": { "battleObjectId": {}, "cardId": {}, "attackId": {}, "abilityId": {}, "parentAttackId": {} } }, "procedure": { "procedureState": "PROCEDURE_STATE_WILL_EXECUTE", "knockedOutCheckInfo": { "player1NextActive": {}, "player2NextActive": {} } }, "prevTurnPlayer": {} }, "players": { "player1": { "id": { "value": 1 }, "hand": {}, "library": {}, "discardPile": { "energies": {} }, "energyZone": {}, "prize": {}, "libraryRevealment": {}, "handRevealment": {}, "flags": {} }, "player2": { "id": { "value": 2 }, "hand": {}, "library": {}, "discardPile": { "energies": {} }, "energyZone": {}, "prize": {}, "libraryRevealment": {}, "handRevealment": {}, "flags": {} } }, "field": { "player1Field": { "ownerId": { "value": 1 }, "activeField": { "owner": { "value": 1 }, "activePokemon": { "pokemon": { "id": {}, "controller": {}, "damage": {}, "attachedEnergySet": {}, "willKnockedOutFrom": {}, "objectFlags": {} } }, "faceDownCard": { "card": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } } } }, "benchFields": [ { "owner": { "value": 1 }, "benchPokemon": { "pokemon": { "id": {}, "controller": {}, "damage": {}, "attachedEnergySet": {}, "willKnockedOutFrom": {}, "objectFlags": {} } }, "faceDownCard": { "card": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } } } }, { "owner": { "value": 1 }, "benchPokemon": { "pokemon": { "id": {}, "controller": {}, "damage": {}, "attachedEnergySet": {}, "willKnockedOutFrom": {}, "objectFlags": {} } }, "faceDownCard": { "card": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } } } }, { "owner": { "value": 1 }, "benchPokemon": { "pokemon": { "id": {}, "controller": {}, "damage": {}, "attachedEnergySet": {}, "willKnockedOutFrom": {}, "objectFlags": {} } }, "faceDownCard": { "card": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } } } } ] }, "player2Field": { "ownerId": { "value": 2 }, "activeField": { "owner": { "value": 2 }, "activePokemon": { "pokemon": { "id": {}, "controller": {}, "damage": {}, "attachedEnergySet": {}, "willKnockedOutFrom": {}, "objectFlags": {} } }, "faceDownCard": { "card": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } } } }, "benchFields": [ { "owner": { "value": 2 }, "benchPokemon": { "pokemon": { "id": {}, "controller": {}, "damage": {}, "attachedEnergySet": {}, "willKnockedOutFrom": {}, "objectFlags": {} } }, "faceDownCard": { "card": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } } } }, { "owner": { "value": 2 }, "benchPokemon": { "pokemon": { "id": {}, "controller": {}, "damage": {}, "attachedEnergySet": {}, "willKnockedOutFrom": {}, "objectFlags": {} } }, "faceDownCard": { "card": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } } } }, { "owner": { "value": 2 }, "benchPokemon": { "pokemon": { "id": {}, "controller": {}, "damage": {}, "attachedEnergySet": {}, "willKnockedOutFrom": {}, "objectFlags": {} } }, "faceDownCard": { "card": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } } } } ] } }, "result": { "winner": {}, "concededPlayer": {} }, "logicStore": {}, "random": {}, "continuousEffectStore": { "lastId": {} }, "activatingTrainer": { "id": {}, "controller": {}, "origin": { "id": {}, "masterCardId": {}, "viewInfo": { "cardSkinId": {} } } }, "battleObjectStore": { "lastPublishedId": {} }, "battlePreparation": { "firstTurnPlayer": {}, "prepareFieldInfo": {} }, "cardStore": {} }, "meta": { "version": "2023060501" } }, "actions": [ { "playerId": { "value": 2 }, "prepareActiveField": { "active": { "value": 2018 } } }, { "playerId": { "value": 2 }, "endPrepareField": {} }, { "playerId": { "value": 1 }, "prepareActiveField": { "active": { "value": 1015 } } }, { "playerId": { "value": 1 }, "prepareBenchField": { "bench": { "position": 1, "cardId": { "value": 1002 } } } }, { "playerId": { "value": 1 }, "endPrepareField": {} }, { "playerId": { "value": 2 }, "playPokemon": { "bench": { "cardId": { "value": 2001 } } } }, { "playerId": { "value": 2 }, "playPokemon": { "bench": { "position": 1, "cardId": { "value": 2019 } } } }, { "playerId": { "value": 2 }, "playPokemon": { "bench": { "position": 2, "cardId": { "value": 2011 } } } }, { "playerId": { "value": 2 }, "determineTurnEnd": {} }, { "playerId": { "value": 1 }, "attachEnergyFromZone": { "pokemon": { "value": 1 } } }, { "playerId": { "value": 1 }, "determineAttack": { "attackId": { "value": "PK_001980_ATK_01" } } }, { "playerId": { "value": 2 }, "attachEnergyFromZone": { "pokemon": { "value": 3 } } }, { "playerId": { "value": 2 }, "determineTurnEnd": {} }, { "playerId": { "value": 1 }, "attachEnergyFromZone": { "pokemon": { "value": 2 } } }, { "playerId": { "value": 1 }, "determineAttack": { "attackId": { "value": "PK_001980_ATK_01" } } }, { "playerId": { "value": 2 }, "selectBenchOnKnockedOut": { "bench": { "value": 4 } } }, { "playerId": { "value": 2 }, "playPokemon": { "bench": { "cardId": { "value": 2016 } } } }, { "playerId": { "value": 2 }, "attachEnergyFromZone": { "pokemon": { "value": 4 } } }, { "playerId": { "value": 2 }, "determineAttack": { "attackId": { "value": "PK_001890_ATK_01" } } }, { "playerId": { "value": 1 }, "attachEnergyFromZone": { "pokemon": { "value": 2 } } }, { "playerId": { "value": 1 }, "determineAttack": { "attackId": { "value": "PK_001980_ATK_01" } } }, { "playerId": { "value": 2 }, "selectBenchOnKnockedOut": { "bench": { "value": 7 } } }, { "playerId": { "value": 2 }, "playPokemon": { "bench": { "cardId": { "value": 2015 } } } }, { "playerId": { "value": 2 }, "attachEnergyFromZone": { "pokemon": { "value": 7 } } }, { "playerId": { "value": 2 }, "determineTurnEnd": {} }, { "playerId": { "value": 1 }, "playPokemon": { "bench": { "cardId": { "value": 1014 } } } }, { "playerId": { "value": 1 }, "attachEnergyFromZone": { "pokemon": { "value": 9 } } }, { "playerId": { "value": 1 }, "determineAttack": { "attackId": { "value": "PK_001980_ATK_01" } } }, { "playerId": { "value": 2 }, "attachEnergyFromZone": { "pokemon": { "value": 7 } } }, { "playerId": { "value": 2 }, "determineAttack": { "attackId": { "value": "PK_000140_ATK_01" } } }, { "playerId": { "value": 1 }, "determineAttack": { "attackId": { "value": "PK_001980_ATK_01" } } } ] }
I don't want to go too far, but I think we don't see the opponent's hand, we can have his ID but the rest of what the server sends is just what happens on the screen unfortunately, I think they designed it well so that even if we look at the decks, we don't see the opponent's cards, but maybe I'm wrong, I may not have analyzed all the decks, I'll tell you if I find somethingWow man this is really awesome! Thank you for your work! I'm sad about the wonderpick thing but what can you do :'(. How come they don't get the card when you select the wonderpick instead of picking a card itself? That doesn't make sense to me. What about the after effects of showing "where" the other 4 cards were? Do you see info on that in your analysis?
What do you think of the option of seeing your opponents hand in PvP? Does that seem doable?
Can't wait for more updates!
{
"logs": [
{
"playerId": {
"value": 1
},
"setPokemonToActive": {
"card": {
"id": {
"value": 1011
},
"masterCardId": {
"value": "PK_10_001890_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"setType": "SET_POKEMON_TYPE_PLAY"
}
},
{
"playerId": {
"value": 1
},
"setPokemonToBench": {
"card": {
"id": {
"value": 1012
},
"masterCardId": {
"value": "PK_10_001890_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"setType": "SET_POKEMON_TYPE_PLAY"
}
},
{
"playerId": {
"value": 2
},
"setPokemonToActive": {
"card": {
"id": {
"value": 2000
},
"masterCardId": {
"value": "PK_10_000420_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"setType": "SET_POKEMON_TYPE_PLAY"
}
},
{
"playerId": {
"value": 2
},
"setPokemonToBench": {
"card": {
"id": {
"value": 2007
},
"masterCardId": {
"value": "PK_10_001200_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"setType": "SET_POKEMON_TYPE_PLAY"
}
},
{
"playerId": {
"value": 2
},
"setPokemonToBench": {
"card": {
"id": {
"value": 2008
},
"masterCardId": {
"value": "PK_10_001350_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"setType": "SET_POKEMON_TYPE_PLAY"
}
},
{
"playerId": {
"value": 2
},
"setPokemonToBench": {
"card": {
"id": {
"value": 2001
},
"masterCardId": {
"value": "PK_10_000490_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"setType": "SET_POKEMON_TYPE_PLAY"
}
},
{
"playerId": {
"value": 1
},
"turnStart": {}
},
{
"playerId": {
"value": 1
},
"drawCardFromLibrary": {
"drawCount": 1
}
},
{
"playerId": {
"value": 1
},
"addCardToHand": {
"card": {
"id": {
"value": 1002
},
"masterCardId": {
"value": "PK_10_001510_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 1
},
"playTrainer": {
"card": {
"id": {
"value": 1016
},
"masterCardId": {
"value": "TR_90_000030_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 1
},
"addCardToHand": {
"card": {
"id": {
"value": 1015
},
"masterCardId": {
"value": "PK_10_001980_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 1
},
"shuffleLibrary": {}
},
{
"playerId": {
"value": 1
},
"discardCard": {
"card": {
"id": {
"value": 1016
},
"masterCardId": {
"value": "TR_90_000030_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 1
},
"setPokemonToBench": {
"card": {
"id": {
"value": 1015
},
"masterCardId": {
"value": "PK_10_001980_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"setType": "SET_POKEMON_TYPE_PLAY"
}
},
{
"playerId": {
"value": 1
},
"determineTurnEnd": {}
},
{
"playerId": {},
"pokemonCheckup": {}
},
{
"playerId": {
"value": 2
},
"turnStart": {}
},
{
"playerId": {
"value": 2
},
"drawCardFromLibrary": {
"drawCount": 1
}
},
{
"playerId": {
"value": 2
},
"attachEnergy": {
"card": {
"id": {
"value": 2007
},
"masterCardId": {
"value": "PK_10_001200_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"energies": {
"pairs": [
{
"type": "ENERGY_TYPE_PSYCHIC",
"value": 1
}
]
}
}
},
{
"playerId": {
"value": 2
},
"determineTurnEnd": {}
},
{
"playerId": {},
"pokemonCheckup": {}
},
{
"playerId": {
"value": 1
},
"turnStart": {}
},
{
"playerId": {
"value": 1
},
"drawCardFromLibrary": {
"drawCount": 1
}
},
{
"playerId": {
"value": 1
},
"addCardToHand": {
"card": {
"id": {
"value": 1007
},
"masterCardId": {
"value": "PK_10_001380_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 1
},
"attachEnergy": {
"card": {
"id": {
"value": 1011
},
"masterCardId": {
"value": "PK_10_001890_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"energies": {
"pairs": [
{
"type": "ENERGY_TYPE_FIGHTING",
"value": 1
}
]
}
}
},
{
"playerId": {
"value": 1
},
"evolve": {
"from": {
"id": {
"value": 1011
},
"masterCardId": {
"value": "PK_10_001890_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"to": {
"id": {
"value": 1013
},
"masterCardId": {
"value": "PK_10_001900_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"isActivePokemon": true
}
},
{
"playerId": {
"value": 1
},
"executeAttack": {
"card": {
"id": {
"value": 1013
},
"masterCardId": {
"value": "PK_10_001900_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"attackId": {
"value": "PK_001900_ATK_01"
}
}
},
{
"playerId": {
"value": 2
},
"applyDamage": {
"card": {
"id": {
"value": 2000
},
"controller": {
"value": 2
},
"origin": {
"id": {
"value": 2000
},
"masterCardId": {
"value": "PK_10_000420_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
},
"appliedDamage": 40,
"totalDamage": 40,
"maxHp": 60,
"totalAppliedDamageToOpponentAtOnce": 40,
"isAttackDamage": true,
"applierCard": {
"id": {
"value": 1013
},
"controller": {
"value": 1
},
"origin": {
"id": {
"value": 1013
},
"masterCardId": {
"value": "PK_10_001900_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
}
},
{
"playerId": {},
"pokemonCheckup": {}
},
{
"playerId": {
"value": 2
},
"turnStart": {}
},
{
"playerId": {
"value": 2
},
"drawCardFromLibrary": {
"drawCount": 1
}
},
{
"playerId": {
"value": 2
},
"evolve": {
"from": {
"id": {
"value": 2000
},
"masterCardId": {
"value": "PK_10_000420_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"to": {
"id": {
"value": 2004
},
"masterCardId": {
"value": "PK_10_000430_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"isActivePokemon": true
}
},
{
"playerId": {
"value": 2
},
"attachEnergy": {
"card": {
"id": {
"value": 2004
},
"masterCardId": {
"value": "PK_10_000430_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"energies": {
"pairs": [
{
"type": "ENERGY_TYPE_PSYCHIC",
"value": 1
}
]
}
}
},
{
"playerId": {
"value": 2
},
"retreat": {
"card": {
"id": {
"value": 2004
},
"masterCardId": {
"value": "PK_10_000430_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 2
},
"discardAttachedEnergy": {
"card": {
"id": {
"value": 2004
},
"masterCardId": {
"value": "PK_10_000430_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"energies": {
"pairs": [
{
"type": "ENERGY_TYPE_PSYCHIC",
"value": 1
}
]
}
}
},
{
"playerId": {
"value": 2
},
"setPokemonToActive": {
"card": {
"id": {
"value": 2007
},
"masterCardId": {
"value": "PK_10_001200_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"setType": "SET_POKEMON_TYPE_SWAP"
}
},
{
"playerId": {
"value": 2
},
"executeAttack": {
"card": {
"id": {
"value": 2007
},
"masterCardId": {
"value": "PK_10_001200_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"attackId": {
"value": "PK_001200_ATK_01"
}
}
},
{
"playerId": {
"value": 1
},
"applyDamage": {
"card": {
"id": {
"value": 1013
},
"controller": {
"value": 1
},
"origin": {
"id": {
"value": 1013
},
"masterCardId": {
"value": "PK_10_001900_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
},
"appliedDamage": 20,
"totalDamage": 20,
"maxHp": 80,
"totalAppliedDamageToOpponentAtOnce": 20,
"isAttackDamage": true,
"applierCard": {
"id": {
"value": 2007
},
"controller": {
"value": 2
},
"origin": {
"id": {
"value": 2007
},
"masterCardId": {
"value": "PK_10_001200_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
}
},
{
"playerId": {},
"pokemonCheckup": {}
},
{
"playerId": {
"value": 1
},
"turnStart": {}
},
{
"playerId": {
"value": 1
},
"drawCardFromLibrary": {
"drawCount": 1
}
},
{
"playerId": {
"value": 1
},
"addCardToHand": {
"card": {
"id": {
"value": 1001
},
"masterCardId": {
"value": "PK_10_001370_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 1
},
"setPokemonToBench": {
"card": {
"id": {
"value": 1001
},
"masterCardId": {
"value": "PK_10_001370_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"setType": "SET_POKEMON_TYPE_PLAY"
}
},
{
"playerId": {
"value": 1
},
"attachEnergy": {
"card": {
"id": {
"value": 1001
},
"masterCardId": {
"value": "PK_10_001370_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"energies": {
"pairs": [
{
"type": "ENERGY_TYPE_FIGHTING",
"value": 1
}
]
}
}
},
{
"playerId": {
"value": 1
},
"executeAttack": {
"card": {
"id": {
"value": 1013
},
"masterCardId": {
"value": "PK_10_001900_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"attackId": {
"value": "PK_001900_ATK_01"
}
}
},
{
"playerId": {
"value": 2
},
"applyDamage": {
"card": {
"id": {
"value": 2007
},
"controller": {
"value": 2
},
"origin": {
"id": {
"value": 2007
},
"masterCardId": {
"value": "PK_10_001200_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
},
"appliedDamage": 40,
"totalDamage": 40,
"maxHp": 60,
"totalAppliedDamageToOpponentAtOnce": 40,
"isAttackDamage": true,
"applierCard": {
"id": {
"value": 1013
},
"controller": {
"value": 1
},
"origin": {
"id": {
"value": 1013
},
"masterCardId": {
"value": "PK_10_001900_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
}
},
{
"playerId": {},
"pokemonCheckup": {}
},
{
"playerId": {
"value": 2
},
"turnStart": {}
},
{
"playerId": {
"value": 2
},
"drawCardFromLibrary": {
"drawCount": 1
}
},
{
"playerId": {
"value": 2
},
.....
{
"playerId": {
"value": 2
},
"discardAttachedEnergy": {
"card": {
"id": {
"value": 2012
},
"masterCardId": {
"value": "PK_10_001230_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"energies": {
"pairs": [
{
"type": "ENERGY_TYPE_PSYCHIC",
"value": 2
}
]
}
}
},
{
"playerId": {
"value": 2
},
"setPokemonToActive": {
"card": {
"id": {
"value": 2015
},
"masterCardId": {
"value": "PK_10_001290_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"setType": "SET_POKEMON_TYPE_SWAP"
}
},
{
"playerId": {
"value": 2
},
"executeAttack": {
"card": {
"id": {
"value": 2015
},
"masterCardId": {
"value": "PK_10_001290_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"attackId": {
"value": "PK_001290_ATK_01"
}
}
},
{
"playerId": {
"value": 1
},
"applyDamage": {
"card": {
"id": {
"value": 1007
},
"controller": {
"value": 1
},
"origin": {
"id": {
"value": 1007
},
"masterCardId": {
"value": "PK_10_001380_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
},
"appliedDamage": 50,
"totalDamage": 50,
"maxHp": 100,
"totalAppliedDamageToOpponentAtOnce": 50,
"isAttackDamage": true,
"applierCard": {
"id": {
"value": 2015
},
"controller": {
"value": 2
},
"origin": {
"id": {
"value": 2015
},
"masterCardId": {
"value": "PK_10_001290_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
}
},
{
"playerId": {},
"pokemonCheckup": {}
},
{
"playerId": {
"value": 1
},
"turnStart": {}
},
{
"playerId": {
"value": 1
},
"drawCardFromLibrary": {
"drawCount": 1
}
},
{
"playerId": {
"value": 1
},
"addCardToHand": {
"card": {
"id": {
"value": 1000
},
"masterCardId": {
"value": "PK_10_001370_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 1
},
"playTrainer": {
"card": {
"id": {
"value": 1019
},
"masterCardId": {
"value": "TR_90_000040_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 1
},
"drawCardFromLibrary": {
"drawCount": 2
}
},
{
"playerId": {
"value": 1
},
"addCardToHand": {
"card": {
"id": {
"value": 1006
},
"masterCardId": {
"value": "PK_10_001600_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 1
},
"addCardToHand": {
"card": {
"id": {
"value": 1009
},
"masterCardId": {
"value": "PK_10_001610_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 1
},
"discardCard": {
"card": {
"id": {
"value": 1019
},
"masterCardId": {
"value": "TR_90_000040_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 1
},
"evolve": {
"from": {
"id": {
"value": 1005
},
"masterCardId": {
"value": "PK_10_001600_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"to": {
"id": {
"value": 1009
},
"masterCardId": {
"value": "PK_10_001610_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 1
},
"attachEnergy": {
"card": {
"id": {
"value": 1012
},
"masterCardId": {
"value": "PK_10_001890_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"energies": {
"pairs": [
{
"type": "ENERGY_TYPE_FIGHTING",
"value": 1
}
]
}
}
},
{
"playerId": {
"value": 1
},
"executeAttack": {
"card": {
"id": {
"value": 1007
},
"masterCardId": {
"value": "PK_10_001380_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"attackId": {
"value": "PK_001380_ATK_01"
}
}
},
{
"playerId": {
"value": 2
},
"applyDamage": {
"card": {
"id": {
"value": 2015
},
"controller": {
"value": 2
},
"origin": {
"id": {
"value": 2015
},
"masterCardId": {
"value": "PK_10_001290_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
},
"appliedDamage": 70,
"totalDamage": 70,
"maxHp": 150,
"totalAppliedDamageToOpponentAtOnce": 70,
"isAttackDamage": true,
"applierCard": {
"id": {
"value": 1007
},
"controller": {
"value": 1
},
"origin": {
"id": {
"value": 1007
},
"masterCardId": {
"value": "PK_10_001380_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
}
},
{
"playerId": {},
"pokemonCheckup": {}
},
{
"playerId": {
"value": 2
},
"turnStart": {}
},
{
"playerId": {
"value": 2
},
"drawCardFromLibrary": {
"drawCount": 1
}
},
{
"playerId": {
"value": 2
},
"attachEnergy": {
"card": {
"id": {
"value": 2015
},
"masterCardId": {
"value": "PK_10_001290_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"energies": {
"pairs": [
{
"type": "ENERGY_TYPE_PSYCHIC",
"value": 1
}
]
}
}
},
{
"playerId": {
"value": 2
},
"executeAttack": {
"card": {
"id": {
"value": 2015
},
"masterCardId": {
"value": "PK_10_001290_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"attackId": {
"value": "PK_001290_ATK_01"
}
}
},
{
"playerId": {
"value": 1
},
"applyDamage": {
"card": {
"id": {
"value": 1007
},
"controller": {
"value": 1
},
"origin": {
"id": {
"value": 1007
},
"masterCardId": {
"value": "PK_10_001380_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
},
"appliedDamage": 50,
"totalDamage": 100,
"maxHp": 100,
"totalAppliedDamageToOpponentAtOnce": 50,
"isAttackDamage": true,
"applierCard": {
"id": {
"value": 2015
},
"controller": {
"value": 2
},
"origin": {
"id": {
"value": 2015
},
"masterCardId": {
"value": "PK_10_001290_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
}
},
{
"playerId": {
"value": 1
},
"knockOut": {
"card": {
"id": {
"value": 1007
},
"masterCardId": {
"value": "PK_10_001380_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"knockedOutByAttackType": "ENERGY_TYPE_PSYCHIC",
"isActivePokemonKnockedOut": true,
"knockedOutByCard": {
"id": {
"value": 2015
},
"controller": {
"value": 2
},
"origin": {
"id": {
"value": 2015
},
"masterCardId": {
"value": "PK_10_001290_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
}
},
{
"playerId": {
"value": 1
},
"discardCard": {
"card": {
"id": {
"value": 1001
},
"masterCardId": {
"value": "PK_10_001370_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 1
},
"discardCard": {
"card": {
"id": {
"value": 1007
},
"masterCardId": {
"value": "PK_10_001380_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 2
},
"addPrize": {
"prize": {
"value": 1
},
"totalPrize": {
"value": 2
}
}
},
{
"playerId": {
"value": 1
},
"setPokemonToActive": {
"card": {
"id": {
"value": 1015
},
"masterCardId": {
"value": "PK_10_001980_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"setType": "SET_POKEMON_TYPE_SWAP"
}
},
{
"playerId": {},
"pokemonCheckup": {}
},
{
"playerId": {
"value": 1
},
"turnStart": {}
},
{
"playerId": {
"value": 1
},
"drawCardFromLibrary": {
"drawCount": 1
}
},
{
"playerId": {
"value": 1
},
"addCardToHand": {
"card": {
"id": {
"value": 1017
},
"masterCardId": {
"value": "TR_90_000030_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 1
},
"setPokemonToBench": {
"card": {
"id": {
"value": 1008
},
"masterCardId": {
"value": "PK_10_001500_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"setType": "SET_POKEMON_TYPE_PLAY"
}
},
{
"playerId": {
"value": 1
},
"retreat": {
"card": {
"id": {
"value": 1015
},
"masterCardId": {
"value": "PK_10_001980_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 1
},
"discardAttachedEnergy": {
"card": {
"id": {
"value": 1015
},
"masterCardId": {
"value": "PK_10_001980_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"energies": {
"pairs": [
{
"type": "ENERGY_TYPE_FIGHTING",
"value": 1
}
]
}
}
},
{
"playerId": {
"value": 1
},
"setPokemonToActive": {
"card": {
"id": {
"value": 1008
},
"masterCardId": {
"value": "PK_10_001500_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"setType": "SET_POKEMON_TYPE_SWAP"
}
},
{
"playerId": {
"value": 1
},
"attachEnergy": {
"card": {
"id": {
"value": 1008
},
"masterCardId": {
"value": "PK_10_001500_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"energies": {
"pairs": [
{
"type": "ENERGY_TYPE_FIGHTING",
"value": 1
}
]
}
}
},
{
"playerId": {
"value": 1
},
"determineTurnEnd": {}
},
{
"playerId": {},
"pokemonCheckup": {}
},
{
"playerId": {
"value": 2
},
"turnStart": {}
},
{
"playerId": {
"value": 2
},
"drawCardFromLibrary": {
"drawCount": 1
}
},
{
"playerId": {
"value": 2
},
"attachEnergy": {
"card": {
"id": {
"value": 2015
},
"masterCardId": {
"value": "PK_10_001290_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"energies": {
"pairs": [
{
"type": "ENERGY_TYPE_PSYCHIC",
"value": 1
}
]
}
}
},
{
"playerId": {
"value": 2
},
"executeAttack": {
"card": {
"id": {
"value": 2015
},
"masterCardId": {
"value": "PK_10_001290_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"attackId": {
"value": "PK_001290_ATK_02"
}
}
},
{
"playerId": {
"value": 1
},
"applyDamage": {
"card": {
"id": {
"value": 1008
},
"controller": {
"value": 1
},
"origin": {
"id": {
"value": 1008
},
"masterCardId": {
"value": "PK_10_001500_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
},
"appliedDamage": 150,
"totalDamage": 150,
"maxHp": 110,
"totalAppliedDamageToOpponentAtOnce": 150,
"isAttackDamage": true,
"applierCard": {
"id": {
"value": 2015
},
"controller": {
"value": 2
},
"origin": {
"id": {
"value": 2015
},
"masterCardId": {
"value": "PK_10_001290_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
}
},
{
"playerId": {
"value": 2
},
"discardAttachedEnergy": {
"card": {
"id": {
"value": 2015
},
"masterCardId": {
"value": "PK_10_001290_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"energies": {
"pairs": [
{
"type": "ENERGY_TYPE_PSYCHIC",
"value": 2
}
]
}
}
},
{
"playerId": {
"value": 1
},
"knockOut": {
"card": {
"id": {
"value": 1008
},
"masterCardId": {
"value": "PK_10_001500_00"
},
"viewInfo": {
"cardSkinId": {}
}
},
"knockedOutByAttackType": "ENERGY_TYPE_PSYCHIC",
"isActivePokemonKnockedOut": true,
"knockedOutByCard": {
"id": {
"value": 2015
},
"controller": {
"value": 2
},
"origin": {
"id": {
"value": 2015
},
"masterCardId": {
"value": "PK_10_001290_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
}
},
{
"playerId": {
"value": 1
},
"discardCard": {
"card": {
"id": {
"value": 1008
},
"masterCardId": {
"value": "PK_10_001500_00"
},
"viewInfo": {
"cardSkinId": {}
}
}
}
},
{
"playerId": {
"value": 2
},
"addPrize": {
"prize": {
"value": 1
},
"totalPrize": {
"value": 3
}
}
},
{
"playerId": {},
"gameCompleted": {
"turnNumber": 20,
"winnerPlayer": {
"value": 2
},
"player1Prize": {
"value": 2
},
"player2Prize": {
"value": 3
}
}
}
],
"gameProgressId": 75
}
for the picks, it just adds fake gameplay, there is nothing more, and it is surely to simplify the process, it only takes one request without preparation to make the choice, it therefore optimizes millions of requests in view of the number of playersWow man this is really awesome! Thank you for your work! I'm sad about the wonderpick thing but what can you do :'(. How come they don't get the card when you select the wonderpick instead of picking a card itself? That doesn't make sense to me. What about the after effects of showing "where" the other 4 cards were? Do you see info on that in your analysis?
What do you think of the option of seeing your opponents hand in PvP? Does that seem doable?
Can't wait for more updates!
Can I please have a link as well?Can you link me to it?
From where did you buy? Can I have the info as well?So I bought alot of reroll accounts from China, they managed to clear every card missions and able to get Mew card even though they don't have 3 Immersive cards and only have 300 random card
Also have 400+ pack hourglass, 500+ wonder pick hourglass, 300 emblem ticket, and 100 shop tickets
It's an obvious cheat/mod right ? All the accounts are 1 day old
where did you buy it? wanna try that tooSo I bought alot of reroll accounts from China, they managed to clear every card missions and able to get Mew card even though they don't have 3 Immersive cards and only have 300 random card
Also have 400+ pack hourglass, 500+ wonder pick hourglass, 300 emblem ticket, and 100 shop tickets
It's an obvious cheat/mod right ? All the accounts are 1 day old
Yeah, I bought two chinese accounts they both had the Mew card without having the kanto collection complete, and they had the legendary birds emblem without having any of the full zapdos, moltres, or articuno cards. I tried asking how they do it but they just gatekept that information. It's defintely a glitch/hack or somethingSo I bought alot of reroll accounts from China, they managed to clear every card missions and able to get Mew card even though they don't have 3 Immersive cards and only have 300 random card
Also have 400+ pack hourglass, 500+ wonder pick hourglass, 300 emblem ticket, and 100 shop tickets
It's an obvious cheat/mod right ? All the accounts are 1 day old