Back to "taste id" tags

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