Big update

- Added SfidaActionLogMessage to proto list
- Updated readme
- Moved requests file
- Moved responses into seperate file
- Test pokecoins and stardust
- Added basic forts
- Basic wild encounters
- Basic journal (buggy)
- Basic level up (buggy)
This commit is contained in:
Felix
2016-08-09 19:45:36 +02:00
parent 6ef63b02f4
commit f776496bd2
21 changed files with 551 additions and 323 deletions

View File

@@ -0,0 +1,21 @@
import * as CFG from "../../cfg";
import proto from "../proto";
/**
* @param {Object} obj
* @return {Object}
*/
export default function FortDetails(obj) {
return (
new proto.Networking.Responses.FortDetailsResponse({
fort_id: "cbb56441628d4a4d88f1c00b5b545684.16",
name: "Bauer Vom Lande",
image_urls: ["http://lh3.ggpht.com/Pu8QxppOJjm3gNI8wO_--2CcyXmfeOH8CTb3DionlzCpo7stk3pjlV_c9-kMakhtFyygN62WuNJaTsIiTw334UVmHZgEXDCj"],
type: proto.Map.Fort.FortType.CHECKPOINT,
description: "meow!"
}).encode()
);
}

View File

@@ -0,0 +1,32 @@
import * as CFG from "../../cfg";
import proto from "../proto";
/**
* @param {Object} obj
* @return {Object}
*/
export default function FortSearch(obj) {
return (
new proto.Networking.Responses.FortSearchResponse({
result: proto.Networking.Responses.FortSearchResponse.Result.SUCCESS,
items_awarded: [
new proto.Inventory.Item.ItemAward({
item_id: proto.Inventory.Item.ItemId.ITEM_ULTRA_BALL,
item_count: 1
}),
new proto.Inventory.Item.ItemAward({
item_id: proto.Inventory.Item.ItemId.ITEM_GREAT_BALL,
item_count: 2
})
],
gems_awarded: 0,
pokemon_data_egg: null,
experience_awarded: 100,
cooldown_complete_timestamp_ms: 1470174535972,
chain_hack_sequence_number: 0
}).encode()
);
}

View File

@@ -9,10 +9,10 @@ export default function GetDownloadUrls() {
let download_urls = [
DownloadUrlEntry({
url: "",
asset_id: "",
size: 0,
checksum: 0
asset_id: "9649e04b-ccd8-4b1c-b066-cc75ed4c0976/1467338147687000",
url: "https://storage.googleapis.com/cloud_assets_pgorelease/bundles/android/pm0101?generation=1467338147687000&GoogleAccessId=pgorelease-service-account@pgorelease.iam.gserviceaccount.com&Expires=1469970173&Signature=CY4YbWipMVMUzyDgHGceoo2NO429spFyH39p%2FSMltBlQOBYLcRD8panRgTH8tuMc3uB65rtp613IkGwUMaMMXx40v0NBECEsRXcggYxYluO2k4waShMyOmWHOomMPKwGXg5ot93wLH6aXFwv0%2FD%2FUaqZDrJYJ9bMRcsF2KlPPy363XbrbcSCcT19otqU3D9yjWU1mDbzRy9yZRqmaCu%2FPtWHKKWnUKiN2f2UqL8Gbulex8BDpm4OKf4lXnOwAKYDpcAMph%2FC3LKVhvoRuryzPRJgXojb1CvfHaY0svUFoKq0N%2FuFl9hzR8RAVLsAPaD%2FpKuql4BUm%2BZtoc%2BWi0lQXA%3D%3D",
size: 169205,
checksum: 0xbe30d925
})
];

View File

@@ -15,28 +15,54 @@ export default function GetInventoryData(obj) {
new proto.Inventory.InventoryItem({
inventory_item_data: new proto.Inventory.InventoryItemData({
"player_stats": new proto.Data.Player.PlayerStats({
"level": 99,
"experience": 1304364,
"prev_level_xp": 900000,
"next_level_xp": 1350000,
"km_walked": 54.55459213256836,
"pokemons_encountered": 3942,
"unique_pokedex_entries": 93,
"pokemons_captured": 3569,
"evolutions": 782,
"poke_stop_visits": 3113,
"pokeballs_thrown": 5783,
"eggs_hatched": 27,
"big_magikarp_caught": 11,
"battle_attack_won": 36,
"battle_attack_total": 44,
"level": 3,
"experience": 2000,
"prev_level_xp": 1000,
"next_level_xp": 6000,
"km_walked": 0.55459213256836,
"pokemons_encountered": 1,
"unique_pokedex_entries": 1,
"pokemons_captured": 1,
"evolutions": 0,
"poke_stop_visits": 1,
"pokeballs_thrown": 1,
"eggs_hatched": 0,
"big_magikarp_caught": 0,
"battle_attack_won": 0,
"battle_attack_total": 0,
"battle_defended_won": 0,
"battle_training_won": 1,
"battle_training_total": 2,
"prestige_raised_total": 190,
"prestige_dropped_total": 27000,
"pokemon_deployed": 2,
"small_rattata_caught": 79
"battle_training_won": 0,
"battle_training_total": 0,
"prestige_raised_total": 0,
"prestige_dropped_total": 0,
"pokemon_deployed": 0,
"small_rattata_caught": 0
})
})
}),
// player camera
new proto.Inventory.InventoryItem({
inventory_item_data: new proto.Inventory.InventoryItemData({
"player_camera": new proto.Data.Player.PlayerCamera({
is_default_camera: true
})
})
}),
// player currencies
new proto.Inventory.InventoryItem({
inventory_item_data: new proto.Inventory.InventoryItemData({
"player_currency": new proto.Data.Player.PlayerCurrency({
gems: 0
})
})
}),
// item
new proto.Inventory.InventoryItem({
inventory_item_data: new proto.Inventory.InventoryItemData({
"item": new proto.Inventory.Item.ItemData({
item_id: proto.Inventory.Item.ItemId.ITEM_MASTER_BALL,
count: 4,
unseen: false
})
})
}),
@@ -44,9 +70,9 @@ export default function GetInventoryData(obj) {
new proto.Inventory.InventoryItem({
inventory_item_data: new proto.Inventory.InventoryItemData({
"pokedex_entry": new proto.Data.PokedexEntry({
"pokemon_id": 147,
"times_encountered": 7,
"times_captured": 6,
"pokemon_id": 6,
"times_encountered": 1,
"times_captured": 1,
"evolution_stone_pieces": 0,
"evolution_stones": 0
})

View File

@@ -18,27 +18,64 @@ export default function GetMapObjects(request) {
new proto.Map.Fort.FortData({
id: "wuff",
last_modified_timestamp_ms: new Date().getTime() * 1000,
latitude: 39.1893730163574220,
longitude: -96.5853271484375000,
latitude: 39.19047143172651,
longitude: -96.58502161502833,
owned_by_team: 2,
guard_pokemon_id: 150,
guard_pokemon_cp: 2000,
gym_points: 1000,
is_in_battle: false,
enabled: true,
type: proto.Map.Fort.FortType.GYM,
type: proto.Map.Fort.FortType.CHECKPOINT,
sponsor: proto.Map.Fort.FortSponsor.MCDONALDS,
rendering_type: proto.Map.Fort.FortRenderingType.DEFAULT
})
],
spawn_points: [ ],
spawn_points: [],
deleted_objects: [ ],
is_truncated_list: false,
fort_summaries: [ ],
decimated_spawn_points: [ ],
wild_pokemons: [ ],
catchable_pokemons: [ ],
nearby_pokemons: [ ]
wild_pokemons: [
new proto.Map.Pokemon.WildPokemon({
encounter_id: 6180230722423979422,
last_modified_timestamp_ms: new Date().getTime() * 1e3,
latitude: 39.19047143172621,
longitude: -96.58502161502838,
spawn_point_id: "",
pokemon_data: new proto.Data.PokemonData({
"move_1": 211,
"move_2": 45,
"pokemon_id": 21,
"height_m": 0.2640344202518463,
"stamina_max": 14,
"weight_kg": 1.2240252494812012,
"individual_defense": 8,
"stamina": 14,
"individual_stamina": 10,
"individual_attack": 12,
"cp": 27
}),
time_till_hidden_ms: 597695
})
],
catchable_pokemons: [
new proto.Map.Pokemon.MapPokemon({
spawn_point_id: "",
encounter_id: 6180230722423979422,
pokemon_id: proto.Enums.PokemonId.SPEAROW,
expiration_timestamp_ms: (new Date().getTime() + 1e6) * 1e3,
latitude: 39.19047143172621,
longitude: -96.58502161502838
})
],
nearby_pokemons: [
new proto.Map.Pokemon.NearbyPokemon({
pokemon_id: proto.Enums.PokemonId.SPEAROW,
distance_in_meters: 1.0,
encounter_id: 6180230722423979422
})
]
}));
});

View File

@@ -18,9 +18,7 @@ function getPlayerDataPacket(obj) {
daily_bonus: new proto.Data.Player.DailyBonus({
next_defender_bonus_collect_timestamp_ms: 1470174535972
}),
contact_settings: new proto.Data.Player.ContactSettings({
send_marketing_emails: true
}),
contact_settings: new proto.Data.Player.ContactSettings(obj.contact_settings),
currencies: obj.currencies
})
);
@@ -51,6 +49,8 @@ function buildPlayerData(obj) {
backpack: 1
};
let contact_settings = obj.contact_settings;
let tutorial_state = [
proto.Enums.TutorialState.LEGAL_SCREEN,
proto.Enums.TutorialState.AVATAR_SELECTION,
@@ -74,6 +74,7 @@ function buildPlayerData(obj) {
username: username,
team: team,
tutorial_state: tutorial_state,
contact_settings: contact_settings,
avatar: avatar,
currencies: currencies
});

View File

@@ -13,46 +13,12 @@ export default function ItemTemplates(obj) {
success: true,
item_templates: new proto.Networking.Responses.DownloadItemTemplatesResponse.ItemTemplate({
pokemon_settings: null,
// unused but saved here for later use
item_settings: new proto.Settings.Master.ItemSettings({
"item_id": 702,
"item_type": 6,
"category": 2,
"drop_freq": 0,
"drop_trainer_level": 0,
"pokeball": null,
"potion": null,
"revive": null,
"battle": null,
"food": null,
"inventory_upgrade": null,
"xp_boost": null,
"incense": null,
"egg_incubator": null,
"fort_modifier": null
}),
// unused but saved here for later use
move_settings: new proto.Settings.Master.MoveSettings({
"movement_id": 13,
"animation_id": 5,
"pokemon_type": 1,
"power": 25,
"accuracy_chance": 1,
"critical_chance": 0.05000000074505806,
"heal_scalar": 0,
"stamina_loss_scalar": 0.05999999865889549,
"trainer_level_min": 1,
"trainer_level_max": 100,
"vfx_name": "wrap",
"duration_ms": 4000,
"damage_window_start_ms": 2800,
"damage_window_end_ms": 3400,
"energy_delta": -20
}),
// unused but saved here for later use
move_sequence_settings: new proto.Settings.Master.MoveSequenceSettings({
"sequence": ["anim attacker atk-move", "f2fvfx attacker acid_fast", "sfx attacker 051-0_acid", "wait 0.15", "vfx defender acid_fast_hit", "anim defender damageS01", "wait 0.35", "sys ui-sync", "sys complete"]
}),
item_settings: null,
move_settings: null,
move_sequence_settings: null,
camera: null,
iap_item_display: null,
equipped_badges: null,
type_effective: new proto.Settings.Master.TypeEffectiveSettings({
"attack_scalar": [1, 0.800000011920929, 0.800000011920929, 0.800000011920929, 1, 1, 1, 0.800000011920929, 0.800000011920929, 0.800000011920929, 1, 1.25, 1, 1.25, 1, 1, 1.25, 0.800000011920929],
"attack_type": 7
@@ -62,25 +28,6 @@ export default function ItemTemplates(obj) {
"badge_rank": 4,
"targets": [10, 100, 1000]
}),
// unused but saved here for later use
camera: new proto.Settings.Master.CameraSettings({
"next_camera": "",
"interpolation": [1],
"target_type": [12],
"ease_in_speed": [0],
"east_out_speed": [0],
"duration_seconds": [5],
"wait_seconds": [0],
"transition_seconds": [0.5],
"angle_degree": [-20],
"angle_offset_degree": [0],
"pitch_degree": [20],
"pitch_offset_degree": [0],
"roll_degree": [0],
"distance_meters": [4],
"height_percent": [0],
"vert_ctr_ratio": [1]
}),
player_level: new proto.Settings.Master.PlayerLevelSettings({
"rank_num": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
"required_experience": [0, 1000, 3000, 6000, 10000, 15000, 21000, 28000, 36000, 45000, 55000, 65000, 75000, 85000, 100000, 120000, 140000, 160000, 185000, 210000, 260000, 335000, 435000, 560000, 710000, 900000, 1100000, 1350000, 1650000, 2000000, 2500000, 3000000, 3750000, 4750000, 6000000, 7500000, 9500000, 12000000, 15000000, 20000000],
@@ -117,7 +64,6 @@ export default function ItemTemplates(obj) {
"nice_throw_threshold": 1,
"milestone_threshold": 100
}),
iap_item_display: null, // seems like useless??
iap_settings: new proto.Settings.Master.IapSettings({
"daily_bonus_coins": 0,
"daily_defender_bonus_per_pokemon": [500, 10],
@@ -132,8 +78,7 @@ export default function ItemTemplates(obj) {
"allowed_levels_above_player": 2,
"candy_cost": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 15, 15],
"stardust_cost": [200, 200, 400, 400, 600, 600, 800, 800, 1000, 1000, 1300, 1300, 1600, 1600, 1900, 1900, 2200, 2200, 2500, 2500, 3000, 3000, 3500, 3500, 4000, 4000, 4500, 4500, 5000, 5000, 6000, 6000, 7000, 7000, 8000, 8000, 9000, 9000, 10000, 10000]
}),
equipped_badges: null // seems like unused
})
}),
timestamp_ms: 1468540960537
}).encode()

View File

@@ -0,0 +1,24 @@
import proto from "../proto";
import { GetPlayer } from "./";
/**
* @param {Object} obj
* @return {Object}
*/
export default function LevelUpRewards(obj) {
return (
new proto.Networking.Responses.LevelUpRewardsResponse({
result: proto.Networking.Responses.LevelUpRewardsResponse.Result.SUCCESS,
items_awarded: [
new proto.Inventory.Item.ItemAward({
item_id: proto.Inventory.Item.ItemId.ITEM_GREAT_BALL,
item_count: 2
})
],
items_unlocked: []
}).encode()
);
}

View File

@@ -0,0 +1,18 @@
import proto from "../proto";
import { GetPlayer } from "./";
/**
* @param {Player} player
* @return {Object}
*/
export default function MarkTutorialComplete(player) {
return (
new proto.Networking.Respones.MarkTutorialCompleteResponse({
success: true,
player_data: GetPlayer(player).player_data
}).encode()
);
}

View File

@@ -0,0 +1,18 @@
import proto from "../proto";
import { GetPlayer } from "./";
/**
* @param {Player} player
* @return {Object}
*/
export default function SetAvatar(player) {
return (
new proto.Networking.Responses.SetAvatarResponse({
status: proto.Networking.Responses.SetAvatarResponse.Status.SUCCESS,
player_data: GetPlayer(player).player_data
}).encode()
);
}

View File

@@ -0,0 +1,20 @@
import * as CFG from "../../cfg";
import proto from "../proto";
import { GetPlayer } from "./";
/**
* @param {Player} player
* @return {Object}
*/
export default function SetContactSettings(player) {
return (
new proto.Networking.Responses.SetContactSettingsResponse({
status: proto.Networking.Responses.SetContactSettingsResponse.Status.SUCCESS,
player_data: GetPlayer(player).player_data
}).encode()
);
}

View File

@@ -0,0 +1,50 @@
import proto from "../proto";
import * as CFG from "../../cfg";
/**
* @param {Object} obj
* @return {Object}
*/
export default function SfidaActionLog(obj) {
return (
new proto.Networking.Responses.SfidaActionLogResponse({
result: proto.Networking.Responses.SfidaActionLogResponse.Result.SUCCESS,
log_entries: [
new proto.Data.Logs.ActionLogEntry({
timestamp_ms: (new Date().getTime() - 1e4) * 1e3,
fort_search: new proto.Data.Logs.FortSearchLogEntry({
result: proto.Data.Logs.FortSearchLogEntry.Result.SUCCESS,
fort_id: "wurf",
items: [
new proto.Inventory.Item.ItemData({
item_id: proto.Inventory.Item.ItemId.ITEM_MASTER_BALL,
count: 2,
unseen: false
})
]
})
})
/*,
new proto.Data.Logs.ActionLogEntry({
timestamp_ms: (new Date().getTime() - 1e3) * 1e3,
catch_pokemon: new proto.Data.Logs.CatchPokemonLogEntry({
result: proto.Data.Logs.CatchPokemonLogEntry.Result.SUCCESS,
pokemon_id: proto.Enums.PokemonId.PIDGEY,
combat_points: 352
})
}),
new proto.Data.Logs.ActionLogEntry({
timestamp_ms: (new Date().getTime() - 1e2) * 1e3,
catch_pokemon: new proto.Data.Logs.CatchPokemonLogEntry({
result: proto.Data.Logs.CatchPokemonLogEntry.Result.SUCCESS,
pokemon_id: proto.Enums.PokemonId.CHARIZARD,
combat_points: 963
})
})*/
]
}).encode()
);
}

View File

@@ -7,12 +7,24 @@ export GetInventory from "./Responses.GetInventory";
export GetPlayer from "./Responses.GetPlayer";
export GetPlayerProfile from "./Responses.GetPlayerProfile";
export FortDetails from "./Responses.FortDetails";
export FortSearch from "./Responses.FortSearch";
export GetMapObjects from "./Responses.GetMapObjects";
export SetContactSettings from "./Responses.SetContactSettings";
export ItemTemplates from "./Responses.ItemTemplates";
export CheckAwardedBadges from "./Responses.CheckAwardedBadges";
export GetDownloadUrls from "./Responses.GetDownloadUrls";
export MarkTutorialComplete from "./Responses.MarkTutorialComplete";
export LevelUpRewards from "./Responses.LevelUpRewards";
export SetAvatar from "./Responses.SetAvatar";
export SfidaActionLog from "./Responses.SfidaActionLog";
export AuthTicket from "./Envelopes.AuthTicket";
export ResponseEnvelope from "./Envelopes.ResponseEnvelope";
export ResponseEnvelopeAuth from "./Envelopes.ResponseEnvelope.Auth";