Zero is off doing a big sleep so I am gonna try and take over for a bit on the data mining. I do not claim to be a top tier data miner however, so bear with me as I roll through all this and show the big changes in the Metadata and files of the game. It is a lot of changes, namely PVP, so I will segment this as much as possible to make this digestible. We have the official update notes up first, and then what is below the surface later on:
Photo Credits go to u/ricardo2g on Reddit.
Update Note: Added found PVP Win/Loss files. Elaborated on findings to manage the hype.
This should not be a shock, so we will get this out of the way.
All manner of code has been added for PVP, as to be expected, since it had been announced Trainer Battles were already coming and the patch notes above said outright it was coming along. That being said, adding all of the code on this article would easily make it the longest article the Hub has ever posted, so we will stick to the very interesting bits.
get_MyCombatPokemon get_OpponentCombatPokemon get_BackgroundCamera get_OpponentAvatarAnimator get_OpponentAvatarTransform get_MyPokemonRootTransform opponentPlayer SnapTo UpdateScene SetLinesActive PlayerAvatarSwapPokemon PlayerAvatarThrowPokeball OpponentAvatarThrowPokeball WaitForOpponentThrowTiming pokeball endPos flyCurve MovePokeball SpawnCombatPokemon OpponentThrowBallSpawnCombatPokemon OpponentRetrievePokemon SetDynamicPokemonPosition PlayShowPokemonSounds ShowPokemonAndShadow DisplayShield DisplayPlayerShield DisplayOpponentShield HidePhysicalShield
This is some of the base code relating to the visual components, spawning the Pokémon, shields, field, etc. This next part meanwhile, relates to some of the minigames you play for Charge Move usage, on Defense, Offense, and how good one does:
StartAttackMinigame StartDefenseMinigame StartTimingMinigame spamTapInputChallengeFactory timingInputChallengeFactory spinInputChallengeFactory challengeDurationSeconds attackMinigameButton attackScoreText defenseMinigameButton defenseScoreText timingMinigameButton timingScoreText
References in the code can be found that relate to Web Sockets. To put this concept as simply as possible, the connection, as long as networking is fast and sound, is constantly connected between server and the device in use. In this case, your phone does not have to constantly poll the Niantic server with requests, data can be sent from Niantic or sent from the phone whenever, at least this seems the case for PVP. Sockets have the benefit of being much faster in the grand scheme of things, but there is the worry that, with so many phones directly connected to the server in such a manner, that the strain on systems may grow. Only time will tell whether this is the case or not.
Socket mentions grew with the Metadata of 131.1, and all seemed to relate around base additions to previous mentions of sockets systems, or code like the ones below where it specifically makes references to combat, the common word used when referring to PVP in the code.
Buffs and Debuffs?
This came alongside some of the PVP code, but it clearly warrants a dedicated section. The code references multiple levels of Buffs and Debuffs, as well as sound effects related to Buffs and Debuffs. The interesting fact is that the sound effects are present in the APK files, and they are almost exactly like the sound effects for main series buff and debuff sound effects, such as when your Squirtle uses Tail Whip and the opponent loses Defense. Of course though, you can make that determination for yourself here (for comparison some old school GBA Emerald Version rips are included, courtesy of khinsider.com:
get_AttackerAttackStatStageChange set_AttackerAttackStatStageChange get_AttackerDefenseStatStageChange set_AttackerDefenseStatStageChange get_TargetAttackStatStageChange set_TargetAttackStatStageChange get_TargetDefenseStatStageChange set_TargetDefenseStatStageChangepokemonBuffFx pokemonBuffFx pokemonDebuffFx StatEffectivenessLevels DebuffLevel3 DebuffLevel2 DebuffLevel1 BuffLevel1 BuffLevel2 BuffLevel3
There is plenty more code related here, all seemingly related to the game knowing stat changes to Attack and Defense, having the game set these changes, having the game communicate with the network to get the stat changes, and much more.
There has been no indication stat changes would be implemented in the game and I frankly have no real explanation behind the coding. One way to look at it is buffing and debuffing to fit in the leagues, after all there is coding for min and max cp changes and checks to ensure you are all in the correct league. Another non-buff explanation is, in recent history in the main series, special Pokemon receive stat boosts at the start of a battle. This being the case with Legendaries/Snorlax in Let’s Go, and the Ultra Beasts in Sun and Moon. Perhaps this is a way to buff the Team Leader Trainers. However, if it appears to be related to actual stat changes to the Pokémon, the complexity of PVP, and perhaps all of Pokémon Go, just got amped up to levels some have wanted since launch.
Whatever they are used for, enjoy the sound files for PVP wins and losses:
The big hurdles for adding new moves into the game include having them present in the Metadata, having related assets like sound and visual components present in the APKs, and having them put into the Game Master with stats and assignments to various Pokémon. Trainers, I can confirm that most of the previous moves we saw added into the APK back in 123.1 have sounds associated with them, and possibly their related visual assets down below! I say most, because we are still missing:
- Razor Shell
- Blaze Kick
- Muddy Water
- Shadow Bone
That being said, we still have received:
An interesting thing to note is that quite a number of these moves, save for a few notable exceptions, buff or debuff something in the main series, be it Accuracy, Attack, Special Attack, Defense, or Special Defense. This might be a possible explanation as to why there had been the coding for Buffs and Debuffs in the code, however that is just a theory, manage any potential hype appropriately. Regardless, new moves are always welcome to try and shake up the meta, so bring on the moves, Niantic!
Some odd ball ones here, but several new textures had been added into the files. Most of them appear to be related to battle effects on the field, since some ground cracking, like in ground_crack below, appears on the loading image, as well their labels include battle scars like smoke, ground_crack_lava, impact01, impact02, impact03, and flame_ball. Either they are marks on the field, or are related to the new moves listed above, which would make sense for the likes of Acid Spray and the acid_ball and others like Earth Power and the ground quakes. If the latter then, all visual and sound effects would be in for the moves, and make them all set to go, besides a GM assignment.
There are also male and female skin masks, as well as black and white textures labeled as male and female defaults. Combined with the news of additional skin tones and hair colors, this might be the explanation. Apologies but those the eyeless Avatar masks might disturb.
There are a few more to be seen here,
To coincide with these as well, I will turn your attention to Chrales, who not only confirms the move sound files from earlier, but found somethings server side that, as far as I’ve been able to deduce, are not ran client side. Such things include leader and league icons, and backgrounds for the leaders.
some assets extracted : backgrounds and pvp pic.twitter.com/SU7B44qrKi
— Chrales (@Chrales) December 7, 2018
leaders icons pic.twitter.com/fA0S0n5GIK
— Chrales (@Chrales) December 7, 2018
— Chrales (@Chrales) December 7, 2018
New Loading Screen
You can finally stop shivering in the cold while looking at a summer loading screen that in no way reflects the majority of the real world! As you can see from what will follow, the default_loading_screen has been replaced with the leaked image from a few days ago:
- Some Pokestop related coding was fiddled with, indicating some changes brought about by the Beta Pokestop Submission process. In short they appear to be location checks and telemetry, indicating an aim to produce more accurate locations when submitting.
- New Badges, simply shown as:BADGE_TOP_BANANA_1, BADGE_TOP_BANANA_2, and BADGE_TOP_BANANA_3. Chrales saw some of this as well, but no solid leads on what these mean.
- Several bits of random code was removed from a section relating to friends and code scanning. Whether this means anything is yet to be seen, but let’s see how things work around the friend processes.
- There was nothing to show the costs of adding the second charge move, however the coding to allow a second charge move is in.
PokemonThirdMoveAttributesProto get_StardustToUnlock set_StardustToUnlock get_CandyToUnlock set_CandyToUnlock
- Code inside shows the game requesting and receiving NPC Pokemon stats and your own Pokemon stats. In addition, it appears to keep track of NPC battle stats and your own wins, losses, and draws.
- In the sections of toggles, for items like push notifications for gifts and such, there are toggles for combat. Most likely to opt into and out of receiving trainer battles, however this is merely a educated guess.
OnToggleFriendCombatClick OnToggleNearbyCombatClick ToggleLowMotivationPushNotification
- New code hinting at nice quality of life features, like filtering by moves and possibly giving a warning if you raise a Pokemon out of its League:
FilterByMove upgradedCp CheckIfUpgradedPokemonWillLeaveALeague leagueProto VerifyEligibility
- At the time of writing the new hair options are live, however the new skins are not. The hair includes various shades on black, brown, blue, purple, and blonde hairs, as well as new colors in green and white.
There you have it, hopefully I managed to not miss anything spectacular, and let’s just all be hyped for the future trainers! PVP is here soon, it seems like it might be rather complicated compared to what we initially thought, a new loading screen has finally hit, and we got wind of a winter event with Delibird.