From b4b4607a992ede77cc1038bd110a6ac0db835d07 Mon Sep 17 00:00:00 2001 From: reconman Date: Sun, 18 May 2025 11:39:58 +0200 Subject: [PATCH 1/2] Handle Storm Pod dialogues - Confirms starting Bleached Earth quests - Handle Out of Pods messages in non-JP servers --- app/src/main/assets/Cn/start_quest.png | Bin 0 -> 4664 bytes app/src/main/assets/En/start_quest.png | Bin 0 -> 7334 bytes app/src/main/assets/Jp/start_quest.png | Bin 0 -> 7882 bytes app/src/main/assets/Kr/start_quest.png | Bin 0 -> 5495 bytes app/src/main/assets/Tw/start_quest.png | Bin 0 -> 5102 bytes .../imaging/DroidCvPattern.kt | 2 +- .../fate_grand_automata/util/ImageLoader.kt | 1 + .../github/fate_grand_automata/scripts/Images.kt | 3 ++- .../scripts/entrypoints/AutoBattle.kt | 12 ++++++++---- .../scripts/locations/Locations.kt | 2 ++ 10 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 app/src/main/assets/Cn/start_quest.png create mode 100644 app/src/main/assets/En/start_quest.png create mode 100644 app/src/main/assets/Jp/start_quest.png create mode 100644 app/src/main/assets/Kr/start_quest.png create mode 100644 app/src/main/assets/Tw/start_quest.png diff --git a/app/src/main/assets/Cn/start_quest.png b/app/src/main/assets/Cn/start_quest.png new file mode 100644 index 0000000000000000000000000000000000000000..ba2e0627658b1fdeb9c06dddb249a62f460ebeac GIT binary patch literal 4664 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 Q5&!@I07*qoM6N<$f "ok-kr.png" Images.Execute -> "execute.png" Images.SupportBlankCE -> "support_blank_ce.png" + Images.StartQuest -> "start_quest.png" } override operator fun get(img: Images, gameServer: GameServer?): Pattern = synchronized(regionCachedPatterns) { diff --git a/scripts/src/main/java/io/github/fate_grand_automata/scripts/Images.kt b/scripts/src/main/java/io/github/fate_grand_automata/scripts/Images.kt index 5fa842b78..f5b10df04 100644 --- a/scripts/src/main/java/io/github/fate_grand_automata/scripts/Images.kt +++ b/scripts/src/main/java/io/github/fate_grand_automata/scripts/Images.kt @@ -88,5 +88,6 @@ enum class Images { */ OkKR, Execute, - SupportBlankCE + SupportBlankCE, + StartQuest } \ No newline at end of file diff --git a/scripts/src/main/java/io/github/fate_grand_automata/scripts/entrypoints/AutoBattle.kt b/scripts/src/main/java/io/github/fate_grand_automata/scripts/entrypoints/AutoBattle.kt index b9b88266a..c80440355 100644 --- a/scripts/src/main/java/io/github/fate_grand_automata/scripts/entrypoints/AutoBattle.kt +++ b/scripts/src/main/java/io/github/fate_grand_automata/scripts/entrypoints/AutoBattle.kt @@ -98,7 +98,7 @@ class AutoBattle @Inject constructor( loop() } catch (e: BattleExitException) { throw ExitException(e.reason, makeExitState()) - } catch (e: ScriptAbortException) { + } catch (_: ScriptAbortException) { throw ExitException(ExitReason.Abort, makeExitState()) } catch (e: Exception) { val reason = ExitReason.Unexpected(e) @@ -339,10 +339,11 @@ class AutoBattle @Inject constructor( locations.resultMatRewardsRegion.click() } - private fun isInOrdealCallOutOfPodsScreen(): Boolean { - // Lock the Ordeal Call for JP server - if (prefs.gameServer !is GameServer.Jp) return false + private fun isInOrdealCallConfirmPodUseScreen(): Boolean { + return images[Images.StartQuest] in locations.ordealCallConfirmPodUseRegion + } + private fun isInOrdealCallOutOfPodsScreen(): Boolean { return images[Images.Close] in locations.ordealCallOutOfPodsRegion } @@ -520,15 +521,18 @@ class AutoBattle @Inject constructor( var closeScreen = false var inventoryFull = false + var confirmPodUsage = false useSameSnapIn { closeScreen = isInOrdealCallOutOfPodsScreen() inventoryFull = isInventoryFull() + confirmPodUsage = isInOrdealCallConfirmPodUseScreen() } when { closeScreen -> throw BattleExitException(ExitReason.LimitRuns(state.runs)) inventoryFull -> throw BattleExitException(ExitReason.InventoryFull) + confirmPodUsage -> locations.ordealCallConfirmPodUseRegion.center.click() } refill.refill() diff --git a/scripts/src/main/java/io/github/fate_grand_automata/scripts/locations/Locations.kt b/scripts/src/main/java/io/github/fate_grand_automata/scripts/locations/Locations.kt index 00fcb91b7..02ceb63e4 100644 --- a/scripts/src/main/java/io/github/fate_grand_automata/scripts/locations/Locations.kt +++ b/scripts/src/main/java/io/github/fate_grand_automata/scripts/locations/Locations.kt @@ -29,6 +29,8 @@ class Locations @Inject constructor( val inventoryFullRegion = Region(-280, 860, 560, 190).xFromCenter() + val ordealCallConfirmPodUseRegion = Region(190, 1096, 420, 62).xFromCenter() + val ordealCallOutOfPodsRegion = Region(-112, 1088, 219, 72).xFromCenter() val ordealCallOutOfPodsClick = Location(-2, 1124).xFromCenter() From 468d8d117803000d0d80692180cc27703267e771 Mon Sep 17 00:00:00 2001 From: reconman Date: Sun, 18 May 2025 11:48:46 +0200 Subject: [PATCH 2/2] Handle TranslateFGO --- .../fate_grand_automata/scripts/entrypoints/AutoBattle.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/src/main/java/io/github/fate_grand_automata/scripts/entrypoints/AutoBattle.kt b/scripts/src/main/java/io/github/fate_grand_automata/scripts/entrypoints/AutoBattle.kt index c80440355..dbedd7ed0 100644 --- a/scripts/src/main/java/io/github/fate_grand_automata/scripts/entrypoints/AutoBattle.kt +++ b/scripts/src/main/java/io/github/fate_grand_automata/scripts/entrypoints/AutoBattle.kt @@ -340,11 +340,11 @@ class AutoBattle @Inject constructor( } private fun isInOrdealCallConfirmPodUseScreen(): Boolean { - return images[Images.StartQuest] in locations.ordealCallConfirmPodUseRegion + return findImage(locations.ordealCallConfirmPodUseRegion, Images.StartQuest) } private fun isInOrdealCallOutOfPodsScreen(): Boolean { - return images[Images.Close] in locations.ordealCallOutOfPodsRegion + return findImage(locations.ordealCallOutOfPodsRegion, Images.Close) } private fun ordealCallOutOfPods() {