作业列表类型调整

This commit is contained in:
Elaina 2024-11-14 11:21:15 +08:00
parent 3dcaee86cd
commit f11513b129
6 changed files with 17 additions and 20 deletions

View file

@ -13,15 +13,15 @@ class FightSolver(SceneGraphSolver):
self,
):
work_conf = config.conf.work.works[0]
work_data = config.works[work_conf["stage"]]
work_data = config.works[work_conf.stage]
opers = [oper.model_dump(exclude_none=True) for oper in work_data.opers]
groups = [group.model_dump(exclude_none=True) for group in work_data.groups]
actions = [action.model_dump(exclude_none=True) for action in work_data.actions]
self.level_name = work_conf["stage"]
self.level_name = work_conf.stage
self.no_potion = False
success = False
while work_conf["retry_times"] + 1 > 0:
while work_conf.retry_times + 1 > 0:
super().run()
if self.no_potion:
break

View file

@ -56,4 +56,4 @@ class ChooseSkillSolver(SceneGraphSolver):
elif scene in self.waiting_scene:
self.waiting_solver()
else:
return
return True

View file

@ -5,12 +5,11 @@ from mower.utils.log import logger
class CopyWorksSolver:
def run(self):
# if config.conf.work.try_select_all:
# self.init_all_opers_and_groups()
while works := config.conf.work.works:
for i in range(len(works)):
logger.info(
f"自动战斗列表:({i + 1}/{len(works)}) 关卡:{works[i]["stage"]} 剩余重试次数:{works[i]['retry_times']} 指定助战:{works[i]['support_oper']}"
f"自动战斗列表:({i + 1}/{len(works)}) 关卡:{works[i].stage} 剩余重试次数:{works[i].retry_times}"
)
if not FightSolver().run():
return False
return True

View file

@ -77,11 +77,11 @@ load_plan()
def load_works():
global works
for work in conf.work.works:
works_path = get_path(f"@app/works/{work["stage"]}.json")
works_path = get_path(f"@app/works/{work.stage}.json")
if not works_path.is_file():
raise FileNotFoundError(f"Work {work['stage']} not found")
raise FileNotFoundError(f"Work {work.stage} not found")
with works_path.open("r", encoding="utf-8") as f:
works[work["stage"]] = WorkModel(**pretranslate_work(json.load(f)))
works[work.stage] = WorkModel(**pretranslate_work(json.load(f)))
if not sss_path.is_file():
return

View file

@ -3,8 +3,6 @@ from typing import Literal
from pydantic import BaseModel, model_validator
from pydantic_core import PydanticUndefined
from mower.utils.typealias import WorkItem
class ConfModel(BaseModel):
@model_validator(mode="before")
@ -127,6 +125,12 @@ class FightPart(ConfModel):
"最大刷新次数"
class WorkConf(ConfModel):
class WorkItem(ConfModel):
stage: str = ""
"关卡"
retry_times: int = 2
"重试次数"
work_enable: bool = False
"是否执行自动作战列表"
squad: int = 0
@ -137,8 +141,8 @@ class FightPart(ConfModel):
"give_up"
)
"被敌人进入时采取的策略"
try_select_all: bool = False
"尝试一次性选择全部干员和干员组"
intelligent_select: bool = False
"智能选择"
works: list[WorkItem] = []
"自动作战列表"

View file

@ -52,9 +52,3 @@ class Group(TypedDict):
Groups = List[Group]
class WorkItem(TypedDict):
stage: str
retry_times: int
support_oper: str