1212from prepare_app import prepare_app
1313from constants import (
1414 APPLICATION_TRIGGER ,
15- COLOR_TRIGGERS ,
15+ DEFAULT_COLOR_TRIGGER ,
1616 PIXELS_PER_ITERATION ,
1717 NEW_GAME_TRIGGER_POS ,
1818 AVG_GAME_DURATION ,
1919 DOGS_WHITE_COLOR_RANGE ,
20+ DOGS_DROP_TOGGLE ,
21+ HALLOWEEN_MODE ,
22+ BOMB_COLOR_TRIGGER ,
23+ HALLOWEEN_COLOR_TRIGGER ,
2024)
2125
2226
@@ -44,21 +48,33 @@ def check_running(frame, application_bbox) -> bool:
4448
4549def check_object (frame , x :int , y :int ) -> bool :
4650 """ Finding dropping objects by color """
47- if COLOR_TRIGGERS ['red' ]['min' ] <= frame [y ][x ][0 ] <= COLOR_TRIGGERS ['red' ]['max' ]:
48- if COLOR_TRIGGERS ['green' ]['min' ] <= frame [y ][x ][1 ] <= COLOR_TRIGGERS ['green' ]['max' ]:
49- # print(frame[y][x])
50- if COLOR_TRIGGERS ['blue' ]['min' ] <= frame [y ][x ][2 ] <= COLOR_TRIGGERS ['blue' ]['max' ]:
51- return True
5251
53- #DOGS DROP
54- if frame [y ][x ][0 ] == frame [y ][x ][1 ] == frame [y ][x ][2 ] and DOGS_WHITE_COLOR_RANGE [0 ] <= frame [y ][x ][0 ] <= DOGS_WHITE_COLOR_RANGE [1 ]:
55- counter = 0
56- for i in range (- 1 , 2 ):
57- for j in range (- 4 , 2 ):
58- counter += (frame [y + j ][x + i ][0 ] == frame [y + j ][x + i ][1 ] == frame [y + j ][x + i ][2 ] and DOGS_WHITE_COLOR_RANGE [0 ] <= frame [y + j ][x + i ][0 ] <= DOGS_WHITE_COLOR_RANGE [1 ])
52+ def _check_color_trigger (color_trigger ):
53+ if color_trigger ['red' ]['min' ] <= frame [y ][x ][0 ] <= color_trigger ['red' ]['max' ]:
54+ if color_trigger ['green' ]['min' ] <= frame [y ][x ][1 ] <= color_trigger ['green' ]['max' ]:
55+ # print(frame[y][x])
56+ if color_trigger ['blue' ]['min' ] <= frame [y ][x ][2 ] <= color_trigger ['blue' ]['max' ]:
57+ return True
58+ return False
5959
60- if counter >= 10 :
60+ if HALLOWEEN_MODE :
61+ if _check_color_trigger (HALLOWEEN_COLOR_TRIGGER ) or _check_color_trigger (BOMB_COLOR_TRIGGER ):
6162 return True
63+ else :
64+ if _check_color_trigger (DEFAULT_COLOR_TRIGGER ):
65+ return True
66+
67+ #DOGS DROP
68+
69+ if DOGS_DROP_TOGGLE :
70+ if frame [y ][x ][0 ] == frame [y ][x ][1 ] == frame [y ][x ][2 ] and DOGS_WHITE_COLOR_RANGE [0 ] <= frame [y ][x ][0 ] <= DOGS_WHITE_COLOR_RANGE [1 ]:
71+ counter = 0
72+ for i in range (- 1 , 2 ):
73+ for j in range (- 4 , 2 ):
74+ counter += (frame [y + j ][x + i ][0 ] == frame [y + j ][x + i ][1 ] == frame [y + j ][x + i ][2 ] and DOGS_WHITE_COLOR_RANGE [0 ] <= frame [y + j ][x + i ][0 ] <= DOGS_WHITE_COLOR_RANGE [1 ])
75+
76+ if counter >= 10 :
77+ return True
6278
6379
6480 return False
@@ -81,7 +97,10 @@ def main():
8197
8298 amount_of_games = 1
8399 if len (sys .argv ) > 1 :
84- amount_of_games = int (sys .argv [1 ])
100+ for arg in sys .argv :
101+ if arg .isnumeric ():
102+ amount_of_games = int (arg )
103+ break
85104
86105 camera = dxcam .create ()
87106 camera .start (target_fps = 60 )
@@ -129,7 +148,7 @@ def main():
129148 mouse .move (x , y , absolute = True )
130149 mouse .click (button = 'left' )
131150
132- wait_running_game (camera , timeout = 5 .5 )
151+ wait_running_game (camera , timeout = 12 .5 )
133152
134153 camera .stop ()
135154
0 commit comments