作业列表类型调整
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,
|
self,
|
||||||
):
|
):
|
||||||
work_conf = config.conf.work.works[0]
|
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]
|
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]
|
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]
|
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
|
self.no_potion = False
|
||||||
success = False
|
success = False
|
||||||
|
|
||||||
while work_conf["retry_times"] + 1 > 0:
|
while work_conf.retry_times + 1 > 0:
|
||||||
super().run()
|
super().run()
|
||||||
if self.no_potion:
|
if self.no_potion:
|
||||||
break
|
break
|
||||||
|
|
|
@ -56,4 +56,4 @@ class ChooseSkillSolver(SceneGraphSolver):
|
||||||
elif scene in self.waiting_scene:
|
elif scene in self.waiting_scene:
|
||||||
self.waiting_solver()
|
self.waiting_solver()
|
||||||
else:
|
else:
|
||||||
return
|
return True
|
||||||
|
|
|
@ -5,12 +5,11 @@ from mower.utils.log import logger
|
||||||
|
|
||||||
class CopyWorksSolver:
|
class CopyWorksSolver:
|
||||||
def run(self):
|
def run(self):
|
||||||
# if config.conf.work.try_select_all:
|
|
||||||
# self.init_all_opers_and_groups()
|
|
||||||
while works := config.conf.work.works:
|
while works := config.conf.work.works:
|
||||||
for i in range(len(works)):
|
for i in range(len(works)):
|
||||||
logger.info(
|
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():
|
if not FightSolver().run():
|
||||||
return False
|
return False
|
||||||
|
return True
|
||||||
|
|
|
@ -77,11 +77,11 @@ load_plan()
|
||||||
def load_works():
|
def load_works():
|
||||||
global works
|
global works
|
||||||
for work in conf.work.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():
|
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:
|
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():
|
if not sss_path.is_file():
|
||||||
return
|
return
|
||||||
|
|
|
@ -3,8 +3,6 @@ from typing import Literal
|
||||||
from pydantic import BaseModel, model_validator
|
from pydantic import BaseModel, model_validator
|
||||||
from pydantic_core import PydanticUndefined
|
from pydantic_core import PydanticUndefined
|
||||||
|
|
||||||
from mower.utils.typealias import WorkItem
|
|
||||||
|
|
||||||
|
|
||||||
class ConfModel(BaseModel):
|
class ConfModel(BaseModel):
|
||||||
@model_validator(mode="before")
|
@model_validator(mode="before")
|
||||||
|
@ -127,6 +125,12 @@ class FightPart(ConfModel):
|
||||||
"最大刷新次数"
|
"最大刷新次数"
|
||||||
|
|
||||||
class WorkConf(ConfModel):
|
class WorkConf(ConfModel):
|
||||||
|
class WorkItem(ConfModel):
|
||||||
|
stage: str = ""
|
||||||
|
"关卡"
|
||||||
|
retry_times: int = 2
|
||||||
|
"重试次数"
|
||||||
|
|
||||||
work_enable: bool = False
|
work_enable: bool = False
|
||||||
"是否执行自动作战列表"
|
"是否执行自动作战列表"
|
||||||
squad: int = 0
|
squad: int = 0
|
||||||
|
@ -137,8 +141,8 @@ class FightPart(ConfModel):
|
||||||
"give_up"
|
"give_up"
|
||||||
)
|
)
|
||||||
"被敌人进入时采取的策略"
|
"被敌人进入时采取的策略"
|
||||||
try_select_all: bool = False
|
intelligent_select: bool = False
|
||||||
"尝试一次性选择全部干员和干员组"
|
"智能选择"
|
||||||
works: list[WorkItem] = []
|
works: list[WorkItem] = []
|
||||||
"自动作战列表"
|
"自动作战列表"
|
||||||
|
|
||||||
|
|
|
@ -52,9 +52,3 @@ class Group(TypedDict):
|
||||||
|
|
||||||
|
|
||||||
Groups = List[Group]
|
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