卫戍协议
This commit is contained in:
parent
7c1f2041c6
commit
21dc3d1793
25 changed files with 243 additions and 35 deletions
62
mower/solvers/stronghold_protocol.py
Normal file
62
mower/solvers/stronghold_protocol.py
Normal 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)
|
Loading…
Add table
Add a link
Reference in a new issue