mirror of
https://gitee.com/sui-feng-cb/AzurLaneAutoScript1
synced 2026-03-19 23:33:33 +08:00
Merge branch 'master' into dev
This commit is contained in:
@@ -11,7 +11,6 @@ OCR_COIN = Button(area={'cn': (815, 23, 922, 51), 'en': (815, 23, 922, 51), 'jp'
|
||||
OCR_EVENT_PT = Button(area={'cn': (1196, 109, 1280, 131), 'en': (1190, 109, 1280, 129), 'jp': (1196, 109, 1280, 131), 'tw': (1196, 109, 1280, 131)}, color={'cn': (121, 110, 59), 'en': (88, 78, 51), 'jp': (121, 110, 59), 'tw': (121, 110, 59)}, button={'cn': (1196, 109, 1280, 131), 'en': (1190, 109, 1280, 129), 'jp': (1196, 109, 1280, 131), 'tw': (1196, 109, 1280, 131)}, file={'cn': './assets/cn/campaign/OCR_EVENT_PT.png', 'en': './assets/en/campaign/OCR_EVENT_PT.png', 'jp': './assets/jp/campaign/OCR_EVENT_PT.png', 'tw': './assets/tw/campaign/OCR_EVENT_PT.png'})
|
||||
OCR_OIL = Button(area={'cn': (614, 23, 714, 51), 'en': (614, 23, 714, 51), 'jp': (614, 23, 714, 51), 'tw': (614, 23, 714, 51)}, color={'cn': (64, 65, 79), 'en': (64, 65, 79), 'jp': (64, 65, 79), 'tw': (64, 65, 79)}, button={'cn': (614, 23, 714, 51), 'en': (614, 23, 714, 51), 'jp': (614, 23, 714, 51), 'tw': (614, 23, 714, 51)}, file={'cn': './assets/cn/campaign/OCR_OIL.png', 'en': './assets/en/campaign/OCR_OIL.png', 'jp': './assets/jp/campaign/OCR_OIL.png', 'tw': './assets/tw/campaign/OCR_OIL.png'})
|
||||
SWITCH_1_HARD = Button(area={'cn': (82, 641, 148, 675), 'en': (87, 642, 148, 676), 'jp': (24, 645, 150, 697), 'tw': (82, 641, 148, 675)}, color={'cn': (233, 141, 128), 'en': (234, 139, 124), 'jp': (219, 116, 106), 'tw': (236, 159, 148)}, button={'cn': (82, 641, 148, 675), 'en': (87, 642, 148, 676), 'jp': (24, 645, 150, 697), 'tw': (82, 641, 148, 675)}, file={'cn': './assets/cn/campaign/SWITCH_1_HARD.png', 'en': './assets/en/campaign/SWITCH_1_HARD.png', 'jp': './assets/jp/campaign/SWITCH_1_HARD.png', 'tw': './assets/tw/campaign/SWITCH_1_HARD.png'})
|
||||
SWITCH_1_HARD_ALCHEMIST = Button(area={'cn': (75, 639, 147, 674), 'en': (75, 639, 147, 674), 'jp': (75, 639, 147, 674), 'tw': (75, 639, 147, 674)}, color={'cn': (157, 107, 209), 'en': (157, 107, 209), 'jp': (157, 107, 209), 'tw': (157, 107, 209)}, button={'cn': (75, 639, 147, 674), 'en': (75, 639, 147, 674), 'jp': (75, 639, 147, 674), 'tw': (75, 639, 147, 674)}, file={'cn': './assets/cn/campaign/SWITCH_1_HARD_ALCHEMIST.png', 'en': './assets/cn/campaign/SWITCH_1_HARD_ALCHEMIST.png', 'jp': './assets/cn/campaign/SWITCH_1_HARD_ALCHEMIST.png', 'tw': './assets/cn/campaign/SWITCH_1_HARD_ALCHEMIST.png'})
|
||||
SWITCH_1_NORMAL = Button(area={'cn': (80, 641, 148, 675), 'en': (79, 638, 147, 675), 'jp': (24, 644, 150, 697), 'tw': (79, 641, 148, 675)}, color={'cn': (157, 180, 227), 'en': (157, 180, 227), 'jp': (143, 169, 222), 'tw': (156, 179, 227)}, button={'cn': (80, 641, 148, 675), 'en': (79, 638, 147, 675), 'jp': (24, 644, 150, 697), 'tw': (79, 641, 148, 675)}, file={'cn': './assets/cn/campaign/SWITCH_1_NORMAL.png', 'en': './assets/en/campaign/SWITCH_1_NORMAL.png', 'jp': './assets/jp/campaign/SWITCH_1_NORMAL.png', 'tw': './assets/tw/campaign/SWITCH_1_NORMAL.png'})
|
||||
SWITCH_2_EX = Button(area={'cn': (241, 642, 311, 690), 'en': (251, 644, 313, 697), 'jp': (186, 638, 314, 692), 'tw': (241, 640, 312, 692)}, color={'cn': (254, 161, 74), 'en': (254, 163, 80), 'jp': (205, 136, 64), 'tw': (254, 161, 72)}, button={'cn': (241, 642, 311, 690), 'en': (251, 644, 313, 697), 'jp': (186, 638, 314, 692), 'tw': (241, 640, 312, 692)}, file={'cn': './assets/cn/campaign/SWITCH_2_EX.png', 'en': './assets/en/campaign/SWITCH_2_EX.png', 'jp': './assets/jp/campaign/SWITCH_2_EX.png', 'tw': './assets/tw/campaign/SWITCH_2_EX.png'})
|
||||
SWITCH_2_HARD = Button(area={'cn': (246, 641, 311, 675), 'en': (244, 640, 312, 684), 'jp': (233, 655, 310, 681), 'tw': (245, 641, 311, 674)}, color={'cn': (233, 140, 127), 'en': (228, 121, 106), 'jp': (223, 110, 96), 'tw': (237, 161, 150)}, button={'cn': (246, 641, 311, 675), 'en': (244, 640, 312, 684), 'jp': (233, 655, 310, 681), 'tw': (245, 641, 311, 674)}, file={'cn': './assets/cn/campaign/SWITCH_2_HARD.png', 'en': './assets/en/campaign/SWITCH_2_HARD.png', 'jp': './assets/jp/campaign/SWITCH_2_HARD.png', 'tw': './assets/tw/campaign/SWITCH_2_HARD.png'})
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import copy
|
||||
import importlib
|
||||
import os
|
||||
import random
|
||||
import re
|
||||
|
||||
from module.campaign.campaign_base import CampaignBase
|
||||
@@ -20,6 +21,7 @@ class CampaignRun(CampaignEvent):
|
||||
campaign: CampaignBase
|
||||
run_count: int
|
||||
run_limit: int
|
||||
is_stage_loop = False
|
||||
|
||||
def load_campaign(self, name, folder='campaign_main'):
|
||||
"""
|
||||
@@ -178,6 +180,24 @@ class CampaignRun(CampaignEvent):
|
||||
logger.info(f'When running chapter TH of event_20221124_cn, '
|
||||
f'StopCondition.MapAchievement is forced set to threat_safe')
|
||||
self.config.override(StopCondition_MapAchievement='threat_safe')
|
||||
# Stage loop
|
||||
for alias, stages in self.config.STAGE_LOOP_ALIAS.items():
|
||||
alias_folder, alias = alias
|
||||
if folder == alias_folder and name == alias.lower():
|
||||
stages = [i.strip(' \t\r\n') for i in stages.split('>')]
|
||||
cycle = len(stages)
|
||||
count = int(self.config.StopCondition_RunCount)
|
||||
if count == 0:
|
||||
stage = random.choice(stages)
|
||||
logger.info(f'Loop stages in {name.upper()}, run random stage: {stage}')
|
||||
else:
|
||||
index = count % cycle
|
||||
index = 0 if index == 0 else cycle - index
|
||||
stage = stages[index]
|
||||
logger.info(f'Loop stages in {name.upper()} with remain run_count={count}, '
|
||||
f'run ordered stage: {stage}')
|
||||
name = stage.lower()
|
||||
self.is_stage_loop = True
|
||||
|
||||
return name, folder
|
||||
|
||||
@@ -279,6 +299,11 @@ class CampaignRun(CampaignEvent):
|
||||
logger.hr('Triggered one-time stage limit')
|
||||
self.campaign.handle_map_stop()
|
||||
break
|
||||
# Loop stages
|
||||
if self.is_stage_loop:
|
||||
if self.run_count >= 1:
|
||||
logger.hr('Triggered loop stage switch')
|
||||
break
|
||||
# Task balancer
|
||||
if self.run_count >= 1:
|
||||
self.handle_task_balancer()
|
||||
|
||||
Reference in New Issue
Block a user