commit 63a84f2345d1b8ea0fbf86a7bb3db2bb7eeb5fcb Author: Alexander Popov Date: Mon Dec 26 01:02:19 2022 +0300 1.0.0 diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f3430c3 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +root = true + +[*] +indent_style = space +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.py] +indent_style = space +indent_size = 4 + +[*.md] +trim_trailing_whitespace = false diff --git a/README-EN.md b/README-EN.md new file mode 100644 index 0000000..fcb3d32 --- /dev/null +++ b/README-EN.md @@ -0,0 +1,47 @@ +# 🇺🇦 🖕 + +## 🍎 Battlepillars Farming Bot + +![Battlepillars Logo](images/logo.png) + +🇷🇺 Руководство на [русском](README.md)! + +## 💻 Requirements + +* [JDK](https://adoptium.net/temurin/releases/) 11.0.17+8 +* [SikuliX](https://launchpad.net/sikuli/sikulix/2.0.5/+download/sikulixide-2.0.5.jar) 2.0.5 или выше | SikuliX 2.0.5 or high +* [Jython](https://search.maven.org/artifact/org.python/jython-standalone/2.7.3/jar) 2.7.3 Standalone + +## 💽 Installing Jython + +Download `jython-standalone-2.7.3.jar` and place it in the specified paths +for your operating system. + +* Windows: `%APPDATA%\Sikulix\Extensions` +* Mac: `~/Library/Application Support/Sikulix/Extensions` +* Linux: `~/.Sikulix/Extensions` + +## 🕹 Preparing the game + +1. Set in game settings **window mode** and window resolution **1024x768** +2. Select the "Chain" skin for the battlepillars +3. Run a campaign and open Level 8 +4. As items of equipment, select +third item: **Medic**, fourth item: **Flamethrower** +5. Run the level (this is necessary so that Level 8 is always selected by default) + +## Bot Launch + +1. Open the game, go to the company and leave on the global map, +so that level 8 is on the screen +2. Open the script `apple-farm.py` in SikuliX IDE +3. Run the script + +> To stop script execution, use key combination [Alt]+[Shift]+[C]. + +## ⭐ Extra + +### run-ide.bat + +Script to run **SikuliX IDE** with required version of **JDK**. +The JDK directory is supposed to be located next to the IDE file (`sikulixide-2.0.5.jar`). diff --git a/README.md b/README.md new file mode 100644 index 0000000..b95b50c --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +# 🇺🇦 🖕 + +## 🍎 Бот для фарма в Battlepillars + +![Battlepillars Logo](images/logo.png) + +🇺🇸 [English](README-EN.md) guide! + +## 💻 Требования + +* [JDK](https://adoptium.net/temurin/releases/) 11.0.17+8 +* [SikuliX](https://launchpad.net/sikuli/sikulix/2.0.5/+download/sikulixide-2.0.5.jar) 2.0.5 или выше +* [Jython](https://search.maven.org/artifact/org.python/jython-standalone/2.7.3/jar) 2.7.3 Standalone + +## 💽 Установка Jython + +Скачаиваем `jython-standalone-2.7.3.jar` и размещаем его по указанным путям +для своей операционной системы. + +* Windows: `%APPDATA%\Sikulix\Extensions` +* Mac: `~/Library/Application Support/Sikulix/Extensions` +* Linux: `~/.Sikulix/Extensions` + +## 🕹 Подготовка игры + +1. Установить в настройках игры **оконный режим** и разрешение окна **1024x768** +2. Выбрать скин "Кольчуга" для гусениц +3. Запустить из меню игры кампанию, открыть 8 уровень +4. В качестве элементов экипировки выбрать +третий предмет: **Медик**, четвёртый предмет: **Огнемёт** +5. Запустить уровень (это необходимо, чтобы по умолчанию всегда был выбран 8 уровень) + +## 🤖 Запуск бота + +1. Открываем игру, заходим в компанию и оставляем игру на глобальной карте, +чтобы 8 уровень был на экране +2. Открываем скрипт `apple-farm.py` в SikuliX IDE +3. Запускаем скрипт + +> Для остановки выполнения скрипта исполльзуется +> комбинация клавиш [Alt]+[Shift]+[C]. + +## ⭐ Дополнительно + +### run-ide.bat + +Скрипт для запуска **SikuliX IDE** с необходимой версией **JDK**. +Предпологается, что директория с JDK разположена рядом с файлом IDE (`sikulixide-2.0.5.jar`). diff --git a/apple-farm.py b/apple-farm.py new file mode 100644 index 0000000..32aaaf5 --- /dev/null +++ b/apple-farm.py @@ -0,0 +1,60 @@ +from datetime import datetime + + +__author__ = "Alexander Popov " +__version__ = "1.0.0" +__license__ = "Unlicense" + + +def runLevel(): + """Running level and farming applesю""" + + wait("images/farm_level_on_map.png", 10) + click("images/farm_level_on_map.png") + + wait("images/level_title.png", 3) + click("images/level_start_button.png") + + wait("images/equip_window.png", 3) + click("images/button_start.png") + + wait("images/level_info_message.png", 5) + click("images/level_info_message_ok.png") + + Mouse.wheel(WHEEL_DOWN, 6) + + for pillar in range(2): + click("images/pillar_fire.png") + + for x in range(7): + click("images/pillar_heal.png") + + click("images/pillar_go.png") + + wait("images/winner_window.png", 60 * 3) + click("images/level_complete.png") + + +def main(): + """Main farm loop.""" + + print("Battlepillars Farming Bot {0} by {1}".format(__version__, __author__)) + + run_count = 0 + while True: + run_count += 1 + + date_now = datetime.now() + date_string = date_now.strftime("%Y-%m-%d %H:%M:%S") + + print( + "[{date}] Running farm {times} times".format( + date=date_string, times=run_count + ) + ) + + runLevel() + + +if __name__ == "__main__": + main() diff --git a/images/button_start.png b/images/button_start.png new file mode 100644 index 0000000..099b44d Binary files /dev/null and b/images/button_start.png differ diff --git a/images/equip_window.png b/images/equip_window.png new file mode 100644 index 0000000..d1764c2 Binary files /dev/null and b/images/equip_window.png differ diff --git a/images/farm_level_on_map.png b/images/farm_level_on_map.png new file mode 100644 index 0000000..8968d94 Binary files /dev/null and b/images/farm_level_on_map.png differ diff --git a/images/level_complete.png b/images/level_complete.png new file mode 100644 index 0000000..c9a0efe Binary files /dev/null and b/images/level_complete.png differ diff --git a/images/level_info_message.png b/images/level_info_message.png new file mode 100644 index 0000000..15be321 Binary files /dev/null and b/images/level_info_message.png differ diff --git a/images/level_info_message_ok.png b/images/level_info_message_ok.png new file mode 100644 index 0000000..4c6c05c Binary files /dev/null and b/images/level_info_message_ok.png differ diff --git a/images/level_start_button.png b/images/level_start_button.png new file mode 100644 index 0000000..13ff086 Binary files /dev/null and b/images/level_start_button.png differ diff --git a/images/level_title.png b/images/level_title.png new file mode 100644 index 0000000..58a6e91 Binary files /dev/null and b/images/level_title.png differ diff --git a/images/logo.png b/images/logo.png new file mode 100644 index 0000000..1f80339 Binary files /dev/null and b/images/logo.png differ diff --git a/images/pillar_fire.png b/images/pillar_fire.png new file mode 100644 index 0000000..2aa1c43 Binary files /dev/null and b/images/pillar_fire.png differ diff --git a/images/pillar_go.png b/images/pillar_go.png new file mode 100644 index 0000000..71cd176 Binary files /dev/null and b/images/pillar_go.png differ diff --git a/images/pillar_heal.png b/images/pillar_heal.png new file mode 100644 index 0000000..9415a25 Binary files /dev/null and b/images/pillar_heal.png differ diff --git a/images/winner_window.png b/images/winner_window.png new file mode 100644 index 0000000..5c41950 Binary files /dev/null and b/images/winner_window.png differ diff --git a/run-ide.bat b/run-ide.bat new file mode 100644 index 0000000..4264083 --- /dev/null +++ b/run-ide.bat @@ -0,0 +1 @@ +start "" "jdk-11.0.17+8/bin/java.exe" -jar sikulixide-2.0.5.jar