diff --git a/assets/jp/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png b/assets/jp/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png
new file mode 100644
index 0000000000..632cbf49ec
Binary files /dev/null and b/assets/jp/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png differ
diff --git a/assets/jp/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png b/assets/jp/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png
new file mode 100644
index 0000000000..ca28191e23
Binary files /dev/null and b/assets/jp/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png differ
diff --git a/deploy/emulator.py b/deploy/emulator.py
index c037be0ed1..3111153f42 100644
--- a/deploy/emulator.py
+++ b/deploy/emulator.py
@@ -118,7 +118,7 @@ def serial(self):
serial = []
for file in vbox:
- with open(file, 'r') as f:
+ with open(file, 'r', encoding='utf-8', errors='ignore') as f:
for line in f.readlines():
#
res = re.search('<*?hostport="(.*?)".*?guestport="5555"/>', line)
diff --git a/deploy/install/emulator_windows.py b/deploy/install/emulator_windows.py
index 9e2f1c881b..91286d0d00 100644
--- a/deploy/install/emulator_windows.py
+++ b/deploy/install/emulator_windows.py
@@ -169,7 +169,7 @@ def vbox_file_to_serial(file: str) -> str:
str: serial such as `127.0.0.1:5555`
"""
regex = re.compile('<*?hostport="(.*?)".*?guestport="5555"/>')
- with open(file, 'r') as f:
+ with open(file, 'r', encoding='utf-8', errors='ignore') as f:
for line in f.readlines():
#
res = regex.search(line)
diff --git a/module/campaign/gems_farming.py b/module/campaign/gems_farming.py
index 8200dc751e..411800eb21 100644
--- a/module/campaign/gems_farming.py
+++ b/module/campaign/gems_farming.py
@@ -340,7 +340,7 @@ def run(self, name, folder='campaign_main', mode='normal', total=0):
if self._trigger_lv32 or self._trigger_emotion:
self.flagship_change()
- if self.config.GemsFarming_LowEmotionRetreat:
+ if self.config.GemsFarming_LowEmotionRetreat and self.config.GemsFarming_VanguardChange:
self.vanguard_change()
if is_limit and self.config.StopCondition_RunCount <= 0:
diff --git a/module/device/emulator.py b/module/device/emulator.py
index 2087f9b5a2..fdd25e5c77 100644
--- a/module/device/emulator.py
+++ b/module/device/emulator.py
@@ -54,7 +54,7 @@ def id_and_serial(self):
serial = []
for file in vbox:
- with open(file, 'r') as f:
+ with open(file, 'r', encoding='utf-8', errors='ignore') as f:
for line in f.readlines():
#
res = re.search('<*?hostport="(.*?)".*?guestport="5555"/>', line)
diff --git a/module/war_archives/assets.py b/module/war_archives/assets.py
index 15617e6a4a..f7b2ee1125 100644
--- a/module/war_archives/assets.py
+++ b/module/war_archives/assets.py
@@ -6,7 +6,7 @@
OCR_DATA_KEY_CAMPAIGN = Button(area={'cn': (1188, 107, 1272, 131), 'en': (1188, 107, 1272, 131), 'jp': (1188, 107, 1272, 131), 'tw': (1188, 107, 1272, 131)}, color={'cn': (104, 101, 107), 'en': (104, 101, 107), 'jp': (104, 101, 107), 'tw': (104, 101, 107)}, button={'cn': (1188, 107, 1272, 131), 'en': (1188, 107, 1272, 131), 'jp': (1188, 107, 1272, 131), 'tw': (1188, 107, 1272, 131)}, file={'cn': './assets/cn/war_archives/OCR_DATA_KEY_CAMPAIGN.png', 'en': './assets/en/war_archives/OCR_DATA_KEY_CAMPAIGN.png', 'jp': './assets/jp/war_archives/OCR_DATA_KEY_CAMPAIGN.png', 'tw': './assets/tw/war_archives/OCR_DATA_KEY_CAMPAIGN.png'})
TEMPLATE_ASHEN_SIMULACRUM = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_ASHEN_SIMULACRUM.png', 'en': './assets/en/war_archives/TEMPLATE_ASHEN_SIMULACRUM.png', 'jp': './assets/cn/war_archives/TEMPLATE_ASHEN_SIMULACRUM.png', 'tw': './assets/cn/war_archives/TEMPLATE_ASHEN_SIMULACRUM.png'})
-TEMPLATE_CRESCENDO_OF_POLARIS = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png', 'en': './assets/cn/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png', 'jp': './assets/cn/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png', 'tw': './assets/cn/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png'})
+TEMPLATE_CRESCENDO_OF_POLARIS = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png', 'en': './assets/cn/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png', 'jp': './assets/jp/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png', 'tw': './assets/cn/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png'})
TEMPLATE_CRIMSON_ECHOES = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_CRIMSON_ECHOES.png', 'en': './assets/en/war_archives/TEMPLATE_CRIMSON_ECHOES.png', 'jp': './assets/jp/war_archives/TEMPLATE_CRIMSON_ECHOES.png', 'tw': './assets/cn/war_archives/TEMPLATE_CRIMSON_ECHOES.png'})
TEMPLATE_DIVERGENT_CHESSBOARD = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_DIVERGENT_CHESSBOARD.png', 'en': './assets/en/war_archives/TEMPLATE_DIVERGENT_CHESSBOARD.png', 'jp': './assets/jp/war_archives/TEMPLATE_DIVERGENT_CHESSBOARD.png', 'tw': './assets/tw/war_archives/TEMPLATE_DIVERGENT_CHESSBOARD.png'})
TEMPLATE_EMPYREAL_TRAGICOMEDY = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_EMPYREAL_TRAGICOMEDY.png', 'en': './assets/en/war_archives/TEMPLATE_EMPYREAL_TRAGICOMEDY.png', 'jp': './assets/cn/war_archives/TEMPLATE_EMPYREAL_TRAGICOMEDY.png', 'tw': './assets/cn/war_archives/TEMPLATE_EMPYREAL_TRAGICOMEDY.png'})
@@ -19,7 +19,7 @@
TEMPLATE_STRIVE_WISH_AND_STRATEGIZE = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png', 'en': './assets/en/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png', 'jp': './assets/jp/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png', 'tw': './assets/tw/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png'})
TEMPLATE_SWIRLING_CHERRY_BLOSSOMS = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_SWIRLING_CHERRY_BLOSSOMS.png', 'en': './assets/cn/war_archives/TEMPLATE_SWIRLING_CHERRY_BLOSSOMS.png', 'jp': './assets/cn/war_archives/TEMPLATE_SWIRLING_CHERRY_BLOSSOMS.png', 'tw': './assets/cn/war_archives/TEMPLATE_SWIRLING_CHERRY_BLOSSOMS.png'})
TEMPLATE_THE_ENIGMA_AND_THE_SHARK = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_THE_ENIGMA_AND_THE_SHARK.png', 'en': './assets/cn/war_archives/TEMPLATE_THE_ENIGMA_AND_THE_SHARK.png', 'jp': './assets/cn/war_archives/TEMPLATE_THE_ENIGMA_AND_THE_SHARK.png', 'tw': './assets/cn/war_archives/TEMPLATE_THE_ENIGMA_AND_THE_SHARK.png'})
-TEMPLATE_UNIVERSE_IN_UNISON = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png', 'en': './assets/cn/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png', 'jp': './assets/cn/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png', 'tw': './assets/cn/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png'})
+TEMPLATE_UNIVERSE_IN_UNISON = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png', 'en': './assets/cn/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png', 'jp': './assets/jp/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png', 'tw': './assets/cn/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png'})
TEMPLATE_VISITORS_DYED_IN_RED = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png', 'en': './assets/en/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png', 'jp': './assets/jp/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png', 'tw': './assets/tw/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png'})
TEMPLATE_WINTERS_CROWN = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_WINTERS_CROWN.png', 'en': './assets/en/war_archives/TEMPLATE_WINTERS_CROWN.png', 'jp': './assets/jp/war_archives/TEMPLATE_WINTERS_CROWN.png', 'tw': './assets/tw/war_archives/TEMPLATE_WINTERS_CROWN.png'})
WAR_ARCHIVES_CAMPAIGN_CHECK = Button(area={'cn': (1150, 101, 1166, 130), 'en': (1150, 101, 1166, 130), 'jp': (1150, 101, 1166, 130), 'tw': (1150, 101, 1166, 130)}, color={'cn': (134, 175, 207), 'en': (134, 175, 207), 'jp': (134, 175, 207), 'tw': (134, 175, 207)}, button={'cn': (1150, 101, 1166, 130), 'en': (1150, 101, 1166, 130), 'jp': (1150, 101, 1166, 130), 'tw': (1150, 101, 1166, 130)}, file={'cn': './assets/cn/war_archives/WAR_ARCHIVES_CAMPAIGN_CHECK.png', 'en': './assets/en/war_archives/WAR_ARCHIVES_CAMPAIGN_CHECK.png', 'jp': './assets/jp/war_archives/WAR_ARCHIVES_CAMPAIGN_CHECK.png', 'tw': './assets/tw/war_archives/WAR_ARCHIVES_CAMPAIGN_CHECK.png'})