Merge branch 'dev'
BIN
assets/cn/campaign/EVENT_20201126_DETAIL.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
assets/cn/campaign/EVENT_20201126_DETAIL_CHECK.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
assets/cn/campaign/EVENT_20201126_DETAIL_WHITE.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
assets/cn/campaign/EVENT_20201126_ENTRANCE.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 7.6 KiB |
BIN
assets/cn/campaign/EVENT_20250424_PT_ICON.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
assets/cn/campaign/EVENT_20260417_DETAIL.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
assets/cn/campaign/EVENT_20260417_DETAIL_CHECK.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
assets/cn/campaign/EVENT_20260417_DETAIL_WHITE.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
assets/cn/campaign/EVENT_20260417_ENTRANCE.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 14 KiB |
@@ -289,3 +289,5 @@ To add a new event, add a new row in here, and run `python -m module.config.conf
|
||||
| 20260416 | event 20220915 cn | Violet Tempest Blooming Lycoris | - | - | - | 復刻紫絳槿嵐 |
|
||||
| 20260417 | event 20260417 cn | Vacation Lane – Beachside Brilliance | 假日航线闪耀海滨 | Vacation Lane – Beachside Brilliance | バケーションレーン・きらめく砂浜 | - |
|
||||
| 20260417 | event 20201126 cn | Vacation Lane Rerun | 复刻假日航线 | Vacation Lane Rerun | バケーションレーン(復刻) | - |
|
||||
| 20260417 | event 20250424 cn | Toward Tulipa’s Seas Rerun | 复刻扬起郁金之旗 | Toward Tulipa’s Seas Rerun | チュリッパの海へ(復刻) | - |
|
||||
| 20260417 | event 20260417 cn | Vacation Lane – Beachside Brilliance | - | - | - | 假日航線閃耀海濱 |
|
||||
|
||||
@@ -107,9 +107,10 @@ class Campaign(CampaignBase):
|
||||
|
||||
def map_data_init(self, map_):
|
||||
super().map_data_init(map_)
|
||||
for override_grid in OVERRIDE:
|
||||
# Set may_enemy, but keep may_ambush
|
||||
self.map[override_grid.location].may_enemy = override_grid.may_enemy
|
||||
if not self.map_is_clear_mode:
|
||||
for override_grid in OVERRIDE:
|
||||
# Set may_enemy, but keep may_ambush
|
||||
self.map[override_grid.location].may_enemy = override_grid.may_enemy
|
||||
|
||||
def battle_0(self):
|
||||
self.pick_up_light_house(A9)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
from module.base.button import Button
|
||||
from module.campaign.assets import EVENT_20201126_ENTRANCE_TEMP, EVENT_20201126_PT_ICON
|
||||
from module.campaign.assets import EVENT_20201126_PT_ICON, EVENT_20201126_DETAIL, EVENT_20201126_DETAIL_CHECK, EVENT_20201126_DETAIL_WHITE, EVENT_20201126_ENTRANCE
|
||||
from module.campaign.campaign_base import CampaignBase as CampaignBase_
|
||||
from module.exception import CampaignNameError
|
||||
from module.logger import logger
|
||||
from module.ui.page import page_campaign_menu, page_event, page_main
|
||||
from module.ui.page import page_campaign_menu, page_event, page_main_white
|
||||
|
||||
EVENT_ANIMATION = Button(area=(49, 229, 119, 400), color=(118, 215, 240), button=(49, 229, 119, 400),
|
||||
name='EVENT_ANIMATION')
|
||||
@@ -24,11 +24,13 @@ class CampaignBase(CampaignBase_):
|
||||
return True
|
||||
self.ui_ensure(page_campaign_menu)
|
||||
if self.is_event_entrance_available():
|
||||
self.ui_ensure(page_main)
|
||||
self.ui_click(EVENT_20201126_ENTRANCE_TEMP,
|
||||
check_button=EVENT_20201126_PT_ICON,
|
||||
appear_button=EVENT_20201126_ENTRANCE_TEMP,
|
||||
offset=(40, 20))
|
||||
self.ui_goto_main()
|
||||
if self.ui_page_appear(page_main_white):
|
||||
self.ui_click(EVENT_20201126_DETAIL_WHITE, check_button=EVENT_20201126_DETAIL_CHECK)
|
||||
else:
|
||||
self.ui_click(EVENT_20201126_DETAIL, check_button=EVENT_20201126_DETAIL_CHECK)
|
||||
self.ui_click(EVENT_20201126_ENTRANCE, check_button=EVENT_20201126_PT_ICON,
|
||||
appear_button=EVENT_20201126_DETAIL_CHECK, offset=(40, 20))
|
||||
return True
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
from module.campaign.assets import EVENT_20250424_PT_ICON
|
||||
from module.campaign.campaign_base import CampaignBase as CampaignBase_
|
||||
from module.ui.page import page_event
|
||||
from module.logger import logger
|
||||
from module.ui.page import page_campaign_menu, page_event
|
||||
|
||||
|
||||
class CampaignBase(CampaignBase_):
|
||||
@@ -8,3 +10,12 @@ class CampaignBase(CampaignBase_):
|
||||
if self.ui_page_appear(page_event):
|
||||
return False
|
||||
return super().handle_exp_info()
|
||||
|
||||
def ui_goto_event(self):
|
||||
if self.appear(EVENT_20250424_PT_ICON, offset=(20, 20)) and self.ui_page_appear(page_event):
|
||||
logger.info('Already at EVENT_20250424')
|
||||
return True
|
||||
self.ui_ensure(page_campaign_menu)
|
||||
if self.is_event_entrance_available():
|
||||
self.ui_goto(page_event)
|
||||
return True
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
from module.base.button import Button
|
||||
from module.campaign.assets import EVENT_20260417_PT_ICON
|
||||
from module.campaign.assets import EVENT_20260417_PT_ICON, EVENT_20260417_DETAIL, EVENT_20260417_DETAIL_CHECK, EVENT_20260417_DETAIL_WHITE, EVENT_20260417_ENTRANCE
|
||||
from module.campaign.campaign_base import CampaignBase as CampaignBase_
|
||||
from module.logger import logger
|
||||
from module.ui.page import page_campaign_menu, page_event
|
||||
from module.ui.page import page_campaign_menu, page_event, page_main_white
|
||||
|
||||
EVENT_ANIMATION = Button(area=(49, 229, 119, 400), color=(118, 215, 240), button=(49, 229, 119, 400),
|
||||
name='EVENT_ANIMATION')
|
||||
@@ -10,12 +10,18 @@ EVENT_ANIMATION = Button(area=(49, 229, 119, 400), color=(118, 215, 240), button
|
||||
|
||||
class CampaignBase(CampaignBase_):
|
||||
def ui_goto_event(self):
|
||||
if self.appear(EVENT_20260417_PT_ICON, offset=(20, 20)) and self.ui_page_appear(page_event):
|
||||
if self.appear(EVENT_20260417_PT_ICON, offset=(40, 20)) and self.ui_page_appear(page_event):
|
||||
logger.info('Already at EVENT_20260417')
|
||||
return True
|
||||
self.ui_ensure(page_campaign_menu)
|
||||
if self.is_event_entrance_available():
|
||||
self.ui_goto(page_event)
|
||||
self.ui_goto_main()
|
||||
if self.ui_page_appear(page_main_white):
|
||||
self.ui_click(EVENT_20260417_DETAIL_WHITE, check_button=EVENT_20260417_DETAIL_CHECK)
|
||||
else:
|
||||
self.ui_click(EVENT_20260417_DETAIL, check_button=EVENT_20260417_DETAIL_CHECK)
|
||||
self.ui_click(EVENT_20260417_ENTRANCE, check_button=EVENT_20260417_PT_ICON,
|
||||
appear_button=EVENT_20260417_DETAIL_CHECK, offset=(40, 20))
|
||||
return True
|
||||
|
||||
@staticmethod
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# docker build -t hgjazhgj/alas:latest .
|
||||
# docker run -v ${PWD}:/app/AzurLaneAutoScript -p 22267:22267 --name alas -it --rm hgjazhgj/alas
|
||||
|
||||
FROM python:3.7-slim
|
||||
FROM python:3.7-slim-bullseye
|
||||
|
||||
WORKDIR /app/AzurLaneAutoScript
|
||||
|
||||
@@ -10,7 +10,12 @@ COPY requirements.txt /tmp/requirements.txt
|
||||
# Initial download of UiAutomator2 is slow outside of China using appetizer mirror, switch to GitHub
|
||||
RUN apt update \
|
||||
&& apt install -y git adb libgomp1 openssh-client \
|
||||
&& apt install -y build-essential pkg-config \
|
||||
&& apt install -y libavformat-dev libavcodec-dev libavdevice-dev \
|
||||
&& apt install -y libavutil-dev libswscale-dev libswresample-dev libavfilter-dev \
|
||||
&& git config --global --add safe.directory '*' \
|
||||
&& pip install Cython==0.29.37 \
|
||||
&& pip install av==10.0.0 --no-build-isolation \
|
||||
&& pip install -r /tmp/requirements.txt \
|
||||
&& rm /tmp/requirements.txt \
|
||||
&& rm -r ~/.cache/pip
|
||||
|
||||
@@ -14,16 +14,19 @@ deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib\n\
|
||||
deb https://mirrors.aliyun.com/debian-security/ bullseye-security main\n\
|
||||
deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main\n\
|
||||
deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib\n\
|
||||
deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib\n\
|
||||
deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib\n\
|
||||
deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib" \
|
||||
deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib" \
|
||||
> /etc/apt/sources.list \
|
||||
&& apt update \
|
||||
&& apt install -y git adb libgomp1 openssh-client \
|
||||
&& apt install -y build-essential pkg-config \
|
||||
&& apt install -y libavformat-dev libavcodec-dev libavdevice-dev \
|
||||
&& apt install -y libavutil-dev libswscale-dev libswresample-dev libavfilter-dev \
|
||||
&& git config --global --add safe.directory '*' \
|
||||
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
|
||||
&& echo 'Asia/Shanghai' > /etc/timezone \
|
||||
&& pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \
|
||||
&& pip install Cython==0.29.37 \
|
||||
&& pip install av==10.0.0 --no-build-isolation \
|
||||
&& pip install -r /tmp/requirements.txt \
|
||||
&& rm /tmp/requirements.txt \
|
||||
&& rm -r ~/.cache/pip
|
||||
|
||||
@@ -1643,27 +1643,30 @@
|
||||
"value": "campaign_main",
|
||||
"option": [
|
||||
"event_20201126_cn",
|
||||
"event_20220915_cn",
|
||||
"event_20250424_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_cn": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_en": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_jp": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_tw": [
|
||||
"event_20220915_cn"
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_bold": [
|
||||
"event_20201126_cn",
|
||||
"event_20220915_cn",
|
||||
"event_20250424_cn",
|
||||
"event_20260417_cn"
|
||||
]
|
||||
},
|
||||
@@ -1930,27 +1933,30 @@
|
||||
"value": "campaign_main",
|
||||
"option": [
|
||||
"event_20201126_cn",
|
||||
"event_20220915_cn",
|
||||
"event_20250424_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_cn": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_en": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_jp": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_tw": [
|
||||
"event_20220915_cn"
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_bold": [
|
||||
"event_20201126_cn",
|
||||
"event_20220915_cn",
|
||||
"event_20250424_cn",
|
||||
"event_20260417_cn"
|
||||
]
|
||||
},
|
||||
@@ -2332,27 +2338,30 @@
|
||||
"value": "campaign_main",
|
||||
"option": [
|
||||
"event_20201126_cn",
|
||||
"event_20220915_cn",
|
||||
"event_20250424_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_cn": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_en": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_jp": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_tw": [
|
||||
"event_20220915_cn"
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_bold": [
|
||||
"event_20201126_cn",
|
||||
"event_20220915_cn",
|
||||
"event_20250424_cn",
|
||||
"event_20260417_cn"
|
||||
]
|
||||
},
|
||||
@@ -4064,27 +4073,30 @@
|
||||
"value": "campaign_main",
|
||||
"option": [
|
||||
"event_20201126_cn",
|
||||
"event_20220915_cn",
|
||||
"event_20250424_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_cn": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_en": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_jp": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_tw": [
|
||||
"event_20220915_cn"
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_bold": [
|
||||
"event_20201126_cn",
|
||||
"event_20220915_cn",
|
||||
"event_20250424_cn",
|
||||
"event_20260417_cn"
|
||||
]
|
||||
},
|
||||
@@ -4483,27 +4495,30 @@
|
||||
"value": "campaign_main",
|
||||
"option": [
|
||||
"event_20201126_cn",
|
||||
"event_20220915_cn",
|
||||
"event_20250424_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_cn": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_en": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_jp": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_tw": [
|
||||
"event_20220915_cn"
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_bold": [
|
||||
"event_20201126_cn",
|
||||
"event_20220915_cn",
|
||||
"event_20250424_cn",
|
||||
"event_20260417_cn"
|
||||
]
|
||||
},
|
||||
@@ -4902,27 +4917,30 @@
|
||||
"value": "campaign_main",
|
||||
"option": [
|
||||
"event_20201126_cn",
|
||||
"event_20220915_cn",
|
||||
"event_20250424_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_cn": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_en": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_jp": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_tw": [
|
||||
"event_20220915_cn"
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_bold": [
|
||||
"event_20201126_cn",
|
||||
"event_20220915_cn",
|
||||
"event_20250424_cn",
|
||||
"event_20260417_cn"
|
||||
]
|
||||
},
|
||||
@@ -5321,27 +5339,30 @@
|
||||
"value": "campaign_main",
|
||||
"option": [
|
||||
"event_20201126_cn",
|
||||
"event_20220915_cn",
|
||||
"event_20250424_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_cn": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_en": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_jp": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_tw": [
|
||||
"event_20220915_cn"
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_bold": [
|
||||
"event_20201126_cn",
|
||||
"event_20220915_cn",
|
||||
"event_20250424_cn",
|
||||
"event_20260417_cn"
|
||||
]
|
||||
},
|
||||
@@ -5730,27 +5751,30 @@
|
||||
"value": "campaign_main",
|
||||
"option": [
|
||||
"event_20201126_cn",
|
||||
"event_20220915_cn",
|
||||
"event_20250424_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_cn": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_en": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_jp": [
|
||||
"event_20250424_cn",
|
||||
"event_20201126_cn",
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_tw": [
|
||||
"event_20220915_cn"
|
||||
"event_20260417_cn"
|
||||
],
|
||||
"option_bold": [
|
||||
"event_20201126_cn",
|
||||
"event_20220915_cn",
|
||||
"event_20250424_cn",
|
||||
"event_20260417_cn"
|
||||
]
|
||||
},
|
||||
|
||||
@@ -760,7 +760,7 @@
|
||||
"event_20241121_cn": "Dangerous Inventions Incoming",
|
||||
"event_20241219_cn": "Substellar Crepuscule",
|
||||
"event_20250227_cn": "Paradiso of Shackled Light",
|
||||
"event_20250424_cn": "Toward Tulipa’s Seas",
|
||||
"event_20250424_cn": "Toward Tulipa’s Seas Rerun",
|
||||
"event_20250520_cn": "A Rose on the High Tower",
|
||||
"event_20250724_cn": "The Alchemist and the Tower of Horizons",
|
||||
"event_20250814_cn": "Secrets of the Abyss",
|
||||
|
||||
@@ -760,7 +760,7 @@
|
||||
"event_20241121_cn": "危険発明接近中",
|
||||
"event_20241219_cn": "星降る夕影の残光",
|
||||
"event_20250227_cn": "籠檻に囚われし神光",
|
||||
"event_20250424_cn": "チュリッパの海へ",
|
||||
"event_20250424_cn": "チュリッパの海へ(復刻)",
|
||||
"event_20250520_cn": "高い塔の薔薇",
|
||||
"event_20250724_cn": "錬金術士と天空邂逅の塔",
|
||||
"event_20250814_cn": "淵層界の秘密",
|
||||
|
||||
@@ -760,7 +760,7 @@
|
||||
"event_20241121_cn": "危险发明迫近中",
|
||||
"event_20241219_cn": "星光下的余晖",
|
||||
"event_20250227_cn": "樊笼内的神光",
|
||||
"event_20250424_cn": "扬起郁金之旗",
|
||||
"event_20250424_cn": "复刻扬起郁金之旗",
|
||||
"event_20250520_cn": "高塔上的蔷薇",
|
||||
"event_20250724_cn": "优米雅的炼金工房",
|
||||
"event_20250814_cn": "奇渊下的秘密",
|
||||
|
||||
@@ -769,7 +769,7 @@
|
||||
"event_20251218_cn": "響徹於天穹之音",
|
||||
"event_20260226_cn": "春滿客棧Online",
|
||||
"event_20260326_cn": "漫遊者招募計劃",
|
||||
"event_20260417_cn": "Vacation Lane – Beachside Brilliance",
|
||||
"event_20260417_cn": "假日航線閃耀海濱",
|
||||
"raid_20200624": "特別演習埃塞克斯級(復刻)",
|
||||
"raid_20210708": "復刻穿越彼方的水線",
|
||||
"raid_20220127": "演習神秘事件調查",
|
||||
|
||||