卫戍协议

This commit is contained in:
zhbaor 2024-11-19 00:52:34 +08:00
parent 7c1f2041c6
commit 21dc3d1793
25 changed files with 243 additions and 35 deletions

View file

@ -0,0 +1,62 @@
import cv2
from mower.solvers.fight.mixin import FightMixin
from mower.utils import config
from mower.utils.graph import SceneGraphSolver
from mower.utils.image import cropimg, thres2
from mower.utils.scene import Scene
from mower.utils.vector import va
class StrongholdProtocol(SceneGraphSolver, FightMixin):
solver_name = "卫戍协议"
def run(self):
self.buy = True
self.depoly = True
return super().run()
def transition(self):
if (scene := self.scene()) == Scene.TERMINAL_MAIN:
self.terminal_entry("stronghold_protocol/entry.jpg")
elif scene == Scene.SP_MAIN:
if pos := self.find("stronghold_protocol/stop"):
self.tap(pos)
return
self.tap((1664, 911))
elif scene == Scene.SP_DEFENCE:
if pos := self.find("stronghold_protocol/start"):
self.tap(pos)
return
self.buy = True
self.deploy = True
self.tap((383, 948))
elif scene == Scene.SP_ACTION:
img = cropimg(config.recog.gray, ((1045, 24), (1063, 46)))
img = cv2.bitwise_not(thres2(img, 127))
if config.recog.num.number_int("secret_front", img=img) >= 2:
self.back()
return
if self.buy:
for pos in [(407, 540), (804, 513), (875, 431)]:
self.tap(pos, interval=0.5)
if not self.find("stronghold_protocol/medic"):
break
self.tap((1056, 482))
self.buy = False
return
if self.deploy:
for pos in [(1475, 524), (1058, 746)]:
self.swipe_ext([(1602, 989), pos], [500], up_wait=100, interval=0.4)
if self.drag_success():
self.swipe_ext(
[pos, va(pos, (300, 0))], [200], up_wait=100, interval=0.4
)
self.deploy = False
break
return
self.tap((1827, 93))
elif scene == Scene.SP_AUTO:
self.sleep()
else:
self.scene_graph_step(Scene.TERMINAL_MAIN)