Skip to content

Commit

Permalink
Dev merge to master, PR (#3564)
Browse files Browse the repository at this point in the history
* Adding plugin support (#2679)

* Adding plugin support

* Adding an empty __init__.py

* Moving the base task to the project root (#2702)

* Moving the base task to the project root

* Moving the base class more

* Changing the import again

* Adding a heartbeat to the analytics (#2709)

* Adding a heartbeat to the analytics

* Heartbeat every 30 seconds, not every 5

* Don't double track clients

* Fix 'local variable 'bot' referenced before assignment'

* Providing an error if tasks don't work for the given api (#2732)

* Fix for utf8 encoding when catching lured pokemon (#2720)

* Fixing lure pokestop encoding

* fixing lure encoding

* Fix For catchable not being displayed on the web (#2719)

* Fix For catchable not being displayed on the web

* Update catch_visible_pokemon.py

* Added encrypt.so compilation process to Dockerfile (#2695)

* OS Detection for encrypt lib (#2768)

Fix 32bit check, darwin and linux use the same file

Make it a function

Check if file exists, if not show error

Define file_name first

Fix return

Check if file exists, if not show error

Print info about paths

Fix for 32/64bit detection

* Fix Typo in unexpected_response_retry (#2531)

fixes #2525 #2523

* Revert "changing license from MIT to GPLv3"

This reverts commit 69fb64f.

* When the google analytics domain is blocked the bot crashed. (#2764)

With a simple try / except this can be solved.

Fix dirty catch all

* Fixes #2698 - Prevents "Possibly searching too often" error after re-login. (#2771)

* Fixes #2698
- Added api.activate_signature call to prevent issue after re-login.
- Also replaced deprecated log call with event_manager emit to prevent exception being thrown.

* Modified to use OS detected library path as per PR #2768

* Support loading plugins from .zip files (#2766)

* Keep track of how many pokemon released (#2884)

* Setting Library path to work with encrypt.so (#2899)

Setting LD_LIBRARY_PATH on Dockerfile

* ✨ Added login and username to available stats (#2494)

Added a player_data property in PokemonGoBot to access player data from outside
Added unit tests for login and username stats
Added tests for call args when updating the window title
Added a platform-specific test for window title updating on win32 platform

* [dev] small fixes (#2912)

* Fixed emit_event typo

* Update CONTRIBUTORS.md

* Changed initialization location for "bot"

We use bot in main exception on 128

* Update pokecli.py

* Rename load_path to load_plugin (#2947)

* Adding some logic for pulling plugins from github (#2967)

* flush after title update (#2977)

* correctly re-raise exception to keep backtrace (#2944)

* Update MoveToMapPokemon to use events instead of logger. (#2913)

* Config/encrypt.so (#2964)

* Add config option for libencrypt.so

* Correctly set the config value and check for the file in said dir

* Fixed mispelling for "formatted" variable (#2984)

* Loading plugins from Github (#2992)

* Checking github plugin file existence

* Loading plugins from github

* Fixed #3000 (#3003)

Fixed syntax error on "move_to_map_pokemon.py" that makes the client crash when using this feature.

* Added MaxPotion inventory count to summary. (#3015)

Short Description: 
The Max Potion count was missing from the inventory summary.

Was #2456

* Added cleanup of download and files for encrypt.so after they are no longer needed (#3011)

* Fix bot not returning back after telepoting (#3014)

* Fix typo: last_long -> last_lon

* Whitespace cleanup

* Fix bug introduced by #3037: bot not returning back

* Fix Dockerfile installation (#3057)

* Fix for #3045 (#3055)

* Added request to check configuration (#3089)

* Fixed Dockerfile - missing \ on command lines (#3096)

* Fixed mispelling for "formatted" variable

* Docker commands missing trailing \

* Fix for FileIO slowing bot performance.This puts the map writing into a thread and makes sure it only executes  once. (#3100)

* Change word usage: "fled" to "escaped" (#3118)

"fled" is confusing to lot of people and is easily confused with pokemon vanishing. "escaped" is a better term.

* Update the example config file (#3120)

* Add config option for libencrypt.so

* Add config option for libencrypt.so

* Add config option for libencrypt.so

* Add config option for libencrypt.so

* Rename path.example.json to path.json.example

* typo: logrmation -> information (#2601)

Fix a typo. 

I assume that it was "information" initially, but became "logrmation" when someone used replace all functionality to replace all infos with logs. But I might be totally wrong at this point, idk. Just didn't like the word and wanted to fix that typo.

* Change fled to escaped (#3129)

Fix an issue after PR #3118

* When JSON parsing fails, give a rough indication of why (#3137)

* When JSON parsing fails, give a rough indication of why

* Use the official package instead of SHA1 commit

* Handle Github Download Zip Format (#3108)

* Checking github plugin file existence

* Loading plugins from github

* Starting install code for github plugins

* Updating GithubPlugin to support extracting folders

* Handling github zip formats by extracting to the correct location

* Refactor catch worker (#2527)

* refactor catch worker

* fix

* few renames

* add to contributors

* fix

* add missing behavior

* fix encounter events

* don't make events about ignored pokemon

* Added Run-Loop (#3143)

* Add files via upload

modified run script wich let you run the boot in a loop(if it crashes it restarts)

* Integreated Loop into run.sh

modified run.sh to loop the script so that even if it crashes it
automaticly restarts.

* fixing loop in spin fort task (#3165)

* Some love for the vim users (#3154)

* Updated README with link to desktop version (#3208)

* Fix for #3190 (#3197)

* MoveToMap: Add minimum balls to run (#3166)

* added config to ignore item count for Spin and MoveToFort (#3160)

* [Inventory Management] Add a central class for caching/parsing inventory & static data (#2528)

* new class to centralize inventory management

* use new inventory class in evolve_pokemon

* use new inventory to display # candy after catch

* Keeping a cache of gym information (#3236)

* New Option: "dont_nickname_favorite" (#2496)

* New Option: "dont_nickname_favorite"

This change (line 19) adds the option, that the user can choose, whether their favorite pokemons should also get a new nickname or not.

If a user want this, then he or she has to add the line ("dont_nickname_favorite" = true) after ("nickname_template": " ... ",).

* Update nickname_pokemon.py

* Update

* Put change to line 30

This reduce the reduce the runtime, because favorite pokemon won't be added to the list.

* Restart the loop when catching pokemon and there are more to catch (#3242)

* fixed NameError: global name 'pokemon_name' is not defined (#3244)

resolves ```traceback (most recent call last):
  File "pokecli.py", line 521, in <module>
    main()
  File "pokecli.py", line 95, in main
    bot.tick()
  File "/usr/src/app/pokemongo_bot/__init__.py", line 451, in tick
    if worker.work() == WorkerResult.RUNNING:
  File "/usr/src/app/pokemongo_bot/cell_workers/evolve_pokemon.py", line 38, in work
    self._execute_pokemon_evolve(pokemon, cache)
  File "/usr/src/app/pokemongo_bot/cell_workers/evolve_pokemon.py", line 117, in _execute_pokemon_evolve
    cache[pokemon.name] = 1
NameError: global name 'pokemon_name' is not defined```

* Stop fetching gym details (#3245)

* Checking all forts for lured pokemon (#3163)

* Fix flooding of keep_best_release (#3223)

* Fix flooding of keep_best_release

* Fix flooding of keep_best_release

* [Feature] Recycle Threshold (#2465)

* Add Threshold Option

* Add Threshold Option to Example Configs

* Add Name to Contributors

* Change config name and message

* Remove logger

* Add option to run when storage less than something

* Change Message

* Fix

* Error fixes, message improvement

* Config Changes and Remove Option

* Call heartbeat on step_walker even if speed is higher than distance (#2513)

* Return an empty list if no pokemon are available. (#3259)

The changes introduced in 4c95259 expose this bug.

* Allow UpdateTitleStats to emit events instead of rewriting the console (#3264)

* Updating our issue and PR templates to be more helpful (#3262)

* Dev (#3277)

* * adding enhanced sniping capabilities for move_to_map_pokemon

* Adding enhanced sniping capabilities for move_to_map_pokemon

* Update pgoapi to a newer version (#3241)

This should hopefully fix issues like #3181, #3098, #2874 and
potentially more.

Needs testing/verification. I am running now, but it does take about an
hour to trigger.

* Fix unexpected egg incubation retry (#3276)

incubator['used'] flag is set but not used in IncubateEggs._apply_incubators

* has_next_evolution is a function not a property (#3284)

* Powerful setup.sh (#3263)

* Rewrite run.sh

Very powerful run.sh with lots of function.
1.install(make .so)
2.update
3.config generator
4.config backup
5.run loop make it never down

It should run like 
run.sh *.json or other opinion. 
See -help.

* Update run.sh

* Update run.sh

OK problem solved

* Delete setup.py

* Rename run.sh to setup.sh

* Create run.sh

* Update setup.sh

* Update install.sh

* Update setup.sh

* Update run.sh

* Update setup.sh

Some small fix.

* Added +x to run.sh

* Added a configuration option "path_startmode" (conflict merge #2489) (#3270)

* Upstream update and merge, with path_startmode configuration

* Removed logger and fixed base task path

* As per request, path_startmode is now path_start_mode

* Removed all logging

* Adding documentation for how to use and write plugins (#3254)

* Adding documentation for how to use and write plugins

* Adding a link to the plugins docs in the Readme

* Updating link to the plugin docs in the readme

* Checking config file exists in run.sh (#3326)

* Improve and update pokemon.json (#3331)

1. Unminify for simplier edits
2. Add BaseAttack, BaseDefense, BaseStamina, CaptureRate, FleeRate, Fast/Special Attack(s)

* Made paths to .json files absolute so pokecli.py can be called from CRON (#3157)

* Made paths to .json files absolute so pokecli.py can be called from CRON

* made file paths abs in inventory

fixed incorrect dict reference, changed to .get() as felt this was intended

* Add fast & charged moves data from #2117 (originally by @iananass) (#3336)

Data for pokemon quick & slow attacks

* Upgrade pgoapi to the b4bf0e089dfe09903f8dda37dae56910e01f94cc commit(latest for now). (#3337)

* Revert "Upgrade pgoapi to the b4bf0e089dfe09903f8dda37dae56910e01f94cc commit…" (#3340)

* Added map_path configuration for move_to_map. (#3339)

* Log stats on terminal (#3312)

* added _log_on_terminal function

* Added logic to toggle terminal logging functionality from config file

* Added possibility to disable title changes, refactor code

* Refactor tuples

* Refactor ifs to clearer syntax

* changes to improve event system based on new web ui devs requests

* typo :D

* let's use dict.get a bit to avoid errors

* keeping the account in the remote command response

* Add ColoredLoggingHandler (#3198)

* Update TransferPokemon to use new Inventory Class (#3320)

* Update TransferPokemon to use new Inventory Class

* Use base_dir

* Don't release pokemon if bot is on test mode

* Some text fixes for setup.sh (#3390)

Minor text fix.

* Fix path of shells in install.sh (#3393)

* Update install.sh

Fix path

* Update setup.sh

fix path

* Update run.sh

fix path

* Fix evolution error in pokemon.json (#3344)

Fix evolution error in pokemon.json

* Improve formatting consistency in transfer_pokemon.py (#3397)

Improve formatting consistency

* Remove unnecessary file

* Put info on the next line in run.sh (#3422)

* Update setup.sh

fix typo

* Update run.sh

fix typo

* Fix Struct() argument 1 must be string, not unicode. (#3375)

* Give the possibility to disable a task without removing it (#3417)

* Give the possiblity to disable a task in config without removing it from the config file

* Put exmple only in nickname task

* Add Unit testing

* typo

* Use enabled false as exemple

* fix config creation (#3482)

Changed auth to be more specifik and added right permissions.

* Remove unused IV calculation from evolve_pokemon (#3487)

Previously IV was computed in each worker. Now its fetched from inventory. This was left over and not called in the worker at all.

* Don't show Inventory full event if we set "ignore_item_count" (#3440)

* Fix showing the date in run.sh (#3433)

fix the logic of showing the date

* Typo fix: show new catch rate after berry throw. (#3521)

* Fix stdout is not a terminal (#3511)

* Ensure recycling happens if bag is over capacity. (#3531)

Short Description:
Ensures you that item Recycling happens if you have more items than the total bag capacity.

When you level up, you are awarded items which can cause the bag to be over the capacity.

* Better inventory:  attacks & movesets,  IV CP perfection,  pokemon level,  etc.. (#3455)

* Add "level to CP multiplier" data

Data is from justinleewells/pogo-optimizer:
https://github.com/justinleewells/pogo-optimizer/blob/edd692d/data/game/level-to-cpm.json

* Many improvements & additions for the inventory logic

 - LevelToCPm, FastAttacks, ChargedAttacks, Movesets
 - More info for each pokemon:  attacks data,  percent to max cp,  IV CP perfection

* Add PyCharm/IDEA *.iml (project file) to ignored

* Fixes, improvements & refactoring for inventory.py

 - Return inadvertently deleted pieces of code (thanks to @achretien)
 - Evolution logic fixes
 - Other minor fixes
 - Moveset logic moved to Moveset class

* Fix data for pokemons & charged moves

* Inventory tests:  pokemon data,  LevelToCPm,  attacks

* Fix travis build

* Fix info for Hitmonlee & Hitmonchan

* Revert "Better inventory:  attacks & movesets,  IV CP perfection,  pokemon level,  etc.." (#3549)

* run.bat for windows (#3542)

run.bat with persistent loop

* Fix error when MoveToFort called from handle_soft_ban.py (#3500)

* Fix error when MoveToFort called from handle_soft_ban.py

* Added myself to CONTRIBUTORS.md

* Fixed list of charged attacks for Venonat (#3548) + BaseDefense/BaseStamina info fix (#3550)

* Revert "Revert "Better inventory:  attacks & movesets,  IV CP perfection,  pokemon level,  etc.." (#3549)"

This reverts commit e9b229e.

* Fix BaseDefense/BaseStamina and type info

Fixed BaseDefense/BaseStamina info (was mixed up)
Fixed type info for Mr. Mime, Clefairy, Clefable, Jigglypuff, Wigglytuff
Added check for correctness of exact CP value calculation

* Fixed list of charged attacks for Venonat

* Don't kill bot in case of unexpected moveset, use fallback + better error message

* Blacklisting tejado from getting mentioned by the mention-bot

* Moving wiki pages to docs folder
  • Loading branch information
solderzzc committed Aug 11, 2016
1 parent 63f777b commit d7cb7df
Show file tree
Hide file tree
Showing 46 changed files with 8,087 additions and 270 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ share/

# PyCharm IDE settings
.idea/
*.iml

# Personal load details
src/
Expand Down
3 changes: 3 additions & 0 deletions .mention-bot
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"userBlacklist": ["tejado"]
}
3 changes: 3 additions & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,6 @@
* nikhil-pandey
* thebigjc
* JaapMoolenaar
* eevee-github
* g0vanish
* cmezh
1 change: 1 addition & 0 deletions configs/config.json.cluster.example
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@
"evolve_captured": "NONE",
"catch_randomize_reticle_factor": 1.0,
"catch_randomize_spin_factor": 1.0,
"logging_color": true,
"catch": {
"any": {"catch_above_cp": 0, "catch_above_iv": 0, "logic": "or"},
"// Example of always catching Rattata:": {},
Expand Down
8 changes: 8 additions & 0 deletions configs/config.json.example
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,13 @@
{
"type": "TransferPokemon"
},
{
"type": "NicknamePokemon",
"config": {
"enabled": false,
"nickname_template": "{iv_pct}_{iv_ads}"
}
},
{
"type": "EvolvePokemon",
"config": {
Expand Down Expand Up @@ -89,6 +96,7 @@
"evolve_captured": "NONE",
"catch_randomize_reticle_factor": 1.0,
"catch_randomize_spin_factor": 1.0,
"logging_color": true,
"catch": {
"any": {"catch_above_cp": 0, "catch_above_iv": 0, "logic": "or"},
"// Example of always catching Rattata:": {},
Expand Down
2 changes: 2 additions & 0 deletions configs/config.json.map.example
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@
"snipe_high_prio_threshold": 400,
"update_map": true,
"mode": "priority",
"map_path": "raw_data",
"catch": {
"==========Legendaries==========": 0,
"Aerodactyl": 1000,
Expand Down Expand Up @@ -322,6 +323,7 @@
"evolve_captured": "NONE",
"catch_randomize_reticle_factor": 1.0,
"catch_randomize_spin_factor": 1.0,
"logging_color": true,
"catch": {
"any": {"catch_above_cp": 0, "catch_above_iv": 0, "logic": "or"},
"// Example of always catching Rattata:": {},
Expand Down
1 change: 1 addition & 0 deletions configs/config.json.path.example
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@
"evolve_captured": "NONE",
"catch_randomize_reticle_factor": 1.0,
"catch_randomize_spin_factor": 1.0,
"logging_color": true,
"catch": {
"any": {"catch_above_cp": 0, "catch_above_iv": 0, "logic": "or"},
"// Example of always catching Rattata:": {},
Expand Down
1 change: 1 addition & 0 deletions configs/config.json.pokemon.example
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@
"evolve_captured": "NONE",
"catch_randomize_reticle_factor": 1.0,
"catch_randomize_spin_factor": 1.0,
"logging_color": true,
"catch": {
"any": {"catch_above_cp": 0, "catch_above_iv": 0, "logic": "or" },

Expand Down
91 changes: 91 additions & 0 deletions data/charged_moves.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
[{"id":32,"name":"Stone Edge","type":"Rock","damage":80,"duration":3100,"energy":100,"dps":25.8},
{"id":28,"name":"Cross Chop","type":"Fighting","damage":60,"duration":2000,"energy":100,"dps":30.0},
{"id":83,"name":"Dragon Claw","type":"Dragon","damage":35,"duration":1500,"energy":50,"dps":23.33},
{"id":40,"name":"Blizzard","type":"Ice","damage":100,"duration":3900,"energy":100,"dps":25.64},
{"id":131,"name":"Body Slam","type":"Normal","damage":40,"duration":1560,"energy":50,"dps":25.64},
{"id":22,"name":"Megahorn","type":"Bug","damage":80,"duration":3200,"energy":100,"dps":25.0},
{"id":122,"name":"Hurricane","type":"Flying","damage":80,"duration":3200,"energy":100,"dps":25.0},
{"id":116,"name":"Solar Beam","type":"Grass","damage":120,"duration":4900,"energy":100,"dps":24.48},
{"id":103,"name":"Fire Blast","type":"Fire","damage":100,"duration":4100,"energy":100,"dps":24.39},
{"id":14,"name":"Hyper Beam","type":"Normal","damage":120,"duration":5000,"energy":100,"dps":24.0},
{"id":31,"name":"Earthquake","type":"Ground","damage":100,"duration":4200,"energy":100,"dps":23.8},
{"id":118,"name":"Power Whip","type":"Grass","damage":70,"duration":2800,"energy":100,"dps":25.0},
{"id":107,"name":"Hydro Pump","type":"Water","damage":90,"duration":3800,"energy":100,"dps":23.68},
{"id":117,"name":"Leaf Blade","type":"Grass","damage":55,"duration":2800,"energy":50,"dps":19.64},
{"id":78,"name":"Thunder","type":"Electric","damage":100,"duration":4300,"energy":100,"dps":23.25},
{"id":123,"name":"Brick Break","type":"Fighting","damage":30,"duration":1600,"energy":33,"dps":18.75},
{"id":92,"name":"Gunk Shot","type":"Poison","damage":65,"duration":3000,"energy":100,"dps":21.66},
{"id":90,"name":"Sludge Bomb","type":"Poison","damage":55,"duration":2600,"energy":50,"dps":21.15},
{"id":42,"name":"Heat Wave","type":"Fire","damage":80,"duration":3800,"energy":100,"dps":21.05},
{"id":87,"name":"Moonblast","type":"Fairy","damage":85,"duration":4100,"energy":100,"dps":20.73},
{"id":91,"name":"Sludge Wave","type":"Poison","damage":70,"duration":3400,"energy":100,"dps":20.58},
{"id":79,"name":"Thunderbolt","type":"Electric","damage":55,"duration":2700,"energy":50,"dps":20.37},
{"id":47,"name":"Petal Blizzard","type":"Grass","damage":65,"duration":3200,"energy":50,"dps":20.31},
{"id":89,"name":"Cross Poison","type":"Poison","damage":25,"duration":1500,"energy":25,"dps":16.66},
{"id":108,"name":"Psychic","type":"Psychic","damage":55,"duration":2800,"energy":50,"dps":19.64},
{"id":58,"name":"Aqua Tail","type":"Water","damage":45,"duration":2350,"energy":50,"dps":19.14},
{"id":24,"name":"Flamethrower","type":"Fire","damage":55,"duration":2900,"energy":50,"dps":18.96},
{"id":88,"name":"Play Rough","type":"Fairy","damage":55,"duration":2900,"energy":50,"dps":18.96},
{"id":82,"name":"Dragon Pulse","type":"Dragon","damage":65,"duration":3600,"energy":50,"dps":18.05},
{"id":39,"name":"Ice Beam","type":"Ice","damage":65,"duration":3650,"energy":50,"dps":17.8},
{"id":49,"name":"Bug Buzz","type":"Bug","damage":75,"duration":4250,"energy":50,"dps":17.64},
{"id":46,"name":"Drill Run","type":"Ground","damage":50,"duration":3400,"energy":33,"dps":14.7},
{"id":59,"name":"Seed Bomb","type":"Grass","damage":40,"duration":2400,"energy":33,"dps":16.66},
{"id":77,"name":"Thunder Punch","type":"Electric","damage":40,"duration":2400,"energy":33,"dps":16.66},
{"id":100,"name":"X Scissor","type":"Bug","damage":35,"duration":2100,"energy":33,"dps":16.66},
{"id":129,"name":"Hyper Fang","type":"Normal","damage":35,"duration":2100,"energy":33,"dps":16.66},
{"id":64,"name":"Rock Slide","type":"Rock","damage":50,"duration":3200,"energy":33,"dps":15.62},
{"id":94,"name":"Bone Club","type":"Ground","damage":25,"duration":1600,"energy":25,"dps":15.62},
{"id":36,"name":"Flash Cannon","type":"Steel","damage":60,"duration":3900,"energy":33,"dps":15.38},
{"id":74,"name":"Iron Head","type":"Steel","damage":30,"duration":2000,"energy":33,"dps":15.0},
{"id":38,"name":"Drill Peck","type":"Flying","damage":40,"duration":2700,"energy":33,"dps":14.81},
{"id":60,"name":"Psyshock","type":"Psychic","damage":40,"duration":2700,"energy":33,"dps":14.81},
{"id":70,"name":"Shadow Ball","type":"Ghost","damage":45,"duration":3080,"energy":33,"dps":14.61},
{"id":99,"name":"Signal Beam","type":"Bug","damage":45,"duration":3100,"energy":33,"dps":14.51},
{"id":115,"name":"Fire Punch","type":"Fire","damage":40,"duration":2800,"energy":33,"dps":14.28},
{"id":54,"name":"Submission","type":"Fighting","damage":30,"duration":2100,"energy":33,"dps":14.28},
{"id":102,"name":"Flame Burst","type":"Fire","damage":30,"duration":2100,"energy":25,"dps":14.28},
{"id":127,"name":"Stomp","type":"Normal","damage":30,"duration":2100,"energy":25,"dps":14.28},
{"id":35,"name":"Discharge","type":"Electric","damage":35,"duration":2500,"energy":33,"dps":14.0},
{"id":65,"name":"Power Gem","type":"Rock","damage":40,"duration":2900,"energy":33,"dps":13.79},
{"id":106,"name":"Scald","type":"Water","damage":55,"duration":4000,"energy":33,"dps":13.75},
{"id":109,"name":"Psystrike","type":"Psychic","damage":70,"duration":5100,"energy":100,"dps":13.72},
{"id":56,"name":"Low Sweep","type":"Fighting","damage":30,"duration":2250,"energy":25,"dps":13.33},
{"id":51,"name":"Night Slash","type":"Dark","damage":30,"duration":2700,"energy":25,"dps":11.11},
{"id":86,"name":"Dazzling Gleam","type":"Fairy","damage":55,"duration":4200,"energy":33,"dps":13.09},
{"id":16,"name":"Dark Pulse","type":"Dark","damage":45,"duration":3500,"energy":33,"dps":12.85},
{"id":33,"name":"Ice Punch","type":"Ice","damage":45,"duration":3500,"energy":33,"dps":12.85},
{"id":26,"name":"Dig","type":"Ground","damage":70,"duration":5800,"energy":33,"dps":12.06},
{"id":20,"name":"Vice Grip","type":"Normal","damage":25,"duration":2100,"energy":20,"dps":11.9},
{"id":18,"name":"Sludge","type":"Poison","damage":30,"duration":2600,"energy":25,"dps":11.53},
{"id":96,"name":"Mud Bomb","type":"Ground","damage":30,"duration":2600,"energy":25,"dps":11.53},
{"id":126,"name":"Horn Attack","type":"Normal","damage":25,"duration":2200,"energy":25,"dps":11.36},
{"id":121,"name":"Air Cutter","type":"Flying","damage":30,"duration":3300,"energy":25,"dps":9.09},
{"id":132,"name":"Rest","type":"Normal","damage":35,"duration":3100,"energy":33,"dps":11.29},
{"id":72,"name":"Magnet Bomb","type":"Steel","damage":30,"duration":2800,"energy":25,"dps":10.71},
{"id":57,"name":"Aqua Jet","type":"Water","damage":25,"duration":2350,"energy":20,"dps":10.63},
{"id":105,"name":"Water Pulse","type":"Water","damage":35,"duration":3300,"energy":25,"dps":10.6},
{"id":30,"name":"Psybeam","type":"Psychic","damage":40,"duration":3800,"energy":25,"dps":10.52},
{"id":63,"name":"Rock Tomb","type":"Rock","damage":30,"duration":3400,"energy":25,"dps":8.82},
{"id":50,"name":"Poison Fang","type":"Poison","damage":25,"duration":2400,"energy":20,"dps":10.41},
{"id":104,"name":"Brine","type":"Water","damage":25,"duration":2400,"energy":25,"dps":10.41},
{"id":45,"name":"Aerial Ace","type":"Flying","damage":30,"duration":2900,"energy":25,"dps":10.34},
{"id":53,"name":"Bubble Beam","type":"Water","damage":30,"duration":2900,"energy":25,"dps":10.34},
{"id":95,"name":"Bulldoze","type":"Ground","damage":35,"duration":3400,"energy":25,"dps":10.29},
{"id":125,"name":"Swift","type":"Normal","damage":30,"duration":3000,"energy":25,"dps":10.0},
{"id":62,"name":"Ancient Power","type":"Rock","damage":35,"duration":3600,"energy":25,"dps":9.72},
{"id":114,"name":"Giga Drain","type":"Grass","damage":35,"duration":3600,"energy":33,"dps":9.72},
{"id":69,"name":"Ominous Wind","type":"Ghost","damage":30,"duration":3100,"energy":25,"dps":9.67},
{"id":67,"name":"Shadow Punch","type":"Ghost","damage":20,"duration":2100,"energy":25,"dps":9.52},
{"id":80,"name":"Twister","type":"Dragon","damage":25,"duration":2700,"energy":20,"dps":9.25},
{"id":85,"name":"Draining Kiss","type":"Fairy","damage":25,"duration":2800,"energy":20,"dps":8.92},
{"id":21,"name":"Flame Wheel","type":"Fire","damage":40,"duration":4600,"energy":25,"dps":8.69},
{"id":133,"name":"Struggle","type":"Normal","damage":15,"duration":1695,"energy":20,"dps":8.84},
{"id":101,"name":"Flame Charge","type":"Fire","damage":25,"duration":3100,"energy":20,"dps":8.06},
{"id":34,"name":"Heart Stamp","type":"Psychic","damage":20,"duration":2550,"energy":25,"dps":7.84},
{"id":75,"name":"Parabolic Charge","type":"Electric","damage":15,"duration":2100,"energy":20,"dps":7.14},
{"id":111,"name":"Icy Wind","type":"Ice","damage":25,"duration":3800,"energy":20,"dps":6.57},
{"id":84,"name":"Disarming Voice","type":"Fairy","damage":25,"duration":3900,"energy":20,"dps":6.41},
{"id":13,"name":"Wrap","type":"Normal","damage":25,"duration":4000,"energy":20,"dps":6.25},
{"id":66,"name":"Shadow Sneak","type":"Ghost","damage":15,"duration":3100,"energy":20,"dps":4.83},
{"id":48,"name":"Mega Drain","type":"Grass","damage":15,"duration":3200,"energy":20,"dps":4.68}]
41 changes: 41 additions & 0 deletions data/fast_moves.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
[{"id":222,"name":"Pound","type":"Normal","damage":7,"duration":540,"energy":7,"dps":12.96},
{"id":228,"name":"Metal Claw","type":"Steel","damage":8,"duration":630,"energy":7,"dps":12.69},
{"id":226,"name":"Psycho Cut","type":"Psychic","damage":7,"duration":570,"energy":7,"dps":12.28},
{"id":210,"name":"Wing Attack","type":"Flying","damage":9,"duration":750,"energy":7,"dps":12.0},
{"id":202,"name":"Bite","type":"Dark","damage":6,"duration":500,"energy":7,"dps":12.0},
{"id":204,"name":"Dragon Breath","type":"Dragon","damage":6,"duration":500,"energy":7,"dps":12.0},
{"id":220,"name":"Scratch","type":"Normal","damage":6,"duration":500,"energy":7,"dps":12.0},
{"id":230,"name":"Water Gun","type":"Water","damage":6,"duration":500,"energy":7,"dps":12.0},
{"id":240,"name":"Fire Fang","type":"Fire","damage":10,"duration":840,"energy":4,"dps":11.9},
{"id":213,"name":"Shadow Claw","type":"Ghost","damage":11,"duration":950,"energy":7,"dps":11.57},
{"id":238,"name":"Feint Attack","type":"Dark","damage":12,"duration":1040,"energy":7,"dps":11.53},
{"id":224,"name":"Poison Jab","type":"Poison","damage":12,"duration":1050,"energy":7,"dps":11.42},
{"id":234,"name":"Zen Headbutt","type":"Psychic","damage":12,"duration":1050,"energy":4,"dps":11.42},
{"id":239,"name":"Steel Wing","type":"Steel","damage":15,"duration":1330,"energy":4,"dps":11.27},
{"id":201,"name":"Bug Bite","type":"Bug","damage":5,"duration":450,"energy":7,"dps":11.11},
{"id":218,"name":"Frost Breath","type":"Ice","damage":9,"duration":810,"energy":7,"dps":11.11},
{"id":233,"name":"Mud Slap","type":"Ground","damage":15,"duration":1350,"energy":9,"dps":11.11},
{"id":216,"name":"Mud Shot","type":"Ground","damage":6,"duration":550,"energy":7,"dps":10.9},
{"id":221,"name":"Tackle","type":"Normal","damage":12,"duration":1100,"energy":7,"dps":10.9},
{"id":237,"name":"Bubble","type":"Water","damage":25,"duration":2300,"energy":15,"dps":10.86},
{"id":214,"name":"Vine Whip","type":"Grass","damage":7,"duration":650,"energy":7,"dps":10.76},
{"id":217,"name":"Ice Shard","type":"Ice","damage":15,"duration":1400,"energy":7,"dps":10.71},
{"id":241,"name":"Rock Smash","type":"Fighting","damage":15,"duration":1410,"energy":7,"dps":10.63},
{"id":223,"name":"Cut","type":"Normal","damage":12,"duration":1130,"energy":7,"dps":10.61},
{"id":236,"name":"Poison Sting","type":"Poison","damage":6,"duration":575,"energy":4,"dps":10.43},
{"id":215,"name":"Razor Leaf","type":"Grass","damage":15,"duration":1450,"energy":7,"dps":10.34},
{"id":212,"name":"Lick","type":"Ghost","damage":5,"duration":500,"energy":7,"dps":10.0},
{"id":206,"name":"Spark","type":"Electric","damage":7,"duration":700,"energy":4,"dps":10.0},
{"id":203,"name":"Sucker Punch","type":"Dark","damage":7,"duration":700,"energy":4,"dps":10.0},
{"id":235,"name":"Confusion","type":"Psychic","damage":15,"duration":1510,"energy":7,"dps":9.93},
{"id":225,"name":"Acid","type":"Poison","damage":10,"duration":1050,"energy":7,"dps":9.52},
{"id":209,"name":"Ember","type":"Fire","damage":10,"duration":1050,"energy":7,"dps":9.52},
{"id":227,"name":"Rock Throw","type":"Rock","damage":12,"duration":1360,"energy":7,"dps":8.82},
{"id":211,"name":"Peck","type":"Flying","damage":10,"duration":1150,"energy":10,"dps":8.69},
{"id":207,"name":"Low Kick","type":"Fighting","damage":5,"duration":600,"energy":7,"dps":8.33},
{"id":205,"name":"Thunder Shock","type":"Electric","damage":5,"duration":600,"energy":7,"dps":8.33},
{"id":229,"name":"Bullet Punch","type":"Steel","damage":10,"duration":1200,"energy":7,"dps":8.33},
{"id":219,"name":"Quick Attack","type":"Normal","damage":10,"duration":1330,"energy":7,"dps":7.51},
{"id":200,"name":"Fury Cutter","type":"Bug","damage":3,"duration":400,"energy":12,"dps":7.5},
{"id":208,"name":"Karate Chop","type":"Fighting","damage":6,"duration":800,"energy":7,"dps":7.5},
{"id":231,"name":"Splash","type":"Water","damage":0,"duration":1230,"energy":7,"dps":0.0}]
81 changes: 81 additions & 0 deletions data/level_to_cpm.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
{
"1": 0.094,
"1.5": 0.135137432,
"2": 0.16639787,
"2.5": 0.192650919,
"3": 0.21573247,
"3.5": 0.236572661,
"4": 0.25572005,
"4.5": 0.273530381,
"5": 0.29024988,
"5.5": 0.306057377,
"6": 0.3210876,
"6.5": 0.335445036,
"7": 0.34921268,
"7.5": 0.362457751,
"8": 0.37523559,
"8.5": 0.387592406,
"9": 0.39956728,
"9.5": 0.411193551,
"10": 0.42250001,
"10.5": 0.432926419,
"11": 0.44310755,
"11.5": 0.4530599578,
"12": 0.46279839,
"12.5": 0.472336083,
"13": 0.48168495,
"13.5": 0.4908558,
"14": 0.49985844,
"14.5": 0.508701765,
"15": 0.51739395,
"15.5": 0.525942511,
"16": 0.53435433,
"16.5": 0.542635767,
"17": 0.55079269,
"17.5": 0.558830576,
"18": 0.56675452,
"18.5": 0.574569153,
"19": 0.58227891,
"19.5": 0.589887917,
"20": 0.59740001,
"20.5": 0.604818814,
"21": 0.61215729,
"21.5": 0.619399365,
"22": 0.62656713,
"22.5": 0.633644533,
"23": 0.64065295,
"23.5": 0.647576426,
"24": 0.65443563,
"24.5": 0.661214806,
"25": 0.667934,
"25.5": 0.674577537,
"26": 0.68116492,
"26.5": 0.687680648,
"27": 0.69414365,
"27.5": 0.700538673,
"28": 0.70688421,
"28.5": 0.713164996,
"29": 0.71939909,
"29.5": 0.725571552,
"30": 0.7317,
"30.5": 0.734741009,
"31": 0.73776948,
"31.5": 0.740785574,
"32": 0.74378943,
"32.5": 0.746781211,
"33": 0.74976104,
"33.5": 0.752729087,
"34": 0.75568551,
"34.5": 0.758630378,
"35": 0.76156384,
"35.5": 0.764486065,
"36": 0.76739717,
"36.5": 0.770297266,
"37": 0.7731865,
"37.5": 0.776064962,
"38": 0.77893275,
"38.5": 0.781790055,
"39": 0.78463697,
"39.5": 0.787473578,
"40": 0.79030001
}
5,901 changes: 5,900 additions & 1 deletion data/pokemon.json

Large diffs are not rendered by default.

73 changes: 73 additions & 0 deletions docs/auto_restart.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
This page is for a workaround to restart your bot(s).
_(Restarting is superior over reconnecting in case of stability for crashes)_

# MAC OS
1. Open your terminal
Just open it and you finished step 1

2. Create a new apple script
Heres an example to start and restart bots (in separate folders) adjust it for your needs. (paths, start commands, restart timer, ...)

You can create a start file (if you are lazy :P) and a restart file or just one for both needs

Start script:

tell application "Terminal"
activate
do script "cd desktop" in selected tab of the front window #edit your path
do script "cd bots" in selected tab of the front window #edit your path
do script "cd bot1" in selected tab of the front window #edit your path
do script "python pokecli.py" in selected tab of the front window #start with your parameters

#add more bots
delay 10
tell application "System Events"
keystroke "t" using {command down} #open a new tab for next bot
end tell
delay 5
do script "cd .." in selected tab of the front window
do script "cd bot2" in selected tab of the front window
do script "python pokecli.py" in selected tab of the front window
#copy this part for the amount you need
end tell

restart:

repeat

delay 1200 #timer in seconds
tell application "Terminal"
activate

tell application "System Events"
keystroke "c" using {control down} #close the bot
end tell
delay 3
do script "clear" in selected tab of the front window #not needed just for nice view
delay 3
do script "python pokecli.py" in selected tab of the front window #restart with parameters

#copy for the amount of bots
delay 10
tell application "System Events"
keystroke "ö" using {command down} #going to the previous tab
end tell
delay 3

tell application "System Events"
keystroke "c" using {control down}
end tell
delay 3
do script "clear" in selected tab of the front window
delay 3
do script "python pokecli.py" in selected tab of the front window

#copy for the amount of bots
tell application "System Events"
keystroke "ä" using {command down} #moving the the last tab
end tell
delay 3

end tell

end repeat
Loading

0 comments on commit d7cb7df

Please sign in to comment.