Educational application written in Kotlin aimed at automating user-defined workflows for the mobile game, "Granblue Fantasy", using MediaProjection, AccessibilityService, and OpenCV.
00:00:00 Device dimensions: 1920x1080
00:00:00 [FARM] Starting Farming Mode for Quest.
00:00:00 [FARM] Farming 5x Swirling Amber at The Fruit of Lumacie.
00:00:00 [QUEST] Now beginning process to navigate to the mission: The Fruit of Lumacie...
00:00:00 [INFO] Bot is already at the Home screen.
00:00:00 [QUEST] Bot is currently on the correct island.
00:00:04 [WARNING] Failed to confirm the bot location at YOU_RETREATED_FROM_THE_RAID_BATTLE.
00:00:06 [QUEST] Moving to Chapter 13 (39/52) node...
00:00:07 [QUEST] Now bringing up the Summon Selection screen for "The Fruit of Lumacie"...
00:00:09 GAA encountered an Exception: java.io.FileNotFoundException: buttons/the_fruit_of_lumacie.webp
at android.content.res.AssetManager.nativeOpenAsset(Native Method)
at android.content.res.AssetManager.open(AssetManager.java:752)
at android.content.res.AssetManager.open(AssetManager.java:729)
at com.steve1316.granblue_automation_android.utils.ImageUtils.getBitmaps(ImageUtils.kt:433)
at com.steve1316.granblue_automation_android.utils.ImageUtils.findButton(ImageUtils.kt:582)
at com.steve1316.granblue_automation_android.utils.ImageUtils.findButton$default(ImageUtils.kt:556)
at com.steve1316.granblue_automation_android.bot.Game.findAndClickButton(Game.kt:257)
at com.steve1316.granblue_automation_android.bot.Game.findAndClickButton$default(Game.kt:203)
at com.steve1316.granblue_automation_android.bot.game_modes.Quest.navigate(Quest.kt:733)
at com.steve1316.granblue_automation_android.bot.game_modes.Quest.start(Quest.kt:758)
at com.steve1316.granblue_automation_android.bot.Game.startFarmingMode(Game.kt:1107)
at com.steve1316.granblue_automation_android.utils.BotService$onCreate$1$onTouch$1.invoke(BotService.kt:132)
at com.steve1316.granblue_automation_android.utils.BotService$onCreate$1$onTouch$1.invoke(BotService.kt:110)
at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)