1
0
mirror of https://github.com/TheFunny/ArisuAutoSweeper synced 2026-06-23 20:34:51 +00:00

48 Commits

Author SHA1 Message Date
YoursFunny 3ee3ab51f4 fix: update assets file 2026-05-26 19:47:04 +08:00
YoursFunny 1c849e292e fix: update ui assets for OVERSEA server 2026-05-26 19:46:46 +08:00
YoursFunny ffa1917b22 fix: update assets file 2026-04-24 19:44:04 +08:00
YoursFunny e1396627d9 fix: update ui assets for jp 2026-04-24 19:41:41 +08:00
YoursFunny 2fbc6586df fix: update assets file 2026-01-20 19:48:40 +08:00
YoursFunny 602311b8c5 fix: update ui assets for jp 2026-01-20 19:45:38 +08:00
YoursFunny 0d1c936541 fix: update assets file 2025-09-23 20:03:39 +08:00
YoursFunny 6581511e1a fix: update configs to enable new bounty stage for OVERSEA server 2025-09-23 20:03:20 +08:00
YoursFunny c562913778 fix: update ui assets for en 2025-09-23 20:03:19 +08:00
YoursFunny 95148d2548 fix: update assets file 2025-08-09 13:20:45 +08:00
YoursFunny 44605f42cd fix: update ui assets for OVERSEA server 2025-08-09 13:20:21 +08:00
YoursFunny fdc50c77a5 fix: update assets file 2025-07-22 20:21:06 +08:00
YoursFunny 15ebf70681 fix: update ui assets for jp 2025-07-22 20:20:36 +08:00
YoursFunny b34c37a4b7 fix: update configs 2025-05-18 19:58:36 +08:00
YoursFunny 92408edd79 fix(bounty): update stage select option 2025-05-18 19:58:35 +08:00
YoursFunny 49c0894227 fix: update assets file 2025-05-13 21:56:02 +08:00
YoursFunny 1497a0a825 fix(cafe): update ui assets for jp & en 2025-05-13 21:55:42 +08:00
YoursFunny e41b8bf54a fix(cafe): synchronize Cafe No.2 for global server 2025-05-13 21:55:41 +08:00
YoursFunny cae02d62ec fix: update assets file 2025-04-22 19:54:32 +08:00
YoursFunny b16d25f9f5 fix: update ui assets for jp 2025-04-22 19:53:39 +08:00
YoursFunny 6cd0ded0c9 fix(cafe): correct invitation detection of Cafe No.2 in OVERSEA server 2025-03-08 18:44:34 +08:00
YoursFunny 62c147fdab fix(cafe): adjust timer of Cafe No.2 2025-01-22 19:40:43 +08:00
YoursFunny 5d4c5f939b fix(cafe): adjust click template offset 2025-01-22 19:40:32 +08:00
YoursFunny e6649762c8 fix: update assets file 2025-01-20 23:19:29 +08:00
YoursFunny 8cb4803f80 fix(cafe): update ui assets for jp 2025-01-20 23:18:06 +08:00
YoursFunny 51c7a5fed2 fix(cafe): update latest Cafe No.2 switch for jp 2025-01-20 23:17:39 +08:00
YoursFunny e7ecf0e94f fix: update assets file 2024-11-12 18:16:45 +08:00
YoursFunny 2a1394d733 fix(cafe): update ui assets for en 2024-11-12 18:16:45 +08:00
YoursFunny 164dee90d9 lang(cafe): correct Cafe No.2 description 2024-11-12 18:16:44 +08:00
YoursFunny f0da132f4e fix(cafe): enable Cafe No.2 for OVERSEA server 2024-11-12 18:03:30 +08:00
YoursFunny 191c3b31dc fix: update assets file 2024-10-23 23:32:55 +08:00
YoursFunny a5d20a95be fix: update ui assets for en 2024-10-23 23:32:47 +08:00
YoursFunny 7f0b2ff73f fix: update assets file 2024-09-24 14:07:02 +08:00
YoursFunny daf55b76e2 fix: update ui assets for en 2024-09-24 14:06:27 +08:00
YoursFunny 5b2e22163a fix: update assets file 2024-07-24 17:27:50 +08:00
YoursFunny 2ec7e45172 fix: update ui assets and circle for en 2024-07-24 17:27:38 +08:00
YoursFunny cd27718801 fix: update assets file 2024-07-11 18:03:37 +08:00
YoursFunny 2b12f51110 fix: update jp ui assets 2024-07-11 18:02:45 +08:00
YoursFunny a059394b71 fix: update assets file 2024-07-09 16:05:05 +08:00
YoursFunny cdccc85207 fix: update en ui assets 2024-07-09 16:04:18 +08:00
YoursFunny 9a1d8f101d fix: update assets file 2024-05-04 20:15:01 +08:00
YoursFunny bb5224d721 fix: update en ui assets 2024-05-04 20:11:50 +08:00
YoursFunny 573d742c03 fix: update assets file 2024-05-04 19:55:41 +08:00
YoursFunny f9076ae537 fix: update en ui assets 2024-05-04 19:54:57 +08:00
YoursFunny 9d9e3c0f91 fix: update ui assets for jp 2024-04-24 19:38:24 +08:00
YoursFunny c6063a4f3d fix: update ui assets for jp 2024-03-27 20:35:23 +08:00
YoursFunny b9cf5aa910 fix: update ui assets for jp 2024-02-21 18:26:00 +08:00
YoursFunny d082df0f03 fix: update ui assets and circle for jp 2024-01-25 19:40:09 +08:00
79 changed files with 324 additions and 245 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

+6 -3
View File
@@ -343,7 +343,8 @@
6, 6,
7, 7,
8, 8,
9 9,
10
] ]
}, },
"Count": { "Count": {
@@ -365,7 +366,8 @@
6, 6,
7, 7,
8, 8,
9 9,
10
] ]
}, },
"Count": { "Count": {
@@ -387,7 +389,8 @@
6, 6,
7, 7,
8, 8,
9 9,
10
] ]
}, },
"Count": { "Count": {
+3 -3
View File
@@ -101,17 +101,17 @@ Bounty:
Highway: Highway:
Stage: Stage:
value: 0 value: 0
option: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] option: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
Count: 2 Count: 2
DesertRailroad: DesertRailroad:
Stage: Stage:
value: 0 value: 0
option: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] option: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
Count: 2 Count: 2
Schoolhouse: Schoolhouse:
Stage: Stage:
value: 0 value: 0
option: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] option: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
Count: 2 Count: 2
Scrimmage: Scrimmage:
+3 -3
View File
@@ -56,15 +56,15 @@ class GeneratedConfig:
Bounty_OnError = 'skip' # stop, skip Bounty_OnError = 'skip' # stop, skip
# Group `Highway` # Group `Highway`
Highway_Stage = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Highway_Stage = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Highway_Count = 2 Highway_Count = 2
# Group `DesertRailroad` # Group `DesertRailroad`
DesertRailroad_Stage = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 DesertRailroad_Stage = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
DesertRailroad_Count = 2 DesertRailroad_Count = 2
# Group `Schoolhouse` # Group `Schoolhouse`
Schoolhouse_Stage = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Schoolhouse_Stage = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Schoolhouse_Count = 2 Schoolhouse_Count = 2
# Group `Scrimmage` # Group `Scrimmage`
+7 -4
View File
@@ -218,7 +218,7 @@
}, },
"SecondCafe": { "SecondCafe": {
"name": "Second Floor", "name": "Second Floor",
"help": "JP server only\nEnable auto switch to second floor and perform interaction" "help": "Enable auto switch to second floor and perform interaction"
} }
}, },
"Invitation": { "Invitation": {
@@ -282,7 +282,8 @@
"6": "06 - Overpass F", "6": "06 - Overpass F",
"7": "07 - Overpass G", "7": "07 - Overpass G",
"8": "08 - Overpass H", "8": "08 - Overpass H",
"9": "09 - Overpass I" "9": "09 - Overpass I",
"10": "10 - Overpass J"
}, },
"Count": { "Count": {
"name": "Sweep X times", "name": "Sweep X times",
@@ -306,7 +307,8 @@
"6": "06 - Abandoned Train F", "6": "06 - Abandoned Train F",
"7": "07 - Abandoned Train G", "7": "07 - Abandoned Train G",
"8": "08 - Abandoned Train H", "8": "08 - Abandoned Train H",
"9": "09 - Abandoned Train I" "9": "09 - Abandoned Train I",
"10": "10 - Abandoned Train J"
}, },
"Count": { "Count": {
"name": "Sweep X times", "name": "Sweep X times",
@@ -330,7 +332,8 @@
"6": "06 - Besieged Classroom F", "6": "06 - Besieged Classroom F",
"7": "07 - Besieged Classroom G", "7": "07 - Besieged Classroom G",
"8": "08 - Besieged Classroom H", "8": "08 - Besieged Classroom H",
"9": "09 - Besieged Classroom I" "9": "09 - Besieged Classroom I",
"10": "10 - Besieged Classroom J"
}, },
"Count": { "Count": {
"name": "Sweep X times", "name": "Sweep X times",
+7 -4
View File
@@ -218,7 +218,7 @@
}, },
"SecondCafe": { "SecondCafe": {
"name": "第二咖啡厅", "name": "第二咖啡厅",
"help": "仅支持日服\n自动切换第二咖啡厅进行互动点击" "help": "自动切换第二咖啡厅进行互动点击"
} }
}, },
"Invitation": { "Invitation": {
@@ -282,7 +282,8 @@
"6": "06 - 高架公路 F", "6": "06 - 高架公路 F",
"7": "07 - 高架公路 G", "7": "07 - 高架公路 G",
"8": "08 - 高架公路 H", "8": "08 - 高架公路 H",
"9": "09 - 高架公路 I" "9": "09 - 高架公路 I",
"10": "10 - 高架公路 J"
}, },
"Count": { "Count": {
"name": "扫荡次数", "name": "扫荡次数",
@@ -306,7 +307,8 @@
"6": "06 - 被遗弃的列车 F", "6": "06 - 被遗弃的列车 F",
"7": "07 - 被遗弃的列车 G", "7": "07 - 被遗弃的列车 G",
"8": "08 - 被遗弃的列车 H", "8": "08 - 被遗弃的列车 H",
"9": "09 - 被遗弃的列车 I" "9": "09 - 被遗弃的列车 I",
"10": "10 - 被遗弃的列车 J"
}, },
"Count": { "Count": {
"name": "扫荡次数", "name": "扫荡次数",
@@ -330,7 +332,8 @@
"6": "06 - 被袭击的教室 F", "6": "06 - 被袭击的教室 F",
"7": "07 - 被袭击的教室 G", "7": "07 - 被袭击的教室 G",
"8": "08 - 被袭击的教室 H", "8": "08 - 被袭击的教室 H",
"9": "09 - 被袭击的教室 I" "9": "09 - 被袭击的教室 I",
"10": "10 - 被袭击的教室 J"
}, },
"Count": { "Count": {
"name": "扫荡次数", "name": "扫荡次数",
+164 -80
View File
@@ -51,17 +51,17 @@ CAFE_CHECK = ButtonWrapper(
name='CAFE_CHECK', name='CAFE_CHECK',
jp=Button( jp=Button(
file='./assets/jp/base/page/CAFE_CHECK.png', file='./assets/jp/base/page/CAFE_CHECK.png',
area=(264, 11, 337, 35), area=(108, 11, 182, 36),
search=(244, 0, 357, 55), search=(88, 0, 202, 56),
color=(188, 197, 205), color=(191, 200, 208),
button=(264, 11, 337, 35), button=(108, 11, 182, 36),
), ),
en=Button( en=Button(
file='./assets/en/base/page/CAFE_CHECK.png', file='./assets/en/base/page/CAFE_CHECK.png',
area=(196, 8, 259, 37), area=(106, 12, 167, 36),
search=(176, 0, 279, 57), search=(86, 0, 187, 56),
color=(188, 197, 206), color=(173, 184, 194),
button=(196, 8, 259, 37), button=(106, 12, 167, 36),
), ),
) )
CIRCLE_CHECK = ButtonWrapper( CIRCLE_CHECK = ButtonWrapper(
@@ -134,6 +134,13 @@ GACHA_CHECK = ButtonWrapper(
) )
HOME = ButtonWrapper( HOME = ButtonWrapper(
name='HOME', name='HOME',
jp=Button(
file='./assets/jp/base/page/HOME.png',
area=(1224, 10, 1250, 35),
search=(1204, 0, 1270, 55),
color=(162, 176, 202),
button=(1224, 10, 1250, 35),
),
share=Button( share=Button(
file='./assets/share/base/page/HOME.png', file='./assets/share/base/page/HOME.png',
area=(1218, 8, 1253, 41), area=(1218, 8, 1253, 41),
@@ -171,6 +178,13 @@ MAIL_CHECK = ButtonWrapper(
) )
MAIN_GO_TO_CAFE = ButtonWrapper( MAIN_GO_TO_CAFE = ButtonWrapper(
name='MAIN_GO_TO_CAFE', name='MAIN_GO_TO_CAFE',
jp=Button(
file='./assets/jp/base/page/MAIN_GO_TO_CAFE.png',
area=(86, 632, 113, 670),
search=(66, 612, 133, 690),
color=(174, 222, 246),
button=(86, 632, 113, 670),
),
share=Button( share=Button(
file='./assets/share/base/page/MAIN_GO_TO_CAFE.png', file='./assets/share/base/page/MAIN_GO_TO_CAFE.png',
area=(81, 638, 102, 668), area=(81, 638, 102, 668),
@@ -181,16 +195,30 @@ MAIN_GO_TO_CAFE = ButtonWrapper(
) )
MAIN_GO_TO_CIRCLE = ButtonWrapper( MAIN_GO_TO_CIRCLE = ButtonWrapper(
name='MAIN_GO_TO_CIRCLE', name='MAIN_GO_TO_CIRCLE',
jp=Button(
file='./assets/jp/base/page/MAIN_GO_TO_CIRCLE.png',
area=(531, 631, 561, 659),
search=(511, 611, 581, 679),
color=(182, 230, 254),
button=(531, 631, 561, 659),
),
share=Button( share=Button(
file='./assets/share/base/page/MAIN_GO_TO_CIRCLE.png', file='./assets/share/base/page/MAIN_GO_TO_CIRCLE.png',
area=(540, 631, 583, 660), area=(542, 630, 581, 665),
search=(520, 611, 603, 680), search=(522, 610, 601, 685),
color=(131, 204, 234), color=(163, 225, 242),
button=(540, 631, 583, 660), button=(542, 630, 581, 665),
), ),
) )
MAIN_GO_TO_CRAFTING = ButtonWrapper( MAIN_GO_TO_CRAFTING = ButtonWrapper(
name='MAIN_GO_TO_CRAFTING', name='MAIN_GO_TO_CRAFTING',
jp=Button(
file='./assets/jp/base/page/MAIN_GO_TO_CRAFTING.png',
area=(645, 627, 667, 662),
search=(625, 607, 687, 682),
color=(206, 235, 251),
button=(645, 627, 667, 662),
),
share=Button( share=Button(
file='./assets/share/base/page/MAIN_GO_TO_CRAFTING.png', file='./assets/share/base/page/MAIN_GO_TO_CRAFTING.png',
area=(665, 622, 693, 664), area=(665, 622, 693, 664),
@@ -201,6 +229,13 @@ MAIN_GO_TO_CRAFTING = ButtonWrapper(
) )
MAIN_GO_TO_GACHA = ButtonWrapper( MAIN_GO_TO_GACHA = ButtonWrapper(
name='MAIN_GO_TO_GACHA', name='MAIN_GO_TO_GACHA',
jp=Button(
file='./assets/jp/base/page/MAIN_GO_TO_GACHA.png',
area=(871, 626, 893, 671),
search=(851, 606, 913, 691),
color=(172, 223, 242),
button=(871, 626, 893, 671),
),
share=Button( share=Button(
file='./assets/share/base/page/MAIN_GO_TO_GACHA.png', file='./assets/share/base/page/MAIN_GO_TO_GACHA.png',
area=(900, 623, 924, 670), area=(900, 623, 924, 670),
@@ -211,6 +246,13 @@ MAIN_GO_TO_GACHA = ButtonWrapper(
) )
MAIN_GO_TO_MAIL = ButtonWrapper( MAIN_GO_TO_MAIL = ButtonWrapper(
name='MAIN_GO_TO_MAIL', name='MAIN_GO_TO_MAIL',
jp=Button(
file='./assets/jp/base/page/MAIN_GO_TO_MAIL.png',
area=(1144, 27, 1165, 44),
search=(1124, 7, 1185, 64),
color=(102, 125, 168),
button=(1144, 27, 1165, 44),
),
share=Button( share=Button(
file='./assets/share/base/page/MAIN_GO_TO_MAIL.png', file='./assets/share/base/page/MAIN_GO_TO_MAIL.png',
area=(1130, 29, 1156, 49), area=(1130, 29, 1156, 49),
@@ -221,26 +263,47 @@ MAIN_GO_TO_MAIL = ButtonWrapper(
) )
MAIN_GO_TO_MOMOTALK = ButtonWrapper( MAIN_GO_TO_MOMOTALK = ButtonWrapper(
name='MAIN_GO_TO_MOMOTALK', name='MAIN_GO_TO_MOMOTALK',
jp=Button(
file='./assets/jp/base/page/MAIN_GO_TO_MOMOTALK.png',
area=(125, 118, 146, 151),
search=(105, 98, 166, 171),
color=(244, 200, 211),
button=(125, 118, 146, 151),
),
share=Button( share=Button(
file='./assets/share/base/page/MAIN_GO_TO_MOMOTALK.png', file='./assets/share/base/page/MAIN_GO_TO_MOMOTALK.png',
area=(154, 134, 177, 158), area=(138, 130, 159, 161),
search=(134, 114, 197, 178), search=(118, 110, 179, 181),
color=(255, 219, 227), color=(251, 215, 224),
button=(154, 134, 177, 158), button=(138, 130, 159, 161),
), ),
) )
MAIN_GO_TO_PURCHASE = ButtonWrapper( MAIN_GO_TO_PURCHASE = ButtonWrapper(
name='MAIN_GO_TO_PURCHASE', name='MAIN_GO_TO_PURCHASE',
jp=Button(
file='./assets/jp/base/page/MAIN_GO_TO_PURCHASE.png',
area=(122, 209, 148, 243),
search=(102, 189, 168, 263),
color=(190, 222, 246),
button=(122, 209, 148, 243),
),
share=Button( share=Button(
file='./assets/share/base/page/MAIN_GO_TO_PURCHASE.png', file='./assets/share/base/page/MAIN_GO_TO_PURCHASE.png',
area=(148, 204, 183, 253), area=(135, 211, 168, 250),
search=(128, 184, 203, 273), search=(115, 191, 188, 270),
color=(172, 214, 239), color=(166, 207, 238),
button=(148, 204, 183, 253), button=(135, 211, 168, 250),
), ),
) )
MAIN_GO_TO_SCHEDULE = ButtonWrapper( MAIN_GO_TO_SCHEDULE = ButtonWrapper(
name='MAIN_GO_TO_SCHEDULE', name='MAIN_GO_TO_SCHEDULE',
jp=Button(
file='./assets/jp/base/page/MAIN_GO_TO_SCHEDULE.png',
area=(198, 634, 217, 667),
search=(178, 614, 237, 687),
color=(176, 222, 243),
button=(198, 634, 217, 667),
),
share=Button( share=Button(
file='./assets/share/base/page/MAIN_GO_TO_SCHEDULE.png', file='./assets/share/base/page/MAIN_GO_TO_SCHEDULE.png',
area=(194, 638, 216, 672), area=(194, 638, 216, 672),
@@ -251,6 +314,13 @@ MAIN_GO_TO_SCHEDULE = ButtonWrapper(
) )
MAIN_GO_TO_SHOP = ButtonWrapper( MAIN_GO_TO_SHOP = ButtonWrapper(
name='MAIN_GO_TO_SHOP', name='MAIN_GO_TO_SHOP',
jp=Button(
file='./assets/jp/base/page/MAIN_GO_TO_SHOP.png',
area=(752, 628, 786, 665),
search=(732, 608, 806, 685),
color=(168, 221, 248),
button=(752, 628, 786, 665),
),
share=Button( share=Button(
file='./assets/share/base/page/MAIN_GO_TO_SHOP.png', file='./assets/share/base/page/MAIN_GO_TO_SHOP.png',
area=(773, 630, 816, 667), area=(773, 630, 816, 667),
@@ -261,29 +331,36 @@ MAIN_GO_TO_SHOP = ButtonWrapper(
) )
MAIN_GO_TO_TASK = ButtonWrapper( MAIN_GO_TO_TASK = ButtonWrapper(
name='MAIN_GO_TO_TASK', name='MAIN_GO_TO_TASK',
jp=Button(
file='./assets/jp/base/page/MAIN_GO_TO_TASK.png',
area=(30, 214, 55, 248),
search=(10, 194, 75, 268),
color=(186, 218, 245),
button=(30, 214, 55, 248),
),
share=Button( share=Button(
file='./assets/share/base/page/MAIN_GO_TO_TASK.png', file='./assets/share/base/page/MAIN_GO_TO_TASK.png',
area=(52, 220, 78, 248), area=(47, 219, 70, 246),
search=(32, 200, 98, 268), search=(27, 199, 90, 266),
color=(226, 207, 203), color=(212, 204, 208),
button=(52, 220, 78, 248), button=(47, 219, 70, 246),
), ),
) )
MAIN_GO_TO_WORK = ButtonWrapper( MAIN_GO_TO_WORK = ButtonWrapper(
name='MAIN_GO_TO_WORK', name='MAIN_GO_TO_WORK',
jp=Button( jp=Button(
file='./assets/jp/base/page/MAIN_GO_TO_WORK.png', file='./assets/jp/base/page/MAIN_GO_TO_WORK.png',
area=(1167, 605, 1241, 632), area=(1167, 668, 1222, 688),
search=(1147, 585, 1261, 652), search=(1147, 648, 1242, 708),
color=(135, 149, 169), color=(141, 156, 174),
button=(1167, 605, 1241, 632), button=(1167, 668, 1222, 688),
), ),
en=Button( en=Button(
file='./assets/en/base/page/MAIN_GO_TO_WORK.png', file='./assets/en/base/page/MAIN_GO_TO_WORK.png',
area=(1127, 605, 1250, 637), area=(1143, 591, 1241, 613),
search=(1107, 585, 1270, 657), search=(1123, 571, 1261, 633),
color=(90, 112, 141), color=(110, 129, 154),
button=(1127, 605, 1250, 637), button=(1143, 591, 1241, 613),
), ),
) )
MISSION_CHECK = ButtonWrapper( MISSION_CHECK = ButtonWrapper(
@@ -305,6 +382,13 @@ MISSION_CHECK = ButtonWrapper(
) )
MOMOTALK_CHECK = ButtonWrapper( MOMOTALK_CHECK = ButtonWrapper(
name='MOMOTALK_CHECK', name='MOMOTALK_CHECK',
jp=Button(
file='./assets/jp/base/page/MOMOTALK_CHECK.png',
area=(144, 107, 169, 130),
search=(124, 87, 189, 150),
color=(253, 211, 219),
button=(144, 107, 169, 130),
),
share=Button( share=Button(
file='./assets/share/base/page/MOMOTALK_CHECK.png', file='./assets/share/base/page/MOMOTALK_CHECK.png',
area=(144, 107, 169, 130), area=(144, 107, 169, 130),
@@ -446,101 +530,101 @@ WORK_GO_TO_BOUNTY = ButtonWrapper(
name='WORK_GO_TO_BOUNTY', name='WORK_GO_TO_BOUNTY',
jp=Button( jp=Button(
file='./assets/jp/base/page/WORK_GO_TO_BOUNTY.png', file='./assets/jp/base/page/WORK_GO_TO_BOUNTY.png',
area=(669, 412, 765, 436), area=(679, 401, 741, 417),
search=(649, 392, 785, 456), search=(659, 381, 761, 437),
color=(165, 181, 208), color=(155, 164, 186),
button=(669, 412, 765, 436), button=(679, 401, 741, 417),
), ),
en=Button( en=Button(
file='./assets/en/base/page/WORK_GO_TO_BOUNTY.png', file='./assets/en/base/page/WORK_GO_TO_BOUNTY.png',
area=(671, 409, 760, 440), area=(668, 385, 756, 412),
search=(651, 389, 780, 460), search=(648, 365, 776, 432),
color=(183, 202, 227), color=(180, 198, 223),
button=(671, 409, 760, 440), button=(668, 385, 756, 412),
), ),
) )
WORK_GO_TO_COMMISSIONS = ButtonWrapper( WORK_GO_TO_COMMISSIONS = ButtonWrapper(
name='WORK_GO_TO_COMMISSIONS', name='WORK_GO_TO_COMMISSIONS',
jp=Button( jp=Button(
file='./assets/jp/base/page/WORK_GO_TO_COMMISSIONS.png', file='./assets/jp/base/page/WORK_GO_TO_COMMISSIONS.png',
area=(655, 494, 751, 518), area=(661, 504, 724, 521),
search=(635, 474, 771, 538), search=(641, 484, 744, 541),
color=(165, 179, 204), color=(155, 163, 184),
button=(655, 494, 751, 518), button=(661, 504, 724, 521),
), ),
en=Button( en=Button(
file='./assets/en/base/page/WORK_GO_TO_COMMISSIONS.png', file='./assets/en/base/page/WORK_GO_TO_COMMISSIONS.png',
area=(656, 494, 803, 517), area=(653, 477, 787, 496),
search=(636, 474, 823, 537), search=(633, 457, 807, 516),
color=(192, 204, 221), color=(187, 199, 218),
button=(656, 494, 803, 517), button=(653, 477, 787, 496),
), ),
) )
WORK_GO_TO_MISSION = ButtonWrapper( WORK_GO_TO_MISSION = ButtonWrapper(
name='WORK_GO_TO_MISSION', name='WORK_GO_TO_MISSION',
jp=Button( jp=Button(
file='./assets/jp/base/page/WORK_GO_TO_MISSION.png', file='./assets/jp/base/page/WORK_GO_TO_MISSION.png',
area=(720, 160, 803, 199), area=(710, 220, 769, 249),
search=(700, 140, 823, 219), search=(690, 200, 789, 269),
color=(165, 178, 204), color=(137, 153, 180),
button=(720, 160, 803, 199), button=(710, 220, 769, 249),
), ),
en=Button( en=Button(
file='./assets/en/base/page/WORK_GO_TO_MISSION.png', file='./assets/en/base/page/WORK_GO_TO_MISSION.png',
area=(720, 160, 871, 206), area=(721, 158, 873, 197),
search=(700, 140, 891, 226), search=(701, 138, 893, 217),
color=(192, 204, 221), color=(180, 195, 215),
button=(720, 160, 871, 206), button=(721, 158, 873, 197),
), ),
) )
WORK_GO_TO_SCHOOL_EXCHANGE = ButtonWrapper( WORK_GO_TO_SCHOOL_EXCHANGE = ButtonWrapper(
name='WORK_GO_TO_SCHOOL_EXCHANGE', name='WORK_GO_TO_SCHOOL_EXCHANGE',
jp=Button( jp=Button(
file='./assets/jp/base/page/WORK_GO_TO_SCHOOL_EXCHANGE.png', file='./assets/jp/base/page/WORK_GO_TO_SCHOOL_EXCHANGE.png',
area=(641, 575, 758, 599), area=(642, 606, 721, 624),
search=(621, 555, 778, 619), search=(622, 586, 741, 644),
color=(165, 179, 204), color=(167, 174, 192),
button=(641, 575, 758, 599), button=(642, 606, 721, 624),
), ),
en=Button( en=Button(
file='./assets/en/base/page/WORK_GO_TO_SCHOOL_EXCHANGE.png', file='./assets/en/base/page/WORK_GO_TO_SCHOOL_EXCHANGE.png',
area=(643, 572, 778, 602), area=(635, 569, 769, 597),
search=(623, 552, 798, 622), search=(615, 549, 789, 617),
color=(190, 203, 221), color=(198, 204, 216),
button=(643, 572, 778, 602), button=(635, 569, 769, 597),
), ),
) )
WORK_GO_TO_STORY = ButtonWrapper( WORK_GO_TO_STORY = ButtonWrapper(
name='WORK_GO_TO_STORY', name='WORK_GO_TO_STORY',
jp=Button( jp=Button(
file='./assets/jp/base/page/WORK_GO_TO_STORY.png', file='./assets/jp/base/page/WORK_GO_TO_STORY.png',
area=(995, 163, 1032, 197), area=(993, 220, 1081, 250),
search=(975, 143, 1052, 217), search=(973, 200, 1101, 270),
color=(191, 201, 219), color=(209, 214, 224),
button=(995, 163, 1032, 197), button=(993, 220, 1081, 250),
), ),
en=Button( en=Button(
file='./assets/en/base/page/WORK_GO_TO_STORY.png', file='./assets/en/base/page/WORK_GO_TO_STORY.png',
area=(994, 159, 1109, 211), area=(996, 159, 1112, 205),
search=(974, 139, 1129, 231), search=(976, 139, 1132, 225),
color=(208, 215, 228), color=(200, 209, 225),
button=(994, 159, 1109, 211), button=(996, 159, 1112, 205),
), ),
) )
WORK_GO_TO_TACTICAL_CHALLENGE = ButtonWrapper( WORK_GO_TO_TACTICAL_CHALLENGE = ButtonWrapper(
name='WORK_GO_TO_TACTICAL_CHALLENGE', name='WORK_GO_TO_TACTICAL_CHALLENGE',
jp=Button( jp=Button(
file='./assets/jp/base/page/WORK_GO_TO_TACTICAL_CHALLENGE.png', file='./assets/jp/base/page/WORK_GO_TO_TACTICAL_CHALLENGE.png',
area=(1012, 535, 1151, 562), area=(821, 600, 911, 620),
search=(992, 515, 1171, 582), search=(801, 580, 931, 640),
color=(159, 174, 200), color=(156, 164, 185),
button=(1012, 535, 1151, 562), button=(821, 600, 911, 620),
), ),
en=Button( en=Button(
file='./assets/en/base/page/WORK_GO_TO_TACTICAL_CHALLENGE.png', file='./assets/en/base/page/WORK_GO_TO_TACTICAL_CHALLENGE.png',
area=(1012, 532, 1152, 591), area=(803, 566, 922, 623),
search=(992, 512, 1172, 611), search=(783, 546, 942, 643),
color=(199, 211, 227), color=(186, 201, 220),
button=(1012, 532, 1152, 591), button=(803, 566, 922, 623),
), ),
) )
+60 -94
View File
@@ -27,102 +27,68 @@ CAFE_FIRST = ButtonWrapper(
name='CAFE_FIRST', name='CAFE_FIRST',
jp=Button( jp=Button(
file='./assets/jp/cafe/CAFE_FIRST.png', file='./assets/jp/cafe/CAFE_FIRST.png',
area=(82, 152, 136, 175), area=(96, 92, 111, 110),
search=(62, 132, 156, 195), search=(76, 72, 131, 130),
color=(111, 127, 147), color=(185, 192, 200),
button=(82, 152, 136, 175), button=(96, 92, 111, 110),
), ),
en=Button( en=Button(
file='./assets/en/cafe/CAFE_FIRST.png', file='./assets/en/cafe/CAFE_FIRST.png',
area=(82, 152, 136, 175), area=(205, 96, 215, 107),
search=(62, 132, 156, 195), search=(185, 76, 235, 127),
color=(111, 127, 147), color=(176, 184, 194),
button=(82, 152, 136, 175), button=(205, 96, 215, 107),
), ),
) )
CAFE_INVITE = ButtonWrapper( CAFE_INVITE = ButtonWrapper(
name='CAFE_INVITE', name='CAFE_INVITE',
jp=Button( jp=Button(
file='./assets/jp/cafe/CAFE_INVITE.png', file='./assets/jp/cafe/CAFE_INVITE.png',
area=(816, 635, 845, 655), area=(870, 637, 903, 663),
search=(796, 615, 865, 675), search=(850, 617, 923, 683),
color=(173, 182, 192), color=(253, 217, 235),
button=(816, 635, 845, 655), button=(870, 637, 903, 663),
), ),
en=Button( en=Button(
file='./assets/en/cafe/CAFE_INVITE.png', file='./assets/en/cafe/CAFE_INVITE.png',
area=(816, 635, 845, 655), area=(870, 637, 903, 663),
search=(796, 615, 865, 675), search=(850, 617, 923, 683),
color=(173, 182, 192), color=(253, 217, 235),
button=(816, 635, 845, 655), button=(870, 637, 903, 663),
), ),
) )
CAFE_INVITED = ButtonWrapper( CAFE_INVITED = ButtonWrapper(
name='CAFE_INVITED', name='CAFE_INVITED',
jp=Button( jp=Button(
file='./assets/jp/cafe/CAFE_INVITED.png', file='./assets/jp/cafe/CAFE_INVITED.png',
area=(815, 633, 847, 657), area=(870, 637, 903, 663),
search=(795, 613, 867, 677), search=(850, 617, 923, 683),
color=(144, 144, 146), color=(111, 109, 109),
button=(815, 633, 847, 657), button=(870, 637, 903, 663),
), ),
en=Button( en=Button(
file='./assets/en/cafe/CAFE_INVITED.png', file='./assets/en/cafe/CAFE_INVITED.png',
area=(815, 633, 847, 657), area=(870, 637, 903, 663),
search=(795, 613, 867, 677), search=(850, 617, 923, 683),
color=(144, 144, 146), color=(111, 109, 109),
button=(815, 633, 847, 657), button=(870, 637, 903, 663),
), ),
) )
CAFE_SECOND = ButtonWrapper( CAFE_SECOND = ButtonWrapper(
name='CAFE_SECOND', name='CAFE_SECOND',
jp=Button( jp=Button(
file='./assets/jp/cafe/CAFE_SECOND.png', file='./assets/jp/cafe/CAFE_SECOND.png',
area=(219, 152, 279, 175), area=(99, 92, 108, 110),
search=(199, 132, 299, 195), search=(79, 72, 128, 130),
color=(110, 126, 146), color=(193, 200, 209),
button=(219, 152, 279, 175), button=(99, 92, 108, 110),
), ),
en=Button( en=Button(
file='./assets/en/cafe/CAFE_SECOND.png', file='./assets/en/cafe/CAFE_SECOND.png',
area=(219, 152, 279, 175), area=(207, 96, 214, 107),
search=(199, 132, 299, 195), search=(187, 76, 234, 127),
color=(110, 126, 146), color=(174, 182, 192),
button=(219, 152, 279, 175), button=(207, 96, 214, 107),
),
)
CHANGE_CAFE_NOT_SELECTED = ButtonWrapper(
name='CHANGE_CAFE_NOT_SELECTED',
jp=Button(
file='./assets/jp/cafe/CHANGE_CAFE_NOT_SELECTED.png',
area=(84, 89, 178, 109),
search=(64, 69, 198, 129),
color=(185, 193, 203),
button=(84, 89, 178, 109),
),
en=Button(
file='./assets/en/cafe/CHANGE_CAFE_NOT_SELECTED.png',
area=(84, 89, 178, 109),
search=(64, 69, 198, 129),
color=(185, 193, 203),
button=(84, 89, 178, 109),
),
)
CHANGE_CAFE_SELECTED = ButtonWrapper(
name='CHANGE_CAFE_SELECTED',
jp=Button(
file='./assets/jp/cafe/CHANGE_CAFE_SELECTED.png',
area=(40, 87, 191, 112),
search=(20, 67, 211, 132),
color=(82, 105, 130),
button=(40, 87, 191, 112),
),
en=Button(
file='./assets/en/cafe/CHANGE_CAFE_SELECTED.png',
area=(40, 87, 191, 112),
search=(20, 67, 211, 132),
color=(82, 105, 130),
button=(40, 87, 191, 112),
), ),
) )
CHECK_MOMOTALK = ButtonWrapper( CHECK_MOMOTALK = ButtonWrapper(
@@ -146,17 +112,17 @@ CHECK_REWARD = ButtonWrapper(
name='CHECK_REWARD', name='CHECK_REWARD',
jp=Button( jp=Button(
file='./assets/jp/cafe/CHECK_REWARD.png', file='./assets/jp/cafe/CHECK_REWARD.png',
area=(1095, 621, 1146, 637), area=(1120, 635, 1166, 651),
search=(1075, 601, 1166, 657), search=(1100, 615, 1186, 671),
color=(82, 105, 129), color=(79, 102, 127),
button=(1086, 607, 1225, 685), button=(1109, 627, 1239, 691),
), ),
en=Button( en=Button(
file='./assets/en/cafe/CHECK_REWARD.png', file='./assets/en/cafe/CHECK_REWARD.png',
area=(1090, 613, 1229, 644), area=(1116, 636, 1218, 654),
search=(1070, 593, 1249, 664), search=(1096, 616, 1238, 674),
color=(64, 88, 115), color=(77, 100, 125),
button=(1086, 611, 1229, 685), button=(1113, 625, 1239, 692),
), ),
) )
CLICKABLE_TEMPLATE = ButtonWrapper( CLICKABLE_TEMPLATE = ButtonWrapper(
@@ -180,10 +146,10 @@ GET_REWARD = ButtonWrapper(
), ),
en=Button( en=Button(
file='./assets/en/cafe/GET_REWARD.png', file='./assets/en/cafe/GET_REWARD.png',
area=(581, 503, 692, 536), area=(593, 506, 687, 548),
search=(561, 483, 712, 556), search=(573, 486, 707, 568),
color=(208, 190, 63), color=(211, 193, 64),
button=(539, 491, 741, 555), button=(543, 492, 736, 564),
), ),
) )
GET_REWARD_CLOSE = ButtonWrapper( GET_REWARD_CLOSE = ButtonWrapper(
@@ -197,10 +163,10 @@ GET_REWARD_CLOSE = ButtonWrapper(
), ),
en=Button( en=Button(
file='./assets/en/cafe/GET_REWARD_CLOSE.png', file='./assets/en/cafe/GET_REWARD_CLOSE.png',
area=(883, 134, 926, 178), area=(968, 132, 997, 162),
search=(863, 114, 946, 198), search=(948, 112, 1017, 182),
color=(215, 220, 224), color=(187, 193, 201),
button=(883, 134, 926, 178), button=(968, 132, 997, 162),
), ),
) )
GOT_REWARD = ButtonWrapper( GOT_REWARD = ButtonWrapper(
@@ -214,10 +180,10 @@ GOT_REWARD = ButtonWrapper(
), ),
en=Button( en=Button(
file='./assets/en/cafe/GOT_REWARD.png', file='./assets/en/cafe/GOT_REWARD.png',
area=(543, 489, 741, 558), area=(544, 493, 735, 563),
search=(523, 469, 761, 578), search=(524, 473, 755, 583),
color=(211, 212, 212), color=(213, 213, 212),
button=(543, 489, 741, 558), button=(544, 493, 735, 563),
), ),
) )
INVENTORY = ButtonWrapper( INVENTORY = ButtonWrapper(
@@ -377,17 +343,17 @@ OCR_CAFE = ButtonWrapper(
name='OCR_CAFE', name='OCR_CAFE',
jp=Button( jp=Button(
file='./assets/jp/cafe/OCR_CAFE.png', file='./assets/jp/cafe/OCR_CAFE.png',
area=(1103, 642, 1202, 672), area=(1127, 657, 1219, 682),
search=(1083, 622, 1222, 692), search=(1107, 637, 1239, 702),
color=(87, 107, 129), color=(93, 112, 134),
button=(1103, 642, 1202, 672), button=(1127, 657, 1219, 682),
), ),
en=Button( en=Button(
file='./assets/en/cafe/OCR_CAFE.png', file='./assets/en/cafe/OCR_CAFE.png',
area=(1105, 639, 1195, 674), area=(1127, 657, 1219, 682),
search=(1085, 619, 1215, 694), search=(1107, 637, 1239, 702),
color=(84, 104, 127), color=(93, 112, 134),
button=(1105, 639, 1195, 674), button=(1127, 657, 1219, 682),
), ),
) )
OCR_NAME = ButtonWrapper( OCR_NAME = ButtonWrapper(
+7 -31
View File
@@ -1,6 +1,5 @@
from enum import Enum from enum import Enum
from module.base.decorator import Config
from module.base.timer import Timer from module.base.timer import Timer
from module.logger import logger from module.logger import logger
from module.ui.switch import Switch from module.ui.switch import Switch
@@ -9,10 +8,6 @@ from tasks.cafe.assets.assets_cafe import *
from tasks.cafe.invitation import handle_invitation from tasks.cafe.invitation import handle_invitation
from tasks.cafe.ui import CafeUI from tasks.cafe.ui import CafeUI
SWITCH_CAFE = Switch('Cafe_switch')
SWITCH_CAFE.add_state('off', CHANGE_CAFE_NOT_SELECTED)
SWITCH_CAFE.add_state('on', CHANGE_CAFE_SELECTED)
SWITCH_CAFE_SELECT = Switch('Cafe_switch_select') SWITCH_CAFE_SELECT = Switch('Cafe_switch_select')
SWITCH_CAFE_SELECT.add_state('1', CAFE_FIRST) SWITCH_CAFE_SELECT.add_state('1', CAFE_FIRST)
SWITCH_CAFE_SELECT.add_state('2', CAFE_SECOND) SWITCH_CAFE_SELECT.add_state('2', CAFE_SECOND)
@@ -30,16 +25,10 @@ class CafeStatus(Enum):
class Cafe(CafeUI): class Cafe(CafeUI):
@Config.when(Emulator_GameLanguage='jp') @property
def _is_second_cafe_on(self): def is_second_cafe_on(self):
return self.config.Cafe_SecondCafe return self.config.Cafe_SecondCafe
@Config.when(Emulator_GameLanguage=None)
def _is_second_cafe_on(self):
return False
is_second_cafe_on = property(_is_second_cafe_on)
def _handle_cafe(self, status): def _handle_cafe(self, status):
match status: match status:
case CafeStatus.STUDENT_LIST: case CafeStatus.STUDENT_LIST:
@@ -70,7 +59,7 @@ class Cafe(CafeUI):
if handle_invitation(self): if handle_invitation(self):
return CafeStatus.CLICK return CafeStatus.CLICK
case CafeStatus.CLICK: case CafeStatus.CLICK:
buttons = self.get_clickable_buttons(offset=(45, 10)) buttons = self.get_clickable_buttons()
self.click = len(buttons) self.click = len(buttons)
logger.attr('Clickable', self.click) logger.attr('Clickable', self.click)
if not buttons: if not buttons:
@@ -116,7 +105,6 @@ class Cafe(CafeUI):
status = CafeStatus.STUDENT_LIST status = CafeStatus.STUDENT_LIST
loading_timer = Timer(2).start() loading_timer = Timer(2).start()
action_timer = Timer(1, count=1) action_timer = Timer(1, count=1)
is_list = False
is_reset = False is_reset = False
is_second = False is_second = False
is_enable = is_reward_on or is_touch_on is_enable = is_reward_on or is_touch_on
@@ -133,11 +121,6 @@ class Cafe(CafeUI):
if not loading_timer.reached(): if not loading_timer.reached():
continue continue
if not is_list and status == CafeStatus.STUDENT_LIST and self.appear(STUDENT_LIST):
is_list = True
loading_timer = Timer(3).start()
continue
if not is_reward_on and status == CafeStatus.OCR: if not is_reward_on and status == CafeStatus.OCR:
logger.info('Skip reward') logger.info('Skip reward')
status = CafeStatus.CLICK status = CafeStatus.CLICK
@@ -154,26 +137,19 @@ class Cafe(CafeUI):
continue continue
if self.is_second_cafe_on and not is_second and status == CafeStatus.FINISHED: if self.is_second_cafe_on and not is_second and status == CafeStatus.FINISHED:
if not SWITCH_CAFE.appear(main=self):
logger.warning('Cafe switch not found')
continue
if SWITCH_CAFE.get(main=self) == 'off':
SWITCH_CAFE.set('on', main=self)
logger.info('Switching to second cafe')
if not SWITCH_CAFE_SELECT.appear(main=self): if not SWITCH_CAFE_SELECT.appear(main=self):
logger.info('Cafe switch select not found') logger.info('Cafe switch not found')
continue continue
match (SWITCH_CAFE_SELECT.get(main=self)): match SWITCH_CAFE_SELECT.get(main=self):
case '1': case '1':
if self.click_with_interval(CAFE_SECOND): if self.click_with_interval(CAFE_FIRST):
continue continue
case '2': case '2':
logger.info('Cafe second arrived') logger.info('Cafe second arrived')
SWITCH_CAFE.set('off', main=self)
status = CafeStatus.STUDENT_LIST status = CafeStatus.STUDENT_LIST
is_list = False
is_second = True is_second = True
self.check = 0 self.check = 0
loading_timer.reset().start()
if action_timer.reached_and_reset(): if action_timer.reached_and_reset():
logger.attr('Status', status) logger.attr('Status', status)
+3 -3
View File
@@ -6,7 +6,7 @@ import numpy as np
from module.base.base import ModuleBase from module.base.base import ModuleBase
from module.base.timer import Timer from module.base.timer import Timer
from module.base.utils import area_size, area_offset from module.base.utils import area_offset, area_size
from module.config.utils import get_server_next_update from module.config.utils import get_server_next_update
from module.logger import logger from module.logger import logger
from module.ocr.ocr import Ocr from module.ocr.ocr import Ocr
@@ -223,7 +223,7 @@ def handle_invitation_status(status: InvitationStatus, main: ModuleBase) -> Invi
if not invitation.is_invitation: if not invitation.is_invitation:
logger.info('Invitation waiting until next refresh') logger.info('Invitation waiting until next refresh')
return InvitationStatus.FINISHED return InvitationStatus.FINISHED
if main.appear(CAFE_INVITED): if main.match_color(CAFE_INVITED):
logger.info('Invitation in cooldown') logger.info('Invitation in cooldown')
return InvitationStatus.FINISHED return InvitationStatus.FINISHED
if invitation.choice != 'list_top' and invitation.target_name is None: if invitation.choice != 'list_top' and invitation.target_name is None:
@@ -243,7 +243,7 @@ def handle_invitation_status(status: InvitationStatus, main: ModuleBase) -> Invi
case InvitationStatus.SELECT: case InvitationStatus.SELECT:
if main.appear(INVITE_CONFIRM): if main.appear(INVITE_CONFIRM):
return InvitationStatus.CONFIRM return InvitationStatus.CONFIRM
if main.config.LANG == 'jp' and main.appear(INVITE_IN_SECOND): if main.appear(INVITE_IN_SECOND):
return InvitationStatus.IN_SECOND return InvitationStatus.IN_SECOND
if main.appear(INVITE_SUBSTITUTE): if main.appear(INVITE_SUBSTITUTE):
return InvitationStatus.SUBSTITUTE return InvitationStatus.SUBSTITUTE
+1 -1
View File
@@ -31,7 +31,7 @@ class CafeUI(UI):
# generate result # generate result
return cv2.bitwise_and(image, image, mask=mask) return cv2.bitwise_and(image, image, mask=mask)
def get_clickable_buttons(self, similarity=0.8, offset=(45, 10)): def get_clickable_buttons(self, similarity=0.8, offset=(40, 10)):
image = self.extract_clickable_from_image(self.device.image) image = self.extract_clickable_from_image(self.device.image)
self.template.matched_button._button_offset = offset self.template.matched_button._button_offset = offset
self.template.load_offset(self.template) self.template.load_offset(self.template)
+17
View File
@@ -3,6 +3,23 @@ from module.base.button import Button, ButtonWrapper
# This file was auto-generated, do not modify it manually. To generate: # This file was auto-generated, do not modify it manually. To generate:
# ``` python -m dev_tools.button_extract ``` # ``` python -m dev_tools.button_extract ```
CIRCLE = ButtonWrapper(
name='CIRCLE',
jp=Button(
file='./assets/jp/circle/CIRCLE.png',
area=(191, 314, 233, 356),
search=(171, 294, 253, 376),
color=(191, 224, 240),
button=(188, 299, 435, 456),
),
en=Button(
file='./assets/en/circle/CIRCLE.png',
area=(196, 314, 235, 355),
search=(176, 294, 255, 375),
color=(183, 221, 238),
button=(191, 298, 434, 457),
),
)
GET_REWARD_AP = ButtonWrapper( GET_REWARD_AP = ButtonWrapper(
name='GET_REWARD_AP', name='GET_REWARD_AP',
jp=Button( jp=Button(
+15 -2
View File
@@ -2,7 +2,7 @@ from enum import Enum
from module.base.timer import Timer from module.base.timer import Timer
from module.logger import logger from module.logger import logger
from tasks.base.page import page_circle from tasks.base.page import CIRCLE_CHECK, MAIN_GO_TO_CIRCLE
from tasks.base.ui import UI from tasks.base.ui import UI
from tasks.circle.assets.assets_circle import * from tasks.circle.assets.assets_circle import *
@@ -17,6 +17,19 @@ class CircleStatus(Enum):
class Circle(UI): class Circle(UI):
def _enter_circle(self):
self.ui_goto_main()
action_timer = Timer(1, 8)
while not self.appear(CIRCLE_CHECK):
self.device.screenshot()
if not action_timer.reached_and_reset():
continue
if self.appear(CIRCLE):
self.click_with_interval(CIRCLE, 3)
continue
else:
self.device.click(MAIN_GO_TO_CIRCLE)
def _handle_circle(self, status): def _handle_circle(self, status):
match status: match status:
case CircleStatus.REWARD: case CircleStatus.REWARD:
@@ -31,7 +44,7 @@ class Circle(UI):
return status return status
def run(self): def run(self):
self.ui_ensure(page_circle) self._enter_circle()
status = CircleStatus.REWARD status = CircleStatus.REWARD
action_timer = Timer(0.5) action_timer = Timer(0.5)
+22 -8
View File
@@ -5,21 +5,35 @@ from module.base.button import Button, ButtonWrapper
OCR_AP = ButtonWrapper( OCR_AP = ButtonWrapper(
name='OCR_AP', name='OCR_AP',
jp=Button(
file='./assets/jp/item/data/OCR_AP.png',
area=(512, 13, 597, 32),
search=(492, 0, 617, 52),
color=(199, 204, 208),
button=(512, 13, 597, 32),
),
share=Button( share=Button(
file='./assets/share/item/data/OCR_AP.png', file='./assets/share/item/data/OCR_AP.png',
area=(560, 11, 667, 37), area=(535, 13, 660, 36),
search=(540, 0, 687, 57), search=(515, 0, 680, 56),
color=(211, 216, 219), color=(207, 215, 220),
button=(560, 11, 667, 37), button=(535, 13, 660, 36),
), ),
) )
OCR_DATA = ButtonWrapper( OCR_DATA = ButtonWrapper(
name='OCR_DATA', name='OCR_DATA',
jp=Button(
file='./assets/jp/item/data/OCR_DATA.png',
area=(716, 14, 1058, 33),
search=(696, 0, 1078, 53),
color=(211, 219, 224),
button=(716, 14, 1058, 33),
),
share=Button( share=Button(
file='./assets/share/item/data/OCR_DATA.png', file='./assets/share/item/data/OCR_DATA.png',
area=(768, 12, 1072, 37), area=(745, 11, 1069, 39),
search=(748, 0, 1092, 57), search=(725, 0, 1089, 59),
color=(212, 220, 224), color=(216, 223, 227),
button=(768, 12, 1072, 37), button=(745, 11, 1069, 39),
), ),
) )
@@ -133,9 +133,9 @@ PLAYER_SELECT_FIRST = ButtonWrapper(
), ),
en=Button( en=Button(
file='./assets/en/tactical_challenge/PLAYER_SELECT_FIRST.png', file='./assets/en/tactical_challenge/PLAYER_SELECT_FIRST.png',
area=(470, 293, 503, 322), area=(468, 296, 493, 315),
search=(450, 273, 523, 342), search=(448, 276, 513, 335),
color=(206, 214, 220), color=(191, 202, 207),
button=(606, 181, 1100, 256), button=(606, 181, 1100, 256),
), ),
) )
@@ -150,9 +150,9 @@ PLAYER_SELECT_SECOND = ButtonWrapper(
), ),
en=Button( en=Button(
file='./assets/en/tactical_challenge/PLAYER_SELECT_SECOND.png', file='./assets/en/tactical_challenge/PLAYER_SELECT_SECOND.png',
area=(467, 450, 507, 482), area=(467, 454, 493, 473),
search=(447, 430, 527, 502), search=(447, 434, 513, 493),
color=(210, 219, 225), color=(191, 202, 207),
button=(610, 338, 1098, 407), button=(610, 338, 1098, 407),
), ),
) )
@@ -167,9 +167,9 @@ PLAYER_SELECT_THIRD = ButtonWrapper(
), ),
en=Button( en=Button(
file='./assets/en/tactical_challenge/PLAYER_SELECT_THIRD.png', file='./assets/en/tactical_challenge/PLAYER_SELECT_THIRD.png',
area=(472, 612, 504, 641), area=(468, 613, 492, 631),
search=(452, 592, 524, 661), search=(448, 593, 512, 651),
color=(208, 216, 222), color=(188, 199, 204),
button=(609, 500, 1101, 565), button=(609, 500, 1101, 565),
), ),
) )