Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 34 additions & 28 deletions app/task/MAA/AutoProxy.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,38 @@ def _resolve_activity_stage(
return stages[configured_index - 1] if configured_index <= len(stages) else stages[0]


def _build_activity_priority_fight(
fight_task: dict, activity_stage: str, medicine_numb: int
) -> dict:
"""生成 MAA 活动关优先任务,使用独立理智药额度。

活动关优先与理智作战刻意保持为两个独立任务,分别使用各自的理智药
额度(Task.ActivityMedicineNumb 与计划表 MedicineNumb),互不转移。
"""

activity_fight = fight_task.copy()
activity_fight.update(
{
"Name": "活动关优先",
"IsEnable": True,
"StagePlan": [activity_stage],
"IsStageManually": True,
"UseOptionalStage": False,
"UseWeeklySchedule": False,
"EnableTargetDrop": False,
"DropId": "",
"DropCount": 0,
"IsInventoryTarget": False,
"EnableTimesLimit": False,
"UseMedicine": medicine_numb > 0,
"MedicineCount": medicine_numb,
"UseExpiringMedicine": False,
"UseExpireMedicineForActivity": False,
}
)
return activity_fight


class AutoProxyTask(TaskExecuteBase):
"""自动代理模式"""

Expand Down Expand Up @@ -797,34 +829,8 @@ async def set_maa(self, emulator_info: DeviceInfo):
activity_medicine_numb = self.cur_user_config.get(
"Task", "ActivityMedicineNumb"
)
activity_fight = task_set["Fight"].copy()
activity_fight.update(
{
"Name": "活动关优先",
"IsEnable": True,
"StagePlan": [activity_stage],
"IsStageManually": True,
"UseOptionalStage": False,
"UseWeeklySchedule": False,
"EnableTargetDrop": False,
"DropId": "",
"DropCount": 0,
"IsInventoryTarget": False,
"EnableTimesLimit": False,
"UseMedicine": activity_medicine_numb > 0,
"MedicineCount": activity_medicine_numb,
"UseExpiringMedicine": False,
"UseExpireMedicineForActivity": False,
}
)
# 理智药额度只交给优先活动关,避免后续普通作战重复消耗。
task_set["Fight"].update(
{
"UseMedicine": False,
"MedicineCount": 0,
"UseExpiringMedicine": False,
"UseExpireMedicineForActivity": False,
}
activity_fight = _build_activity_priority_fight(
task_set["Fight"], activity_stage, activity_medicine_numb
)

# 导出任务配置
Expand Down
3 changes: 2 additions & 1 deletion res/version.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
],
"修复BUG": [
"OK-WW专项 修复任务在日志产生前手动终止时历史记录误显示未捕获到日志的问题",
"OK-NTE专项 修复任务结束后异环启动器进程残留并持续占用内存的问题"
"OK-NTE专项 修复任务结束后异环启动器进程残留并持续占用内存的问题",
"MAA专项 修复开启活动关优先后普通理智作战的理智药额度被静默清零的问题,两个作战任务各自使用独立理智药额度"
]
},
"v5.4.0-beta.8":{
Expand Down
Loading