-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpoke-lib.sh
158 lines (138 loc) · 2.79 KB
/
poke-lib.sh
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
click()
{
echo click:$1,$2,1,30 >$PIPE
echo click:$1,$2,1,30
sleep 0.04
}
motion()
{
echo motion:$1,$2 >$PIPE
echo motion:$1,$2
}
button_up()
{
echo button_up:$1,$2,1,50 >$PIPE
}
button_down()
{
echo button_down:$1,$2,1,50 >$PIPE
}
start_trade()
{
click 494,849 >$PIPE
}
get_friend()
{
click 59 931 1
sleep 0.5
click 475 236 1
}
get_rgb()
{
if [ $# -lt 2 ] ; then
echo get_rgb needs x y
echo "Got count $# '$@'"
exit 1
fi
printf "color:$1,$2\n" >$PIPE
sleep 0.75
values="$(tail -n 1 ${PIPE}.sh | sed "s/.*color://")"
rgb=($(echo $values |cut -d ',' -f 3) $(echo $values |cut -d ',' -f 4) $(echo $values |cut -d ',' -f 5))
echo RGB ${rgb[@]}
}
check_color()
{
max=3
if [[ $# -ne 6 && $# -ne 7 ]] ; then
echo check_color needs x y r g b threshold
echo "Got count $# '$@'"
return 1
fi
x=$1; y=$2
r=$3; g=$4 ; b=$5
t=$6
[ $# -eq 7 ] && max=$7
echo "check color : ${@}"
for (( i = 0; i < $max; i++ )); do
echo "RGB round $i"
get_rgb $x $y
if [[ \
${rgb[0]} -lt $(( r + t )) && ${rgb[1]} -lt $(( g + t )) && ${rgb[2]} -lt $(( b + t )) && \
${rgb[0]} -gt $(( r - t )) && ${rgb[1]} -gt $(( g - t )) && ${rgb[2]} -gt $(( b - t ))
]]
then
echo "Color match"
return 0
fi
done
echo "Color miss"
return 1
}
wait_color()
{
while ! check_color $1 $2 $3 $4 $5 $6
do
echo Waiting for RGB $3 $4 $5 thres $6
sleep 0.5
done
}
wait_color_fail()
{
while check_color $1 $2 $3 $4 $5 $6
do
echo Waiting for RGB $3 $4 $5 thres $6
sleep 0.5
done
}
click_ok()
{
click 237 898 1
}
# click 237 898 1
go_battle()
{
click 285 945
sleep 1
click 458 547 1
sleep 1
}
fight()
{
# while sleep 0.01
while ! check_color 285 182 0 0 0 5
do
click 245 890
click 145 890
click 164 821 1
for (( x = 50; x < 450 ; x += 130 ))
do
check_color 285 182 0 0 0 5 || return
for (( y = 520; y < 777; y += 130 ))
do
click $x $y
done
click 164 821 1
done
done
}
back_home()
{
echo "Back home"
sleep 1
# get_rgb 285 916
# while [[ ${rgb[0]} -lt 255 && ${rgb[1]} -gt 100 && ${rgb[2]} -gt 100 ]]
while ! check_color 285 916 245 55 72 20 1
do
echo Not home color ${rgb[@]}
sleep 1
get_rgb 285 916
click 285 945
if check_color 285 916 254 55 72 10
then
echo Send home screen step bak
# click 275 945
fi
# get_rgb 285 916
echo Not home color ${rgb[@]}
done
}