|
@@ -12,9 +12,10 @@ from __future__ import annotations
|
|
|
from typing import TYPE_CHECKING
|
|
from typing import TYPE_CHECKING
|
|
|
|
|
|
|
|
if TYPE_CHECKING:
|
|
if TYPE_CHECKING:
|
|
|
|
|
+ from run_juece13_wugong_autofight import AutoFightBehavior
|
|
|
|
|
+
|
|
|
from pbot.world.actor import Npc
|
|
from pbot.world.actor import Npc
|
|
|
from pbot.world.mirror import WorldMirror
|
|
from pbot.world.mirror import WorldMirror
|
|
|
- from run_juece13_wugong_autofight import AutoFightBehavior
|
|
|
|
|
|
|
|
|
|
import json
|
|
import json
|
|
|
import re
|
|
import re
|
|
@@ -34,7 +35,7 @@ _SPAWN_GAP_S = 8.0
|
|
|
_SPAWN_TALK_DIST = 3
|
|
_SPAWN_TALK_DIST = 3
|
|
|
|
|
|
|
|
|
|
|
|
|
-def _find_spawn_npc(world: "WorldMirror") -> "Npc | None":
|
|
|
|
|
|
|
+def _find_spawn_npc(world: WorldMirror) -> Npc | None:
|
|
|
"""视野内名字含'刷怪'的 NPC(KillBehavior._find_spawn_npc 同源)。"""
|
|
"""视野内名字含'刷怪'的 NPC(KillBehavior._find_spawn_npc 同源)。"""
|
|
|
for npc in world.npcs.values():
|
|
for npc in world.npcs.values():
|
|
|
if "刷怪" in npc.name:
|
|
if "刷怪" in npc.name:
|
|
@@ -42,7 +43,7 @@ def _find_spawn_npc(world: "WorldMirror") -> "Npc | None":
|
|
|
return None
|
|
return None
|
|
|
|
|
|
|
|
|
|
|
|
|
-def _try_spawn(ctx: PipelineContext, af: "AutoFightBehavior",
|
|
|
|
|
|
|
+def _try_spawn(ctx: PipelineContext, af: AutoFightBehavior,
|
|
|
last: dict) -> bool:
|
|
last: dict) -> bool:
|
|
|
"""无怪时点【点我刷怪】: True=已处理(本轮不必再漫游)。
|
|
"""无怪时点【点我刷怪】: True=已处理(本轮不必再漫游)。
|
|
|
|
|
|
|
@@ -103,7 +104,7 @@ def _try_spawn(ctx: PipelineContext, af: "AutoFightBehavior",
|
|
|
return True
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
|
-def _spawn_on_land(ctx: PipelineContext, af: "AutoFightBehavior",
|
|
|
|
|
|
|
+def _spawn_on_land(ctx: PipelineContext, af: AutoFightBehavior,
|
|
|
last: dict, tag: str = "") -> None:
|
|
last: dict, tag: str = "") -> None:
|
|
|
"""落地即点一次【点我刷怪】: 走到 NPC → 开对话 → 点确认 → 立即返回。
|
|
"""落地即点一次【点我刷怪】: 走到 NPC → 开对话 → 点确认 → 立即返回。
|
|
|
|
|
|