作业列表类型调整
This commit is contained in:
parent
3dcaee86cd
commit
f11513b129
6 changed files with 17 additions and 20 deletions
|
@ -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
|
||||
|
|
|
@ -56,4 +56,4 @@ class ChooseSkillSolver(SceneGraphSolver):
|
|||
elif scene in self.waiting_scene:
|
||||
self.waiting_solver()
|
||||
else:
|
||||
return
|
||||
return True
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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] = []
|
||||
"自动作战列表"
|
||||
|
||||
|
|
|
@ -52,9 +52,3 @@ class Group(TypedDict):
|
|||
|
||||
|
||||
Groups = List[Group]
|
||||
|
||||
|
||||
class WorkItem(TypedDict):
|
||||
stage: str
|
||||
retry_times: int
|
||||
support_oper: str
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue