From e28f4f0d205c06a799a8b504ac27677fa7f05139 Mon Sep 17 00:00:00 2001 From: ArthurKun <16458204+ArthurKun21@users.noreply.github.com> Date: Mon, 6 Jan 2025 06:55:14 +0800 Subject: [PATCH] Support for JP's 100x FP (#1944) --- app/src/main/assets/Jp/fp_continue.png | Bin 8150 -> 3836 bytes app/src/main/assets/Jp/friend_summon.png | Bin 0 -> 795 bytes .../scripts/locations/FPLocations.kt | 20 ++++++++++++++---- 3 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 app/src/main/assets/Jp/friend_summon.png diff --git a/app/src/main/assets/Jp/fp_continue.png b/app/src/main/assets/Jp/fp_continue.png index 1902f8108eac490946e0a135bac9b4fdcbecc2d5..2a3a87e68bfcee26535fe45656a6f7a8fb0d7eb1 100644 GIT binary patch literal 3836 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 Z|38}fa`^`v;>7>}002ovPDHLkV1kQWfYks1 literal 0 HcmV?d00001 diff --git a/scripts/src/main/java/io/github/fate_grand_automata/scripts/locations/FPLocations.kt b/scripts/src/main/java/io/github/fate_grand_automata/scripts/locations/FPLocations.kt index 9dd37dfe9..b3f6fd77d 100644 --- a/scripts/src/main/java/io/github/fate_grand_automata/scripts/locations/FPLocations.kt +++ b/scripts/src/main/java/io/github/fate_grand_automata/scripts/locations/FPLocations.kt @@ -1,5 +1,6 @@ package io.github.fate_grand_automata.scripts.locations +import io.github.fate_grand_automata.scripts.enums.GameServer import io.github.lib_automata.Location import io.github.lib_automata.Region import io.github.lib_automata.dagger.ScriptScope @@ -9,12 +10,23 @@ import javax.inject.Inject class FPLocations @Inject constructor( scriptAreaTransforms: IScriptAreaTransforms ): IScriptAreaTransforms by scriptAreaTransforms { - val summonCheck = Region(100, 1152, 75, 143).xFromCenter() - val initialSummonCheck = Region(-265, 1131, 75, 143).xFromCenter() - val initialSummonClick = Location(2, 1052).xFromCenter() + val summonCheck = when (gameServer) { + is GameServer.Jp -> Region(250, 1121, 100, 143).xFromCenter() + else -> Region(100, 1152, 75, 143).xFromCenter() + } + + val initialSummonCheck = Region(-305, 1121, 240, 183).xFromCenter() + val initialSummonClick = when (gameServer) { + is GameServer.Jp -> Location(2, 977).xFromCenter() + else -> Location(2, 1052).xFromCenter() + } val continueSummonRegion = Region(-36, 1264, 580, 170).xFromCenter() - val first10SummonClick = Location(120, 1062).xFromCenter() + val first10SummonClick = when (gameServer) { + // the old location is still valid but only for 10x FP + is GameServer.Jp -> Location(400, 1062).xFromCenter() + else -> Location(120, 1062).xFromCenter() + } val okClick = Location(320, 1120).xFromCenter() val continueSummonClick = Location(320, 1325).xFromCenter() val skipRapidClick = Location(1240, 1400).xFromCenter()