-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAttacker.py
More file actions
51 lines (43 loc) · 1.64 KB
/
Attacker.py
File metadata and controls
51 lines (43 loc) · 1.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import pyautogui
from time import sleep
from ScreenReader import ScreenReader
from clicker import (
LineClicker,
)
from AttackStrategy import (
AttackStrategy,
AttackStrategyFactory,
EStrategies,
)
class Attacker:
attack_strat: AttackStrategy = None
screen_reader: ScreenReader = None
arrow_locations: list = None
def __init__(self, strategy: EStrategies, screenReader: ScreenReader = None):
if screenReader is None:
self.screen_reader = ScreenReader()
else:
self.screen_reader = screenReader
# initiate attack strategy
builder_hall_loc = self.screen_reader.getBuilderHallLoc()
while builder_hall_loc is None:
sleep(1)
self.screen_reader.refreshScreenImage()
builder_hall_loc = self.screen_reader.getBuilderHallLoc()
lineMap = self.screen_reader.getLineMap()
self.arrow_locations = self.screen_reader.getArrowLocations()
while self.arrow_locations is None:
sleep(1)
self.screen_reader.refreshScreenImage()
builder_hall_loc = self.screen_reader.getBuilderHallLoc()
lineMap = self.screen_reader.getLineMap()
self.arrow_locations = self.screen_reader.getArrowLocations()
factory = AttackStrategyFactory()
self.attack_strat = factory.generate(strategy, lineMap, builder_hall_loc)
def select_troops(self):
troop_comp = self.attack_strat.get_troop_comp()
# click all arrow locations
for loc in self.arrow_locations:
pyautogui.click(loc)
# select troops
# def performAttack():