Plants - The Auto-Gardener by jfrostp
Description: Automatically plants, waters, toils, cures, etc all plants within a 3-tile radius of you
1# Auto-gardener by Frost
2# Make sure to have lots of gardening tools in your backpack.
3# You will be prompted for any new seeds to plant.
4# This script will use the first planter spade it finds in your pack, so be sure to only have the one you want to use in your pack.
5
6# Adjust the variables below to turn on/off what you want the script to manage. It defaults to doing everything.
7
8# Set these if you want it to cure **detrimental** effects
9setvar! cureCreatures 1
10setvar! cureFungus 1
11setvar! curePestilents 1
12
13# Set these for how you want it to
14setvar! useFertilizer 1
15setvar! useGrowthSerum 1
16setvar! useWaterBooster 1
17setvar! useHeatingGrate 1
18
19setvar! plantSeeds 1
20
21# Set this if you are near water and want it to refill your watering cans for you
22setvar! autoRefillWateringCans 0
23
24#-------------------------------------------
25#-------------------------------------------
26clearignore
27clearsysmsg
28gumpclose
29setvar! debug 0
30
31if autoRefillWateringCans = 1
32 overhead 'Refilling watering cans..'
33 while findtype 25570 backpack as wateringCan
34 getlabel wateringCan waterLevel
35 if " 0/" in waterLevel
36 dclick wateringCan
37 wait 750
38
39 if insysmsg "nearby water"
40 break
41 endif
42 endif
43 ignore wateringCan
44 endwhile
45 clearignore
46endif
47
48# Harvest any finished plants first
49while findtype 6330|6333|6334|6335|6337|6338|6341|28987|6341|4550|4551|6327|6328|6330 true as planter
50 getlabel planter planterLabel
51
52 if "arvest" in planterLabel
53 dclick planter
54 waitforgump 3224608375
55 wait 150
56 gumpresponse 2
57 waitforgump 3224608375
58 wait 150
59 gumpclose
60 endif
61
62 @ignore planter
63endwhile
64
65clearignore
66
67while findtype 6330|6333|6334|6335|6337|6338|6341|28987|6341|4550|4551|6327|6328|6330 true as planter
68 if debug = 1
69 overhead 'Begin planter'
70 endif
71 clearsysmsg
72 getlabel planter planterLabel
73 dclick planter
74 waitforgump 3224608375
75 wait 150
76
77 if "%" in planterLabel
78 gumpresponse 2
79 waitfortarget
80 waitforgump 3224608375
81 elseif plantSeeds = 0
82 ignore planter
83 continue
84 else
85 gumpclose
86 gumpclose
87 wait 500
88 dclick planter
89 wait 100
90 waitforgump 3224608375
91
92 overhead 'Select a seed to plant'
93 unsetvar seed
94 setvar! seed
95
96 gumpresponse 2
97 waitfortarget
98 waitforgump 3224608375
99 target seed
100
101 if debug = 1
102 overhead 'planting new seed'
103 overhead seed
104 endif
105 if insysmsg "not a plant seed"
106 overhead 'No seed selected, aborting script'
107 stop
108 endif
109 waitforgump 3224608375
110
111 # Estimate levels for new plant
112 gumpresponse 3
113 waitforgump 3224608375
114 gumpresponse 4
115 waitforgump 3224608375
116 gumpresponse 5
117 waitforgump 3224608375
118 wait 150
119 endif
120
121 if debug = 1
122 overhead 'heat'
123 endif
124 # Add boosters if missing
125 if useHeatingGrate = 1
126 if findtype 28741|11942|28719 backpack as heatingGrate
127 gumpresponse 2
128 waitfortarget
129 waitforgump 3224608375
130 target heatingGrate
131 wait 300
132 else
133 overhead 'Out of heating grates!'
134 endif
135 endif
136
137 if debug = 1
138 overhead 'filter'
139 endif
140 if useWaterBooster = 1
141 if findtype 20501|20502|20503 backpack as waterBooster
142 gumpresponse 2
143 waitfortarget
144 waitforgump 3224608375
145 target waterBooster
146 wait 300
147 else
148 overhead 'Out of water boosters!'
149 endif
150 endif
151
152 if debug = 1
153 overhead 'fert'
154 endif
155 if useFertilizer = 1
156 if findtype 4154|19403|29217 backpack as fertilizer
157 gumpresponse 2
158 waitfortarget
159 waitforgump 3224608375
160 target fertilizer
161 wait 300
162 else
163 overhead 'Out of fertilizer!'
164 endif
165 endif
166
167 if debug = 1
168 overhead 'growth'
169 endif
170 if useGrowthSerum = 1
171 if findtype 20498|20499|20500 backpack as growthSerum
172 gumpresponse 2
173 waitfortarget
174 waitforgump 3224608375
175 target growthSerum
176 wait 300
177 else
178 overhead 'Out of growth serum!'
179 endif
180 endif
181
182 if debug = 1
183 overhead 'watering'
184 endif
185 # Water
186 clearsysmsg
187 setvar! waterDone 0
188 while findtype 25570 backpack as wateringCan
189 # Use watering cans until done
190 getlabel wateringCan waterLevel
191 if " 0/" in waterLevel
192 ignore wateringCan
193 else
194 gumpresponse 2
195 waitfortarget
196 waitforgump 3224608375
197 target wateringCan
198 waitforgump 3929333591
199 gumpresponse 2
200 waitforgump 3929333591
201 gumpclose 3929333591
202
203 if insysmsg "not yet estimated"
204 # Estimate levels
205 gumpclose 3224608375
206 wait 500
207 dclick planter
208 wait 100
209 waitforgump 3224608375
210 gumpresponse 3
211 waitforgump 3224608375
212
213 if insysmsg "spade is required"
214 overhead 'No plater spade found!'
215 stop
216 endif
217
218 gumpresponse 4
219 waitforgump 3224608375
220 gumpresponse 5
221 waitforgump 3224608375
222 wait 150
223 endif
224 endif
225
226 if insysmsg "unable to meet"
227 gumpclose
228 gumpclose
229 wait 500
230 dclick planter
231 wait 100
232 waitforgump 3224608375
233 ignore wateringCan
234 else
235 setvar! waterDone 1
236 break
237 endif
238 wait 200
239 endwhile
240 gumpclose 3224608375
241 wait 500
242
243 if waterDone = 0
244 overhead 'Out of water!'
245 stop
246 endif
247
248 if debug = 1
249 overhead 'soil'
250 endif
251 # Soil
252 clearsysmsg
253 setvar! soil 0
254 if findtype 2323 backpack as dirt
255 setvar! soil dirt
256 endif
257 if soil = 0
258 overhead 'Out of soil'
259 stop
260 endif
261 dclick planter
262 wait 100
263 waitforgump 3224608375
264 gumpresponse 2
265 waitfortarget
266 waitforgump 3224608375
267 target soil
268 waitforgump 3224608375
269 waitforgump 4024474571
270 gumpresponse 2
271 waitforgump 3224608375
272 waitforgump 4024474571
273 gumpclose 3224608375
274 wait 500
275
276 # Labor and toil
277 dclick planter
278 wait 100
279 waitforgump 3224608375
280 gumpresponse 2
281 waitfortarget
282
283 if findtype 29868 backpack as spade
284 target spade
285 else
286 overhead 'No spade found in backpack!'
287 stop
288 endif
289
290 waitforgump 1429840072
291 gumpresponse 6
292 waitforgump 3224608375
293 waitforgump 1429840072
294 gumpclose 1429840072
295 gumpclose 3224608375
296 wait 500
297
298 # Pests/etc
299 if debug = 1
300 overhead 'cure detrimental pests'
301 endif
302 dclick planter
303 wait 100
304 waitforgump 3224608375
305
306 # Try to fix up to 3 negative effects
307 for 3
308 gumpresponse 10
309 waitforgump 3224608375
310 wait 100
311 if insysmsg 'Reduces'
312 gumpresponse 10
313 waitforgump 3224608375
314 wait 100
315 if insysmsg 'Fungal' and cureFungus = 1
316 if findtype 6193 backpack as cure
317 overhead 'Cured fungus'
318 gumpresponse 2
319 waitfortarget
320 waitforgump 3224608375
321 target cure
322 wait 500
323 else
324 overhead 'Out of fungicide!'
325 endif
326 endif
327 gumpresponse 10
328 waitforgump 3224608375
329 wait 100
330 if insysmsg 'Creature' and cureCreatures = 1
331 if findtype 29343 backpack as cure
332 overhead 'Cured creature'
333 gumpresponse 2
334 waitfortarget
335 waitforgump 3224608375
336 target cure
337 wait 500
338 else
339 overhead 'Out of farmers almanacs!'
340 endif
341 endif
342 gumpresponse 10
343 waitforgump 3224608375
344 wait 100
345 if insysmsg 'Pestilent' and curePestilents = 1
346 if findtype 6187 backpack as cure
347 overhead 'Cured pestilent'
348 gumpresponse 2
349 waitfortarget
350 waitforgump 3224608375
351 target cure
352 wait 500
353 else
354 overhead 'Out of defoliant!'
355 endif
356 endif
357 else
358 break
359 endif
360 endfor
361
362 if debug = 1
363 overhead 'Planter done'
364 endif
365
366 ignore planter
367endwhile
368
369gumpclose
370overhead 'Done! Move to the next 3x3 area of planters'
371clearignore