1
0
mirror of https://gitee.com/sui-feng-cb/AzurLaneAutoScript1 synced 2026-04-22 17:30:38 +08:00

9 Commits

40 changed files with 3857 additions and 975 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

@@ -1598,9 +1598,7 @@
"Option2": 0, "Option2": 0,
"Character2": "manjuu", "Character2": "manjuu",
"Option3": 0, "Option3": 0,
"Character3": "manjuu", "Character3": "manjuu"
"Option4": 0,
"Character4": "manjuu"
}, },
"Island4": { "Island4": {
"Receive": false, "Receive": false,
@@ -1629,7 +1627,11 @@
"Option1": 0, "Option1": 0,
"Character1": "manjuu", "Character1": "manjuu",
"Option2": 0, "Option2": 0,
"Character2": "manjuu" "Character2": "manjuu",
"Option3": 0,
"Character3": "manjuu",
"Option4": 0,
"Character4": "manjuu"
}, },
"Island7": { "Island7": {
"Receive": false, "Receive": false,
@@ -1694,6 +1696,13 @@
"Option2": 0, "Option2": 0,
"Character2": "manjuu" "Character2": "manjuu"
}, },
"Island16": {
"Receive": false,
"Option1": 0,
"Character1": "manjuu",
"Option2": 0,
"Character2": "manjuu"
},
"Storage": { "Storage": {
"Storage": {} "Storage": {}
} }

File diff suppressed because it is too large Load Diff

View File

@@ -510,6 +510,12 @@ _Island:
IslandOption11: &IslandOption11 IslandOption11: &IslandOption11
value: 0 value: 0
option: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ] option: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ]
IslandOption12: &IslandOption12
value: 0
option: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ]
IslandOption16: &IslandOption16
value: 0
option: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]
IslandCharacter: &IslandCharacter IslandCharacter: &IslandCharacter
value: manjuu value: manjuu
option: option:
@@ -522,9 +528,19 @@ _Island:
- akashi - akashi
- ying_swei - ying_swei
- chao_ho - chao_ho
- william_d_porter
- chen_hai
- hood
- prinz_eugen
- tb
- oceana
- explorer
- unicorn - unicorn
- cheshire - cheshire
- amagi_chan - amagi_chan
- helena
- atago
- friedrich_der_grobe
Island1: Island1:
Receive: false Receive: false
Option1: *IslandOption8 Option1: *IslandOption8
@@ -554,6 +570,14 @@ Island2:
option: [ 0, 4 ] option: [ 0, 4 ]
Character4: *IslandCharacter Character4: *IslandCharacter
Island3: Island3:
Receive: false
Option1: *IslandOption16
Character1: *IslandCharacter
Option2: *IslandOption16
Character2: *IslandCharacter
Option3: *IslandOption16
Character3: *IslandCharacter
Island4:
Receive: false Receive: false
Option1: *IslandOption6 Option1: *IslandOption6
Character1: *IslandCharacter Character1: *IslandCharacter
@@ -563,7 +587,7 @@ Island3:
Character3: *IslandCharacter Character3: *IslandCharacter
Option4: *IslandOption6 Option4: *IslandOption6
Character4: *IslandCharacter Character4: *IslandCharacter
Island4: Island5:
Receive: false Receive: false
Option1: *IslandOption4 Option1: *IslandOption4
Character1: *IslandCharacter Character1: *IslandCharacter
@@ -573,22 +597,16 @@ Island4:
Character3: *IslandCharacter Character3: *IslandCharacter
Option4: *IslandOption4 Option4: *IslandOption4
Character4: *IslandCharacter Character4: *IslandCharacter
Island5:
Receive: false
Option1: *IslandOption9
Character1: *IslandCharacter
Option2: *IslandOption9
Character2: *IslandCharacter
Option3: *IslandOption9
Character3: *IslandCharacter
Option4: *IslandOption9
Character4: *IslandCharacter
Island6: Island6:
Receive: false Receive: false
Option1: *IslandOption7 Option1: *IslandOption7
Character1: *IslandCharacter Character1: *IslandCharacter
Option2: *IslandOption7 Option2: *IslandOption7
Character2: *IslandCharacter Character2: *IslandCharacter
Option3: *IslandOption7
Character3: *IslandCharacter
Option4: *IslandOption7
Character4: *IslandCharacter
Island7: Island7:
Receive: false Receive: false
Option1: *IslandOption9 Option1: *IslandOption9
@@ -596,29 +614,29 @@ Island7:
Option2: *IslandOption9 Option2: *IslandOption9
Character2: *IslandCharacter Character2: *IslandCharacter
Island8: Island8:
Receive: false
Option1: *IslandOption12
Character1: *IslandCharacter
Option2: *IslandOption12
Character2: *IslandCharacter
Island9:
Receive: false Receive: false
Option1: *IslandOption11 Option1: *IslandOption11
Character1: *IslandCharacter Character1: *IslandCharacter
Option2: *IslandOption11 Option2: *IslandOption11
Character2: *IslandCharacter Character2: *IslandCharacter
Island9: Island10:
Receive: false
Option1: *IslandOption10
Character1: *IslandCharacter
Option2: *IslandOption10
Character2: *IslandCharacter
Island11:
Receive: false Receive: false
Option1: *IslandOption9 Option1: *IslandOption9
Character1: *IslandCharacter Character1: *IslandCharacter
Option2: *IslandOption9 Option2: *IslandOption9
Character2: *IslandCharacter Character2: *IslandCharacter
Island10:
Receive: false
Option1: *IslandOption7
Character1: *IslandCharacter
Option2: *IslandOption7
Character2: *IslandCharacter
Island11:
Receive: false
Option1: *IslandOption5
Character1: *IslandCharacter
Option2: *IslandOption5
Character2: *IslandCharacter
Island12: Island12:
Receive: false Receive: false
Option1: *IslandOption6 Option1: *IslandOption6
@@ -626,18 +644,24 @@ Island12:
Option2: *IslandOption6 Option2: *IslandOption6
Character2: *IslandCharacter Character2: *IslandCharacter
Island13: Island13:
Receive: false
Option1: *IslandOption6
Character1: *IslandCharacter
Option2: *IslandOption6
Character2: *IslandCharacter
Island14:
Receive: false Receive: false
Option1: *IslandOption4 Option1: *IslandOption4
Character1: *IslandCharacter Character1: *IslandCharacter
Option2: *IslandOption4 Option2: *IslandOption4
Character2: *IslandCharacter Character2: *IslandCharacter
Island14: Island15:
Receive: false Receive: false
Option1: *IslandOption9 Option1: *IslandOption9
Character1: *IslandCharacter Character1: *IslandCharacter
Option2: *IslandOption9 Option2: *IslandOption9
Character2: *IslandCharacter Character2: *IslandCharacter
Island15: Island16:
Receive: false Receive: false
Option1: *IslandOption9 Option1: *IslandOption9
Character1: *IslandCharacter Character1: *IslandCharacter

View File

@@ -248,6 +248,7 @@ Reward:
- Island13 - Island13
- Island14 - Island14
- Island15 - Island15
- Island16
# ==================== DailyMission ==================== # ==================== DailyMission ====================

View File

@@ -274,127 +274,136 @@ class GeneratedConfig:
# Group `Island1` # Group `Island1`
Island1_Receive = False Island1_Receive = False
Island1_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8 Island1_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8
Island1_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island1_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island1_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8 Island1_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8
Island1_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island1_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island1_Option3 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8 Island1_Option3 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8
Island1_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island1_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island1_Option4 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8 Island1_Option4 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8
Island1_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island1_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
# Group `Island2` # Group `Island2`
Island2_Receive = False Island2_Receive = False
Island2_Option1 = 0 # 0, 1 Island2_Option1 = 0 # 0, 1
Island2_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island2_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island2_Option2 = 0 # 0, 2 Island2_Option2 = 0 # 0, 2
Island2_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island2_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island2_Option3 = 0 # 0, 3 Island2_Option3 = 0 # 0, 3
Island2_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island2_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island2_Option4 = 0 # 0, 4 Island2_Option4 = 0 # 0, 4
Island2_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island2_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
# Group `Island3` # Group `Island3`
Island3_Receive = False Island3_Receive = False
Island3_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6 Island3_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
Island3_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island3_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island3_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6 Island3_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
Island3_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island3_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island3_Option3 = 0 # 0, 1, 2, 3, 4, 5, 6 Island3_Option3 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
Island3_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island3_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island3_Option4 = 0 # 0, 1, 2, 3, 4, 5, 6
Island3_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan
# Group `Island4` # Group `Island4`
Island4_Receive = False Island4_Receive = False
Island4_Option1 = 0 # 0, 1, 2, 3, 4 Island4_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6
Island4_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island4_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island4_Option2 = 0 # 0, 1, 2, 3, 4 Island4_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6
Island4_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island4_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island4_Option3 = 0 # 0, 1, 2, 3, 4 Island4_Option3 = 0 # 0, 1, 2, 3, 4, 5, 6
Island4_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island4_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island4_Option4 = 0 # 0, 1, 2, 3, 4 Island4_Option4 = 0 # 0, 1, 2, 3, 4, 5, 6
Island4_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island4_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
# Group `Island5` # Group `Island5`
Island5_Receive = False Island5_Receive = False
Island5_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Island5_Option1 = 0 # 0, 1, 2, 3, 4
Island5_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island5_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island5_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Island5_Option2 = 0 # 0, 1, 2, 3, 4
Island5_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island5_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island5_Option3 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Island5_Option3 = 0 # 0, 1, 2, 3, 4
Island5_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island5_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island5_Option4 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Island5_Option4 = 0 # 0, 1, 2, 3, 4
Island5_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island5_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
# Group `Island6` # Group `Island6`
Island6_Receive = False Island6_Receive = False
Island6_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7 Island6_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7
Island6_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island6_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island6_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7 Island6_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7
Island6_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island6_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island6_Option3 = 0 # 0, 1, 2, 3, 4, 5, 6, 7
Island6_Character3 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island6_Option4 = 0 # 0, 1, 2, 3, 4, 5, 6, 7
Island6_Character4 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
# Group `Island7` # Group `Island7`
Island7_Receive = False Island7_Receive = False
Island7_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Island7_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Island7_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island7_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island7_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Island7_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Island7_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island7_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
# Group `Island8` # Group `Island8`
Island8_Receive = False Island8_Receive = False
Island8_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 Island8_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
Island8_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island8_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island8_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 Island8_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
Island8_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island8_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
# Group `Island9` # Group `Island9`
Island9_Receive = False Island9_Receive = False
Island9_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Island9_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
Island9_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island9_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island9_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Island9_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
Island9_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island9_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
# Group `Island10` # Group `Island10`
Island10_Receive = False Island10_Receive = False
Island10_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7 Island10_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Island10_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island10_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island10_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7 Island10_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Island10_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island10_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
# Group `Island11` # Group `Island11`
Island11_Receive = False Island11_Receive = False
Island11_Option1 = 0 # 0, 1, 2, 3, 4, 5 Island11_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Island11_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island11_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island11_Option2 = 0 # 0, 1, 2, 3, 4, 5 Island11_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Island11_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island11_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
# Group `Island12` # Group `Island12`
Island12_Receive = False Island12_Receive = False
Island12_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6 Island12_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6
Island12_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island12_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island12_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6 Island12_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6
Island12_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island12_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
# Group `Island13` # Group `Island13`
Island13_Receive = False Island13_Receive = False
Island13_Option1 = 0 # 0, 1, 2, 3, 4 Island13_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6
Island13_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island13_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island13_Option2 = 0 # 0, 1, 2, 3, 4 Island13_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6
Island13_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island13_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
# Group `Island14` # Group `Island14`
Island14_Receive = False Island14_Receive = False
Island14_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Island14_Option1 = 0 # 0, 1, 2, 3, 4
Island14_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island14_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island14_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Island14_Option2 = 0 # 0, 1, 2, 3, 4
Island14_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island14_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
# Group `Island15` # Group `Island15`
Island15_Receive = False Island15_Receive = False
Island15_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Island15_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Island15_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island15_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island15_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Island15_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Island15_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, unicorn, cheshire, amagi_chan Island15_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
# Group `Island16`
Island16_Receive = False
Island16_Option1 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Island16_Character1 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
Island16_Option2 = 0 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Island16_Character2 = 'manjuu' # manjuu, saratoga, new_jersey, tashkent, lemalin, shimakaze, akashi, ying_swei, chao_ho, william_d_porter, chen_hai, hood, prinz_eugen, tb, oceana, explorer, unicorn, cheshire, amagi_chan, helena, atago, friedrich_der_grobe
# Group `GeneralShop` # Group `GeneralShop`
GeneralShop_UseGems = False GeneralShop_UseGems = False

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -7,6 +7,7 @@ from module.base.template import Template
GET_ITEMS_ISLAND = Button(area={'cn': (588, 260, 692, 289), 'en': (588, 260, 692, 289), 'jp': (588, 260, 692, 289), 'tw': (588, 260, 692, 289)}, color={'cn': (178, 180, 180), 'en': (149, 151, 152), 'jp': (178, 180, 180), 'tw': (178, 180, 180)}, button={'cn': (0, 263, 129, 555), 'en': (588, 260, 692, 289), 'jp': (0, 263, 129, 555), 'tw': (0, 263, 129, 555)}, file={'cn': './assets/cn/island/GET_ITEMS_ISLAND.png', 'en': './assets/en/island/GET_ITEMS_ISLAND.png', 'jp': './assets/cn/island/GET_ITEMS_ISLAND.png', 'tw': './assets/cn/island/GET_ITEMS_ISLAND.png'}) GET_ITEMS_ISLAND = Button(area={'cn': (588, 260, 692, 289), 'en': (588, 260, 692, 289), 'jp': (588, 260, 692, 289), 'tw': (588, 260, 692, 289)}, color={'cn': (178, 180, 180), 'en': (149, 151, 152), 'jp': (178, 180, 180), 'tw': (178, 180, 180)}, button={'cn': (0, 263, 129, 555), 'en': (588, 260, 692, 289), 'jp': (0, 263, 129, 555), 'tw': (0, 263, 129, 555)}, file={'cn': './assets/cn/island/GET_ITEMS_ISLAND.png', 'en': './assets/en/island/GET_ITEMS_ISLAND.png', 'jp': './assets/cn/island/GET_ITEMS_ISLAND.png', 'tw': './assets/cn/island/GET_ITEMS_ISLAND.png'})
ISLAND_AMOUNT_MAX = Button(area={'cn': (960, 382, 988, 405), 'en': (960, 382, 988, 405), 'jp': (960, 382, 988, 405), 'tw': (960, 382, 988, 405)}, color={'cn': (72, 72, 78), 'en': (78, 78, 84), 'jp': (72, 72, 78), 'tw': (72, 72, 78)}, button={'cn': (960, 382, 988, 405), 'en': (960, 382, 988, 405), 'jp': (960, 382, 988, 405), 'tw': (960, 382, 988, 405)}, file={'cn': './assets/cn/island/ISLAND_AMOUNT_MAX.png', 'en': './assets/en/island/ISLAND_AMOUNT_MAX.png', 'jp': './assets/cn/island/ISLAND_AMOUNT_MAX.png', 'tw': './assets/cn/island/ISLAND_AMOUNT_MAX.png'}) ISLAND_AMOUNT_MAX = Button(area={'cn': (960, 382, 988, 405), 'en': (960, 382, 988, 405), 'jp': (960, 382, 988, 405), 'tw': (960, 382, 988, 405)}, color={'cn': (72, 72, 78), 'en': (78, 78, 84), 'jp': (72, 72, 78), 'tw': (72, 72, 78)}, button={'cn': (960, 382, 988, 405), 'en': (960, 382, 988, 405), 'jp': (960, 382, 988, 405), 'tw': (960, 382, 988, 405)}, file={'cn': './assets/cn/island/ISLAND_AMOUNT_MAX.png', 'en': './assets/en/island/ISLAND_AMOUNT_MAX.png', 'jp': './assets/cn/island/ISLAND_AMOUNT_MAX.png', 'tw': './assets/cn/island/ISLAND_AMOUNT_MAX.png'})
ISLAND_CLICK_SAFE_AREA = Button(area={'cn': (0, 263, 129, 555), 'en': (0, 263, 129, 555), 'jp': (0, 263, 129, 555), 'tw': (0, 263, 129, 555)}, color={'cn': (50, 52, 56), 'en': (50, 52, 56), 'jp': (50, 52, 56), 'tw': (50, 52, 56)}, button={'cn': (0, 263, 129, 555), 'en': (0, 263, 129, 555), 'jp': (0, 263, 129, 555), 'tw': (0, 263, 129, 555)}, file={'cn': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png', 'en': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png', 'jp': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png', 'tw': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png'}) ISLAND_CLICK_SAFE_AREA = Button(area={'cn': (0, 263, 129, 555), 'en': (0, 263, 129, 555), 'jp': (0, 263, 129, 555), 'tw': (0, 263, 129, 555)}, color={'cn': (50, 52, 56), 'en': (50, 52, 56), 'jp': (50, 52, 56), 'tw': (50, 52, 56)}, button={'cn': (0, 263, 129, 555), 'en': (0, 263, 129, 555), 'jp': (0, 263, 129, 555), 'tw': (0, 263, 129, 555)}, file={'cn': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png', 'en': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png', 'jp': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png', 'tw': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png'})
ISLAND_INFO_EXIT = Button(area={'cn': (907, 160, 933, 187), 'en': (907, 160, 933, 187), 'jp': (907, 160, 933, 187), 'tw': (907, 160, 933, 187)}, color={'cn': (96, 96, 96), 'en': (96, 96, 96), 'jp': (96, 96, 96), 'tw': (96, 96, 96)}, button={'cn': (907, 160, 933, 187), 'en': (907, 160, 933, 187), 'jp': (907, 160, 933, 187), 'tw': (907, 160, 933, 187)}, file={'cn': './assets/cn/island/ISLAND_INFO_EXIT.png', 'en': './assets/cn/island/ISLAND_INFO_EXIT.png', 'jp': './assets/cn/island/ISLAND_INFO_EXIT.png', 'tw': './assets/cn/island/ISLAND_INFO_EXIT.png'})
ISLAND_MANAGEMENT = Button(area={'cn': (1077, 493, 1119, 533), 'en': (1077, 493, 1119, 533), 'jp': (1077, 493, 1119, 533), 'tw': (1077, 493, 1119, 533)}, color={'cn': (187, 224, 135), 'en': (187, 224, 135), 'jp': (187, 224, 135), 'tw': (187, 224, 135)}, button={'cn': (1077, 493, 1119, 533), 'en': (1077, 493, 1119, 533), 'jp': (1077, 493, 1119, 533), 'tw': (1077, 493, 1119, 533)}, file={'cn': './assets/cn/island/ISLAND_MANAGEMENT.png', 'en': './assets/cn/island/ISLAND_MANAGEMENT.png', 'jp': './assets/cn/island/ISLAND_MANAGEMENT.png', 'tw': './assets/cn/island/ISLAND_MANAGEMENT.png'}) ISLAND_MANAGEMENT = Button(area={'cn': (1077, 493, 1119, 533), 'en': (1077, 493, 1119, 533), 'jp': (1077, 493, 1119, 533), 'tw': (1077, 493, 1119, 533)}, color={'cn': (187, 224, 135), 'en': (187, 224, 135), 'jp': (187, 224, 135), 'tw': (187, 224, 135)}, button={'cn': (1077, 493, 1119, 533), 'en': (1077, 493, 1119, 533), 'jp': (1077, 493, 1119, 533), 'tw': (1077, 493, 1119, 533)}, file={'cn': './assets/cn/island/ISLAND_MANAGEMENT.png', 'en': './assets/cn/island/ISLAND_MANAGEMENT.png', 'jp': './assets/cn/island/ISLAND_MANAGEMENT.png', 'tw': './assets/cn/island/ISLAND_MANAGEMENT.png'})
ISLAND_MANAGEMENT_CHECK = Button(area={'cn': (123, 21, 304, 47), 'en': (123, 21, 304, 47), 'jp': (123, 21, 304, 47), 'tw': (123, 21, 304, 47)}, color={'cn': (77, 83, 96), 'en': (90, 96, 108), 'jp': (77, 83, 96), 'tw': (77, 83, 96)}, button={'cn': (123, 21, 304, 47), 'en': (123, 21, 304, 47), 'jp': (123, 21, 304, 47), 'tw': (123, 21, 304, 47)}, file={'cn': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png', 'en': './assets/en/island/ISLAND_MANAGEMENT_CHECK.png', 'jp': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png', 'tw': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png'}) ISLAND_MANAGEMENT_CHECK = Button(area={'cn': (123, 21, 304, 47), 'en': (123, 21, 304, 47), 'jp': (123, 21, 304, 47), 'tw': (123, 21, 304, 47)}, color={'cn': (77, 83, 96), 'en': (90, 96, 108), 'jp': (77, 83, 96), 'tw': (77, 83, 96)}, button={'cn': (123, 21, 304, 47), 'en': (123, 21, 304, 47), 'jp': (123, 21, 304, 47), 'tw': (123, 21, 304, 47)}, file={'cn': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png', 'en': './assets/en/island/ISLAND_MANAGEMENT_CHECK.png', 'jp': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png', 'tw': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png'})
ISLAND_MANAGEMENT_LOCKED = Button(area={'cn': (1092, 504, 1105, 520), 'en': (1092, 504, 1105, 520), 'jp': (1092, 504, 1105, 520), 'tw': (1092, 504, 1105, 520)}, color={'cn': (197, 206, 195), 'en': (197, 206, 195), 'jp': (197, 206, 195), 'tw': (197, 206, 195)}, button={'cn': (1092, 504, 1105, 520), 'en': (1092, 504, 1105, 520), 'jp': (1092, 504, 1105, 520), 'tw': (1092, 504, 1105, 520)}, file={'cn': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png', 'en': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png', 'jp': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png', 'tw': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png'}) ISLAND_MANAGEMENT_LOCKED = Button(area={'cn': (1092, 504, 1105, 520), 'en': (1092, 504, 1105, 520), 'jp': (1092, 504, 1105, 520), 'tw': (1092, 504, 1105, 520)}, color={'cn': (197, 206, 195), 'en': (197, 206, 195), 'jp': (197, 206, 195), 'tw': (197, 206, 195)}, button={'cn': (1092, 504, 1105, 520), 'en': (1092, 504, 1105, 520), 'jp': (1092, 504, 1105, 520), 'tw': (1092, 504, 1105, 520)}, file={'cn': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png', 'en': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png', 'jp': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png', 'tw': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png'})
@@ -22,36 +23,58 @@ OCR_TRANSPORT_TIME_REMAIN = Button(area={'cn': (753, 210, 842, 230), 'en': (753,
PRODUCT_MANJUU_CHECK = Button(area={'cn': (535, 107, 575, 138), 'en': (535, 107, 575, 138), 'jp': (535, 107, 575, 138), 'tw': (535, 107, 575, 138)}, color={'cn': (199, 181, 124), 'en': (199, 181, 124), 'jp': (199, 181, 124), 'tw': (199, 181, 124)}, button={'cn': (535, 107, 575, 138), 'en': (535, 107, 575, 138), 'jp': (535, 107, 575, 138), 'tw': (535, 107, 575, 138)}, file={'cn': './assets/cn/island/PRODUCT_MANJUU_CHECK.png', 'en': './assets/cn/island/PRODUCT_MANJUU_CHECK.png', 'jp': './assets/cn/island/PRODUCT_MANJUU_CHECK.png', 'tw': './assets/cn/island/PRODUCT_MANJUU_CHECK.png'}) PRODUCT_MANJUU_CHECK = Button(area={'cn': (535, 107, 575, 138), 'en': (535, 107, 575, 138), 'jp': (535, 107, 575, 138), 'tw': (535, 107, 575, 138)}, color={'cn': (199, 181, 124), 'en': (199, 181, 124), 'jp': (199, 181, 124), 'tw': (199, 181, 124)}, button={'cn': (535, 107, 575, 138), 'en': (535, 107, 575, 138), 'jp': (535, 107, 575, 138), 'tw': (535, 107, 575, 138)}, file={'cn': './assets/cn/island/PRODUCT_MANJUU_CHECK.png', 'en': './assets/cn/island/PRODUCT_MANJUU_CHECK.png', 'jp': './assets/cn/island/PRODUCT_MANJUU_CHECK.png', 'tw': './assets/cn/island/PRODUCT_MANJUU_CHECK.png'})
PROJECT_AKASHI_CHECK = Button(area={'cn': (1157, 176, 1217, 209), 'en': (1157, 176, 1217, 209), 'jp': (1157, 176, 1217, 209), 'tw': (1157, 176, 1217, 209)}, color={'cn': (173, 183, 168), 'en': (173, 183, 168), 'jp': (173, 183, 168), 'tw': (173, 183, 168)}, button={'cn': (1157, 176, 1217, 209), 'en': (1157, 176, 1217, 209), 'jp': (1157, 176, 1217, 209), 'tw': (1157, 176, 1217, 209)}, file={'cn': './assets/cn/island/PROJECT_AKASHI_CHECK.png', 'en': './assets/cn/island/PROJECT_AKASHI_CHECK.png', 'jp': './assets/cn/island/PROJECT_AKASHI_CHECK.png', 'tw': './assets/cn/island/PROJECT_AKASHI_CHECK.png'}) PROJECT_AKASHI_CHECK = Button(area={'cn': (1157, 176, 1217, 209), 'en': (1157, 176, 1217, 209), 'jp': (1157, 176, 1217, 209), 'tw': (1157, 176, 1217, 209)}, color={'cn': (173, 183, 168), 'en': (173, 183, 168), 'jp': (173, 183, 168), 'tw': (173, 183, 168)}, button={'cn': (1157, 176, 1217, 209), 'en': (1157, 176, 1217, 209), 'jp': (1157, 176, 1217, 209), 'tw': (1157, 176, 1217, 209)}, file={'cn': './assets/cn/island/PROJECT_AKASHI_CHECK.png', 'en': './assets/cn/island/PROJECT_AKASHI_CHECK.png', 'jp': './assets/cn/island/PROJECT_AKASHI_CHECK.png', 'tw': './assets/cn/island/PROJECT_AKASHI_CHECK.png'})
PROJECT_AMAGI_CHAN_CHECK = Button(area={'cn': (1152, 167, 1229, 215), 'en': (1152, 167, 1229, 215), 'jp': (1152, 167, 1229, 215), 'tw': (1152, 167, 1229, 215)}, color={'cn': (136, 114, 106), 'en': (136, 114, 106), 'jp': (136, 114, 106), 'tw': (136, 114, 106)}, button={'cn': (1152, 167, 1229, 215), 'en': (1152, 167, 1229, 215), 'jp': (1152, 167, 1229, 215), 'tw': (1152, 167, 1229, 215)}, file={'cn': './assets/cn/island/PROJECT_AMAGI_CHAN_CHECK.png', 'en': './assets/cn/island/PROJECT_AMAGI_CHAN_CHECK.png', 'jp': './assets/cn/island/PROJECT_AMAGI_CHAN_CHECK.png', 'tw': './assets/cn/island/PROJECT_AMAGI_CHAN_CHECK.png'}) PROJECT_AMAGI_CHAN_CHECK = Button(area={'cn': (1152, 167, 1229, 215), 'en': (1152, 167, 1229, 215), 'jp': (1152, 167, 1229, 215), 'tw': (1152, 167, 1229, 215)}, color={'cn': (136, 114, 106), 'en': (136, 114, 106), 'jp': (136, 114, 106), 'tw': (136, 114, 106)}, button={'cn': (1152, 167, 1229, 215), 'en': (1152, 167, 1229, 215), 'jp': (1152, 167, 1229, 215), 'tw': (1152, 167, 1229, 215)}, file={'cn': './assets/cn/island/PROJECT_AMAGI_CHAN_CHECK.png', 'en': './assets/cn/island/PROJECT_AMAGI_CHAN_CHECK.png', 'jp': './assets/cn/island/PROJECT_AMAGI_CHAN_CHECK.png', 'tw': './assets/cn/island/PROJECT_AMAGI_CHAN_CHECK.png'})
PROJECT_ATAGO_CHECK = Button(area={'cn': (1161, 180, 1217, 211), 'en': (1161, 180, 1217, 211), 'jp': (1161, 180, 1217, 211), 'tw': (1161, 180, 1217, 211)}, color={'cn': (175, 156, 144), 'en': (175, 156, 144), 'jp': (175, 156, 144), 'tw': (175, 156, 144)}, button={'cn': (1161, 180, 1217, 211), 'en': (1161, 180, 1217, 211), 'jp': (1161, 180, 1217, 211), 'tw': (1161, 180, 1217, 211)}, file={'cn': './assets/cn/island/PROJECT_ATAGO_CHECK.png', 'en': './assets/cn/island/PROJECT_ATAGO_CHECK.png', 'jp': './assets/cn/island/PROJECT_ATAGO_CHECK.png', 'tw': './assets/cn/island/PROJECT_ATAGO_CHECK.png'})
PROJECT_CHAO_HO_CHECK = Button(area={'cn': (1158, 174, 1218, 204), 'en': (1158, 174, 1218, 204), 'jp': (1158, 174, 1218, 204), 'tw': (1158, 174, 1218, 204)}, color={'cn': (182, 145, 150), 'en': (182, 145, 150), 'jp': (182, 145, 150), 'tw': (182, 145, 150)}, button={'cn': (1158, 174, 1218, 204), 'en': (1158, 174, 1218, 204), 'jp': (1158, 174, 1218, 204), 'tw': (1158, 174, 1218, 204)}, file={'cn': './assets/cn/island/PROJECT_CHAO_HO_CHECK.png', 'en': './assets/cn/island/PROJECT_CHAO_HO_CHECK.png', 'jp': './assets/cn/island/PROJECT_CHAO_HO_CHECK.png', 'tw': './assets/cn/island/PROJECT_CHAO_HO_CHECK.png'}) PROJECT_CHAO_HO_CHECK = Button(area={'cn': (1158, 174, 1218, 204), 'en': (1158, 174, 1218, 204), 'jp': (1158, 174, 1218, 204), 'tw': (1158, 174, 1218, 204)}, color={'cn': (182, 145, 150), 'en': (182, 145, 150), 'jp': (182, 145, 150), 'tw': (182, 145, 150)}, button={'cn': (1158, 174, 1218, 204), 'en': (1158, 174, 1218, 204), 'jp': (1158, 174, 1218, 204), 'tw': (1158, 174, 1218, 204)}, file={'cn': './assets/cn/island/PROJECT_CHAO_HO_CHECK.png', 'en': './assets/cn/island/PROJECT_CHAO_HO_CHECK.png', 'jp': './assets/cn/island/PROJECT_CHAO_HO_CHECK.png', 'tw': './assets/cn/island/PROJECT_CHAO_HO_CHECK.png'})
PROJECT_CHEN_HAI_CHECK = Button(area={'cn': (1162, 175, 1215, 206), 'en': (1162, 175, 1215, 206), 'jp': (1162, 175, 1215, 206), 'tw': (1162, 175, 1215, 206)}, color={'cn': (145, 134, 130), 'en': (145, 134, 130), 'jp': (145, 134, 130), 'tw': (145, 134, 130)}, button={'cn': (1162, 175, 1215, 206), 'en': (1162, 175, 1215, 206), 'jp': (1162, 175, 1215, 206), 'tw': (1162, 175, 1215, 206)}, file={'cn': './assets/cn/island/PROJECT_CHEN_HAI_CHECK.png', 'en': './assets/cn/island/PROJECT_CHEN_HAI_CHECK.png', 'jp': './assets/cn/island/PROJECT_CHEN_HAI_CHECK.png', 'tw': './assets/cn/island/PROJECT_CHEN_HAI_CHECK.png'})
PROJECT_CHESHIRE_CHECK = Button(area={'cn': (1161, 163, 1224, 207), 'en': (1161, 163, 1224, 207), 'jp': (1161, 163, 1224, 207), 'tw': (1161, 163, 1224, 207)}, color={'cn': (156, 150, 159), 'en': (156, 150, 159), 'jp': (156, 150, 159), 'tw': (156, 150, 159)}, button={'cn': (1161, 163, 1224, 207), 'en': (1161, 163, 1224, 207), 'jp': (1161, 163, 1224, 207), 'tw': (1161, 163, 1224, 207)}, file={'cn': './assets/cn/island/PROJECT_CHESHIRE_CHECK.png', 'en': './assets/cn/island/PROJECT_CHESHIRE_CHECK.png', 'jp': './assets/cn/island/PROJECT_CHESHIRE_CHECK.png', 'tw': './assets/cn/island/PROJECT_CHESHIRE_CHECK.png'}) PROJECT_CHESHIRE_CHECK = Button(area={'cn': (1161, 163, 1224, 207), 'en': (1161, 163, 1224, 207), 'jp': (1161, 163, 1224, 207), 'tw': (1161, 163, 1224, 207)}, color={'cn': (156, 150, 159), 'en': (156, 150, 159), 'jp': (156, 150, 159), 'tw': (156, 150, 159)}, button={'cn': (1161, 163, 1224, 207), 'en': (1161, 163, 1224, 207), 'jp': (1161, 163, 1224, 207), 'tw': (1161, 163, 1224, 207)}, file={'cn': './assets/cn/island/PROJECT_CHESHIRE_CHECK.png', 'en': './assets/cn/island/PROJECT_CHESHIRE_CHECK.png', 'jp': './assets/cn/island/PROJECT_CHESHIRE_CHECK.png', 'tw': './assets/cn/island/PROJECT_CHESHIRE_CHECK.png'})
PROJECT_COMPLETE = Button(area={'cn': (616, 431, 670, 444), 'en': (616, 431, 670, 444), 'jp': (616, 431, 670, 444), 'tw': (616, 431, 670, 444)}, color={'cn': (158, 222, 255), 'en': (158, 222, 255), 'jp': (158, 222, 255), 'tw': (158, 222, 255)}, button={'cn': (580, 533, 762, 584), 'en': (580, 533, 762, 584), 'jp': (580, 533, 762, 584), 'tw': (580, 533, 762, 584)}, file={'cn': './assets/cn/island/PROJECT_COMPLETE.png', 'en': './assets/cn/island/PROJECT_COMPLETE.png', 'jp': './assets/cn/island/PROJECT_COMPLETE.png', 'tw': './assets/cn/island/PROJECT_COMPLETE.png'}) PROJECT_COMPLETE = Button(area={'cn': (616, 431, 670, 444), 'en': (616, 431, 670, 444), 'jp': (616, 431, 670, 444), 'tw': (616, 431, 670, 444)}, color={'cn': (158, 222, 255), 'en': (158, 222, 255), 'jp': (158, 222, 255), 'tw': (158, 222, 255)}, button={'cn': (580, 533, 762, 584), 'en': (580, 533, 762, 584), 'jp': (580, 533, 762, 584), 'tw': (580, 533, 762, 584)}, file={'cn': './assets/cn/island/PROJECT_COMPLETE.png', 'en': './assets/cn/island/PROJECT_COMPLETE.png', 'jp': './assets/cn/island/PROJECT_COMPLETE.png', 'tw': './assets/cn/island/PROJECT_COMPLETE.png'})
PROJECT_EXPLORER_CHECK = Button(area={'cn': (1151, 168, 1223, 220), 'en': (1151, 168, 1223, 220), 'jp': (1151, 168, 1223, 220), 'tw': (1151, 168, 1223, 220)}, color={'cn': (200, 192, 189), 'en': (200, 192, 189), 'jp': (200, 192, 189), 'tw': (200, 192, 189)}, button={'cn': (1151, 168, 1223, 220), 'en': (1151, 168, 1223, 220), 'jp': (1151, 168, 1223, 220), 'tw': (1151, 168, 1223, 220)}, file={'cn': './assets/cn/island/PROJECT_EXPLORER_CHECK.png', 'en': './assets/cn/island/PROJECT_EXPLORER_CHECK.png', 'jp': './assets/cn/island/PROJECT_EXPLORER_CHECK.png', 'tw': './assets/cn/island/PROJECT_EXPLORER_CHECK.png'})
PROJECT_FRIEDRICH_DER_GROBE_CHECK = Button(area={'cn': (1162, 177, 1217, 215), 'en': (1162, 177, 1217, 215), 'jp': (1162, 177, 1217, 215), 'tw': (1162, 177, 1217, 215)}, color={'cn': (106, 102, 100), 'en': (106, 102, 100), 'jp': (106, 102, 100), 'tw': (106, 102, 100)}, button={'cn': (1162, 177, 1217, 215), 'en': (1162, 177, 1217, 215), 'jp': (1162, 177, 1217, 215), 'tw': (1162, 177, 1217, 215)}, file={'cn': './assets/cn/island/PROJECT_FRIEDRICH_DER_GROBE_CHECK.png', 'en': './assets/cn/island/PROJECT_FRIEDRICH_DER_GROBE_CHECK.png', 'jp': './assets/cn/island/PROJECT_FRIEDRICH_DER_GROBE_CHECK.png', 'tw': './assets/cn/island/PROJECT_FRIEDRICH_DER_GROBE_CHECK.png'})
PROJECT_HELENA_CHECK = Button(area={'cn': (1164, 175, 1217, 209), 'en': (1164, 175, 1217, 209), 'jp': (1164, 175, 1217, 209), 'tw': (1164, 175, 1217, 209)}, color={'cn': (184, 178, 195), 'en': (184, 178, 195), 'jp': (184, 178, 195), 'tw': (184, 178, 195)}, button={'cn': (1164, 175, 1217, 209), 'en': (1164, 175, 1217, 209), 'jp': (1164, 175, 1217, 209), 'tw': (1164, 175, 1217, 209)}, file={'cn': './assets/cn/island/PROJECT_HELENA_CHECK.png', 'en': './assets/cn/island/PROJECT_HELENA_CHECK.png', 'jp': './assets/cn/island/PROJECT_HELENA_CHECK.png', 'tw': './assets/cn/island/PROJECT_HELENA_CHECK.png'})
PROJECT_HOOD_CHECK = Button(area={'cn': (1152, 167, 1232, 218), 'en': (1152, 167, 1232, 218), 'jp': (1152, 167, 1232, 218), 'tw': (1152, 167, 1232, 218)}, color={'cn': (203, 185, 173), 'en': (203, 185, 173), 'jp': (203, 185, 173), 'tw': (203, 185, 173)}, button={'cn': (1152, 167, 1232, 218), 'en': (1152, 167, 1232, 218), 'jp': (1152, 167, 1232, 218), 'tw': (1152, 167, 1232, 218)}, file={'cn': './assets/cn/island/PROJECT_HOOD_CHECK.png', 'en': './assets/cn/island/PROJECT_HOOD_CHECK.png', 'jp': './assets/cn/island/PROJECT_HOOD_CHECK.png', 'tw': './assets/cn/island/PROJECT_HOOD_CHECK.png'})
PROJECT_LEMALIN_CHECK = Button(area={'cn': (1165, 173, 1232, 218), 'en': (1165, 173, 1232, 218), 'jp': (1165, 173, 1232, 218), 'tw': (1165, 173, 1232, 218)}, color={'cn': (225, 217, 221), 'en': (225, 217, 221), 'jp': (225, 217, 221), 'tw': (225, 217, 221)}, button={'cn': (1165, 173, 1232, 218), 'en': (1165, 173, 1232, 218), 'jp': (1165, 173, 1232, 218), 'tw': (1165, 173, 1232, 218)}, file={'cn': './assets/cn/island/PROJECT_LEMALIN_CHECK.png', 'en': './assets/cn/island/PROJECT_LEMALIN_CHECK.png', 'jp': './assets/cn/island/PROJECT_LEMALIN_CHECK.png', 'tw': './assets/cn/island/PROJECT_LEMALIN_CHECK.png'}) PROJECT_LEMALIN_CHECK = Button(area={'cn': (1165, 173, 1232, 218), 'en': (1165, 173, 1232, 218), 'jp': (1165, 173, 1232, 218), 'tw': (1165, 173, 1232, 218)}, color={'cn': (225, 217, 221), 'en': (225, 217, 221), 'jp': (225, 217, 221), 'tw': (225, 217, 221)}, button={'cn': (1165, 173, 1232, 218), 'en': (1165, 173, 1232, 218), 'jp': (1165, 173, 1232, 218), 'tw': (1165, 173, 1232, 218)}, file={'cn': './assets/cn/island/PROJECT_LEMALIN_CHECK.png', 'en': './assets/cn/island/PROJECT_LEMALIN_CHECK.png', 'jp': './assets/cn/island/PROJECT_LEMALIN_CHECK.png', 'tw': './assets/cn/island/PROJECT_LEMALIN_CHECK.png'})
PROJECT_MANJUU_CHECK = Button(area={'cn': (1162, 182, 1214, 205), 'en': (1162, 182, 1214, 205), 'jp': (1162, 182, 1214, 205), 'tw': (1162, 182, 1214, 205)}, color={'cn': (221, 192, 128), 'en': (221, 192, 128), 'jp': (221, 192, 128), 'tw': (221, 192, 128)}, button={'cn': (1162, 182, 1214, 205), 'en': (1162, 182, 1214, 205), 'jp': (1162, 182, 1214, 205), 'tw': (1162, 182, 1214, 205)}, file={'cn': './assets/cn/island/PROJECT_MANJUU_CHECK.png', 'en': './assets/cn/island/PROJECT_MANJUU_CHECK.png', 'jp': './assets/cn/island/PROJECT_MANJUU_CHECK.png', 'tw': './assets/cn/island/PROJECT_MANJUU_CHECK.png'}) PROJECT_MANJUU_CHECK = Button(area={'cn': (1162, 182, 1214, 205), 'en': (1162, 182, 1214, 205), 'jp': (1162, 182, 1214, 205), 'tw': (1162, 182, 1214, 205)}, color={'cn': (221, 192, 128), 'en': (221, 192, 128), 'jp': (221, 192, 128), 'tw': (221, 192, 128)}, button={'cn': (1162, 182, 1214, 205), 'en': (1162, 182, 1214, 205), 'jp': (1162, 182, 1214, 205), 'tw': (1162, 182, 1214, 205)}, file={'cn': './assets/cn/island/PROJECT_MANJUU_CHECK.png', 'en': './assets/cn/island/PROJECT_MANJUU_CHECK.png', 'jp': './assets/cn/island/PROJECT_MANJUU_CHECK.png', 'tw': './assets/cn/island/PROJECT_MANJUU_CHECK.png'})
PROJECT_NEW_JERSEY_CHECK = Button(area={'cn': (1158, 170, 1223, 214), 'en': (1158, 170, 1223, 214), 'jp': (1158, 170, 1223, 214), 'tw': (1158, 170, 1223, 214)}, color={'cn': (138, 136, 159), 'en': (138, 136, 159), 'jp': (138, 136, 159), 'tw': (138, 136, 159)}, button={'cn': (1158, 170, 1223, 214), 'en': (1158, 170, 1223, 214), 'jp': (1158, 170, 1223, 214), 'tw': (1158, 170, 1223, 214)}, file={'cn': './assets/cn/island/PROJECT_NEW_JERSEY_CHECK.png', 'en': './assets/cn/island/PROJECT_NEW_JERSEY_CHECK.png', 'jp': './assets/cn/island/PROJECT_NEW_JERSEY_CHECK.png', 'tw': './assets/cn/island/PROJECT_NEW_JERSEY_CHECK.png'}) PROJECT_NEW_JERSEY_CHECK = Button(area={'cn': (1158, 170, 1223, 214), 'en': (1158, 170, 1223, 214), 'jp': (1158, 170, 1223, 214), 'tw': (1158, 170, 1223, 214)}, color={'cn': (138, 136, 159), 'en': (138, 136, 159), 'jp': (138, 136, 159), 'tw': (138, 136, 159)}, button={'cn': (1158, 170, 1223, 214), 'en': (1158, 170, 1223, 214), 'jp': (1158, 170, 1223, 214), 'tw': (1158, 170, 1223, 214)}, file={'cn': './assets/cn/island/PROJECT_NEW_JERSEY_CHECK.png', 'en': './assets/cn/island/PROJECT_NEW_JERSEY_CHECK.png', 'jp': './assets/cn/island/PROJECT_NEW_JERSEY_CHECK.png', 'tw': './assets/cn/island/PROJECT_NEW_JERSEY_CHECK.png'})
PROJECT_OCEANA_CHECK = Button(area={'cn': (1148, 167, 1221, 221), 'en': (1148, 167, 1221, 221), 'jp': (1148, 167, 1221, 221), 'tw': (1148, 167, 1221, 221)}, color={'cn': (215, 208, 216), 'en': (215, 208, 216), 'jp': (215, 208, 216), 'tw': (215, 208, 216)}, button={'cn': (1148, 167, 1221, 221), 'en': (1148, 167, 1221, 221), 'jp': (1148, 167, 1221, 221), 'tw': (1148, 167, 1221, 221)}, file={'cn': './assets/cn/island/PROJECT_OCEANA_CHECK.png', 'en': './assets/cn/island/PROJECT_OCEANA_CHECK.png', 'jp': './assets/cn/island/PROJECT_OCEANA_CHECK.png', 'tw': './assets/cn/island/PROJECT_OCEANA_CHECK.png'})
PROJECT_PRINZ_EUGEN_CHECK = Button(area={'cn': (1150, 169, 1235, 219), 'en': (1150, 169, 1235, 219), 'jp': (1150, 169, 1235, 219), 'tw': (1150, 169, 1235, 219)}, color={'cn': (200, 180, 177), 'en': (200, 180, 177), 'jp': (200, 180, 177), 'tw': (200, 180, 177)}, button={'cn': (1150, 169, 1235, 219), 'en': (1150, 169, 1235, 219), 'jp': (1150, 169, 1235, 219), 'tw': (1150, 169, 1235, 219)}, file={'cn': './assets/cn/island/PROJECT_PRINZ_EUGEN_CHECK.png', 'en': './assets/cn/island/PROJECT_PRINZ_EUGEN_CHECK.png', 'jp': './assets/cn/island/PROJECT_PRINZ_EUGEN_CHECK.png', 'tw': './assets/cn/island/PROJECT_PRINZ_EUGEN_CHECK.png'})
PROJECT_SARATOGA_CHECK = Button(area={'cn': (1162, 166, 1223, 219), 'en': (1162, 166, 1223, 219), 'jp': (1162, 166, 1223, 219), 'tw': (1162, 166, 1223, 219)}, color={'cn': (212, 177, 178), 'en': (212, 177, 178), 'jp': (212, 177, 178), 'tw': (212, 177, 178)}, button={'cn': (1162, 166, 1223, 219), 'en': (1162, 166, 1223, 219), 'jp': (1162, 166, 1223, 219), 'tw': (1162, 166, 1223, 219)}, file={'cn': './assets/cn/island/PROJECT_SARATOGA_CHECK.png', 'en': './assets/cn/island/PROJECT_SARATOGA_CHECK.png', 'jp': './assets/cn/island/PROJECT_SARATOGA_CHECK.png', 'tw': './assets/cn/island/PROJECT_SARATOGA_CHECK.png'}) PROJECT_SARATOGA_CHECK = Button(area={'cn': (1162, 166, 1223, 219), 'en': (1162, 166, 1223, 219), 'jp': (1162, 166, 1223, 219), 'tw': (1162, 166, 1223, 219)}, color={'cn': (212, 177, 178), 'en': (212, 177, 178), 'jp': (212, 177, 178), 'tw': (212, 177, 178)}, button={'cn': (1162, 166, 1223, 219), 'en': (1162, 166, 1223, 219), 'jp': (1162, 166, 1223, 219), 'tw': (1162, 166, 1223, 219)}, file={'cn': './assets/cn/island/PROJECT_SARATOGA_CHECK.png', 'en': './assets/cn/island/PROJECT_SARATOGA_CHECK.png', 'jp': './assets/cn/island/PROJECT_SARATOGA_CHECK.png', 'tw': './assets/cn/island/PROJECT_SARATOGA_CHECK.png'})
PROJECT_SHIMAKAZE_CHECK = Button(area={'cn': (1163, 168, 1212, 218), 'en': (1163, 168, 1212, 218), 'jp': (1163, 168, 1212, 218), 'tw': (1163, 168, 1212, 218)}, color={'cn': (218, 199, 196), 'en': (218, 199, 196), 'jp': (218, 199, 196), 'tw': (218, 199, 196)}, button={'cn': (1163, 168, 1212, 218), 'en': (1163, 168, 1212, 218), 'jp': (1163, 168, 1212, 218), 'tw': (1163, 168, 1212, 218)}, file={'cn': './assets/cn/island/PROJECT_SHIMAKAZE_CHECK.png', 'en': './assets/cn/island/PROJECT_SHIMAKAZE_CHECK.png', 'jp': './assets/cn/island/PROJECT_SHIMAKAZE_CHECK.png', 'tw': './assets/cn/island/PROJECT_SHIMAKAZE_CHECK.png'}) PROJECT_SHIMAKAZE_CHECK = Button(area={'cn': (1163, 168, 1212, 218), 'en': (1163, 168, 1212, 218), 'jp': (1163, 168, 1212, 218), 'tw': (1163, 168, 1212, 218)}, color={'cn': (218, 199, 196), 'en': (218, 199, 196), 'jp': (218, 199, 196), 'tw': (218, 199, 196)}, button={'cn': (1163, 168, 1212, 218), 'en': (1163, 168, 1212, 218), 'jp': (1163, 168, 1212, 218), 'tw': (1163, 168, 1212, 218)}, file={'cn': './assets/cn/island/PROJECT_SHIMAKAZE_CHECK.png', 'en': './assets/cn/island/PROJECT_SHIMAKAZE_CHECK.png', 'jp': './assets/cn/island/PROJECT_SHIMAKAZE_CHECK.png', 'tw': './assets/cn/island/PROJECT_SHIMAKAZE_CHECK.png'})
PROJECT_START = Button(area={'cn': (686, 610, 706, 630), 'en': (609, 610, 629, 630), 'jp': (686, 610, 706, 630), 'tw': (686, 610, 706, 630)}, color={'cn': (129, 213, 255), 'en': (128, 212, 254), 'jp': (129, 213, 255), 'tw': (129, 213, 255)}, button={'cn': (494, 599, 1087, 642), 'en': (609, 610, 629, 630), 'jp': (494, 599, 1087, 642), 'tw': (494, 599, 1087, 642)}, file={'cn': './assets/cn/island/PROJECT_START.png', 'en': './assets/en/island/PROJECT_START.png', 'jp': './assets/cn/island/PROJECT_START.png', 'tw': './assets/cn/island/PROJECT_START.png'}) PROJECT_START = Button(area={'cn': (686, 610, 706, 630), 'en': (609, 610, 629, 630), 'jp': (686, 610, 706, 630), 'tw': (686, 610, 706, 630)}, color={'cn': (129, 213, 255), 'en': (128, 212, 254), 'jp': (129, 213, 255), 'tw': (129, 213, 255)}, button={'cn': (494, 599, 1087, 642), 'en': (609, 610, 629, 630), 'jp': (494, 599, 1087, 642), 'tw': (494, 599, 1087, 642)}, file={'cn': './assets/cn/island/PROJECT_START.png', 'en': './assets/en/island/PROJECT_START.png', 'jp': './assets/cn/island/PROJECT_START.png', 'tw': './assets/cn/island/PROJECT_START.png'})
PROJECT_TASHKENT_CHECK = Button(area={'cn': (1164, 176, 1219, 213), 'en': (1164, 176, 1219, 213), 'jp': (1164, 176, 1219, 213), 'tw': (1164, 176, 1219, 213)}, color={'cn': (176, 146, 173), 'en': (176, 146, 173), 'jp': (176, 146, 173), 'tw': (176, 146, 173)}, button={'cn': (1164, 176, 1219, 213), 'en': (1164, 176, 1219, 213), 'jp': (1164, 176, 1219, 213), 'tw': (1164, 176, 1219, 213)}, file={'cn': './assets/cn/island/PROJECT_TASHKENT_CHECK.png', 'en': './assets/cn/island/PROJECT_TASHKENT_CHECK.png', 'jp': './assets/cn/island/PROJECT_TASHKENT_CHECK.png', 'tw': './assets/cn/island/PROJECT_TASHKENT_CHECK.png'}) PROJECT_TASHKENT_CHECK = Button(area={'cn': (1164, 176, 1219, 213), 'en': (1164, 176, 1219, 213), 'jp': (1164, 176, 1219, 213), 'tw': (1164, 176, 1219, 213)}, color={'cn': (176, 146, 173), 'en': (176, 146, 173), 'jp': (176, 146, 173), 'tw': (176, 146, 173)}, button={'cn': (1164, 176, 1219, 213), 'en': (1164, 176, 1219, 213), 'jp': (1164, 176, 1219, 213), 'tw': (1164, 176, 1219, 213)}, file={'cn': './assets/cn/island/PROJECT_TASHKENT_CHECK.png', 'en': './assets/cn/island/PROJECT_TASHKENT_CHECK.png', 'jp': './assets/cn/island/PROJECT_TASHKENT_CHECK.png', 'tw': './assets/cn/island/PROJECT_TASHKENT_CHECK.png'})
PROJECT_TB_CHECK = Button(area={'cn': (1148, 161, 1230, 218), 'en': (1148, 161, 1230, 218), 'jp': (1148, 161, 1230, 218), 'tw': (1148, 161, 1230, 218)}, color={'cn': (200, 207, 216), 'en': (200, 207, 216), 'jp': (200, 207, 216), 'tw': (200, 207, 216)}, button={'cn': (1148, 161, 1230, 218), 'en': (1148, 161, 1230, 218), 'jp': (1148, 161, 1230, 218), 'tw': (1148, 161, 1230, 218)}, file={'cn': './assets/cn/island/PROJECT_TB_CHECK.png', 'en': './assets/cn/island/PROJECT_TB_CHECK.png', 'jp': './assets/cn/island/PROJECT_TB_CHECK.png', 'tw': './assets/cn/island/PROJECT_TB_CHECK.png'})
PROJECT_UNICORN_CHECK = Button(area={'cn': (1156, 167, 1224, 209), 'en': (1156, 167, 1224, 209), 'jp': (1156, 167, 1224, 209), 'tw': (1156, 167, 1224, 209)}, color={'cn': (199, 184, 218), 'en': (199, 184, 218), 'jp': (199, 184, 218), 'tw': (199, 184, 218)}, button={'cn': (1156, 167, 1224, 209), 'en': (1156, 167, 1224, 209), 'jp': (1156, 167, 1224, 209), 'tw': (1156, 167, 1224, 209)}, file={'cn': './assets/cn/island/PROJECT_UNICORN_CHECK.png', 'en': './assets/cn/island/PROJECT_UNICORN_CHECK.png', 'jp': './assets/cn/island/PROJECT_UNICORN_CHECK.png', 'tw': './assets/cn/island/PROJECT_UNICORN_CHECK.png'}) PROJECT_UNICORN_CHECK = Button(area={'cn': (1156, 167, 1224, 209), 'en': (1156, 167, 1224, 209), 'jp': (1156, 167, 1224, 209), 'tw': (1156, 167, 1224, 209)}, color={'cn': (199, 184, 218), 'en': (199, 184, 218), 'jp': (199, 184, 218), 'tw': (199, 184, 218)}, button={'cn': (1156, 167, 1224, 209), 'en': (1156, 167, 1224, 209), 'jp': (1156, 167, 1224, 209), 'tw': (1156, 167, 1224, 209)}, file={'cn': './assets/cn/island/PROJECT_UNICORN_CHECK.png', 'en': './assets/cn/island/PROJECT_UNICORN_CHECK.png', 'jp': './assets/cn/island/PROJECT_UNICORN_CHECK.png', 'tw': './assets/cn/island/PROJECT_UNICORN_CHECK.png'})
PROJECT_WILLIAM_D_PORTER_CHECK = Button(area={'cn': (1152, 176, 1218, 220), 'en': (1152, 176, 1218, 220), 'jp': (1152, 176, 1218, 220), 'tw': (1152, 176, 1218, 220)}, color={'cn': (210, 179, 166), 'en': (210, 179, 166), 'jp': (210, 179, 166), 'tw': (210, 179, 166)}, button={'cn': (1152, 176, 1218, 220), 'en': (1152, 176, 1218, 220), 'jp': (1152, 176, 1218, 220), 'tw': (1152, 176, 1218, 220)}, file={'cn': './assets/cn/island/PROJECT_WILLIAM_D_PORTER_CHECK.png', 'en': './assets/cn/island/PROJECT_WILLIAM_D_PORTER_CHECK.png', 'jp': './assets/cn/island/PROJECT_WILLIAM_D_PORTER_CHECK.png', 'tw': './assets/cn/island/PROJECT_WILLIAM_D_PORTER_CHECK.png'})
PROJECT_YING_SWEI_CHECK = Button(area={'cn': (1161, 177, 1217, 210), 'en': (1161, 177, 1217, 210), 'jp': (1161, 177, 1217, 210), 'tw': (1161, 177, 1217, 210)}, color={'cn': (171, 157, 165), 'en': (171, 157, 165), 'jp': (171, 157, 165), 'tw': (171, 157, 165)}, button={'cn': (1161, 177, 1217, 210), 'en': (1161, 177, 1217, 210), 'jp': (1161, 177, 1217, 210), 'tw': (1161, 177, 1217, 210)}, file={'cn': './assets/cn/island/PROJECT_YING_SWEI_CHECK.png', 'en': './assets/cn/island/PROJECT_YING_SWEI_CHECK.png', 'jp': './assets/cn/island/PROJECT_YING_SWEI_CHECK.png', 'tw': './assets/cn/island/PROJECT_YING_SWEI_CHECK.png'}) PROJECT_YING_SWEI_CHECK = Button(area={'cn': (1161, 177, 1217, 210), 'en': (1161, 177, 1217, 210), 'jp': (1161, 177, 1217, 210), 'tw': (1161, 177, 1217, 210)}, color={'cn': (171, 157, 165), 'en': (171, 157, 165), 'jp': (171, 157, 165), 'tw': (171, 157, 165)}, button={'cn': (1161, 177, 1217, 210), 'en': (1161, 177, 1217, 210), 'jp': (1161, 177, 1217, 210), 'tw': (1161, 177, 1217, 210)}, file={'cn': './assets/cn/island/PROJECT_YING_SWEI_CHECK.png', 'en': './assets/cn/island/PROJECT_YING_SWEI_CHECK.png', 'jp': './assets/cn/island/PROJECT_YING_SWEI_CHECK.png', 'tw': './assets/cn/island/PROJECT_YING_SWEI_CHECK.png'})
ROLE_SELECT_CONFIRM = Button(area={'cn': (1068, 597, 1118, 621), 'en': (1068, 597, 1118, 621), 'jp': (1068, 597, 1118, 621), 'tw': (1068, 597, 1118, 621)}, color={'cn': (109, 206, 255), 'en': (125, 211, 255), 'jp': (109, 206, 255), 'tw': (109, 206, 255)}, button={'cn': (948, 585, 1239, 632), 'en': (1068, 597, 1118, 621), 'jp': (948, 585, 1239, 632), 'tw': (948, 585, 1239, 632)}, file={'cn': './assets/cn/island/ROLE_SELECT_CONFIRM.png', 'en': './assets/en/island/ROLE_SELECT_CONFIRM.png', 'jp': './assets/cn/island/ROLE_SELECT_CONFIRM.png', 'tw': './assets/cn/island/ROLE_SELECT_CONFIRM.png'}) ROLE_SELECT_CONFIRM = Button(area={'cn': (1068, 597, 1118, 621), 'en': (1068, 597, 1118, 621), 'jp': (1068, 597, 1118, 621), 'tw': (1068, 597, 1118, 621)}, color={'cn': (109, 206, 255), 'en': (125, 211, 255), 'jp': (109, 206, 255), 'tw': (109, 206, 255)}, button={'cn': (948, 585, 1239, 632), 'en': (1068, 597, 1118, 621), 'jp': (948, 585, 1239, 632), 'tw': (948, 585, 1239, 632)}, file={'cn': './assets/cn/island/ROLE_SELECT_CONFIRM.png', 'en': './assets/en/island/ROLE_SELECT_CONFIRM.png', 'jp': './assets/cn/island/ROLE_SELECT_CONFIRM.png', 'tw': './assets/cn/island/ROLE_SELECT_CONFIRM.png'})
ROLE_SELECT_ENTER = Button(area={'cn': (579, 314, 700, 350), 'en': (578, 313, 701, 351), 'jp': (579, 314, 700, 350), 'tw': (579, 314, 700, 350)}, color={'cn': (239, 238, 237), 'en': (237, 237, 236), 'jp': (239, 238, 237), 'tw': (239, 238, 237)}, button={'cn': (534, 206, 747, 483), 'en': (578, 313, 701, 351), 'jp': (534, 206, 747, 483), 'tw': (534, 206, 747, 483)}, file={'cn': './assets/cn/island/ROLE_SELECT_ENTER.png', 'en': './assets/en/island/ROLE_SELECT_ENTER.png', 'jp': './assets/cn/island/ROLE_SELECT_ENTER.png', 'tw': './assets/cn/island/ROLE_SELECT_ENTER.png'}) ROLE_SELECT_ENTER = Button(area={'cn': (579, 314, 700, 350), 'en': (578, 313, 701, 351), 'jp': (579, 314, 700, 350), 'tw': (579, 314, 700, 350)}, color={'cn': (239, 238, 237), 'en': (237, 237, 236), 'jp': (239, 238, 237), 'tw': (239, 238, 237)}, button={'cn': (534, 206, 747, 483), 'en': (578, 313, 701, 351), 'jp': (534, 206, 747, 483), 'tw': (534, 206, 747, 483)}, file={'cn': './assets/cn/island/ROLE_SELECT_ENTER.png', 'en': './assets/en/island/ROLE_SELECT_ENTER.png', 'jp': './assets/cn/island/ROLE_SELECT_ENTER.png', 'tw': './assets/cn/island/ROLE_SELECT_ENTER.png'})
ROLE_SELECT_TITLE_AREA = Button(area={'cn': (518, 147, 763, 200), 'en': (518, 147, 763, 200), 'jp': (518, 147, 763, 200), 'tw': (518, 147, 763, 200)}, color={'cn': (80, 197, 255), 'en': (80, 197, 255), 'jp': (80, 197, 255), 'tw': (80, 197, 255)}, button={'cn': (518, 147, 763, 200), 'en': (518, 147, 763, 200), 'jp': (518, 147, 763, 200), 'tw': (518, 147, 763, 200)}, file={'cn': './assets/cn/island/ROLE_SELECT_TITLE_AREA.png', 'en': './assets/cn/island/ROLE_SELECT_TITLE_AREA.png', 'jp': './assets/cn/island/ROLE_SELECT_TITLE_AREA.png', 'tw': './assets/cn/island/ROLE_SELECT_TITLE_AREA.png'})
ROLE_SORTING_CLICK = Button(area={'cn': (109, 606, 272, 644), 'en': (109, 606, 272, 644), 'jp': (109, 606, 272, 644), 'tw': (109, 606, 272, 644)}, color={'cn': (101, 102, 101), 'en': (101, 102, 101), 'jp': (101, 102, 101), 'tw': (101, 102, 101)}, button={'cn': (109, 606, 272, 644), 'en': (109, 606, 272, 644), 'jp': (109, 606, 272, 644), 'tw': (109, 606, 272, 644)}, file={'cn': './assets/cn/island/ROLE_SORTING_CLICK.png', 'en': './assets/cn/island/ROLE_SORTING_CLICK.png', 'jp': './assets/cn/island/ROLE_SORTING_CLICK.png', 'tw': './assets/cn/island/ROLE_SORTING_CLICK.png'})
ROLE_SORT_ASC = Button(area={'cn': (143, 619, 150, 623), 'en': (143, 619, 150, 623), 'jp': (143, 619, 150, 623), 'tw': (143, 619, 150, 623)}, color={'cn': (244, 244, 244), 'en': (244, 244, 244), 'jp': (244, 244, 244), 'tw': (244, 244, 244)}, button={'cn': (143, 619, 150, 623), 'en': (143, 619, 150, 623), 'jp': (143, 619, 150, 623), 'tw': (143, 619, 150, 623)}, file={'cn': './assets/cn/island/ROLE_SORT_ASC.png', 'en': './assets/cn/island/ROLE_SORT_ASC.png', 'jp': './assets/cn/island/ROLE_SORT_ASC.png', 'tw': './assets/cn/island/ROLE_SORT_ASC.png'})
ROLE_SORT_DESC = Button(area={'cn': (143, 627, 150, 631), 'en': (143, 627, 150, 631), 'jp': (143, 627, 150, 631), 'tw': (143, 627, 150, 631)}, color={'cn': (236, 236, 236), 'en': (236, 236, 236), 'jp': (236, 236, 236), 'tw': (236, 236, 236)}, button={'cn': (143, 627, 150, 631), 'en': (143, 627, 150, 631), 'jp': (143, 627, 150, 631), 'tw': (143, 627, 150, 631)}, file={'cn': './assets/cn/island/ROLE_SORT_DESC.png', 'en': './assets/cn/island/ROLE_SORT_DESC.png', 'jp': './assets/cn/island/ROLE_SORT_DESC.png', 'tw': './assets/cn/island/ROLE_SORT_DESC.png'})
TEMPLATE_AKASHI = Template(file={'cn': './assets/cn/island/TEMPLATE_AKASHI.png', 'en': './assets/cn/island/TEMPLATE_AKASHI.png', 'jp': './assets/cn/island/TEMPLATE_AKASHI.png', 'tw': './assets/cn/island/TEMPLATE_AKASHI.png'}) TEMPLATE_AKASHI = Template(file={'cn': './assets/cn/island/TEMPLATE_AKASHI.png', 'en': './assets/cn/island/TEMPLATE_AKASHI.png', 'jp': './assets/cn/island/TEMPLATE_AKASHI.png', 'tw': './assets/cn/island/TEMPLATE_AKASHI.png'})
TEMPLATE_AMAGI_CHAN = Template(file={'cn': './assets/cn/island/TEMPLATE_AMAGI_CHAN.png', 'en': './assets/cn/island/TEMPLATE_AMAGI_CHAN.png', 'jp': './assets/cn/island/TEMPLATE_AMAGI_CHAN.png', 'tw': './assets/cn/island/TEMPLATE_AMAGI_CHAN.png'}) TEMPLATE_AMAGI_CHAN = Template(file={'cn': './assets/cn/island/TEMPLATE_AMAGI_CHAN.png', 'en': './assets/cn/island/TEMPLATE_AMAGI_CHAN.png', 'jp': './assets/cn/island/TEMPLATE_AMAGI_CHAN.png', 'tw': './assets/cn/island/TEMPLATE_AMAGI_CHAN.png'})
TEMPLATE_ATAGO = Template(file={'cn': './assets/cn/island/TEMPLATE_ATAGO.png', 'en': './assets/cn/island/TEMPLATE_ATAGO.png', 'jp': './assets/cn/island/TEMPLATE_ATAGO.png', 'tw': './assets/cn/island/TEMPLATE_ATAGO.png'})
TEMPLATE_CARROT = Template(file={'cn': './assets/cn/island/TEMPLATE_CARROT.png', 'en': './assets/cn/island/TEMPLATE_CARROT.png', 'jp': './assets/cn/island/TEMPLATE_CARROT.png', 'tw': './assets/cn/island/TEMPLATE_CARROT.png'}) TEMPLATE_CARROT = Template(file={'cn': './assets/cn/island/TEMPLATE_CARROT.png', 'en': './assets/cn/island/TEMPLATE_CARROT.png', 'jp': './assets/cn/island/TEMPLATE_CARROT.png', 'tw': './assets/cn/island/TEMPLATE_CARROT.png'})
TEMPLATE_CHAO_HO = Template(file={'cn': './assets/cn/island/TEMPLATE_CHAO_HO.png', 'en': './assets/cn/island/TEMPLATE_CHAO_HO.png', 'jp': './assets/cn/island/TEMPLATE_CHAO_HO.png', 'tw': './assets/cn/island/TEMPLATE_CHAO_HO.png'}) TEMPLATE_CHAO_HO = Template(file={'cn': './assets/cn/island/TEMPLATE_CHAO_HO.png', 'en': './assets/cn/island/TEMPLATE_CHAO_HO.png', 'jp': './assets/cn/island/TEMPLATE_CHAO_HO.png', 'tw': './assets/cn/island/TEMPLATE_CHAO_HO.png'})
TEMPLATE_CHEN_HAI = Template(file={'cn': './assets/cn/island/TEMPLATE_CHEN_HAI.png', 'en': './assets/cn/island/TEMPLATE_CHEN_HAI.png', 'jp': './assets/cn/island/TEMPLATE_CHEN_HAI.png', 'tw': './assets/cn/island/TEMPLATE_CHEN_HAI.png'})
TEMPLATE_CHESHIRE = Template(file={'cn': './assets/cn/island/TEMPLATE_CHESHIRE.png', 'en': './assets/cn/island/TEMPLATE_CHESHIRE.png', 'jp': './assets/cn/island/TEMPLATE_CHESHIRE.png', 'tw': './assets/cn/island/TEMPLATE_CHESHIRE.png'}) TEMPLATE_CHESHIRE = Template(file={'cn': './assets/cn/island/TEMPLATE_CHESHIRE.png', 'en': './assets/cn/island/TEMPLATE_CHESHIRE.png', 'jp': './assets/cn/island/TEMPLATE_CHESHIRE.png', 'tw': './assets/cn/island/TEMPLATE_CHESHIRE.png'})
TEMPLATE_COTTON = Template(file={'cn': './assets/cn/island/TEMPLATE_COTTON.png', 'en': './assets/cn/island/TEMPLATE_COTTON.png', 'jp': './assets/cn/island/TEMPLATE_COTTON.png', 'tw': './assets/cn/island/TEMPLATE_COTTON.png'}) TEMPLATE_COTTON = Template(file={'cn': './assets/cn/island/TEMPLATE_COTTON.png', 'en': './assets/cn/island/TEMPLATE_COTTON.png', 'jp': './assets/cn/island/TEMPLATE_COTTON.png', 'tw': './assets/cn/island/TEMPLATE_COTTON.png'})
TEMPLATE_EXPLORER = Template(file={'cn': './assets/cn/island/TEMPLATE_EXPLORER.png', 'en': './assets/cn/island/TEMPLATE_EXPLORER.png', 'jp': './assets/cn/island/TEMPLATE_EXPLORER.png', 'tw': './assets/cn/island/TEMPLATE_EXPLORER.png'})
TEMPLATE_FLEX = Template(file={'cn': './assets/cn/island/TEMPLATE_FLEX.png', 'en': './assets/cn/island/TEMPLATE_FLEX.png', 'jp': './assets/cn/island/TEMPLATE_FLEX.png', 'tw': './assets/cn/island/TEMPLATE_FLEX.png'}) TEMPLATE_FLEX = Template(file={'cn': './assets/cn/island/TEMPLATE_FLEX.png', 'en': './assets/cn/island/TEMPLATE_FLEX.png', 'jp': './assets/cn/island/TEMPLATE_FLEX.png', 'tw': './assets/cn/island/TEMPLATE_FLEX.png'})
TEMPLATE_FRESH_MEAT = Template(file={'cn': './assets/cn/island/TEMPLATE_FRESH_MEAT.png', 'en': './assets/cn/island/TEMPLATE_FRESH_MEAT.png', 'jp': './assets/cn/island/TEMPLATE_FRESH_MEAT.png', 'tw': './assets/cn/island/TEMPLATE_FRESH_MEAT.png'}) TEMPLATE_FRESH_MEAT = Template(file={'cn': './assets/cn/island/TEMPLATE_FRESH_MEAT.png', 'en': './assets/cn/island/TEMPLATE_FRESH_MEAT.png', 'jp': './assets/cn/island/TEMPLATE_FRESH_MEAT.png', 'tw': './assets/cn/island/TEMPLATE_FRESH_MEAT.png'})
TEMPLATE_FRIEDRICH_DER_GROBE = Template(file={'cn': './assets/cn/island/TEMPLATE_FRIEDRICH_DER_GROBE.png', 'en': './assets/cn/island/TEMPLATE_FRIEDRICH_DER_GROBE.png', 'jp': './assets/cn/island/TEMPLATE_FRIEDRICH_DER_GROBE.png', 'tw': './assets/cn/island/TEMPLATE_FRIEDRICH_DER_GROBE.png'})
TEMPLATE_HELENA = Template(file={'cn': './assets/cn/island/TEMPLATE_HELENA.png', 'en': './assets/cn/island/TEMPLATE_HELENA.png', 'jp': './assets/cn/island/TEMPLATE_HELENA.png', 'tw': './assets/cn/island/TEMPLATE_HELENA.png'})
TEMPLATE_HOOD = Template(file={'cn': './assets/cn/island/TEMPLATE_HOOD.png', 'en': './assets/cn/island/TEMPLATE_HOOD.png', 'jp': './assets/cn/island/TEMPLATE_HOOD.png', 'tw': './assets/cn/island/TEMPLATE_HOOD.png'})
TEMPLATE_ITEM_SATISFIED = Template(file={'cn': './assets/cn/island/TEMPLATE_ITEM_SATISFIED.png', 'en': './assets/cn/island/TEMPLATE_ITEM_SATISFIED.png', 'jp': './assets/cn/island/TEMPLATE_ITEM_SATISFIED.png', 'tw': './assets/cn/island/TEMPLATE_ITEM_SATISFIED.png'}) TEMPLATE_ITEM_SATISFIED = Template(file={'cn': './assets/cn/island/TEMPLATE_ITEM_SATISFIED.png', 'en': './assets/cn/island/TEMPLATE_ITEM_SATISFIED.png', 'jp': './assets/cn/island/TEMPLATE_ITEM_SATISFIED.png', 'tw': './assets/cn/island/TEMPLATE_ITEM_SATISFIED.png'})
TEMPLATE_LEMALIN = Template(file={'cn': './assets/cn/island/TEMPLATE_LEMALIN.png', 'en': './assets/cn/island/TEMPLATE_LEMALIN.png', 'jp': './assets/cn/island/TEMPLATE_LEMALIN.png', 'tw': './assets/cn/island/TEMPLATE_LEMALIN.png'}) TEMPLATE_LEMALIN = Template(file={'cn': './assets/cn/island/TEMPLATE_LEMALIN.png', 'en': './assets/cn/island/TEMPLATE_LEMALIN.png', 'jp': './assets/cn/island/TEMPLATE_LEMALIN.png', 'tw': './assets/cn/island/TEMPLATE_LEMALIN.png'})
TEMPLATE_MANJUU = Template(file={'cn': './assets/cn/island/TEMPLATE_MANJUU.png', 'en': './assets/cn/island/TEMPLATE_MANJUU.png', 'jp': './assets/cn/island/TEMPLATE_MANJUU.png', 'tw': './assets/cn/island/TEMPLATE_MANJUU.png'}) TEMPLATE_MANJUU = Template(file={'cn': './assets/cn/island/TEMPLATE_MANJUU.png', 'en': './assets/cn/island/TEMPLATE_MANJUU.png', 'jp': './assets/cn/island/TEMPLATE_MANJUU.png', 'tw': './assets/cn/island/TEMPLATE_MANJUU.png'})
TEMPLATE_MILK = Template(file={'cn': './assets/cn/island/TEMPLATE_MILK.png', 'en': './assets/cn/island/TEMPLATE_MILK.png', 'jp': './assets/cn/island/TEMPLATE_MILK.png', 'tw': './assets/cn/island/TEMPLATE_MILK.png'}) TEMPLATE_MILK = Template(file={'cn': './assets/cn/island/TEMPLATE_MILK.png', 'en': './assets/cn/island/TEMPLATE_MILK.png', 'jp': './assets/cn/island/TEMPLATE_MILK.png', 'tw': './assets/cn/island/TEMPLATE_MILK.png'})
TEMPLATE_NAPA_CABBAGE = Template(file={'cn': './assets/cn/island/TEMPLATE_NAPA_CABBAGE.png', 'en': './assets/cn/island/TEMPLATE_NAPA_CABBAGE.png', 'jp': './assets/cn/island/TEMPLATE_NAPA_CABBAGE.png', 'tw': './assets/cn/island/TEMPLATE_NAPA_CABBAGE.png'}) TEMPLATE_NAPA_CABBAGE = Template(file={'cn': './assets/cn/island/TEMPLATE_NAPA_CABBAGE.png', 'en': './assets/cn/island/TEMPLATE_NAPA_CABBAGE.png', 'jp': './assets/cn/island/TEMPLATE_NAPA_CABBAGE.png', 'tw': './assets/cn/island/TEMPLATE_NAPA_CABBAGE.png'})
TEMPLATE_NEW_JERSEY = Template(file={'cn': './assets/cn/island/TEMPLATE_NEW_JERSEY.png', 'en': './assets/cn/island/TEMPLATE_NEW_JERSEY.png', 'jp': './assets/cn/island/TEMPLATE_NEW_JERSEY.png', 'tw': './assets/cn/island/TEMPLATE_NEW_JERSEY.png'}) TEMPLATE_NEW_JERSEY = Template(file={'cn': './assets/cn/island/TEMPLATE_NEW_JERSEY.png', 'en': './assets/cn/island/TEMPLATE_NEW_JERSEY.png', 'jp': './assets/cn/island/TEMPLATE_NEW_JERSEY.png', 'tw': './assets/cn/island/TEMPLATE_NEW_JERSEY.png'})
TEMPLATE_OCEANA = Template(file={'cn': './assets/cn/island/TEMPLATE_OCEANA.png', 'en': './assets/cn/island/TEMPLATE_OCEANA.png', 'jp': './assets/cn/island/TEMPLATE_OCEANA.png', 'tw': './assets/cn/island/TEMPLATE_OCEANA.png'})
TEMPLATE_ONION = Template(file={'cn': './assets/cn/island/TEMPLATE_ONION.png', 'en': './assets/cn/island/TEMPLATE_ONION.png', 'jp': './assets/cn/island/TEMPLATE_ONION.png', 'tw': './assets/cn/island/TEMPLATE_ONION.png'}) TEMPLATE_ONION = Template(file={'cn': './assets/cn/island/TEMPLATE_ONION.png', 'en': './assets/cn/island/TEMPLATE_ONION.png', 'jp': './assets/cn/island/TEMPLATE_ONION.png', 'tw': './assets/cn/island/TEMPLATE_ONION.png'})
TEMPLATE_POULTRY = Template(file={'cn': './assets/cn/island/TEMPLATE_POULTRY.png', 'en': './assets/cn/island/TEMPLATE_POULTRY.png', 'jp': './assets/cn/island/TEMPLATE_POULTRY.png', 'tw': './assets/cn/island/TEMPLATE_POULTRY.png'}) TEMPLATE_POULTRY = Template(file={'cn': './assets/cn/island/TEMPLATE_POULTRY.png', 'en': './assets/cn/island/TEMPLATE_POULTRY.png', 'jp': './assets/cn/island/TEMPLATE_POULTRY.png', 'tw': './assets/cn/island/TEMPLATE_POULTRY.png'})
TEMPLATE_PRINZ_EUGEN = Template(file={'cn': './assets/cn/island/TEMPLATE_PRINZ_EUGEN.png', 'en': './assets/cn/island/TEMPLATE_PRINZ_EUGEN.png', 'jp': './assets/cn/island/TEMPLATE_PRINZ_EUGEN.png', 'tw': './assets/cn/island/TEMPLATE_PRINZ_EUGEN.png'})
TEMPLATE_PROJECT = Template(file={'cn': './assets/cn/island/TEMPLATE_PROJECT.png', 'en': './assets/cn/island/TEMPLATE_PROJECT.png', 'jp': './assets/cn/island/TEMPLATE_PROJECT.png', 'tw': './assets/cn/island/TEMPLATE_PROJECT.png'}) TEMPLATE_PROJECT = Template(file={'cn': './assets/cn/island/TEMPLATE_PROJECT.png', 'en': './assets/cn/island/TEMPLATE_PROJECT.png', 'jp': './assets/cn/island/TEMPLATE_PROJECT.png', 'tw': './assets/cn/island/TEMPLATE_PROJECT.png'})
TEMPLATE_PROJECT_LOCKED = Template(file={'cn': './assets/cn/island/TEMPLATE_PROJECT_LOCKED.png', 'en': './assets/cn/island/TEMPLATE_PROJECT_LOCKED.png', 'jp': './assets/cn/island/TEMPLATE_PROJECT_LOCKED.png', 'tw': './assets/cn/island/TEMPLATE_PROJECT_LOCKED.png'}) TEMPLATE_PROJECT_LOCKED = Template(file={'cn': './assets/cn/island/TEMPLATE_PROJECT_LOCKED.png', 'en': './assets/cn/island/TEMPLATE_PROJECT_LOCKED.png', 'jp': './assets/cn/island/TEMPLATE_PROJECT_LOCKED.png', 'tw': './assets/cn/island/TEMPLATE_PROJECT_LOCKED.png'})
TEMPLATE_SARATOGA = Template(file={'cn': './assets/cn/island/TEMPLATE_SARATOGA.png', 'en': './assets/cn/island/TEMPLATE_SARATOGA.png', 'jp': './assets/cn/island/TEMPLATE_SARATOGA.png', 'tw': './assets/cn/island/TEMPLATE_SARATOGA.png'}) TEMPLATE_SARATOGA = Template(file={'cn': './assets/cn/island/TEMPLATE_SARATOGA.png', 'en': './assets/cn/island/TEMPLATE_SARATOGA.png', 'jp': './assets/cn/island/TEMPLATE_SARATOGA.png', 'tw': './assets/cn/island/TEMPLATE_SARATOGA.png'})
@@ -59,7 +82,9 @@ TEMPLATE_SHIMAKAZE = Template(file={'cn': './assets/cn/island/TEMPLATE_SHIMAKAZE
TEMPLATE_SLOT_LOCKED = Template(file={'cn': './assets/cn/island/TEMPLATE_SLOT_LOCKED.png', 'en': './assets/cn/island/TEMPLATE_SLOT_LOCKED.png', 'jp': './assets/cn/island/TEMPLATE_SLOT_LOCKED.png', 'tw': './assets/cn/island/TEMPLATE_SLOT_LOCKED.png'}) TEMPLATE_SLOT_LOCKED = Template(file={'cn': './assets/cn/island/TEMPLATE_SLOT_LOCKED.png', 'en': './assets/cn/island/TEMPLATE_SLOT_LOCKED.png', 'jp': './assets/cn/island/TEMPLATE_SLOT_LOCKED.png', 'tw': './assets/cn/island/TEMPLATE_SLOT_LOCKED.png'})
TEMPLATE_STRAWBERRIES = Template(file={'cn': './assets/cn/island/TEMPLATE_STRAWBERRIES.png', 'en': './assets/cn/island/TEMPLATE_STRAWBERRIES.png', 'jp': './assets/cn/island/TEMPLATE_STRAWBERRIES.png', 'tw': './assets/cn/island/TEMPLATE_STRAWBERRIES.png'}) TEMPLATE_STRAWBERRIES = Template(file={'cn': './assets/cn/island/TEMPLATE_STRAWBERRIES.png', 'en': './assets/cn/island/TEMPLATE_STRAWBERRIES.png', 'jp': './assets/cn/island/TEMPLATE_STRAWBERRIES.png', 'tw': './assets/cn/island/TEMPLATE_STRAWBERRIES.png'})
TEMPLATE_TASHKENT = Template(file={'cn': './assets/cn/island/TEMPLATE_TASHKENT.png', 'en': './assets/cn/island/TEMPLATE_TASHKENT.png', 'jp': './assets/cn/island/TEMPLATE_TASHKENT.png', 'tw': './assets/cn/island/TEMPLATE_TASHKENT.png'}) TEMPLATE_TASHKENT = Template(file={'cn': './assets/cn/island/TEMPLATE_TASHKENT.png', 'en': './assets/cn/island/TEMPLATE_TASHKENT.png', 'jp': './assets/cn/island/TEMPLATE_TASHKENT.png', 'tw': './assets/cn/island/TEMPLATE_TASHKENT.png'})
TEMPLATE_TB = Template(file={'cn': './assets/cn/island/TEMPLATE_TB.png', 'en': './assets/cn/island/TEMPLATE_TB.png', 'jp': './assets/cn/island/TEMPLATE_TB.png', 'tw': './assets/cn/island/TEMPLATE_TB.png'})
TEMPLATE_UNICORN = Template(file={'cn': './assets/cn/island/TEMPLATE_UNICORN.png', 'en': './assets/cn/island/TEMPLATE_UNICORN.png', 'jp': './assets/cn/island/TEMPLATE_UNICORN.png', 'tw': './assets/cn/island/TEMPLATE_UNICORN.png'}) TEMPLATE_UNICORN = Template(file={'cn': './assets/cn/island/TEMPLATE_UNICORN.png', 'en': './assets/cn/island/TEMPLATE_UNICORN.png', 'jp': './assets/cn/island/TEMPLATE_UNICORN.png', 'tw': './assets/cn/island/TEMPLATE_UNICORN.png'})
TEMPLATE_WILLIAM_D_PORTER = Template(file={'cn': './assets/cn/island/TEMPLATE_WILLIAM_D_PORTER.png', 'en': './assets/cn/island/TEMPLATE_WILLIAM_D_PORTER.png', 'jp': './assets/cn/island/TEMPLATE_WILLIAM_D_PORTER.png', 'tw': './assets/cn/island/TEMPLATE_WILLIAM_D_PORTER.png'})
TEMPLATE_YING_SWEI = Template(file={'cn': './assets/cn/island/TEMPLATE_YING_SWEI.png', 'en': './assets/cn/island/TEMPLATE_YING_SWEI.png', 'jp': './assets/cn/island/TEMPLATE_YING_SWEI.png', 'tw': './assets/cn/island/TEMPLATE_YING_SWEI.png'}) TEMPLATE_YING_SWEI = Template(file={'cn': './assets/cn/island/TEMPLATE_YING_SWEI.png', 'en': './assets/cn/island/TEMPLATE_YING_SWEI.png', 'jp': './assets/cn/island/TEMPLATE_YING_SWEI.png', 'tw': './assets/cn/island/TEMPLATE_YING_SWEI.png'})
TRANSPORT_LOCKED = Button(area={'cn': (659, 380, 683, 412), 'en': (659, 380, 683, 412), 'jp': (659, 380, 683, 412), 'tw': (659, 380, 683, 412)}, color={'cn': (192, 192, 190), 'en': (192, 192, 190), 'jp': (192, 192, 190), 'tw': (192, 192, 190)}, button={'cn': (659, 380, 683, 412), 'en': (659, 380, 683, 412), 'jp': (659, 380, 683, 412), 'tw': (659, 380, 683, 412)}, file={'cn': './assets/cn/island/TRANSPORT_LOCKED.png', 'en': './assets/cn/island/TRANSPORT_LOCKED.png', 'jp': './assets/cn/island/TRANSPORT_LOCKED.png', 'tw': './assets/cn/island/TRANSPORT_LOCKED.png'}) TRANSPORT_LOCKED = Button(area={'cn': (659, 380, 683, 412), 'en': (659, 380, 683, 412), 'jp': (659, 380, 683, 412), 'tw': (659, 380, 683, 412)}, color={'cn': (192, 192, 190), 'en': (192, 192, 190), 'jp': (192, 192, 190), 'tw': (192, 192, 190)}, button={'cn': (659, 380, 683, 412), 'en': (659, 380, 683, 412), 'jp': (659, 380, 683, 412), 'tw': (659, 380, 683, 412)}, file={'cn': './assets/cn/island/TRANSPORT_LOCKED.png', 'en': './assets/cn/island/TRANSPORT_LOCKED.png', 'jp': './assets/cn/island/TRANSPORT_LOCKED.png', 'tw': './assets/cn/island/TRANSPORT_LOCKED.png'})
TRANSPORT_RECEIVE = Button(area={'cn': (938, 206, 1065, 235), 'en': (938, 206, 1065, 235), 'jp': (938, 206, 1065, 235), 'tw': (938, 206, 1065, 235)}, color={'cn': (76, 195, 255), 'en': (76, 195, 255), 'jp': (76, 195, 255), 'tw': (76, 195, 255)}, button={'cn': (938, 206, 1065, 235), 'en': (938, 206, 1065, 235), 'jp': (938, 206, 1065, 235), 'tw': (938, 206, 1065, 235)}, file={'cn': './assets/cn/island/TRANSPORT_RECEIVE.png', 'en': './assets/cn/island/TRANSPORT_RECEIVE.png', 'jp': './assets/cn/island/TRANSPORT_RECEIVE.png', 'tw': './assets/cn/island/TRANSPORT_RECEIVE.png'}) TRANSPORT_RECEIVE = Button(area={'cn': (938, 206, 1065, 235), 'en': (938, 206, 1065, 235), 'jp': (938, 206, 1065, 235), 'tw': (938, 206, 1065, 235)}, color={'cn': (76, 195, 255), 'en': (76, 195, 255), 'jp': (76, 195, 255), 'tw': (76, 195, 255)}, button={'cn': (938, 206, 1065, 235), 'en': (938, 206, 1065, 235), 'jp': (938, 206, 1065, 235), 'tw': (938, 206, 1065, 235)}, file={'cn': './assets/cn/island/TRANSPORT_RECEIVE.png', 'en': './assets/cn/island/TRANSPORT_RECEIVE.png', 'jp': './assets/cn/island/TRANSPORT_RECEIVE.png', 'tw': './assets/cn/island/TRANSPORT_RECEIVE.png'})

View File

@@ -58,11 +58,11 @@ class Island(IslandProjectRun, IslandTransportRun):
def run(self): def run(self):
if server.server in ['cn', 'en']: if server.server in ['cn', 'en']:
transport = False transport = False
project_config = [self.config.__getattribute__(f'Island{i}_Receive') for i in range(1, 16)] project_config = [self.config.__getattribute__(f'Island{i}_Receive')
for i in range(1, len(name_to_slot) + 1)]
project = any(project_config) project = any(project_config)
names = self.island_config_to_names(project_config) names = self.island_config_to_names(project_config)
if transport or project: if transport or project:
self.ui_goto_island()
self.ui_ensure(page_island_phone) self.ui_ensure(page_island_phone)
self.island_run(transport=transport, project=project, names=names) self.island_run(transport=transport, project=project, names=names)
self.ui_goto(page_main, get_ship=False) self.ui_goto(page_main, get_ship=False)

View File

@@ -16,6 +16,12 @@ from module.island.ui import IslandUI
from module.logger import logger from module.logger import logger
from module.map.map_grids import SelectedGrids from module.map.map_grids import SelectedGrids
from module.ocr.ocr import Duration, Ocr from module.ocr.ocr import Duration, Ocr
from module.ui.switch import Switch
ROLE_SORTING = Switch('Role_sorting')
ROLE_SORTING.add_state('Ascending', check_button=ROLE_SORT_ASC, click_button=ROLE_SORTING_CLICK)
ROLE_SORTING.add_state('Descending', check_button=ROLE_SORT_DESC, click_button=ROLE_SORTING_CLICK)
class ProjectNameOcr(Ocr): class ProjectNameOcr(Ocr):
@@ -339,7 +345,61 @@ class IslandProjectRun(IslandUI):
for button in TEMPLATE_PROJECT.match_multi(image_gray)]) for button in TEMPLATE_PROJECT.match_multi(image_gray)])
return projects.select(valid=True) return projects.select(valid=True)
def project_receive(self, button, skip_first_screenshot=True): def ensure_project(self, name, trial=7, skip_first_screenshot=True):
"""
Ensure the specific project is in the current page.
Args:
name (str|IslandProject): the project name to ensure
trial (int): retry times
skip_first_screenshot (bool):
"""
logger.hr('Project ensure')
if isinstance(name, IslandProject):
name = name.name
for _ in range(trial):
if skip_first_screenshot:
skip_first_screenshot = False
else:
self.device.screenshot()
projects = self.project_detect(self.device.image)
if not projects:
continue
if name in projects.get('name'):
logger.info(f'Ensured project: {name}')
break
keys = list(name_to_slot.keys())
if name in keys:
project_id = keys.index(name) + 1
projects_id = projects.get('id')
if project_id > projects_id[0]:
self.drag_page((0, -500), ISLAND_PROJECT_SWIPE.area, 0.6)
else:
self.drag_page((0, 500), ISLAND_PROJECT_SWIPE.area, 0.6)
continue
else:
logger.warning(f'Wrong project name {name}, skip ensuring')
break
def drag_page(self, vector, box, sleep=0.5):
"""
Drag the management page.
Args:
vector (tuple):
box (tuple):
sleep (float):
"""
p1, p2 = random_rectangle_vector(vector, box=box, random_range=(0, -5, 0, 5))
self.device.drag(p1, p2, segments=2, shake=(0, 25), point_random=(0, 0, 0, 0), shake_random=(0, -5, 0, 5))
self.device.sleep(sleep)
def is_in_enter_page(self):
return self.image_color_count(ROLE_SELECT_TITLE_AREA, color=(57, 189, 255), threshold=221, count=8000)
def project_receive(self, button):
""" """
Receive a project and enter role select page. Receive a project and enter role select page.
@@ -353,16 +413,12 @@ class IslandProjectRun(IslandUI):
self.interval_clear([ISLAND_MANAGEMENT_CHECK, PROJECT_COMPLETE, self.interval_clear([ISLAND_MANAGEMENT_CHECK, PROJECT_COMPLETE,
GET_ITEMS_ISLAND, ROLE_SELECT_ENTER]) GET_ITEMS_ISLAND, ROLE_SELECT_ENTER])
success = False success = False
enter = True
click_timer = Timer(5, count=10).start() click_timer = Timer(5, count=10).start()
while 1: for _ in self.loop():
if skip_first_screenshot: # UI additional
skip_first_screenshot = False
else:
self.device.screenshot()
if self.island_in_management(interval=5): if self.island_in_management(interval=5):
self.device.click(button) self.device.click(button)
self.device.sleep(0.1)
click_timer.reset() click_timer.reset()
continue continue
@@ -374,7 +430,9 @@ class IslandProjectRun(IslandUI):
click_timer.reset() click_timer.reset()
continue continue
if enter and self.appear_then_click(ROLE_SELECT_ENTER, threshold=10, interval=2): # Enter page
if self.is_in_enter_page() and \
self.appear_then_click(ROLE_SELECT_ENTER, threshold=10, interval=2):
success = True success = True
self.interval_clear(GET_ITEMS_ISLAND) self.interval_clear(GET_ITEMS_ISLAND)
click_timer.reset() click_timer.reset()
@@ -382,25 +440,24 @@ class IslandProjectRun(IslandUI):
if self.appear_then_click(PROJECT_COMPLETE, offset=(20, 20), interval=1): if self.appear_then_click(PROJECT_COMPLETE, offset=(20, 20), interval=1):
success = True success = True
enter = False
self.interval_clear(GET_ITEMS_ISLAND) self.interval_clear(GET_ITEMS_ISLAND)
self.interval_reset(ROLE_SELECT_ENTER) self.interval_reset(ROLE_SELECT_ENTER)
click_timer.reset() click_timer.reset()
continue continue
if self.handle_get_items(): if self.handle_get_items():
enter = True
self.interval_clear(ROLE_SELECT_ENTER) self.interval_clear(ROLE_SELECT_ENTER)
click_timer.reset() click_timer.reset()
continue continue
# handle island level up # handle island level up
if not enter and click_timer.reached(): if click_timer.reached():
self.device.click(GET_ITEMS_ISLAND) self.device.click(GET_ITEMS_ISLAND)
self.device.sleep(0.3) self.device.sleep(0.3)
click_timer.reset() click_timer.reset()
continue continue
# End
if self.appear(ROLE_SELECT_CONFIRM, offset=(20, 20)): if self.appear(ROLE_SELECT_CONFIRM, offset=(20, 20)):
break break
@@ -423,12 +480,7 @@ class IslandProjectRun(IslandUI):
click_button (Button): character button to click click_button (Button): character button to click
check_button (Button): check_button (Button):
""" """
skip_first_screenshot=True for _ in self.loop():
while 1:
if skip_first_screenshot:
skip_first_screenshot = False
else:
self.device.screenshot()
if self.appear(check_button, offset=(20, 20)): if self.appear(check_button, offset=(20, 20)):
break break
if self.appear(ROLE_SELECT_CONFIRM, offset=(20, 20), interval=2): if self.appear(ROLE_SELECT_CONFIRM, offset=(20, 20), interval=2):
@@ -436,12 +488,8 @@ class IslandProjectRun(IslandUI):
continue continue
self.interval_clear(ROLE_SELECT_CONFIRM) self.interval_clear(ROLE_SELECT_CONFIRM)
skip_first_screenshot=True
while 1: for _ in self.loop():
if skip_first_screenshot:
skip_first_screenshot = False
else:
self.device.screenshot()
# End # End
if self.appear(ISLAND_AMOUNT_MAX, offset=(20, 20)): if self.appear(ISLAND_AMOUNT_MAX, offset=(20, 20)):
return True return True
@@ -453,26 +501,21 @@ class IslandProjectRun(IslandUI):
self.interval_clear(ISLAND_MANAGEMENT_CHECK) self.interval_clear(ISLAND_MANAGEMENT_CHECK)
continue continue
def project_character_select(self, character='manjuu', skip_first_screenshot=True): def project_character_select(self, character='manjuu'):
""" """
Select a role to produce. Select a role to produce.
Args: Args:
character (str): character name to select character (str): character name to select
skip_first_screenshot (bool):
Returns: Returns:
bool: if selected bool: if selected
""" """
logger.info('Island select role') logger.info('Island select role')
timeout = Timer(1.5, count=3).start() ROLE_SORTING.set('Descending', main=self)
timeout = Timer(5, count=3).start()
count = 0 count = 0
while 1: for _ in self.loop():
if skip_first_screenshot:
skip_first_screenshot = False
else:
self.device.screenshot()
if timeout.reached(): if timeout.reached():
self.ui_ensure_management_page() self.ui_ensure_management_page()
return False return False
@@ -484,8 +527,14 @@ class IslandProjectRun(IslandUI):
return self._project_character_select(click_button, check_button) return self._project_character_select(click_button, check_button)
else: else:
name = ' '.join(map(lambda x: x.capitalize(), character.split('_'))) name = ' '.join(map(lambda x: x.capitalize(), character.split('_')))
logger.info(f'No character {name} found') # retry 2 times for character select
if count >= 2: if 1 <= count < 3:
logger.info(f'No character {name} was found, try reversed order')
ROLE_SORTING.set('Ascending', main=self)
# select manjuu after 4 trials
elif count >= 3:
logger.info(f'No character {name} was found, use manjuu')
ROLE_SORTING.set('Ascending', main=self)
character = 'manjuu' character = 'manjuu'
count += 1 count += 1
continue continue
@@ -518,28 +567,23 @@ class IslandProjectRun(IslandUI):
peaks = np.array(peaks) + y_top peaks = np.array(peaks) + y_top
return ProductItem(self.device.image, peaks, project_id) return ProductItem(self.device.image, peaks, project_id)
def product_select(self, option, project_id, trial=2, skip_first_screenshot=True): def product_select(self, option, project_id, trial=2):
""" """
Select a product in items list. Select a product in items list.
Args: Args:
option (str): option to select option (str): option to select
trail (int): retry times trail (int): retry times
skip_first_screenshot (bool):
Returns: Returns:
bool: if selected bool: if selected
""" """
logger.hr('Island Select Product') logger.hr('Island Select Product')
last = None last_item = None
bottom_item = None
retry = trial retry = trial
click_interval = Timer(1) click_interval = Timer(1)
while 1: for _ in self.loop():
if skip_first_screenshot:
skip_first_screenshot = False
else:
self.device.screenshot()
current = self.get_current_product(project_id) current = self.get_current_product(project_id)
if trial > 0 and not len(current.items): if trial > 0 and not len(current.items):
trial -= 1 trial -= 1
@@ -561,7 +605,7 @@ class IslandProjectRun(IslandUI):
click_interval.reset() click_interval.reset()
drag = False drag = False
if last == current.items[-1]: if bottom_item == current.items[-1]:
if retry > 0: if retry > 0:
retry -= 1 retry -= 1
continue continue
@@ -569,18 +613,21 @@ class IslandProjectRun(IslandUI):
self.ui_ensure_management_page() self.ui_ensure_management_page()
return False return False
if drag: # clear record if current product is different during 2 drags
last = current.items[-1] if last_item is not None and last_item != current:
self.device.click(last.button) self.device.click_record.pop()
self.island_drag_next_page((0, -300), ISLAND_PRODUCT_ITEMS.area, 0.5) self.device.click_record.pop()
def product_select_confirm(self, skip_first_screenshot=True): if drag:
last_item = current
bottom_item = current.items[-1]
self.device.click(bottom_item.button)
self.drag_page((0, -300), ISLAND_PRODUCT_ITEMS.area, 0.5)
def product_select_confirm(self):
""" """
Start the product after product selected. Start the product after product selected.
Args:
skip_first_screenshot (bool):
Returns: Returns:
bool: if success bool: if success
""" """
@@ -588,12 +635,7 @@ class IslandProjectRun(IslandUI):
last = None last = None
success = False success = False
timeout = Timer(1.5, count=3).start() timeout = Timer(1.5, count=3).start()
while 1: for _ in self.loop():
if skip_first_screenshot:
skip_first_screenshot = False
else:
self.device.screenshot()
if timeout.reached(): if timeout.reached():
break break
@@ -634,45 +676,6 @@ class IslandProjectRun(IslandUI):
if self.island_in_management(): if self.island_in_management():
return True return True
def island_drag_next_page(self, vector, box, sleep=0.5):
"""
Drag to the next page.
Args:
vector (tuple):
box (tuple):
sleep (float):
"""
logger.info('Island drag to next page')
p1, p2 = random_rectangle_vector(vector, box=box, random_range=(0, -5, 0, 5))
self.device.drag(p1, p2, segments=2, shake=(0, 25), point_random=(0, 0, 0, 0), shake_random=(0, -5, 0, 5))
self.device.sleep(sleep)
def ensure_project(self, project, trial=7, skip_first_screenshot=True):
"""
Ensure the specific project is in the current page.
Args:
project (IslandProject): the project to ensure
trial (int): retry times
skip_first_screenshot (bool):
"""
logger.hr('Project ensure')
for _ in range(trial):
if skip_first_screenshot:
skip_first_screenshot = False
else:
self.device.screenshot()
projects = self.project_detect(self.device.image)
if not projects:
continue
if project.name in projects.get('name'):
logger.info(f'Ensured project: {project}')
break
self.island_drag_next_page((0, -500), ISLAND_PROJECT_SWIPE.area, 0.6)
def project_receive_and_start(self, proj, button, character, option, project_id, ensure=True): def project_receive_and_start(self, proj, button, character, option, project_id, ensure=True):
""" """
Receive and start a project is in the current page. Receive and start a project is in the current page.
@@ -730,27 +733,22 @@ class IslandProjectRun(IslandUI):
slot_option.append(deep_get(items_data, [proj_id, option])) slot_option.append(deep_get(items_data, [proj_id, option]))
return slot_option return slot_option
def island_project_run(self, names, trial=2, skip_first_screenshot=True): def island_project_run(self, names, trial=2):
""" """
Execute island run to receive and start project. Execute island run to receive and start project.
Args: Args:
names (list[str]): a list of name for island receive names (list[str]): a list of name for island receive
trial (int): retry times trial (int): retry times
skip_first_screenshot (bool):
Returns: Returns:
list[timedelta]: future finish timedelta list[timedelta]: future finish timedelta
""" """
logger.hr('Island Project Run', level=1) logger.hr('Island Project Run', level=1)
self.ensure_project(names[0])
end = False end = False
timeout = Timer(3, count=3).start() timeout = Timer(3, count=3).start()
while 1: for _ in self.loop():
if skip_first_screenshot:
skip_first_screenshot = False
else:
self.device.screenshot()
if timeout.reached(): if timeout.reached():
break break
@@ -785,7 +783,7 @@ class IslandProjectRun(IslandUI):
if end: if end:
break break
self.island_drag_next_page((0, -500), ISLAND_PROJECT_SWIPE.area, 0.6) self.drag_page((0, -500), ISLAND_PROJECT_SWIPE.area, 0.6)
# task delay # task delay
future_finish = sorted([f for f in self.total.get('finish_time') if f is not None]) future_finish = sorted([f for f in self.total.get('finish_time') if f is not None])

View File

@@ -1,9 +1,9 @@
import module.config.server as server import module.config.server as server
__name_to_slot_cn = { __name_to_slot_cn = {
'丰壤农田': 4, '悠然牧场': 4, '沉石矿山': 4, '翠土林场': 4, '坠香果园': 4, '青芽苗圃': 2, '丰壤农田': 4, '悠然牧场': 4, '啾啾渔场': 3, '沉石矿山': 4, '翠土林场': 4, '坠香果园': 4,
'有鱼餐馆': 2, '白熊饮品': 2, '啾啾简餐': 2, '乌鱼烤肉': 2, '木料加工设备': 2, '工业生产设备': 2, '青芽苗圃': 2, '有鱼餐馆': 2, '白熊饮品': 2, '啾啾简餐': 2, '乌鱼烤肉': 2, '木料加工设备': 2,
'电子加工设备': 2, '手工制作设备': 2, '啾咖啡': 2 '工业生产设备': 2, '电子加工设备': 2, '手工制作设备': 2, '啾咖啡': 2,
} }
__items_data_cn = { __items_data_cn = {
@@ -15,50 +15,89 @@ __items_data_cn = {
1: '鸡蛋', 2: '鲜肉', 3: '牛奶', 4: '羊毛', 1: '鸡蛋', 2: '鲜肉', 3: '牛奶', 4: '羊毛',
}, },
3: { 3: {
1: '煤炭', 2: '铜矿', 3: '铝矿', 4: '铁矿', 5: '硫矿', 6: '银矿', 1: '贝类', 2: '鲶鱼', 3: '鲤鱼', 4: '鲫鱼', 5: '小河虾', 6: '小龙虾',
7: '鲈鱼', 8: '螃蟹', 9: '鱿鱼', 10: '马鲛鱼', 11: '金枪鱼', 12: '三文鱼',
13: '红鲷鱼', 14: '黑鲷鱼', 15: '黄鳍金枪鱼', 16: '海参',
}, },
4: { 4: {
1: '自然之木', 2: '实用之木', 3: '精选之木', 4: '典雅之木', 1: '煤炭', 2: '铜矿', 3: '铝矿', 4: '铁矿', 5: '硫矿', 6: '银矿',
}, },
5: { 5: {
1: '秋月梨', 2: '柿子', 3: '苹果', 4: '柑橘', 5: '香蕉', 6: '芒果', 1: '自然之木', 2: '实用之木', 3: '精选之木', 4: '典雅之木',
7: '柠檬', 8: '牛油果', 9: '橡胶',
}, },
# autumn
# 6: {
# 1: '秋月梨', 2: '柿子', 3: '苹果', 4: '柑橘', 5: '香蕉', 6: '芒果',
# 7: '柠檬', 8: '牛油果', 9: '橡胶',
# },
# spring
6: { 6: {
1: '亚麻', 2: '草莓', 3: '棉花', 4: '茶叶', 5: '薰衣草', 6: '胡萝卜', 1: '苹果', 2: '柑橘', 3: '香蕉', 4: '芒果', 5: '柠檬', 6: '牛油果',
7: '洋葱', 7: '橡胶',
}, },
# autumn
# 7: {
# 1: '亚麻', 2: '草莓', 3: '棉花', 4: '茶叶', 5: '薰衣草', 6: '胡萝卜',
# 7: '洋葱',
# },
# spring
7: { 7: {
1: '柿子饼', 2: '松茸鸡汤', 3: '豆腐', 4: '肉末烧豆腐', 5: '蛋包饭', 1: '芦笋', 2: '凤梨', 3: '亚麻', 4: '草莓', 5: '棉花', 6: '茶叶',
6: '白菜豆腐汤', 7: '蔬菜沙拉', 8: '经典豆腐套餐', 9: '绵玉定食', 7: '薰衣草', 8: '胡萝卜', 9: '洋葱',
}, },
# autumn
# 8: {
# 1: '柿子饼', 2: '松茸鸡汤', 3: '豆腐', 4: '肉末烧豆腐', 5: '蛋包饭',
# 6: '白菜豆腐汤', 7: '蔬菜沙拉', 8: '炸鱼薯条', 9: '洋葱蒸鱼', 10: '佛跳墙',
# 11: '经典豆腐套餐', 12: '绵玉定食',
# },
# spring
8: { 8: {
1: '胡萝卜秋梨汁', 2: '菊花茶', 3: '苹果汁', 4: '香蕉芒果汁', 1: '凉拌双笋', 2: '芦笋炒虾仁', 3: '豆腐', 4: '肉末烧豆腐', 5: '蛋包饭',
5: '蜂蜜柠檬水', 6: '草莓蜜沁', 7: '薰衣草茶', 8: '草莓蜂蜜冰沙', 6: '白菜豆腐汤', 7: '蔬菜沙拉', 8: '炸鱼薯条', 9: '洋葱蒸鱼', 10: '佛跳墙',
9: '阳光蜜水', 10: '花香果韵', 11: '缤纷果乐园', 11: '经典豆腐套餐', 12: '绵玉定食',
}, },
# autumn
# 9: {
# 1: '胡萝卜秋梨汁', 2: '菊花茶', 3: '苹果汁', 4: '香蕉芒果汁',
# 5: '蜂蜜柠檬水', 6: '草莓蜜沁', 7: '薰衣草茶', 8: '草莓蜂蜜冰沙',
# 9: '花香果韵', 10: '缤纷果乐园', 11: '阳光蜜水',
# },
# spring
9: { 9: {
1: '玉米杯', 2: '苹果派', 3: '香橙派', 4: '芒果糯米饭', 5: '香蕉可丽饼', 1: '鲜榨菠萝汁', 2: '迎春花茶', 3: '苹果汁', 4: '香蕉芒果汁',
6: '草莓夏洛特', 7: '香甜组合', 8: '果园二重奏', 9: '莓果香橙甜点组', 5: '蜂蜜柠檬水', 6: '草莓蜜沁', 7: '薰衣草茶', 8: '草莓蜂蜜冰沙',
9: '花香果韵', 10: '缤纷果乐园', 11: '阳光蜜水',
}, },
10: { 10: {
1: '炭烤肉串', 2: '禽肉土豆拼盘', 3: '爆炒禽肉', 4: '胡萝卜厚蛋烧', 1: '玉米杯', 2: '苹果派', 3: '香橙派', 4: '芒果糯米饭', 5: '香蕉可丽饼',
5: '汉堡肉', 6: '烤肉狂欢', 7: '能量双拼套餐', 6: '草莓夏洛特', 7: '海鲜', 8: '香甜组合', 9: '果园二重奏',
10: '莓果香橙甜点组',
}, },
11: { 11: {
1: '纸张', 2: '记事本', 3: '桌椅', 4: '精选木桶', 5: '文件柜', 1: '炭烤肉串', 2: '禽肉土豆拼盘', 3: '爆炒禽肉', 4: '胡萝卜厚蛋烧',
5: '汉堡肉饭', 6: '柠檬虾', 7: '爆炒小龙虾', 8: '烤肉狂欢', 9: '能量双拼套餐',
}, },
12: { 12: {
1: '炭笔', 2: '铁钉', 3: '电缆', 4: '硫酸', 5: '火药', 6: '刀叉餐具', 1: '纸张', 2: '记事本', 3: '桌椅', 4: '精选木桶', 5: '文件柜', 6: '装饰画',
}, },
13: { 13: {
1: '墨盒', 2: '钟表', 3: '蓄电池', 4: '净水滤芯', 1: '炭笔', 2: '电缆', 3: '铁钉', 4: '硫酸', 5: '火药', 6: '刀叉餐具',
}, },
14: { 14: {
1: '秋季花束', 2: '花生油', 3: '布料', 4: '皮革', 5: '绳索', 6: '手套', 1: '墨盒', 2: '钟表', 3: '蓄电池', 4: '净水滤芯',
},
# autumn
# 15: {
# 1: '秋季花束', 2: '花生油', 3: '布料', 4: '皮革', 5: '绳索', 6: '手套',
# 7: '香囊', 8: '鞋靴', 9: '绷带',
# },
# spring
15: {
1: '袋装荠菜干', 2: '春季花束', 3: '布料', 4: '皮革', 5: '绳索', 6: '手套',
7: '香囊', 8: '鞋靴', 9: '绷带', 7: '香囊', 8: '鞋靴', 9: '绷带',
}, },
15: { 16: {
1: '欧姆蛋', 2: '冰咖啡', 3: '芝士', 4: '拿铁', 5: '柑橘咖啡', 1: '欧姆蛋', 2: '冰咖啡', 3: '芝士', 4: '拿铁', 5: '柑橘咖啡',
6: '草莓奶绿', 7: '晨光活力组合', 8: '醒神套餐', 9: '果香双杯乐', 6: '草莓奶绿', 7: '晨光活力组合', 8: '醒神套餐', 9: '果香双杯乐',
}, },

View File

@@ -155,6 +155,7 @@ class IslandTransport:
info = ', '.join([f'{k}: {v}' for k, v in info.items()]) info = ', '.join([f'{k}: {v}' for k, v in info.items()])
return info return info
class TransportItem: class TransportItem:
# If the item is enough to submit and not in blacklist # If the item is enough to submit and not in blacklist
load: bool load: bool
@@ -212,6 +213,7 @@ class TransportItem:
info = ', '.join([f'{k}: {v}' for k, v in info.items()]) info = ', '.join([f'{k}: {v}' for k, v in info.items()])
return info return info
class IslandTransportRun(IslandUI): class IslandTransportRun(IslandUI):
@cached_property @cached_property
def blacklist(self): def blacklist(self):
@@ -272,13 +274,10 @@ class IslandTransportRun(IslandUI):
logger.info('trials of transport commission detect exhausted, stop') logger.info('trials of transport commission detect exhausted, stop')
return commissions.select(valid=True) return commissions.select(valid=True)
def transport_receive(self, skip_first_screenshot=True): def transport_receive(self):
""" """
Receive all transport missions from transport page. Receive all transport missions from transport page.
Args:
skip_first_screenshot (bool):
Returns: Returns:
bool: if received bool: if received
""" """
@@ -288,12 +287,7 @@ class IslandTransportRun(IslandUI):
success = True success = True
click_timer = Timer(5, count=10).start() click_timer = Timer(5, count=10).start()
confirm_timer = Timer(1, count=2).start() confirm_timer = Timer(1, count=2).start()
while 1: for _ in self.loop():
if skip_first_screenshot:
skip_first_screenshot = False
else:
self.device.screenshot()
if self.handle_info_bar(): if self.handle_info_bar():
click_timer.reset() click_timer.reset()
confirm_timer.reset() confirm_timer.reset()
@@ -334,13 +328,12 @@ class IslandTransportRun(IslandUI):
return success return success
def transport_refresh(self, comm, skip_first_screenshot=True): def transport_refresh(self, comm):
""" """
Refresh the specific transport mission from transport page. Refresh the specific transport mission from transport page.
Args: Args:
comm (IslandTransport): the commission to refresh comm (IslandTransport): the commission to refresh
skip_first_screenshot (bool):
Returns: Returns:
bool: if success bool: if success
@@ -349,12 +342,7 @@ class IslandTransportRun(IslandUI):
self.interval_clear([TRANSPORT_REFRESH, POPUP_CONFIRM_WHITE]) self.interval_clear([TRANSPORT_REFRESH, POPUP_CONFIRM_WHITE])
success = True success = True
confirm_timer = Timer(1, count=2).start() confirm_timer = Timer(1, count=2).start()
while 1: for _ in self.loop():
if skip_first_screenshot:
skip_first_screenshot = False
else:
self.device.screenshot()
if self.appear_then_click(TRANSPORT_REFRESH, offset=comm.offset, interval=2): if self.appear_then_click(TRANSPORT_REFRESH, offset=comm.offset, interval=2):
continue continue
@@ -370,13 +358,12 @@ class IslandTransportRun(IslandUI):
confirm_timer.reset() confirm_timer.reset()
return success return success
def transport_start(self, comm, skip_first_screenshot=True): def transport_start(self, comm):
""" """
Start the specific transport mission from transport page. Start the specific transport mission from transport page.
Args: Args:
comm (IslandTransport): the commission to start comm (IslandTransport): the commission to start
skip_first_screenshot (bool):
Returns: Returns:
bool: if success bool: if success
@@ -385,12 +372,7 @@ class IslandTransportRun(IslandUI):
self.interval_clear([GET_ITEMS_ISLAND, TRANSPORT_START, POPUP_CANCEL_WHITE]) self.interval_clear([GET_ITEMS_ISLAND, TRANSPORT_START, POPUP_CANCEL_WHITE])
success = True success = True
confirm_timer = Timer(1, count=2).start() confirm_timer = Timer(1, count=2).start()
while 1: for _ in self.loop():
if skip_first_screenshot:
skip_first_screenshot = False
else:
self.device.screenshot()
if self.appear_then_click(TRANSPORT_START, offset=comm.offset, interval=2): if self.appear_then_click(TRANSPORT_START, offset=comm.offset, interval=2):
success = False success = False
confirm_timer.reset() confirm_timer.reset()

View File

@@ -2,8 +2,8 @@ from module.base.timer import Timer
from module.handler.assets import MAINTENANCE_ANNOUNCE, USE_DATA_KEY_NOTIFIED from module.handler.assets import MAINTENANCE_ANNOUNCE, USE_DATA_KEY_NOTIFIED
from module.island.assets import * from module.island.assets import *
from module.logger import logger from module.logger import logger
from module.ui.assets import DORMMENU_GOTO_ISLAND, SHOP_BACK_ARROW from module.ui.assets import SHOP_BACK_ARROW
from module.ui.page import page_dormmenu, page_island, page_island_phone from module.ui.page import page_island_phone
from module.ui.ui import UI from module.ui.ui import UI
@@ -88,7 +88,7 @@ class IslandUI(UI):
skip_first_screenshot=True skip_first_screenshot=True
) )
def ui_ensure_management_page(self, skip_first_screenshot=True): def ui_ensure_management_page(self):
""" """
Pages: Pages:
in: page_island_phone or product page in: page_island_phone or product page
@@ -97,12 +97,7 @@ class IslandUI(UI):
logger.info('UI ensure management page') logger.info('UI ensure management page')
self.interval_clear(ISLAND_MANAGEMENT_CHECK) self.interval_clear(ISLAND_MANAGEMENT_CHECK)
confirm_timer = Timer(1, count=2).start() confirm_timer = Timer(1, count=2).start()
while 1: for _ in self.loop():
if skip_first_screenshot:
skip_first_screenshot = False
else:
self.device.screenshot()
if self.island_in_management(): if self.island_in_management():
if confirm_timer.reached(): if confirm_timer.reached():
break break
@@ -121,38 +116,25 @@ class IslandUI(UI):
return True return True
return False return False
def handle_island_ui_additional(self, skip_first_screenshot=True): def ui_additional(self, get_ship=True):
if not self.appear(MAINTENANCE_ANNOUNCE, offset=(100, 50)): # notify in page_dormmenu
return False if self.appear(MAINTENANCE_ANNOUNCE, offset=(100, 50)):
for _ in self.loop():
enabled = self.image_color_count(
USE_DATA_KEY_NOTIFIED, color=(140, 207, 66), threshold=180, count=10)
if enabled:
break
while 1: if self.appear(MAINTENANCE_ANNOUNCE, offset=(100, 50), interval=5):
if skip_first_screenshot: self.device.click(USE_DATA_KEY_NOTIFIED)
skip_first_screenshot = False continue
else:
self.device.screenshot()
enabled = self.image_color_count( self.interval_clear(MAINTENANCE_ANNOUNCE)
USE_DATA_KEY_NOTIFIED, color=(140, 207, 66), threshold=180, count=10) self.appear_then_click(MAINTENANCE_ANNOUNCE, offset=(100, 50), interval=2)
if enabled: return True
break
# info in page_island
if self.appear(MAINTENANCE_ANNOUNCE, offset=(100, 50), interval=5): if self.appear_then_click(ISLAND_INFO_EXIT, offset=(30, 30), interval=3):
self.device.click(USE_DATA_KEY_NOTIFIED)
continue
self.interval_clear(MAINTENANCE_ANNOUNCE)
self.appear_then_click(MAINTENANCE_ANNOUNCE, offset=(100, 50), interval=2)
return True
def ui_goto_island(self):
if self.ui_get_current_page() in [page_island, page_island_phone]:
logger.info(f'Already at {self.ui_current}')
return True return True
self.ui_ensure(page_dormmenu) return super().ui_additional(get_ship=False)
self.ui_click(click_button=DORMMENU_GOTO_ISLAND,
check_button=page_island.check_button,
additional=self.handle_island_ui_additional,
offset=(30, 30),
retry_wait=2,
skip_first_screenshot=True)