Compare commits
389 Commits
event_upda
...
15-1
| Author | SHA1 | Date | |
|---|---|---|---|
| 3ed07d0ba1 | |||
|
|
400d55d9fb | ||
|
|
510a175baa | ||
|
|
0ebffe3a91 | ||
|
|
4b893a0a68 | ||
|
|
9075dcd34d | ||
|
|
604222d100 | ||
|
|
c279a3f02d | ||
|
|
d3cf986367 | ||
|
|
e0c84923ac | ||
|
|
65479113ad | ||
|
|
921c2f8599 | ||
|
|
605db5e05f | ||
|
|
7de31590f6 | ||
|
|
ab0b4f5a22 | ||
|
|
306d3412dc | ||
|
|
f7596bf39b | ||
|
|
df85218ae5 | ||
|
|
4e46d9c1ca | ||
|
|
5610616008 | ||
|
|
b585f39d11 | ||
|
|
6de6efb765 | ||
|
|
6a6321b026 | ||
|
|
9bb75467dc | ||
|
|
4370f30e7a | ||
|
|
cb26fa3033 | ||
|
|
7765432995 | ||
|
|
0c69d69405 | ||
|
|
03586c49bf | ||
|
|
3a97c36930 | ||
|
|
63aadb2c07 | ||
|
|
cf1317a90c | ||
|
|
c299f4fd2c | ||
|
|
af69859c5b | ||
|
|
7d70a25a25 | ||
|
|
6e9660d7d0 | ||
|
|
d53464f7a8 | ||
|
|
b733a26d6b | ||
|
|
d6f6fdd2e2 | ||
|
|
d8f4903804 | ||
|
|
288e2cbcd7 | ||
|
|
e03d45e09f | ||
| ae662371ea | |||
|
|
946bb8e731 | ||
|
|
5f77aed7de | ||
| 35591ff2ea | |||
| 20f96bd99b | |||
| 00882da7ca | |||
| c07c7b34f8 | |||
| 12a51b285f | |||
| f33480a6e3 | |||
| 0387c4aa2c | |||
|
|
5ec85984b7 | ||
| 8c2e70b53f | |||
| f419449ca0 | |||
| 2dcac62892 | |||
| 18dea11e66 | |||
| 17f172ab9f | |||
| 955adeed83 | |||
| 4db075b126 | |||
| 6fe8936618 | |||
|
|
0219261366 | ||
| f3f01b4047 | |||
|
|
fe8a4f6cab | ||
|
|
18ca7b7931 | ||
|
|
ae76d8f992 | ||
| 6517dfc12d | |||
| 58e72de96b | |||
| 9620919292 | |||
| 1dc8656c6a | |||
| 8ff99ec277 | |||
| 67f636a775 | |||
| 7787281300 | |||
| f098cd8aee | |||
|
|
c1d6f9492b | ||
|
|
9ff03d4db2 | ||
|
|
40432e75eb | ||
|
|
81d80335ae | ||
| 9a4f3891ed | |||
| 76b40b351c | |||
| 0febb66e8a | |||
| eb0eb1feeb | |||
| e580efccfe | |||
| 5bfe178a5f | |||
|
|
d32727b639 | ||
| 65df2c848c | |||
|
|
59a7f7e4f8 | ||
|
|
af2ac8afa7 | ||
| 1626bfdd6f | |||
|
|
f2b420ee14 | ||
| 338ecea5d6 | |||
| 3b279144e2 | |||
| 2ed87ea228 | |||
| 0bb728d68c | |||
| 0c51e3e09b | |||
| bc755be96a | |||
|
|
3c79418beb | ||
| 8dccad6b62 | |||
| 0ffdb84fc6 | |||
| 47cfceb63a | |||
| 2e379a9f8d | |||
| 0488cc3407 | |||
| f6fa5683d3 | |||
| 8665c3969a | |||
|
|
7c72a132d4 | ||
|
|
88bbd62ff3 | ||
|
|
712e7e0553 | ||
|
|
f4f3e3495a | ||
|
|
a6b270a1a3 | ||
|
|
089298834c | ||
| 93bd639a64 | |||
|
|
c3c681146b | ||
| 76be7b214e | |||
| 3981a04407 | |||
| 47852d0e4a | |||
|
|
6ca128b26e | ||
| 090128c26b | |||
| b77f906dc3 | |||
| 55e452cf68 | |||
|
|
24dad670c9 | ||
|
|
769b68716c | ||
|
|
9645f3cf91 | ||
| c50f97ba5b | |||
|
|
d7c097d792 | ||
| b194476983 | |||
|
|
4e1984d88b | ||
| 50f67939c1 | |||
| ec05d19ced | |||
| b8c3772376 | |||
| 4b2cb5a1e1 | |||
| a7d16b4530 | |||
| 880b0957ab | |||
|
|
517fa690b8 | ||
|
|
c3be3be97c | ||
|
|
c046053bd4 | ||
| 31d0cb6718 | |||
| 067ba88761 | |||
| fe67646f8b | |||
| 7c4c974d5c | |||
| d6ff6868c2 | |||
|
|
1c69a1b65b | ||
| 236f548a29 | |||
|
|
8d5debb9cc | ||
|
|
55ad377a2a | ||
| 67c39b1777 | |||
|
|
2d5094b849 | ||
|
|
e8d78ab8b6 | ||
| 9eff61e86a | |||
| ba69b8d074 | |||
| 760d4aa70c | |||
|
|
3962a31844 | ||
| b6604a2b5a | |||
| 0e6c1c4111 | |||
| a394ad69cd | |||
| 10ac181260 | |||
| 104ebd2e9d | |||
| 6190cc6128 | |||
| efebaecfa8 | |||
| 860226bdd1 | |||
|
|
e92810658d | ||
|
|
780de342b4 | ||
| 6ce64b8f7d | |||
| 34d580ea1f | |||
| 46c241fc35 | |||
| 394b34a459 | |||
| d92e2280b0 | |||
| 9e5056f5c6 | |||
| 5b857a3836 | |||
|
|
ac8debecb1 | ||
| f53e1a2a11 | |||
| d94e3f3cdc | |||
| dfa3b74667 | |||
| 69443c0111 | |||
| 6d98d15775 | |||
| ddce320528 | |||
| 5e094bc14f | |||
|
|
88f4d2a87d | ||
|
|
42f9b79229 | ||
|
|
9e50297bed | ||
|
|
024ebe0bd8 | ||
| 709d3315d4 | |||
|
|
84a297bf91 | ||
|
|
730fa81d1e | ||
|
|
24f5e4f8c7 | ||
| 4a5f43e7cb | |||
| 369f43c172 | |||
|
|
84c147e336 | ||
|
|
8f064c8f1b | ||
|
|
d9b4eaf2f5 | ||
|
|
8bb40eff6e | ||
| 1ffdb8b102 | |||
| 74eebdf513 | |||
| 995ec6fa8c | |||
| bcd06a5f5f | |||
|
|
2fdffee117 | ||
|
|
6ea7e18087 | ||
|
|
66dabddd72 | ||
|
|
b03ab152c4 | ||
|
|
28e2a54767 | ||
| d0658aedeb | |||
| 6eb413595d | |||
| d55e1a20bb | |||
| 52f0b3524f | |||
| 3f2195253a | |||
| b5651875cb | |||
| d5bf4a5d3b | |||
|
|
e0638f311b | ||
| 3fa3273185 | |||
| ad8b0dee97 | |||
| a07981afda | |||
| b2628f920d | |||
| 8e07e7b816 | |||
| 8eee5994c3 | |||
|
|
1c52e8cb57 | ||
| 56c748c6ff | |||
| d65104ca2c | |||
| d2273a94d2 | |||
| 5765c4d4cc | |||
| ed3664379e | |||
| 62b84f4a23 | |||
| 08cdb30553 | |||
| df1a6c904e | |||
|
|
2c811a891b | ||
| f5089f2497 | |||
| 686128c858 | |||
| 7bc95797a6 | |||
|
|
6f65a46985 | ||
| cd06a6b1dd | |||
| 52e75699b0 | |||
| a7eaf3c530 | |||
|
|
387658fe45 | ||
| 1828c5f105 | |||
| e269cd5ea8 | |||
| e24b5a4b2c | |||
| d7242b17f7 | |||
| 77774b6e93 | |||
| fbd3c23ea7 | |||
| d8dfe7adf7 | |||
| 83bf7421ac | |||
|
|
b49054b49a | ||
| 3f35459d6a | |||
| 87172586ee | |||
| 684888c5a8 | |||
| c7bf526ec5 | |||
| 1b24e5c0d9 | |||
| 22d99ca34a | |||
| 7b7e44f9ee | |||
|
|
30a00f795d | ||
|
|
3767b9fbf2 | ||
| 9631044385 | |||
|
|
acaecd33b0 | ||
| ef6859581f | |||
| 81a95fcfcd | |||
| e48111cbc2 | |||
| f770414a25 | |||
| 5830e191b2 | |||
| 5f46f83c41 | |||
|
|
4a9467c0c9 | ||
| aba947af61 | |||
| ddd8828d6f | |||
| a7208bcbc7 | |||
| f0c8b38fc5 | |||
| 87133a765c | |||
| c8cfe36389 | |||
| 5f14aa8730 | |||
| 7933ad52bc | |||
| 159fc5e187 | |||
| 5b3312faa4 | |||
|
|
8e5f2c678e | ||
| 6080f2c34a | |||
| 254cb3d3c4 | |||
| 481d89e229 | |||
| c0fff8de4e | |||
| afaba08930 | |||
| f19a0bf795 | |||
| 99a13f3979 | |||
| 9c8c01bcb4 | |||
| a901d48c8f | |||
| f35310e478 | |||
|
|
68cc9cc409 | ||
| 8192f17266 | |||
| 87e7094811 | |||
|
|
b8e54798d6 | ||
| 2fd7e057f0 | |||
| 4edaaa6bb4 | |||
| f11a199072 | |||
| 55c03a86a3 | |||
| 5757dc03d4 | |||
|
|
2446006d87 | ||
| 13a565664c | |||
| 0f47f2c614 | |||
| d012d85330 | |||
| 9ebf40fa72 | |||
| fd26675bf8 | |||
| d6dd8cc167 | |||
|
|
76f64e7343 | ||
| 3956e950b4 | |||
| 64bb890c85 | |||
| 84af3dab2d | |||
| 8516b51696 | |||
| 3852a50dfc | |||
| 83d0fdd64c | |||
| 26282ae1ad | |||
| c8d7b3efe9 | |||
| f2bf7d6e59 | |||
| fc7b7806d7 | |||
| 0b8455f218 | |||
|
|
d6ef37e818 | ||
| 949eac95c9 | |||
| e2235d78f8 | |||
|
|
c0aac627fd | ||
| e36a5829bf | |||
|
|
0bc1764d47 | ||
| 37cb1ce508 | |||
| 8ff6a37bf3 | |||
| 16424f949f | |||
| 9e4e25ab20 | |||
| ff98095679 | |||
| 59abeba81a | |||
|
|
7a8b73d2ae | ||
|
|
99c70e7b63 | ||
| f51a1a7c02 | |||
| f0d3772d41 | |||
| 31c164be65 | |||
|
|
bce880f069 | ||
| f0a7e98ac8 | |||
| 0624c992e3 | |||
| 6da909089b | |||
| 8db5e31d54 | |||
| 83f0d9ab3a | |||
| da48e99824 | |||
| 18842fcded | |||
| 451a7b31f7 | |||
|
|
b91c2bba1b | ||
| 9695bceaab | |||
| 80bff6611f | |||
| 8d5cbbd3cc | |||
| 2a0669b38f | |||
| 8b52b94676 | |||
| 0c0f0c3c81 | |||
| ff0917787b | |||
| 8fd4cf8c41 | |||
| 39de58f36e | |||
| a4f3431000 | |||
| ff1e247f57 | |||
| 0f2618edec | |||
| 2fe2188333 | |||
| d0c3fd5369 | |||
| c9edec1895 | |||
| 98b732a1c5 | |||
| 407d12fede | |||
| c8e686a642 | |||
| 13fa321c9f | |||
| f4630c41cd | |||
| a6f86316c1 | |||
| 83caf9c287 | |||
| 8f787b01a8 | |||
| b1e80fbeb5 | |||
| d8f62e2884 | |||
| 5fbc779c3f | |||
| 286efb4ce5 | |||
| 2cd61c36d7 | |||
| 9b86aa81f3 | |||
| b119655c58 | |||
| 76a31619c7 | |||
| bc7bb915ca | |||
| c2dfd4443b | |||
| 4d9b59fbbd | |||
| f914502cd7 | |||
| 461bb15155 | |||
| 4125e1570a | |||
| 0feb33cb43 | |||
| 65761a2c8b | |||
| 5ffd84a61e | |||
| 938ba056e3 | |||
|
|
aa2e985fe8 | ||
| 00839eabec | |||
| 3c220defac | |||
| 1f5a779328 | |||
|
|
8c16e15c9d | ||
|
|
4e6601bf3a | ||
|
|
5b9f5e80e2 | ||
|
|
f05b61ed8e | ||
|
|
2796c85486 | ||
|
|
5eea0e6fe4 | ||
|
|
162ec3d14d | ||
|
|
abfbbe5064 | ||
|
|
3cb29a9a37 | ||
|
|
5e482958f6 |
8
.github/pull.yml
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
version: "1"
|
||||||
|
rules:
|
||||||
|
- base: master
|
||||||
|
upstream: LmeSzinc:master
|
||||||
|
mergeMethod: merge
|
||||||
|
mergeUnstable: true
|
||||||
|
label: ":arrow_heading_down: pull"
|
||||||
|
conflictLabel: "merge-conflict": true
|
||||||
34
.github/workflows/main.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
name: Upstream Sync
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 * * * *"
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
sync_with_upstream:
|
||||||
|
name: Sync with Upstream
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ github.event.repository.fork }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout target repo
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Sync Upstream
|
||||||
|
uses: aormsby/Fork-Sync-With-Upstream-action@v3.4
|
||||||
|
with:
|
||||||
|
target_repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
upstream_sync_repo: LmeSzinc/AzurLaneAutoScript
|
||||||
|
upstream_sync_branch: master
|
||||||
|
target_sync_branch: master
|
||||||
|
test_mode: false
|
||||||
|
|
||||||
|
- name: Check for Failure
|
||||||
|
if: failure()
|
||||||
|
run: |
|
||||||
|
echo "[Error] Due to a change in the workflow file of the upstream repository, GitHub has automatically suspended the scheduled automatic update. You need to manually sync your fork."
|
||||||
|
exit 1
|
||||||
@@ -177,4 +177,3 @@ Alas 仍在活跃开发中,我们会不定期发布未来的工作在 [Issues]
|
|||||||
- QQ 七群:[1026960593](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=rPYxlGzFCRl1jK7cnUXrCzmX6KCEvc4U&authKey=XTLdoBWD6hFxx7sFVbF2L94XyjKnjAIoATzWQcJj98%2By%2BDW%2F%2BG6YbqVuF85FQkex&noverify=0&group_code=1026960593)
|
- QQ 七群:[1026960593](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=rPYxlGzFCRl1jK7cnUXrCzmX6KCEvc4U&authKey=XTLdoBWD6hFxx7sFVbF2L94XyjKnjAIoATzWQcJj98%2By%2BDW%2F%2BG6YbqVuF85FQkex&noverify=0&group_code=1026960593)
|
||||||
- QQ 一群:[1087735381](https://jq.qq.com/?_wv=1027&k=I4NSqX7g) (有开发意向请加一群,入群需要提供你的Github用户名)
|
- QQ 一群:[1087735381](https://jq.qq.com/?_wv=1027&k=I4NSqX7g) (有开发意向请加一群,入群需要提供你的Github用户名)
|
||||||
- Bilibili 直播间:https://live.bilibili.com/22216705 ,偶尔直播写Alas,~~为了拯救Alas,Lme决定出道成为偶像~~
|
- Bilibili 直播间:https://live.bilibili.com/22216705 ,偶尔直播写Alas,~~为了拯救Alas,Lme决定出道成为偶像~~
|
||||||
|
|
||||||
|
|||||||
49
alas.py
@@ -14,6 +14,8 @@ from module.exception import *
|
|||||||
from module.logger import logger
|
from module.logger import logger
|
||||||
from module.notify import handle_notify
|
from module.notify import handle_notify
|
||||||
|
|
||||||
|
RESTART_SENSITIVE_TASKS = ['OpsiObscure', 'OpsiAbyssal', 'OpsiCrossMonth']
|
||||||
|
|
||||||
|
|
||||||
class AzurLaneAutoScript:
|
class AzurLaneAutoScript:
|
||||||
stop_event: threading.Event = None
|
stop_event: threading.Event = None
|
||||||
@@ -48,6 +50,9 @@ class AzurLaneAutoScript:
|
|||||||
except RequestHumanTakeover:
|
except RequestHumanTakeover:
|
||||||
logger.critical('Request human takeover')
|
logger.critical('Request human takeover')
|
||||||
exit(1)
|
exit(1)
|
||||||
|
except EmulatorNotRunningError:
|
||||||
|
logger.critical('EmulatorNotRunningError')
|
||||||
|
exit(1)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.exception(e)
|
logger.exception(e)
|
||||||
exit(1)
|
exit(1)
|
||||||
@@ -96,12 +101,10 @@ class AzurLaneAutoScript:
|
|||||||
if self.checker.is_available():
|
if self.checker.is_available():
|
||||||
logger.critical('Game page unknown')
|
logger.critical('Game page unknown')
|
||||||
self.save_error_log()
|
self.save_error_log()
|
||||||
handle_notify(
|
logger.warning('Restart to reset Game page in 10 seconds')
|
||||||
self.config.Error_OnePushConfig,
|
self.config.task_call('Restart')
|
||||||
title=f"Alas <{self.config_name}> crashed",
|
self.device.sleep(10)
|
||||||
content=f"<{self.config_name}> GamePageUnknownError",
|
return False
|
||||||
)
|
|
||||||
exit(1)
|
|
||||||
else:
|
else:
|
||||||
self.checker.wait_until_available()
|
self.checker.wait_until_available()
|
||||||
return False
|
return False
|
||||||
@@ -122,6 +125,10 @@ class AzurLaneAutoScript:
|
|||||||
content=f"<{self.config_name}> RequestHumanTakeover",
|
content=f"<{self.config_name}> RequestHumanTakeover",
|
||||||
)
|
)
|
||||||
exit(1)
|
exit(1)
|
||||||
|
except AutoSearchSetError:
|
||||||
|
logger.critical('Auto search could not be set correctly. Maybe your ships in hard mode are changed.')
|
||||||
|
logger.critical('Request human takeover.')
|
||||||
|
exit(1)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.exception(e)
|
logger.exception(e)
|
||||||
self.save_error_log()
|
self.save_error_log()
|
||||||
@@ -379,6 +386,10 @@ class AzurLaneAutoScript:
|
|||||||
from module.event_hospital.hospital import Hospital
|
from module.event_hospital.hospital import Hospital
|
||||||
Hospital(config=self.config, device=self.device).run()
|
Hospital(config=self.config, device=self.device).run()
|
||||||
|
|
||||||
|
def hospital_event(self):
|
||||||
|
from module.event_hospital.hospital_event import HospitalEvent
|
||||||
|
HospitalEvent(config=self.config, device=self.device).run()
|
||||||
|
|
||||||
def coalition(self):
|
def coalition(self):
|
||||||
from module.coalition.coalition import Coalition
|
from module.coalition.coalition import Coalition
|
||||||
Coalition(config=self.config, device=self.device).run()
|
Coalition(config=self.config, device=self.device).run()
|
||||||
@@ -407,6 +418,10 @@ class AzurLaneAutoScript:
|
|||||||
GemsFarming(config=self.config, device=self.device).run(
|
GemsFarming(config=self.config, device=self.device).run(
|
||||||
name=self.config.Campaign_Name, folder=self.config.Campaign_Event, mode=self.config.Campaign_Mode)
|
name=self.config.Campaign_Name, folder=self.config.Campaign_Event, mode=self.config.Campaign_Mode)
|
||||||
|
|
||||||
|
def daemon_15_1(self):
|
||||||
|
from module.daemon.daemon_15_1 import AzurLaneDaemon
|
||||||
|
AzurLaneDaemon(config=self.config, device=self.device, task="Daemon_15_1").run()
|
||||||
|
|
||||||
def daemon(self):
|
def daemon(self):
|
||||||
from module.daemon.daemon import AzurLaneDaemon
|
from module.daemon.daemon import AzurLaneDaemon
|
||||||
AzurLaneDaemon(config=self.config, device=self.device, task="Daemon").run()
|
AzurLaneDaemon(config=self.config, device=self.device, task="Daemon").run()
|
||||||
@@ -419,6 +434,10 @@ class AzurLaneAutoScript:
|
|||||||
from module.eventstory.eventstory import EventStory
|
from module.eventstory.eventstory import EventStory
|
||||||
EventStory(config=self.config, device=self.device, task="EventStory").run()
|
EventStory(config=self.config, device=self.device, task="EventStory").run()
|
||||||
|
|
||||||
|
def box_disassemble(self):
|
||||||
|
from module.storage.box_disassemble import StorageBox
|
||||||
|
StorageBox(config=self.config, device=self.device, task="BoxDisassemble").run()
|
||||||
|
|
||||||
def azur_lane_uncensored(self):
|
def azur_lane_uncensored(self):
|
||||||
from module.daemon.uncensored import AzurLaneUncensored
|
from module.daemon.uncensored import AzurLaneUncensored
|
||||||
AzurLaneUncensored(config=self.config, device=self.device, task="AzurLaneUncensored").run()
|
AzurLaneUncensored(config=self.config, device=self.device, task="AzurLaneUncensored").run()
|
||||||
@@ -541,8 +560,12 @@ class AzurLaneAutoScript:
|
|||||||
_ = self.device
|
_ = self.device
|
||||||
self.device.config = self.config
|
self.device.config = self.config
|
||||||
# Skip first restart
|
# Skip first restart
|
||||||
if self.is_first_task and task == 'Restart':
|
if task == 'Restart':
|
||||||
logger.info('Skip task `Restart` at scheduler start')
|
if self.is_first_task:
|
||||||
|
logger.info('Skip task `Restart` at scheduler start')
|
||||||
|
else:
|
||||||
|
from module.handler.login import LoginHandler
|
||||||
|
LoginHandler(self.config, self.device).app_restart()
|
||||||
self.config.task_delay(server_update=True)
|
self.config.task_delay(server_update=True)
|
||||||
del_cached_property(self, 'config')
|
del_cached_property(self, 'config')
|
||||||
continue
|
continue
|
||||||
@@ -560,17 +583,21 @@ class AzurLaneAutoScript:
|
|||||||
failed = deep_get(self.failure_record, keys=task, default=0)
|
failed = deep_get(self.failure_record, keys=task, default=0)
|
||||||
failed = 0 if success else failed + 1
|
failed = 0 if success else failed + 1
|
||||||
deep_set(self.failure_record, keys=task, value=failed)
|
deep_set(self.failure_record, keys=task, value=failed)
|
||||||
if failed >= 3:
|
if failed >= 3 or (self.config.Error_StrictRestart and failed >= 1 and task in RESTART_SENSITIVE_TASKS):
|
||||||
logger.critical(f"Task `{task}` failed 3 or more times.")
|
logger.critical(f"Task `{task}` failed {failed} or more times.")
|
||||||
logger.critical("Possible reason #1: You haven't used it correctly. "
|
logger.critical("Possible reason #1: You haven't used it correctly. "
|
||||||
"Please read the help text of the options.")
|
"Please read the help text of the options.")
|
||||||
logger.critical("Possible reason #2: There is a problem with this task. "
|
logger.critical("Possible reason #2: There is a problem with this task. "
|
||||||
"Please contact developers or try to fix it yourself.")
|
"Please contact developers or try to fix it yourself.")
|
||||||
|
if self.config.Error_StrictRestart and task in RESTART_SENSITIVE_TASKS:
|
||||||
|
logger.critical("Possible reason #3: This is a restart sensitive task. "
|
||||||
|
"Please take over the game manually or turn off 'StrictRestart' option.")
|
||||||
logger.critical('Request human takeover')
|
logger.critical('Request human takeover')
|
||||||
|
|
||||||
handle_notify(
|
handle_notify(
|
||||||
self.config.Error_OnePushConfig,
|
self.config.Error_OnePushConfig,
|
||||||
title=f"Alas <{self.config_name}> crashed",
|
title=f"Alas <{self.config_name}> crashed",
|
||||||
content=f"<{self.config_name}> RequestHumanTakeover\nTask `{task}` failed 3 or more times.",
|
content=f"<{self.config_name}> RequestHumanTakeover\nTask `{task}` failed {failed} or more times.",
|
||||||
)
|
)
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
|
|||||||
BIN
assets/cn/campaign/OCR_COIN_LIMIT.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
assets/cn/campaign/OCR_GEM.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
assets/cn/campaign/OCR_OIL_LIMIT.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
assets/cn/combat/BATTLE_TIME.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
assets/cn/combat/MOVE_LEFT.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 7.9 KiB |
BIN
assets/cn/equipment/EMPTY_SHIP_R.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/cn/equipment/EQUIPMENT_CODE_CLEAR.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
assets/cn/equipment/EQUIPMENT_CODE_CONFIRM.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
assets/cn/equipment/EQUIPMENT_CODE_ENTER.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
assets/cn/equipment/EQUIPMENT_CODE_ENTRANCE.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
assets/cn/equipment/EQUIPMENT_CODE_EQUIP_0.png
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
BIN
assets/cn/equipment/EQUIPMENT_CODE_EQUIP_1.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
assets/cn/equipment/EQUIPMENT_CODE_EQUIP_2.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
assets/cn/equipment/EQUIPMENT_CODE_EQUIP_3.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
assets/cn/equipment/EQUIPMENT_CODE_EQUIP_4.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
assets/cn/equipment/EQUIPMENT_CODE_EQUIP_5.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
assets/cn/equipment/EQUIPMENT_CODE_EQUIP_5_LOCKED.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
assets/cn/equipment/EQUIPMENT_CODE_EXPORT.png
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
BIN
assets/cn/equipment/EQUIPMENT_CODE_PAGE_CHECK.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/cn/equipment/EQUIPMENT_CODE_TEXTBOX.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/cn/equipment/FLEET_DETAIL_ENTER_FLAGSHIP_HARD_1.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
assets/cn/equipment/FLEET_DETAIL_ENTER_FLAGSHIP_HARD_2.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
assets/cn/equipment/FLEET_DETAIL_ENTER_HARD_1.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
assets/cn/equipment/FLEET_DETAIL_ENTER_HARD_2.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
assets/cn/equipment/FLEET_ENTER_FLAGSHIP_HARD_1.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
assets/cn/equipment/FLEET_ENTER_FLAGSHIP_HARD_2.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
assets/cn/equipment/FLEET_ENTER_HARD_1.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
assets/cn/equipment/FLEET_ENTER_HARD_2.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
assets/cn/event_hospital/CHAPTER_HOSPITAL_EASY.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
assets/cn/event_hospital/CHAPTER_HOSPITAL_HARD.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
assets/cn/event_hospital/CHAPTER_HOSPITAL_NORMAL.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
assets/cn/event_hospital/HOSPITAL_OCR_PT.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
assets/cn/event_hospital/HOSPITAL_RAID_ESP.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/cn/event_hospital/HOSPITAL_RAID_T1.png
Normal file
|
After Width: | Height: | Size: 9.5 KiB |
BIN
assets/cn/event_hospital/HOSPITAL_RAID_T2.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
assets/cn/event_hospital/HOSPITAL_RAID_T3.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/cn/event_hospital/HOSPITAL_RAID_T4.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
assets/cn/exercise/OCR_EXERCISE_TIME_REMAIN.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
assets/cn/os_handler/MISSION_COMPLETE_POPUP.png
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
BIN
assets/cn/os_handler/MISSION_OVERVIEW_EMPTY.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
assets/cn/os_handler/MISSION_SIREN_RESEARCH.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
assets/cn/os_handler/OS_SUBMARINE_EMPTY.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
assets/cn/os_handler/STORAGE_FLEET_1.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
assets/cn/os_handler/STORAGE_FLEET_2.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
assets/cn/os_handler/STORAGE_FLEET_3.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
assets/cn/os_handler/STORAGE_FLEET_4.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
assets/cn/os_handler/STORAGE_FLEET_5.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
assets/cn/os_handler/STORAGE_FLEET_BAR.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
assets/cn/os_handler/STORAGE_FLEET_CHOOSE.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
BIN
assets/cn/os_handler/STORAGE_REPAIR_CANCEL.BUTTON.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
assets/cn/os_handler/STORAGE_REPAIR_CANCEL.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
assets/cn/os_handler/STORAGE_REPAIR_CONFIRM.BUTTON.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
assets/cn/os_handler/STORAGE_REPAIR_CONFIRM.png
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
BIN
assets/cn/os_handler/TEMPLATE_STORAGE_LOGGER_UNLOCK.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/cn/os_handler/TEMPLATE_STORAGE_OBSCURE_HAZARD_2.png
Normal file
|
After Width: | Height: | Size: 961 B |
BIN
assets/cn/os_handler/TEMPLATE_STORAGE_REPAIR_PACK.png
Normal file
|
After Width: | Height: | Size: 1010 B |
BIN
assets/cn/os_handler/TEMPLATE_STORAGE_SHIP_EMPTY.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
assets/cn/os_handler/TEMPLATE_STORAGE_SHIP_SELECTED.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
assets/cn/retire/DOCK_SHIP_DOWN.BUTTON.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
assets/cn/retire/DOCK_SHIP_DOWN.png
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
assets/cn/retire/TEMPLATE_IN_HARD.png
Normal file
|
After Width: | Height: | Size: 789 B |
BIN
assets/cn/retire/TEMPLATE_Z20.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
assets/cn/retire/TEMPLATE_Z21.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
assets/cn/statistics/CAMPAIGN_BONUS_SINGLE.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
assets/cn/storage/BOX_REMAIN_AMOUNT_OCR.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
assets/en/campaign/OCR_COIN_LIMIT.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
assets/en/campaign/OCR_OIL_LIMIT.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
assets/en/equipment/EMPTY_SHIP_R.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/en/equipment/EQUIPMENT_CODE_CLEAR.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
assets/en/equipment/EQUIPMENT_CODE_CONFIRM.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
assets/en/equipment/EQUIPMENT_CODE_ENTER.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
assets/en/equipment/EQUIPMENT_CODE_ENTRANCE.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
assets/en/equipment/EQUIPMENT_CODE_EQUIP_0.png
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
BIN
assets/en/equipment/EQUIPMENT_CODE_EQUIP_1.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
assets/en/equipment/EQUIPMENT_CODE_EQUIP_2.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
assets/en/equipment/EQUIPMENT_CODE_EQUIP_3.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
assets/en/equipment/EQUIPMENT_CODE_EQUIP_4.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
assets/en/equipment/EQUIPMENT_CODE_EQUIP_5.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
assets/en/equipment/EQUIPMENT_CODE_EQUIP_5_LOCKED.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
assets/en/equipment/EQUIPMENT_CODE_EXPORT.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
assets/en/equipment/EQUIPMENT_CODE_PAGE_CHECK.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/en/equipment/EQUIPMENT_CODE_TEXTBOX.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
assets/en/os_handler/TEMPLATE_STORAGE_LOGGER_UNLOCK.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/en/retire/TEMPLATE_Z20.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
assets/en/retire/TEMPLATE_Z21.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
@@ -35,6 +35,14 @@
|
|||||||
grid-template-columns: 1fr auto;
|
grid-template-columns: 1fr auto;
|
||||||
grid-template-rows: 1fr auto;
|
grid-template-rows: 1fr auto;
|
||||||
}
|
}
|
||||||
|
#pywebio-scope-dashboard {
|
||||||
|
font-weight: 400;
|
||||||
|
width: 100%;
|
||||||
|
display: grid;
|
||||||
|
grid-auto-flow: row;
|
||||||
|
grid-template-columns: repeat(auto-fit,minmax(6rem,1fr));
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
#pywebio-scope-_groups {
|
#pywebio-scope-_groups {
|
||||||
grid-template-columns: 0fr 1fr;
|
grid-template-columns: 0fr 1fr;
|
||||||
@@ -59,4 +67,26 @@
|
|||||||
#pywebio-scope-waiting,
|
#pywebio-scope-waiting,
|
||||||
#pywebio-scope-log {
|
#pywebio-scope-log {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#output-container .status-point {
|
||||||
|
margin: 45% 50% 55% 50%;
|
||||||
|
width: .4rem;
|
||||||
|
height: .4rem;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
*[style*="--dashboard-limit--"] {
|
||||||
|
font-size: .8rem;
|
||||||
|
padding: 0.2rem 0 0 0;
|
||||||
|
}
|
||||||
|
*[style*="--dashboard-value--"] {
|
||||||
|
font-size: 1rem;
|
||||||
|
margin: 0 0 0 0.4rem !important;
|
||||||
|
}
|
||||||
|
*[style*="--dashboard-total--"] {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
*[style*="--dashboard-help--"] {
|
||||||
|
font-size: .6rem;
|
||||||
}
|
}
|
||||||
@@ -44,4 +44,4 @@
|
|||||||
display: grid;
|
display: grid;
|
||||||
grid-auto-flow: column;
|
grid-auto-flow: column;
|
||||||
grid-template-columns: auto auto;
|
grid-template-columns: auto auto;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,6 +117,13 @@ footer {
|
|||||||
margin-bottom: .25rem !important;
|
margin-bottom: .25rem !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.status-point {
|
||||||
|
margin: 37% 50% 63% 50%;
|
||||||
|
width: .75rem;
|
||||||
|
height: .75rem;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
.hr-task-group-box {
|
.hr-task-group-box {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -288,7 +295,7 @@ pre.rich-traceback-code {
|
|||||||
}
|
}
|
||||||
|
|
||||||
*[style*="--header-text--"] {
|
*[style*="--header-text--"] {
|
||||||
font-size: 1.5rem;
|
font-size: 1rem;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
margin: auto !important;
|
margin: auto !important;
|
||||||
}
|
}
|
||||||
@@ -399,11 +406,31 @@ pre.rich-traceback-code {
|
|||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pywebio-scope-log-bar {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
#pywebio-scope-log-bar-btns {
|
#pywebio-scope-log-bar-btns {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-auto-flow: column;
|
grid-auto-flow: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pywebio-scope-log-bar .hr-group {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pywebio-scope-dashboard {
|
||||||
|
font-weight: 400;
|
||||||
|
width: 100%;
|
||||||
|
display: grid;
|
||||||
|
grid-auto-flow: row;
|
||||||
|
grid-template-columns: repeat(auto-fit,minmax(10rem,1fr));
|
||||||
|
}
|
||||||
|
|
||||||
|
#pywebio-scope-dashboard .form-control{
|
||||||
|
padding: 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
#pywebio-scope-log {
|
#pywebio-scope-log {
|
||||||
line-height: 1.2;
|
line-height: 1.2;
|
||||||
font-size: 0.85rem;
|
font-size: 0.85rem;
|
||||||
@@ -467,8 +494,7 @@ pre.rich-traceback-code {
|
|||||||
display: grid;
|
display: grid;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bs-title-option,
|
.bs-title-option {
|
||||||
.form-check-input[id*="ch_S"] {
|
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -523,4 +549,50 @@ pre.rich-traceback-code {
|
|||||||
width: 1.5rem;
|
width: 1.5rem;
|
||||||
height: 1.5rem;
|
height: 1.5rem;
|
||||||
border: .2em solid currentColor;
|
border: .2em solid currentColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**[style*="--dashboard-value--"] {*/
|
||||||
|
/* font-size: 1.3rem;*/
|
||||||
|
/* font-weight: 400;*/
|
||||||
|
/* margin: 0 0 -0.2rem 0.6rem !important;*/
|
||||||
|
/* overflow-wrap: break-word;*/
|
||||||
|
/* overflow: visible;*/
|
||||||
|
/* border-bottom: 0;*/
|
||||||
|
/*}*/
|
||||||
|
|
||||||
|
*[style*="--dashboard-value--"] {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
font-weight: 400;
|
||||||
|
margin: 0 0 0 0.6rem !important;
|
||||||
|
font-family:
|
||||||
|
"Arial",
|
||||||
|
serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
*[style*="--dashboard-total--"] {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
font-weight: 400;
|
||||||
|
margin: 0 0 0 0.15rem !important;
|
||||||
|
font-family:
|
||||||
|
"Arial",
|
||||||
|
serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
*[style*="--dashboard-help--"] {
|
||||||
|
font-size: .8rem;
|
||||||
|
margin: 0 0 0 0.6rem !important;
|
||||||
|
font-family:
|
||||||
|
"Arial",
|
||||||
|
serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
*[style*="--dashboard-limit--"] {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: .9rem;
|
||||||
|
margin: 0 0 0 0 !important;
|
||||||
|
vertical-align: text-bottom;
|
||||||
|
overflow-wrap: normal;
|
||||||
|
font-family:
|
||||||
|
"Arial",
|
||||||
|
serif;
|
||||||
|
}
|
||||||
|
|||||||
@@ -149,7 +149,19 @@ pre.rich-traceback-code {
|
|||||||
border-bottom: 1px solid #36393f;
|
border-bottom: 1px solid #36393f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pywebio-scope-dashboard input {
|
||||||
|
background-color: #2f3136 !important;
|
||||||
|
}
|
||||||
|
|
||||||
*[style*="--arg-help--"],
|
*[style*="--arg-help--"],
|
||||||
[id^="pywebio-scope-group_"] > p + p {
|
[id^="pywebio-scope-group_"] > p + p {
|
||||||
color: #adb5bd;
|
color: #adb5bd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*[style*="--dashboard-help--"]{
|
||||||
|
color: #adb5bd;
|
||||||
|
}
|
||||||
|
|
||||||
|
*[style*="--dashboard-limit--"]{
|
||||||
|
color: #adb5bd;
|
||||||
|
}
|
||||||
|
|||||||
@@ -56,6 +56,10 @@
|
|||||||
box-shadow: 0 0.06rem 0 #4e4c97;
|
box-shadow: 0 0.06rem 0 #4e4c97;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pywebio-scope-dashboard input {
|
||||||
|
background-color: white !important;
|
||||||
|
}
|
||||||
|
|
||||||
input[type="checkbox"] {
|
input[type="checkbox"] {
|
||||||
accent-color: #7a77bb;
|
accent-color: #7a77bb;
|
||||||
}
|
}
|
||||||
@@ -151,4 +155,12 @@ pre.rich-traceback-code {
|
|||||||
*[style*="--arg-help--"],
|
*[style*="--arg-help--"],
|
||||||
[id^="pywebio-scope-group_"] > p + p {
|
[id^="pywebio-scope-group_"] > p + p {
|
||||||
color: #777777;
|
color: #777777;
|
||||||
|
}
|
||||||
|
|
||||||
|
*[style*="--dashboard-help--"]{
|
||||||
|
color: #777777;
|
||||||
|
}
|
||||||
|
|
||||||
|
*[style*="--dashboard-limit--"]{
|
||||||
|
color: #777777;
|
||||||
}
|
}
|
||||||
BIN
assets/jp/campaign/OCR_COIN_LIMIT.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
assets/jp/campaign/OCR_OIL_LIMIT.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
assets/jp/equipment/EMPTY_SHIP_R.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
assets/jp/equipment/EQUIPMENT_CODE_CLEAR.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
assets/jp/equipment/EQUIPMENT_CODE_CONFIRM.png
Normal file
|
After Width: | Height: | Size: 14 KiB |