Package: dota2picker
Dota 2 Counter Picker 0.9.0 versionThis the utility for choosing the best combinations of heroes and counter picks.A current development state is available in theCHANGELOG.mdfile.InstallationYou need two Python 3, Tkinter and Pillow modules to launch the Dota 2 Counter Picker.WindowsThese are steps to install dota2picker on Windows:Download the Python 3 distribution:https://www.python.org/downloads/release/python-373/Install Python 3.Install Dota 2 Counter Picker:python -m pip install --user dota2pickerThis is an alternative way to install dota2picker from github repository:Install thepillowmodule:python -m pip install pillowInstall thesetuptoolsmodule:python -m pip install setuptoolsDownload the archive with the dota2picker and extract it:https://github.com/ellysh/dota2-counter-picker/archive/master.zipChange directory to thedota2-counter-pickerand launch the command:python setup.py install --userIn both variants, dota2picker will be installed to the following directory (example for Python 3.6 version):C:\Users\<username>\AppData\Roaming\Python\Python36\SriptsUbuntuThese are steps to install dota2picker on Linux:Install the Python 3:sudo apt-get install python3Install the Tkinter module:sudo apt-get install python3-tkInstall the pip package manager:sudo apt-get install python3-pipInstall Dota 2 Counter Picker:pip3 install dota2pickerDota2picker will be installed to the/usr/local/bin/directory.This is an alternative way to install dota2picker from github repository:Install thepillowmodule:sudo apt-get install python3-pil.imagetkInstall thesetuptoolsmodule:pip install setuptoolsDownload the archive with the dota2picker and extract it:https://github.com/ellysh/dota2-counter-picker/archive/master.zipChange directory to thedota2-counter-pickerand launch the command:python setup.py install --userDota2picker will be installed to the~/.local/bindirectory.UsagePickerThed2-picker.pyscript shows you which heroes are bad or good against the chosen one. Also, the script shows which heroes can be combined well.Start thed2-picker.pyscript and click on the hero icon. The yellow color will highlight it. The red color highlights all heroes who can easily beat the selected one. We can say that the selected hero is "bad against" them. The green color means that the chosen hero is "good against" the selected ones. The blue color shows heroes which can be combined effectively with the selected hero in one team. It means that he "works well with" them.The script allows you to pick several heroes at the same time. Then it shows relations of all picked heroes.There are three digits under each hero icon which estimate him. These are meaning of these digits:How many of the picked heroes (they are highlighted yellow) are bad against the hero on the corresponding icon?How many of the picked heroes are good against this one?How many of the picked heroes are works well with this one?Let's consider an example with the window on the screenshot above. The enemy team has picked two heroes: Mars and Monkey King. Both of them are bad against Batrider. Thus, Batrider gets scores "2 0 0". If you pick Batrider for your team, it will be a good choice in this case.At the same time, Monkey King is bad against Spectre but Mars is good against her. Thus, Spectre gets scores "1 1 0". She is still highlighted red because her bad and good scores are equal. She will get the green color in case of "1 2 0" scores for example. If you pick Spectre against Mars and Monkey King, probably you will have a tough game.There are three buttons with red, green and blue color at the bottom of the window. You can press each button and filter the highlighted heroes. If you press the red button, only heroes which are strong against the chosen one will be highlighted. The green and blue buttons work the same for "good against..." and "works well with..." heroes.You can cancel the current selection of heroes by theEscbutton.EditorThe initial version of the database with heroes was prepared based on theDota 2 Wiki. Thed2-editor.pyscript allows you to edit this database.Start thed2-editor.pyscript. It looks like thed2-picker.pyscript. Meaning of all colors is the same.These are steps to remove the hero from the "bad against..." relations:Choose the Lifestealer hero for example. The yellow color will highlight him.Press the red button at the bottom of the window. You will see only heroes with "bad against..." relations for Lifestealer. Now you are in the editing mode.Press the Monkey King hero. You will see that the color of his button becomes grey. This hero was removed from the "bad against..." relations for Lifestealer.Finish the editing mode by pressing the red button again. Now you see all three relations of Lifestealer. Monkey King hero is not counter pick for Lifestealer anymore.You can follow the same algorithm for adding a hero to relations. Also, you should follow the same steps for adding/removing a hero to the "good against..." and "works well with..." relations.Thed2-picker.py,d2-checker.pyandd2-editor.pyscripts use the same database. It means that you will see all your changes in all these scripts.This is path to database with heroes on Linux:~/.local/share/dota2picker/Database.pklThis is path to database with heroes on Windows:C:\User\<username>\AppData\Local\dota2picker\Database.pklCheckerAfter editing the database, you want to check if it is consistent. The possible issue is you specify a hero A as "bad against..." the hero B but you forget to specify vice versa relation. This relation means that the hero B should be "good against..." the hero A. Thed2-checker.pyscript checks for such kind of mistakes in the database. If you launch the script in the console (or Command Prompt on Windows), you see the report about such mistakes.This is an example output of the script:Tiny is "good against" Naga Siren but Naga Siren is not "bad against" TinyBy default, the script does not fix these issues but it has two option to do it:Use the-acommand line option to add missing heroes to the required list:checker.py -aLet's see on our example output above. After the command with-a, Tiny will be added to the Naga Siren's "bad against" list.Use the-dcommand line option to remove extra heroes from the required list:checker.py -dAfter the command with-d, Naga Siren will be removed from the Tiny's "good against" list.Another possible issue is conflicting relations. Let's assume that hero A is good against hero B according to the database. At the same time, the hero B is good again A by accidental mistake.This is a possible output of these mistakes:Naga Siren has Huskar in both "bad against" and "good against" lists
Huskar has Naga Siren in both "bad against" and "good against" listsIt means that Naga Siren and Huskar has conflicting relations and counters each other. You should fix it by thed2-editor.pyscript in three steps:Remove Naga Siren from the "good against..." list of Huskar.Remove Huskar from the "bad against..." list of Naga Siren.Launch thed2-checker.pyscript again.Now the report about conflicts should be empty.Thed2-checker.pyscript works with the database in the Pickle format (theDatabase.pklfile).Import and ExportThed2-picker.py,d2-checker.pyandd2-editor.pyscripts use the database in the Pickle format (theDatabase.pklfile). This is a binary format, which is not convenient for reviewing in a text editor and comparing with other database files.Thed2-pkl2csv.pyscript allows you to convert the database from the Pickle format to the CSV. If you launch the script, you get theDatabase.csvfile in the database directory (see the "Editor" section). You can open this file in any text editor or MS/Libre Office application.When you are done with reviewing the database in the CSV format, you should launch thed2-csv2pkl.pyscript. It converts the database back to the Pickle format and stores it in theDatabase.pklfile.UpdateYou can update Dota 2 Counter Picker with the pip package manager or from github repository (see the "Installation" section). Your database files stay unchanged after the update.ContactsIf you have any suggestions, bug reports or questions about usage of Dota 2 Counter Picker, please contact me via emailpetrsum@gmail.com.LicenseThis project is distributed under the GPL v3.0 license