Back to "gardening plants flowers seeds mushrooms watermelons" tags
Garden-Bro V4 by nev0r
1////////////////////////////////////////
2// _ _ _ _
3// _{ * }_ Gardening-Bot _{ * }_
4// { *.!.* } { *.!.* }
5// *-._.-* for UO Outlands *-._.-*
6// ___|___ ___|___
7// |_______| Version 4 |_______|
8//
9// - Processes flower pots within range
10// - No mandatory setup, an optional setup section can be found below
11// - Note: gardening items have to be in your backpack (except for flower pots and water tiles)
12// - WARNING: server system messages are needed to determine necessary actions, make sure they are not filtered for scripts:
13// Razor -> Filters -> Text&Messages ->
14// - Uncheck "Filter repeating system messages"
15// - "Enable text filter" and "Filter system messages" (list entry sub-menu) can be checked, however "Ignore filtered messages in overhead and scripts" (list entry sub-menu) has to be unchecked
16//
17/////////////////////////////////////////
18
19######## MANUAL SETUP ########
20
21# gardeningRange: 1 - 18
22 # Amout of tiles around character that will be searched for flower pots. If there are no unprocessed flower pots left within this range the script will terminate.
23 # Note: to actually work the flower pot you need to be in a range of 2 tiles, maximal visual range is 18 tiles
24 setvar! gardeningRange 2
25
26# gardeningSmartMode: defines how you want to use fungicides/farmer almanacs (if you do not want to use them at all do not put them into your backpack)
27 # 0 ... Kill all negativ effects without considering collateral damage to (potentially stronger) positive effects (faster, uses more resources)
28 # 1 ... Kill negativ effects only if they outweigh positive effects, avoid unneccessary collateral damage (slower, uses less resources)
29 # Note: fungicides and farmer almanacs remove buffs and debuffs in a random fashion. With gardeningSmartMode set to 1 the script is going to ignore fungal and creature debuffs as long as there are stronger corresponding buffs in place
30 setvar! gardeningSmartMode 0
31
32# gardeningIgnoreHeatLevel: are we going to care about heat level?
33 # 0 ... Identify optimal heat level, and remove black mushrooms (reducing optimal heat level bonus) if necessary (applies only when gardeningSmartMode is set to 1, since with gardeningSmartMode 0 all mushrooms will always be removed anyway)
34 # 1 ... Let us not care about heat level, ignore black mushrooms (reducing optimal heat level bonus) in case gardeningSmartMode is set to 1
35 setvar! gardeningIgnoreHeatLevel 0
36
37# gardeningIgnoreBrainFungus: are we going to remove brain fungi, or should we ignore them?
38 # 0 ... Remove, and continue to keep the pot clean
39 # 1 ... Ignore brain fungus and all other debuffs as long as the brain is active
40 # 2 ... Ignore, leave all other debuffs, and do not apply buff items to this pot as long as the brain is active
41 setvar! gardeningIgnoreBrainFungus 0
42
43# gardeningSkipPlanterOverheadInfo: 0 ... Overhead On, 1 ... Overhead Off
44 # Display status information above planters
45 setvar! gardeningSkipPlanterOverheadInfo 0
46
47# gardeningSelectiveBuffs: apply buffs (growth serum/heat filter/fertilizer/purified water) only to certain planter types
48 # 0 ... disabled (= best available buff items from your backpack are going to be applied to all planters without distinction)
49 # 1 ... buff listed planters with superior, exceptional and basic items, do not buff any planter not listed below
50 # 2 ... buff listed planters with superior and exceptional, and all others with basic items
51 # Note: Do not forget to adjust the list items (see below) if you turn this functionality on, no further changes necessary if set to 0
52 setvar! gardeningSelectiveBuffs 0
53
54 # gardeningSelectiveBuffList: changes to the list items are only necessary if you set gardeningSelectiveBuffs to 1 or 2
55 # Do not change the next two lines
56 createlist gardeningSelectiveBuffList
57 clearlist gardeningSelectiveBuffList
58
59 # Comment out planter types you do not want superior and exceptional materials to be used on (select line/s -> right click -> comment, or put a # at the beginning of the line):
60 # Note: rustic planters and rustic window planters work as large wooden planters and are treated as such
61 pushlist gardeningSelectiveBuffList "large wooden planter"
62 pushlist gardeningSelectiveBuffList "small wooden planter"
63 pushlist gardeningSelectiveBuffList "huge steel plant bowl"
64 pushlist gardeningSelectiveBuffList "large steel plant bowl"
65 pushlist gardeningSelectiveBuffList "average steel plant bowl"
66 pushlist gardeningSelectiveBuffList "small steel plant bowl"
67 pushlist gardeningSelectiveBuffList "tiny steel plant bowl"
68 pushlist gardeningSelectiveBuffList "huge clay plant bowl"
69 pushlist gardeningSelectiveBuffList "large clay plant bowl"
70 pushlist gardeningSelectiveBuffList "average clay plant bowl"
71 pushlist gardeningSelectiveBuffList "small clay plant bowl"
72 pushlist gardeningSelectiveBuffList "tiny clay plant bowl"
73
74# gardeningAutoPlantNewSeed: defines the way new seeds are applied to empty flower pots
75 # 0 ... manually plant seeds
76 # 1 ... plant all seed types to all flower pot types (higher rarity seeds first)
77 # 2 ... plant higher rarity seeds exclusively to listed flower pots, leave pot empty if we do not have a high rarity seed
78 # 3 ... plant higher rarity seeds exclusively to listed flower pots, also plant low rarity seeds if we do not have a high rarity seed
79 # 4 ... do not plant new seeds
80 # Note: If you want to use option 2 or 3 you also need to adjust the list items below to let the script know which pot and seed types you want to be handled as rare
81 setvar! gardeningAutoPlantNewSeed 0
82
83 # Do not change the next four lines
84 createlist gardeningSpecialSeedList
85 createlist gardeningSpecialPlanterList
86 clearlist gardeningSpecialSeedList
87 clearlist gardeningSpecialPlanterList
88
89 # gardeningSpecialSeedList: changes to the list items are only necessary if you set gardeningAutoPlantNewSeed to 2 or 3
90 # Comment out seed types you do not want to be handled as rare (select line/s -> right click -> comment, or put a # at the beginning of the line):
91 pushlist gardeningSpecialSeedList "dungeon seed"
92 pushlist gardeningSpecialSeedList "mushroom spore"
93 pushlist gardeningSpecialSeedList "melloweed seed"
94 pushlist gardeningSpecialSeedList "barley seed"
95 pushlist gardeningSpecialSeedList "hops seed"
96 pushlist gardeningSpecialSeedList "extremely rare seed"
97 pushlist gardeningSpecialSeedList "very rare seed"
98 pushlist gardeningSpecialSeedList "rare seed"
99 pushlist gardeningSpecialSeedList "uncommon seed"
100 pushlist gardeningSpecialSeedList "common seed"
101 pushlist gardeningSpecialSeedList "very common seed"
102 pushlist gardeningSpecialSeedList "extremely common seed"
103
104 # gardeningSpecialPlanterList: changes to the list items are only necessary if you set gardeningAutoPlantNewSeed to 2 or 3
105 # Comment out planter types you do not want to be handled as high quality (select line/s -> right click -> comment, or put a # at the beginning of the line):
106 # Note: rustic planters and rustic window planters work as large wooden planters and are treated as such
107 pushlist gardeningSpecialPlanterList "large wooden planter"
108 pushlist gardeningSpecialPlanterList "small wooden planter"
109 pushlist gardeningSpecialPlanterList "huge steel plant bowl"
110 pushlist gardeningSpecialPlanterList "large steel plant bowl"
111 pushlist gardeningSpecialPlanterList "average steel plant bowl"
112 pushlist gardeningSpecialPlanterList "small steel plant bowl"
113 pushlist gardeningSpecialPlanterList "tiny steel plant bowl"
114 pushlist gardeningSpecialPlanterList "huge clay plant bowl"
115 pushlist gardeningSpecialPlanterList "large clay plant bowl"
116 pushlist gardeningSpecialPlanterList "average clay plant bowl"
117 pushlist gardeningSpecialPlanterList "small clay plant bowl"
118 pushlist gardeningSpecialPlanterList "tiny clay plant bowl"
119
120# gardeningDebugMode: 0 ... Off, 1 ... Low details, 2 ... High details
121 # Display additional status information in our journal for easier debugging
122 setvar! gardeningDebugMode 0
123
124###### END MANUAL SETUP ######
125
126//////////////////////////////
127//
128// Changelog
129// - Update 11-Dec-2024 (V4): Added manual seed selection mode for planting new seeds
130// Added overhead info above unprocessed planters outside 2 tiles range (max. 10)
131// Added possibility to continue gardening session in case script did not finish
132//
133//////////////////////////////
134
135setvar! gardeningPlantGumpID 3224608375
136setvar! gardeningMinWaitForServerResponse 200
137setvar! gardeningMaxWaitForServerResponse 1000
138setvar! gardeningWaitForObjectDelay 600
139
140setvar! cGreen 68
141setvar! cLightBlue 100
142setvar! cLightOrange 145
143setvar! cRed 33
144setvar! cYellow 55
145
146if gardeningDebugMode > 0
147 settimer gardeningRunTimer 0
148endif
149
150if timerexists gardeningRestartTimer
151 if timer gardeningRestartTimer < 10000
152 unsetvar gardeningDone
153 endif
154 removetimer gardeningRestartTimer
155endif
156
157if not varexist gardeningDone or gardeningDone = 1
158 setvar! gardeningDone 0
159 @clearignore
160else
161 settimer gardeningRestartTimer 0
162 overhead "|* Resuming gardening *|" cGreen
163 sysmsg "|* Resuming gardening *|" cGreen
164 overhead "|* Replay to start fresh *|" cLightOrange
165 sysmsg "|* Replay within 10s to start fresh *|" cLightOrange
166endif
167
168while findtype "planter|flower box|window planter|trough|flower pot" ground -1 -1 gardeningRange
169
170 if not timerexists gardeningOverheadTimer
171 overhead "|* Starting gardening *|" cGreen
172 settimer gardeningOverheadTimer 0
173 elseif timer gardeningOverheadTimer < 0 and not findtype "planter|flower box|window planter|trough|flower pot" ground -1 -1 2 or timer gardeningOverheadTimer > 3500
174 overhead "|* Searching flower pots *|" cGreen
175 if gardeningSkipPlanterOverheadInfo = 0
176 createlist gardeningUnfinishedPlantersList
177 while 10 > index and findtype "planter|flower box|window planter|trough|flower pot" ground -1 -1 gardeningRange as localPlanter
178 overhead "Pending" cLightOrange localPlanter
179 overhead " ▼ " cLightOrange localPlanter
180 pushlist gardeningUnfinishedPlantersList localPlanter
181 @ignore localPlanter
182 endwhile
183 @unignore gardeningUnfinishedPlantersList
184 removelist gardeningUnfinishedPlantersList
185 endif
186 settimer gardeningOverheadTimer 0
187 endif
188
189 //World save
190 if insysmsg "world is saving"
191 sysmsg "Waiting for world save ..."
192 settimer globalWorldSaveTimer 0
193 while timer globalWorldSaveTimer < 10000
194 if insysmsg "save complete"
195 sysmsg "The world has been saved!"
196 settimer gardeningMinWaitTimer 0
197 getlabel backpack waitForPing
198 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
199 endwhile
200 break
201 endif
202 endwhile
203 endif
204
205 if targetexists
206 target cancel
207 endif
208
209 //Refill water containers in proximity if we are next to a water tile
210 if findtype "water" ground -1 -1 2
211
212 while findtype "water" ground -1 -1 2 and findtype 3703|3707|3715|4090|5344|5453 ground -1 -1 2 as myWaterContainer
213 dclick myWaterContainer
214 if gardeningDebugMode > 0
215 sysmsg "[Gardening] Trying to refill water containers (Timer: {{gardeningRunTimer}} ms)" cLightBlue
216 endif
217 wait gardeningWaitForObjectDelay
218 @ignore myWaterContainer
219 endwhile
220
221 while findtype "water" ground -1 -1 2 and findtype 3703|3707|3715|4090|5344|5453 backpack as myWaterContainer
222 dclick myWaterContainer
223 if gardeningDebugMode > 0
224 sysmsg "[Gardening] Trying to refill water containers (Timer: {{gardeningRunTimer}} ms)" cLightBlue
225 endif
226 wait gardeningWaitForObjectDelay
227 @ignore myWaterContainer
228 endwhile
229
230 endif
231
232 clearsysmsg
233 if findtype "planter|flower box|window planter|trough|flower pot" ground -1 -1 2 as myFlowerPot
234
235 overhead "|* New pot found *|" cGreen
236 if gardeningSkipPlanterOverheadInfo = 0
237 overhead "Active" cYellow myFlowerPot
238 overhead " ▼ " cYellow myFlowerPot
239 endif
240
241 if gumpexists gardeningPlantGumpID
242 gumpclose gardeningPlantGumpID
243 settimer gardeningMinWaitTimer 0
244 getlabel backpack waitForPing
245 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
246 endwhile
247 if insysmsg "That plant bowl is too far away."
248 endif
249 endif
250
251 if gardeningDebugMode > 0
252 settimer gardeningRunTimer 0
253 endif
254
255 getlabel myFlowerPot myFlowerPotLabel
256 settimer gardeningMinWaitTimer 0
257 while timer gardeningMinWaitTimer < gardeningWaitForObjectDelay
258 dclick myFlowerPot
259 waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
260 while timer gardeningMinWaitTimer < gardeningWaitForObjectDelay
261 if insysmsg "You must wait to perform another action."
262 wait gardeningMinWaitForServerResponse
263 settimer gardeningMinWaitTimer 0
264 break
265 endif
266 endwhile
267 endwhile
268
269 if gardeningDebugMode > 0
270 sysmsg "[Gardening] Active flower pot: {{myFlowerPot}}, {{myFlowerPotLabel}}" cLightBlue
271 endif
272
273 //Harvest plant if growing done
274 if "ready for harvest" in myFlowerPotLabel and gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away."
275 gumpresponse 2 gardeningPlantGumpID
276 if gardeningDebugMode > 0
277 sysmsg "[Gardening] Harvesting flower (Timer: {{gardeningRunTimer}} ms)" cLightBlue
278 endif
279 settimer gardeningMinWaitTimer 0
280 getlabel backpack waitForPing
281 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
282 endwhile
283 endif
284
285 //Check if we need to plant a seed
286 if "% grown" in myFlowerPotLabel and gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away."
287 //Seed already planted
288 elseif gardeningAutoPlantNewSeed >= 4
289 //Leave pot empty
290 elseif gumpexists gardeningPlantGumpID and findtype 22326|51078|51098|53611|54062|55139|58196|59449 backpack and not insysmsg! "That plant bowl is too far away."
291 //Set seed to plant
292 if gardeningDebugMode > 0
293 sysmsg "[Gardening] Trying to plant new seed (gardeningAutoPlantNewSeed: {{gardeningAutoPlantNewSeed}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
294 endif
295
296 setvar! gardeningSeedToPlant 0
297 if gardeningAutoPlantNewSeed = 0
298 //Prompt user to add a seed
299 gumpresponse 2 gardeningPlantGumpID
300 settimer gardeningOverheadTimer 2000
301 wft gardeningMaxWaitForServerResponse
302 while targetexists
303 if timer gardeningOverheadTimer > 2000
304 overhead "|* Target seed to add *|" cGreen
305 overhead "|* or ESC to cancel *|" cLightOrange
306 settimer gardeningOverheadTimer 0
307 endif
308 endwhile
309 settimer gardeningMinWaitTimer 0
310 getlabel backpack waitForPing
311 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
312 endwhile
313
314 elseif gardeningAutoPlantNewSeed = 2 or gardeningAutoPlantNewSeed = 3
315 //Plant high tier seeds to high tier planter
316 if listexists gardeningSpecialSeedList and listexists gardeningSpecialPlanterList
317 if "large wooden planter" in myFlowerPotLabel or "rustic planter" in myFlowerPotLabel or "rustic window planter" in myFlowerPotLabel
318 if inlist gardeningSpecialPlanterList "large wooden planter"
319 setvar! gardeningSpecialPlanter 1
320 endif
321 elseif "small wooden planter" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "small wooden planter"
322 setvar! gardeningSpecialPlanter 1
323 elseif "huge steel plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "huge steel plant bowl"
324 setvar! gardeningSpecialPlanter 1
325 elseif "large steel plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "large steel plant bowl"
326 setvar! gardeningSpecialPlanter 1
327 elseif "average steel plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "average steel plant bowl"
328 setvar! gardeningSpecialPlanter 1
329 elseif "small steel plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "small steel plant bowl"
330 setvar! gardeningSpecialPlanter 1
331 elseif "tiny steel plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "tiny steel plant bowl"
332 setvar! gardeningSpecialPlanter 1
333 elseif "huge clay plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "huge clay plant bowl"
334 setvar! gardeningSpecialPlanter 1
335 elseif "large clay plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "large clay plant bowl"
336 setvar! gardeningSpecialPlanter 1
337 elseif "average clay plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "average clay plant bowl"
338 setvar! gardeningSpecialPlanter 1
339 elseif "small clay plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "small clay plant bowl"
340 setvar! gardeningSpecialPlanter 1
341 elseif "tiny clay plant bowl" in myFlowerPotLabel and inlist gardeningSpecialPlanterList "tiny clay plant bowl"
342 setvar! gardeningSpecialPlanter 1
343 else
344 setvar! gardeningSpecialPlanter 0
345 endif
346 if gardeningSpecialPlanter = 1
347 if inlist gardeningSpecialSeedList "dungeon seed" and findtype 51098 backpack as myNewSeed
348 //Set dungeon seed
349 setvar! gardeningSeedToPlant myNewSeed
350 elseif inlist gardeningSpecialSeedList "mushroom spore" and findtype "mushroom spore" backpack as myNewSeed
351 //Set mushroom spore event item
352 setvar! gardeningSeedToPlant myNewSeed
353 elseif inlist gardeningSpecialSeedList "melloweed seed" and findtype 51078 backpack 0 as myNewSeed
354 //Set melloweed seed
355 setvar! gardeningSeedToPlant myNewSeed
356 elseif inlist gardeningSpecialSeedList "barley seed" and findtype 51078 backpack 2418 as myNewSeed
357 //Set barley seed
358 setvar! gardeningSeedToPlant myNewSeed
359 elseif inlist gardeningSpecialSeedList "hops seed" and findtype 51078 backpack 2208 as myNewSeed
360 //Set hops seed
361 setvar! gardeningSeedToPlant myNewSeed
362 elseif inlist gardeningSpecialSeedList "extremely rare seed" and findtype 22326 backpack 2465 as myNewSeed
363 //Set extremely rare seed
364 setvar! gardeningSeedToPlant myNewSeed
365 elseif inlist gardeningSpecialSeedList "very rare seed" and findtype 22326 backpack 2661 as myNewSeed
366 //Set very rare seed
367 setvar! gardeningSeedToPlant myNewSeed
368 elseif inlist gardeningSpecialSeedList "rare seed" and findtype 22326 backpack 1266 as myNewSeed
369 //Set rare seed
370 setvar! gardeningSeedToPlant myNewSeed
371 elseif inlist gardeningSpecialSeedList "uncommon seed" and findtype 22326 backpack 63 as myNewSeed
372 //Set uncommon seed
373 setvar! gardeningSeedToPlant myNewSeed
374 elseif inlist gardeningSpecialSeedList "common seed" and findtype 22326 backpack 2451 as myNewSeed
375 //Set common seed
376 setvar! gardeningSeedToPlant myNewSeed
377 elseif inlist gardeningSpecialSeedList "very common seed" and findtype 22326 backpack 2882 as myNewSeed
378 //Set very common seed
379 setvar! gardeningSeedToPlant myNewSeed
380 elseif inlist gardeningSpecialSeedList "extremely common seed" and findtype 22326 backpack 2401 as myNewSeed
381 //Set extremely common seed
382 setvar! gardeningSeedToPlant myNewSeed
383 endif
384 if gardeningDebugMode > 1 and find gardeningSeedToPlant backpack
385 sysmsg "[Gardening] Special seed, targeting listed pot (gardeningAutoPlantNewSeed: {{gardeningAutoPlantNewSeed}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
386 endif
387 else
388 //low tier planter, plant low tier seed
389 if not inlist gardeningSpecialSeedList "dungeon seed" and findtype 51098 backpack as myNewSeed
390 //Set dungeon seed
391 setvar! gardeningSeedToPlant myNewSeed
392 elseif not inlist gardeningSpecialSeedList "mushroom spore" and findtype "mushroom spore" backpack as myNewSeed
393 //Set mushroom spore
394 setvar! gardeningSeedToPlant myNewSeed
395 elseif not inlist gardeningSpecialSeedList "melloweed seed" and findtype 51078 backpack 0 as myNewSeed
396 //Set melloweed seed
397 setvar! gardeningSeedToPlant myNewSeed
398 elseif not inlist gardeningSpecialSeedList "barley seed" and findtype 51078 backpack 2418 as myNewSeed
399 //Set barley seed
400 setvar! gardeningSeedToPlant myNewSeed
401 elseif not inlist gardeningSpecialSeedList "hops seed" and findtype 51078 backpack 2208 as myNewSeed
402 //Set hops seed
403 setvar! gardeningSeedToPlant myNewSeed
404 elseif not inlist gardeningSpecialSeedList "extremely rare seed" and findtype 22326 backpack 2465 as myNewSeed
405 //Set extremely rare seed
406 setvar! gardeningSeedToPlant myNewSeed
407 elseif not inlist gardeningSpecialSeedList "very rare seed" and findtype 22326 backpack 2661 as myNewSeed
408 //Set very rare seed
409 setvar! gardeningSeedToPlant myNewSeed
410 elseif not inlist gardeningSpecialSeedList "rare seed" and findtype 22326 backpack 1266 as myNewSeed
411 //Set rare seed
412 setvar! gardeningSeedToPlant myNewSeed
413 elseif not inlist gardeningSpecialSeedList "uncommon seed" and findtype 22326 backpack 63 as myNewSeed
414 //Set uncommon seed
415 setvar! gardeningSeedToPlant myNewSeed
416 elseif not inlist gardeningSpecialSeedList "common seed" and findtype 22326 backpack 2451 as myNewSeed
417 //Set common seed
418 setvar! gardeningSeedToPlant myNewSeed
419 elseif not inlist gardeningSpecialSeedList "very common seed" and findtype 22326 backpack 2882 as myNewSeed
420 //Set very common seed
421 setvar! gardeningSeedToPlant myNewSeed
422 elseif not inlist gardeningSpecialSeedList "extremely common seed" and findtype 22326 backpack 2401 as myNewSeed
423 //Set extremely common seed
424 setvar! gardeningSeedToPlant myNewSeed
425 endif
426 if gardeningDebugMode > 1 and find gardeningSeedToPlant backpack
427 sysmsg "[Gardening] Non listed seed, targeting non listed planter (gardeningAutoPlantNewSeed: {{gardeningAutoPlantNewSeed}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
428 endif
429 endif
430 else
431 setvar! gardeningSpecialPlanter 0
432 endif
433 endif
434
435 if find gardeningSeedToPlant backpack
436 //Seed already set
437 elseif gardeningAutoPlantNewSeed = 3 and gardeningSpecialPlanter = 1 or gardeningAutoPlantNewSeed = 1
438 //Select all types of seeds
439 if findtype 51098 backpack as myNewSeed
440 //Set dungeon seed
441 setvar! gardeningSeedToPlant myNewSeed
442 elseif findtype "mushroom spore" backpack as myNewSeed
443 //Set mushroom spore
444 setvar! gardeningSeedToPlant myNewSeed
445 elseif findtype 51078 backpack 0 as myNewSeed
446 //Set melloweed seed
447 setvar! gardeningSeedToPlant myNewSeed
448 elseif findtype 51078 backpack 2418 as myNewSeed
449 //Set barley seed
450 setvar! gardeningSeedToPlant myNewSeed
451 elseif findtype 51078 backpack 2208 as myNewSeed
452 //Set hops seed
453 setvar! gardeningSeedToPlant myNewSeed
454 elseif findtype 22326 backpack 2465 as myNewSeed
455 //Set extremely rare seed
456 setvar! gardeningSeedToPlant myNewSeed
457 elseif findtype 22326 backpack 2661 as myNewSeed
458 //Set very rare seed
459 setvar! gardeningSeedToPlant myNewSeed
460 elseif findtype 22326 backpack 1266 as myNewSeed
461 //Set rare seed
462 setvar! gardeningSeedToPlant myNewSeed
463 elseif findtype 22326 backpack 63 as myNewSeed
464 //Set uncommon seed
465 setvar! gardeningSeedToPlant myNewSeed
466 elseif findtype 22326 backpack 2451 as myNewSeed
467 //Set common seed
468 setvar! gardeningSeedToPlant myNewSeed
469 elseif findtype 22326 backpack 2882 as myNewSeed
470 //Set very common seed
471 setvar! gardeningSeedToPlant myNewSeed
472 elseif findtype 22326 backpack 2401 as myNewSeed
473 //Set extremely common seed
474 setvar! gardeningSeedToPlant myNewSeed
475 endif
476 if gardeningDebugMode > 1 and gardeningAutoPlantNewSeed = 3
477 sysmsg "[Gardening] Non listed seed, targeting listed planter (gardeningAutoPlantNewSeed: {{gardeningAutoPlantNewSeed}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
478 endif
479 endif
480
481 //Plant selected seed
482 if find gardeningSeedToPlant backpack
483 gumpresponse 2 gardeningPlantGumpID
484 wft gardeningMaxWaitForServerResponse
485 target gardeningSeedToPlant
486 settimer gardeningMinWaitTimer 0
487 getlabel backpack waitForPing
488 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
489 endwhile
490 endif
491
492 if gardeningDebugMode > 1 and insysmsg! "You plant a seed."
493 sysmsg "[Gardening] Seed planted (gardeningAutoPlantNewSeed: {{gardeningAutoPlantNewSeed}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
494 endif
495
496 endif
497
498 if "% grown" in myFlowerPotLabel or insysmsg "You plant a seed."
499 if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away."
500 //Add water and soil
501 if findtype 25570|56416|56417 backpack
502 setvar! gardeningWaterDone 0
503 else
504 setvar! gardeningWaterDone 1
505 if gardeningDebugMode > 1
506 sysmsg "[Gardening] No watering can found (Timer: {{gardeningRunTimer}} ms)" cLightBlue
507 endif
508 endif
509 if findtype 2323 backpack
510 setvar! gardeningSoilDone 0
511 else
512 setvar! gardeningSoilDone 1
513 if gardeningDebugMode > 1
514 sysmsg "[Gardening] No soil found (Timer: {{gardeningRunTimer}} ms)" cLightBlue
515 endif
516 endif
517 //Heat
518 if gardeningIgnoreHeatLevel = 0 and findtype 29868 backpack and gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away."
519 gumpresponse 3 gardeningPlantGumpID
520 waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
521 endif
522 while gardeningWaterDone != 1 or gardeningSoilDone != 1
523 if gardeningDebugMode > 0
524 sysmsg "[Gardening] Optimizing Soil&Water (Loop-Index: {{index}}, WaterDone: {{gardeningWaterDone}}, SoilDone: {{gardeningSoilDone}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
525 endif
526 //World save
527 if insysmsg "world is saving"
528 sysmsg "Waiting for world save ..."
529 settimer globalWorldSaveTimer 0
530 while timer globalWorldSaveTimer < 10000
531 if insysmsg "save complete"
532 sysmsg "The world has been saved!"
533 settimer gardeningMinWaitTimer 0
534 getlabel backpack waitForPing
535 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
536 endwhile
537 break
538 endif
539 endwhile
540 endif
541 if targetexists
542 target cancel
543 endif
544 //Water
545 if gumpexists gardeningPlantGumpID and gardeningWaterDone != 1 and findtype 25570|56416|56417 backpack as myWateringCan
546 getlabel myWateringCan myWateringCanLabel
547 if "250/250" in myWateringCanLabel
548 else
549 //Try a refill
550 dclick myWateringCan
551 wait gardeningWaitForObjectDelay
552 endif
553 //Fill to optimal
554 if not gumpexists 3929333591
555 gumpresponse 2 gardeningPlantGumpID
556 wft gardeningMaxWaitForServerResponse
557 target myWateringCan
558 waitforgump 3929333591 gardeningMaxWaitForServerResponse
559 endif
560 gumpresponse 2 3929333591
561 waitforgump 3929333591 gardeningMaxWaitForServerResponse
562 gumpclose 3929333591
563 endif
564 //Soil
565 if gumpexists gardeningPlantGumpID and gardeningSoilDone != 1 and findtype 2323 backpack as myPlantSoil
566 //Fill to optimal
567 if not gumpexists 4024474571
568 gumpresponse 2 gardeningPlantGumpID
569 wft gardeningMaxWaitForServerResponse
570 target myPlantSoil
571 waitforgump 4024474571 gardeningMaxWaitForServerResponse
572 endif
573 gumpresponse 2 4024474571
574 waitforgump 4024474571 gardeningMaxWaitForServerResponse
575 gumpclose 4024474571
576 endif
577 if gumpexists gardeningPlantGumpID
578 settimer gardeningMinWaitTimer 0
579 getlabel backpack waitForPing
580 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
581 endwhile
582 if insysmsg! "That is not a plant seed."
583 if gardeningDebugMode > 1
584 sysmsg "[Gardening] Soil&Water ... no seed planted fail (Timer: {{gardeningRunTimer}} ms)" cLightBlue
585 endif
586 break
587 elseif insysmsg! "That plant bowl is too far away."
588 if gardeningDebugMode > 1
589 sysmsg "[Gardening] Soil&Water ... out of range fail (Timer: {{gardeningRunTimer}} ms)" cLightBlue
590 endif
591 break
592 endif
593 if insysmsg "You have not yet estimated this plant's ideal water needs."
594 if gardeningDebugMode > 1
595 sysmsg "[Gardening] Soil&Water ... Taste ID water needed (Timer: {{gardeningRunTimer}} ms)" cLightBlue
596 endif
597 if findtype 29868 backpack
598 //Identify needed water amount, Planters Spade: 29868
599 gumpresponse 4 gardeningPlantGumpID
600 waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
601 else
602 overhead "|* No spade found *|" cRed
603 setvar! gardeningWaterDone 1
604 endif
605 elseif insysmsg "You add the ideal amount of water to the plant." or insysmsg "You have already met this plant's ideal water needs." or insysmsg "You have already added more water than this plant's ideal needs."
606 if gardeningDebugMode > 1
607 sysmsg "[Gardening] Soil&Water ... water optimized (Timer: {{gardeningRunTimer}} ms)" cLightBlue
608 endif
609 setvar! gardeningWaterDone 1
610 elseif insysmsg "You add some water to the plant (unable to meet ideal amount needed).."
611 if gardeningDebugMode > 1
612 sysmsg "[Gardening] Soil&Water ... water missing (Timer: {{gardeningRunTimer}} ms)" cLightBlue
613 endif
614 overhead "|* Not enough water *|" cRed
615 if gardeningSkipPlanterOverheadInfo = 0
616 overhead "Need water" cRed myFlowerPot
617 overhead " ▼ " cRed myFlowerPot
618 endif
619 setvar! gardeningWaterDone 1
620 endif
621 if insysmsg "You have not yet estimated this plant's ideal soil needs."
622 if gardeningDebugMode > 1
623 sysmsg "[Gardening] Soil&Water ... Taste ID soil needed (Timer: {{gardeningRunTimer}} ms)" cLightBlue
624 endif
625 if findtype 29868 backpack
626 //Identify needed soil amount, Planters Spade: 29868
627 gumpresponse 5 gardeningPlantGumpID
628 waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
629 else
630 overhead "|* No spade found *|" cRed
631 setvar! gardeningSoilDone 1
632 endif
633 elseif insysmsg "You add the ideal amount of soil to the plant." or insysmsg "You have already met this plant's ideal soil needs." or insysmsg "You have already added more soil than this plant's ideal needs."
634 if gardeningDebugMode > 1
635 sysmsg "[Gardening] Soil&Water ... soil optimized (Timer: {{gardeningRunTimer}} ms)" cLightBlue
636 endif
637 setvar! gardeningSoilDone 1
638 elseif insysmsg "You add some soil to the plant (unable to meet ideal amount needed).."
639 if gardeningDebugMode > 1
640 sysmsg "[Gardening] Soil&Water ... soil missing (Timer: {{gardeningRunTimer}} ms)" cLightBlue
641 endif
642 overhead "|* Not enough soil *|" cRed
643 if gardeningSkipPlanterOverheadInfo = 0
644 overhead "Need soil" cRed myFlowerPot
645 overhead " ▼ " cRed myFlowerPot
646 endif
647 setvar! gardeningSoilDone 1
648 endif
649 else
650 if gardeningDebugMode > 1
651 sysmsg "[Gardening] Soil&Water ... plant gump not found break (Timer: {{gardeningRunTimer}} ms)" cLightBlue
652 endif
653 break
654 endif
655 endwhile
656 //Work buffs and debuffs
657 if findtype 6187|6193|29343|20500|20499|20498|28719|11942|28741|29217|19403|4154|20503|20502|20501 backpack and not insysmsg! "That is not a plant seed." and not insysmsg! "That plant bowl is too far away."
658 //Remove debuffs
659 if gardeningSmartMode = 1
660 //Kill negativ effects if stronger than positive effects
661 if gardeningDebugMode > 0
662 sysmsg "[Gardening] Removing debuffs - smart mode (Timer: {{gardeningRunTimer}} ms)" cLightBlue
663 endif
664 while not insysmsg! "That plant bowl is too far away."
665 //World save
666 if insysmsg "world is saving"
667 sysmsg "Waiting for world save ..."
668 settimer globalWorldSaveTimer 0
669 while timer globalWorldSaveTimer < 10000
670 if insysmsg "save complete"
671 sysmsg "The world has been saved!"
672 settimer gardeningMinWaitTimer 0
673 getlabel backpack waitForPing
674 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
675 endwhile
676 break
677 endif
678 endwhile
679 endif
680 if targetexists
681 target cancel
682 endif
683 gumpclose gardeningPlantGumpID
684 clearsysmsg
685 setvar! gardeningClearPestilentEffects 0
686 setvar! gardeningClearFungalEffects 0
687 setvar! gardeningClearCreatureEffects 0
688 setvar! gardeningBees 0
689 setvar! gardeningActiveBrainFungus 0
690 if not listexists gardeningFungiCounterList
691 createlist gardeningFungiCounterList
692 else
693 clearlist gardeningFungiCounterList
694 endif
695 if not listexists gardeningCreatureCounterList
696 createlist gardeningCreatureCounterList
697 else
698 clearlist gardeningCreatureCounterList
699 endif
700 settimer gardeningMinWaitTimer 0
701 while timer gardeningMinWaitTimer < gardeningWaitForObjectDelay
702 dclick myFlowerPot
703 waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
704 while timer gardeningMinWaitTimer < gardeningWaitForObjectDelay
705 if insysmsg "You must wait to perform another action."
706 wait gardeningMinWaitForServerResponse
707 settimer gardeningMinWaitTimer 0
708 break
709 endif
710 endwhile
711 endwhile
712 setvar! gardeningGumpResponse 10
713 gumpresponse gardeningGumpResponse gardeningPlantGumpID
714 getlabel backpack waitForPing
715 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
716 endwhile
717 while gumpexists gardeningPlantGumpID and not insysmsg "Permanent" and not insysmsg "That plant effect no longer exists." and not insysmsg! "That plant bowl is too far away."
718 if insysmsg "Brain Fungi"
719 setvar! gardeningActiveBrainFungus 1
720 endif
721 //Always remove pestilent effects - there are no positive ones
722 if insysmsg "Pestilent" and findtype 6187 backpack
723 setvar! gardeningClearPestilentEffects 1
724 endif
725 //Fungi
726 if findtype 6193 backpack
727 if insysmsg! "Black Mushroom" or insysmsg! "White Mushroom" or insysmsg! "Red Mushroom"
728 if gardeningIgnoreHeatLevel = 1
729 if insysmsg "Black Mushroom"
730 endif
731 endif
732 if insysmsg "Troop"
733 pushlist gardeningFungiCounterList "1"
734 elseif insysmsg "Cluster"
735 pushlist gardeningFungiCounterList "1"
736 pushlist gardeningFungiCounterList "1"
737 elseif insysmsg "Grove"
738 pushlist gardeningFungiCounterList "1"
739 pushlist gardeningFungiCounterList "1"
740 pushlist gardeningFungiCounterList "1"
741 endif
742 endif
743 if insysmsg! "Orange Mushroom" or insysmsg! "Green Mushroom" or insysmsg! "Blue Mushroom"
744 if list gardeningFungiCounterList > 0
745 if gardeningIgnoreHeatLevel = 1
746 if insysmsg "Orange Mushroom"
747 endif
748 endif
749 if insysmsg "Troop"
750 poplist gardeningFungiCounterList front
751 elseif insysmsg "Cluster"
752 for 2
753 poplist gardeningFungiCounterList front
754 if list gardeningFungiCounterList = 0
755 break
756 endif
757 endfor
758 elseif insysmsg "Grove"
759 for 3
760 poplist gardeningFungiCounterList front
761 if list gardeningFungiCounterList = 0
762 break
763 endif
764 endfor
765 endif
766 endif
767 endif
768 endif
769 //Creatures
770 if findtype 29343 backpack
771 //Bees
772 if insysmsg "Bees"
773 setvar! gardeningBees 1
774 elseif insysmsg! "Reduces total growth rate"
775 for 10
776 pushlist gardeningCreatureCounterList "1"
777 endfor
778 if insysmsg "Reduces total growth rate by 10%"
779 elseif insysmsg "Reduces total growth rate by 11%"
780 pushlist gardeningCreatureCounterList "1"
781 elseif insysmsg "Reduces total growth rate by 12%"
782 pushlist gardeningCreatureCounterList "1"
783 pushlist gardeningCreatureCounterList "1"
784 elseif insysmsg "Reduces total growth rate by 13%"
785 pushlist gardeningCreatureCounterList "1"
786 pushlist gardeningCreatureCounterList "1"
787 pushlist gardeningCreatureCounterList "1"
788 elseif insysmsg "Reduces total growth rate by 14%"
789 for 4
790 pushlist gardeningCreatureCounterList "1"
791 endfor
792 elseif insysmsg "Reduces total growth rate by 15%"
793 for 5
794 pushlist gardeningCreatureCounterList "1"
795 endfor
796 elseif insysmsg "Reduces total growth rate by 16%"
797 for 6
798 pushlist gardeningCreatureCounterList "1"
799 endfor
800 elseif insysmsg "Reduces total growth rate by 17%"
801 for 7
802 pushlist gardeningCreatureCounterList "1"
803 endfor
804 elseif insysmsg "Reduces total growth rate by 18%"
805 for 8
806 pushlist gardeningCreatureCounterList "1"
807 endfor
808 elseif insysmsg "Reduces total growth rate by 19%"
809 for 9
810 pushlist gardeningCreatureCounterList "1"
811 endfor
812 elseif insysmsg "Reduces total growth rate by 20%"
813 for 10
814 pushlist gardeningCreatureCounterList "1"
815 endfor
816 endif
817 endif
818 endif
819 if gardeningGumpResponse = 10
820 setvar! gardeningGumpResponse 11
821 elseif gardeningGumpResponse = 11
822 setvar! gardeningGumpResponse 12
823 elseif gardeningGumpResponse = 12
824 setvar! gardeningGumpResponse 13
825 elseif gardeningGumpResponse = 13
826 if ingump "Perma" 3224608375
827 break
828 else
829 gumpresponse 7 gardeningPlantGumpID
830 setvar! gardeningGumpResponse 10
831 waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
832 endif
833 endif
834 gumpresponse gardeningGumpResponse gardeningPlantGumpID
835 settimer gardeningMinWaitTimer 0
836 getlabel backpack waitForPing
837 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
838 endwhile
839 endwhile
840 //Remove debuffs if necessary
841 if list gardeningFungiCounterList > 0 and findtype 6193 backpack
842 setvar! gardeningClearFungalEffects 1
843 endif
844 if gardeningBees = 1 and list gardeningCreatureCounterList > 50 and findtype 29343 backpack
845 setvar! gardeningClearCreatureEffects 1
846 elseif gardeningBees = 0 and list gardeningCreatureCounterList > 0 and findtype 29343 backpack
847 setvar! gardeningClearCreatureEffects 1
848 endif
849 if gardeningClearPestilentEffects = 0 and gardeningClearFungalEffects = 0 and gardeningClearCreatureEffects = 0
850 if gardeningDebugMode > 0
851 sysmsg "[Gardening] ... debuff removal finished (Timer: {{gardeningRunTimer}} ms)" cLightBlue
852 endif
853 break
854 elseif gardeningActiveBrainFungus = 1 and gardeningIgnoreBrainFungus > 0
855 if gardeningDebugMode > 0
856 sysmsg "[Gardening] ... debuff removal brain fungus break (Timer: {{gardeningRunTimer}} ms)" cLightBlue
857 endif
858 break
859 else
860 if targetexists
861 target cancel
862 endif
863 while gardeningActiveBrainFungus = 1 and gumpexists gardeningPlantGumpID and findtype 6193 backpack as myFungicide and not insysmsg! "That plant bowl is too far away."
864 if gardeningDebugMode > 1
865 sysmsg "[Gardening] ... trying to remove brain fungus (Timer: {{gardeningRunTimer}} ms)" cLightBlue
866 endif
867 gumpresponse 2 gardeningPlantGumpID
868 wft gardeningMaxWaitForServerResponse
869 target myFungicide
870 settimer gardeningMinWaitTimer 0
871 getlabel backpack waitForPing
872 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
873 endwhile
874 if insysmsg "You use a fungicide to remove a fungus from the plant bowl (Brain Fungi)."
875 setvar! gardeningActiveBrainFungus 0
876 if gardeningDebugMode > 1
877 sysmsg "[Gardening] ... brain fungus removed (Timer: {{gardeningRunTimer}} ms)" cLightBlue
878 endif
879 break
880 endif
881 endwhile
882 if gardeningActiveBrainFungus = 0
883 if gardeningClearPestilentEffects = 1 and gumpexists gardeningPlantGumpID and findtype 6187 backpack and not insysmsg! "That plant bowl is too far away."
884 while gumpexists gardeningPlantGumpID and not insysmsg "There are no active pestilent effects in this plant bowl." and not insysmsg! "That plant bowl is too far away." and findtype 6187 backpack as myDefoliant
885 if gardeningDebugMode > 1
886 sysmsg "[Gardening] ... removing pestilent effect (Timer: {{gardeningRunTimer}} ms)" cLightBlue
887 endif
888 gumpresponse 2 gardeningPlantGumpID
889 wft gardeningMaxWaitForServerResponse
890 target myDefoliant
891 settimer gardeningMinWaitTimer 0
892 getlabel backpack waitForPing
893 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
894 endwhile
895 endwhile
896 if gardeningClearFungalEffects = 0 and gardeningClearCreatureEffects = 0
897 if gardeningDebugMode > 0
898 sysmsg "[Gardening] ... debuffs cleared (Timer: {{gardeningRunTimer}} ms)" cLightBlue
899 endif
900 break
901 endif
902 endif
903 if gardeningClearFungalEffects = 1 and gumpexists gardeningPlantGumpID and findtype 6193 backpack as myFungicide and not insysmsg! "That plant bowl is too far away."
904 if gardeningDebugMode > 1
905 sysmsg "[Gardening] ... removing fungal effect (Timer: {{gardeningRunTimer}} ms)" cLightBlue
906 endif
907 gumpresponse 2 gardeningPlantGumpID
908 wft gardeningMaxWaitForServerResponse
909 target myFungicide
910 settimer gardeningMinWaitTimer 0
911 getlabel backpack waitForPing
912 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
913 endwhile
914 endif
915 if gardeningClearCreatureEffects = 1 and gumpexists gardeningPlantGumpID and findtype 29343 backpack as myFarmerAlmanac and not insysmsg! "That plant bowl is too far away."
916 if gardeningDebugMode > 1
917 sysmsg "[Gardening] ... removing creature effect (Timer: {{gardeningRunTimer}} ms)" cLightBlue
918 endif
919 gumpresponse 2 gardeningPlantGumpID
920 wft gardeningMaxWaitForServerResponse
921 target myFarmerAlmanac
922 settimer gardeningMinWaitTimer 0
923 getlabel backpack waitForPing
924 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
925 endwhile
926 endif
927 else
928 if gardeningDebugMode > 1
929 sysmsg "[Gardening] Brain fungus removal fail (Timer: {{gardeningRunTimer}} ms)" cLightBlue
930 endif
931 overhead "|* Brain fungus removal failed *|" cRed
932 if gardeningSkipPlanterOverheadInfo = 0
933 overhead "Cannot clear debuffs" cRed myFlowerPot
934 endif
935 break
936 endif
937 endif
938 endwhile
939 else
940 //Kill all negativ effects without considering collateral damage to (potentially stronger) positive effects
941 if gardeningDebugMode > 0
942 sysmsg "[Gardening] Removing debuffs - normal mode (Timer: {{gardeningRunTimer}} ms)" cLightBlue
943 endif
944
945 //World save
946 if insysmsg "world is saving"
947 sysmsg "Waiting for world save ..."
948 settimer globalWorldSaveTimer 0
949 while timer globalWorldSaveTimer < 10000
950 if insysmsg "save complete"
951 sysmsg "The world has been saved!"
952 settimer gardeningMinWaitTimer 0
953 getlabel backpack waitForPing
954 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
955 endwhile
956 break
957 endif
958 endwhile
959 endif
960
961 if targetexists
962 target cancel
963 endif
964
965 gumpclose gardeningPlantGumpID
966 settimer gardeningMinWaitTimer 0
967 while timer gardeningMinWaitTimer < gardeningWaitForObjectDelay
968 dclick myFlowerPot
969 waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
970 while timer gardeningMinWaitTimer < gardeningWaitForObjectDelay
971 if insysmsg "You must wait to perform another action."
972 wait gardeningMinWaitForServerResponse
973 settimer gardeningMinWaitTimer 0
974 break
975 endif
976 endwhile
977 endwhile
978
979 while gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away."
980 //Collect all active condition system messages
981 gumpresponse 10 gardeningPlantGumpID
982 waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
983 gumpresponse 11 gardeningPlantGumpID
984 waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
985 gumpresponse 12 gardeningPlantGumpID
986 waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
987 gumpresponse 13 gardeningPlantGumpID
988 waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
989 if ingump "Perma" 3224608375 or insysmsg! "Permanent" or insysmsg "That plant effect no longer exists."
990 break
991 else
992 gumpresponse 7 gardeningPlantGumpID
993 waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
994 endif
995 endwhile
996
997 if insysmsg "Brain Fungi"
998 setvar! gardeningActiveBrainFungus 1
999 //Remove brain fungus
1000 while gardeningIgnoreBrainFungus = 0 and gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and findtype 6193 backpack as myFungicide and not insysmsg "There are no active fungal effects in this plant bowl."
1001 if gardeningDebugMode > 1
1002 sysmsg "[Gardening] ... removing brain fungus (Timer: {{gardeningRunTimer}} ms)" cLightBlue
1003 endif
1004 gumpresponse 2 gardeningPlantGumpID
1005 wft gardeningMaxWaitForServerResponse
1006 target myFungicide
1007 settimer gardeningMinWaitTimer 0
1008 getlabel backpack waitForPing
1009 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1010 endwhile
1011 waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
1012 if insysmsg "You use a fungicide to remove a fungus from the plant bowl (Brain Fungi)."
1013 setvar! gardeningActiveBrainFungus 0
1014 if gardeningDebugMode > 1
1015 sysmsg "[Gardening] ... brain fungus removed (Index: {{Index}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1016 endif
1017 break
1018 endif
1019 endwhile
1020 else
1021 setvar! gardeningActiveBrainFungus 0
1022 endif
1023
1024 if insysmsg "Reduces" and gardeningActiveBrainFungus = 0
1025 if insysmsg "Permanent"
1026 endif
1027 gumpclose gardeningPlantGumpID
1028 settimer gardeningMinWaitTimer 0
1029
1030 while timer gardeningMinWaitTimer < gardeningWaitForObjectDelay
1031 dclick myFlowerPot
1032 waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
1033 while timer gardeningMinWaitTimer < gardeningWaitForObjectDelay
1034 if insysmsg "You must wait to perform another action."
1035 wait gardeningMinWaitForServerResponse
1036 settimer gardeningMinWaitTimer 0
1037 break
1038 endif
1039 endwhile
1040 endwhile
1041
1042 gumpresponse 10 gardeningPlantGumpID
1043 settimer gardeningMinWaitTimer 0
1044 getlabel backpack waitForPing
1045
1046 setvar! gardeningClearPestilentEffects 1
1047 setvar! gardeningClearFungalEffects 1
1048 setvar! gardeningClearCreatureEffects 1
1049
1050 setvar! gardeningGumpResponse 10
1051 setvar! gardeningNextGumpResponse 0
1052
1053 while insysmsg! "Reduces" and gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "That plant effect no longer exists." and not insysmsg "Permanent"
1054 if insysmsg! "(Pestilent Effect)" and not findtype 6187 backpack
1055 setvar! gardeningClearPestilentEffects 0
1056 setvar! gardeningNextGumpResponse 1
1057 endif
1058 if insysmsg! "(Fungal Effect)" and not findtype 6193 backpack
1059 setvar! gardeningClearFungalEffects 0
1060 setvar! gardeningNextGumpResponse 1
1061 endif
1062 if insysmsg! "(Creature Effect)" and not findtype 29343 backpack
1063 setvar! gardeningClearCreatureEffects 0
1064 setvar! gardeningNextGumpResponse 1
1065 endif
1066 if gardeningClearPestilentEffects = 1 and insysmsg "(Pestilent Effect)" and findtype 6187 backpack as myDefoliant
1067 if gardeningDebugMode > 1
1068 sysmsg "[Gardening] ... removing pestilent effect (Timer: {{gardeningRunTimer}} ms)" cLightBlue
1069 endif
1070 gumpresponse 2 gardeningPlantGumpID
1071 wft gardeningMaxWaitForServerResponse
1072 target myDefoliant
1073 settimer gardeningMinWaitTimer 0
1074 getlabel backpack waitForPing
1075 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1076 endwhile
1077 elseif gardeningClearFungalEffects = 1 and insysmsg "(Fungal Effect)" and findtype 6193 backpack as myFungicide
1078 if gardeningDebugMode > 1
1079 sysmsg "[Gardening] ... removing fungal effect (Timer: {{gardeningRunTimer}} ms)" cLightBlue
1080 endif
1081 gumpresponse 2 gardeningPlantGumpID
1082 wft gardeningMaxWaitForServerResponse
1083 target myFungicide
1084 settimer gardeningMinWaitTimer 0
1085 getlabel backpack waitForPing
1086 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1087 endwhile
1088 elseif gardeningClearCreatureEffects = 1 and insysmsg "(Creature Effect)" and findtype 29343 backpack as myFarmerAlmanac
1089 if gardeningDebugMode > 1
1090 sysmsg "[Gardening] ... removing creature effect (Timer: {{gardeningRunTimer}} ms)" cLightBlue
1091 endif
1092 gumpresponse 2 gardeningPlantGumpID
1093 wft gardeningMaxWaitForServerResponse
1094 target myFarmerAlmanac
1095 settimer gardeningMinWaitTimer 0
1096 getlabel backpack waitForPing
1097 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1098 endwhile
1099 endif
1100 if gardeningClearPestilentEffects = 0 and gardeningClearFungalEffects = 0 and gardeningClearCreatureEffects = 0
1101 break
1102 elseif gardeningNextGumpResponse = 1
1103 if gardeningGumpResponse = 10
1104 setvar! gardeningGumpResponse 11
1105 elseif gardeningGumpResponse = 11
1106 setvar! gardeningGumpResponse 12
1107 elseif gardeningGumpResponse = 12
1108 setvar! gardeningGumpResponse 13
1109 elseif gardeningGumpResponse = 13
1110 gumpresponse 7 gardeningPlantGumpID
1111 setvar! gardeningGumpResponse 10
1112 waitforgump gardeningPlantGumpID gardeningMaxWaitForServerResponse
1113 endif
1114 setvar! gardeningNextGumpResponse 0
1115 endif
1116 gumpresponse gardeningGumpResponse gardeningPlantGumpID
1117 settimer gardeningMinWaitTimer 0
1118 getlabel backpack waitForPing
1119 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1120 endwhile
1121 endwhile
1122 elseif gardeningActiveBrainFungus = 1 and gardeningIgnoreBrainFungus = 0
1123 if gardeningDebugMode > 0
1124 sysmsg "[Gardening] Brain fungus removal fail (Timer: {{gardeningRunTimer}} ms)" cLightBlue
1125 endif
1126 overhead "|* Brain fungus removal failed *|" cRed
1127 overhead "Cannot clear debuffs" cRed myFlowerPot
1128 elseif gardeningActiveBrainFungus = 1 and gardeningIgnoreBrainFungus > 0
1129 if gardeningDebugMode > 0
1130 sysmsg "[Gardening] ... debuff removal brain fungus break (Timer: {{gardeningRunTimer}} ms)" cLightBlue
1131 endif
1132 endif
1133 endif
1134
1135 //Add buff items
1136 if gardeningDebugMode > 0
1137 sysmsg "[Gardening] Checking buffs (Timer: {{gardeningRunTimer}} ms)" cLightBlue
1138 endif
1139 if gardeningActiveBrainFungus = 0 or gardeningIgnoreBrainFungus < 2
1140 if gardeningSelectiveBuffs = 1 or gardeningSelectiveBuffs = 2
1141 if listexists gardeningSelectiveBuffList
1142 if "large wooden planter" in myFlowerPotLabel or "rustic planter" in myFlowerPotLabel or "rustic window planter" in myFlowerPotLabel
1143 if inlist gardeningSelectiveBuffList "large wooden planter"
1144 setvar! gardeningSpecialPlanter 1
1145 endif
1146 elseif "small wooden planter" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "small wooden planter"
1147 setvar! gardeningSpecialPlanter 1
1148 elseif "huge steel plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "huge steel plant bowl"
1149 setvar! gardeningSpecialPlanter 1
1150 elseif "large steel plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "large steel plant bowl"
1151 setvar! gardeningSpecialPlanter 1
1152 elseif "average steel plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "average steel plant bowl"
1153 setvar! gardeningSpecialPlanter 1
1154 elseif "small steel plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "small steel plant bowl"
1155 setvar! gardeningSpecialPlanter 1
1156 elseif "tiny steel plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "tiny steel plant bowl"
1157 setvar! gardeningSpecialPlanter 1
1158 elseif "huge clay plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "huge clay plant bowl"
1159 setvar! gardeningSpecialPlanter 1
1160 elseif "large clay plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "large clay plant bowl"
1161 setvar! gardeningSpecialPlanter 1
1162 elseif "average clay plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "average clay plant bowl"
1163 setvar! gardeningSpecialPlanter 1
1164 elseif "small clay plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "small clay plant bowl"
1165 setvar! gardeningSpecialPlanter 1
1166 elseif "tiny clay plant bowl" in myFlowerPotLabel and inlist gardeningSelectiveBuffList "tiny clay plant bowl"
1167 setvar! gardeningSpecialPlanter 1
1168 else
1169 setvar! gardeningSpecialPlanter 0
1170 endif
1171 else
1172 setvar! gardeningSpecialPlanter 1
1173 endif
1174 else
1175 setvar! gardeningSpecialPlanter 1
1176 endif
1177 if gardeningSelectiveBuffs = 1 and gardeningSpecialPlanter = 1 or gardeningSelectiveBuffs = 0
1178 //Apply superior, exceptional and store-bought items
1179 if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Growth Serum" and findtype 20500|20499|20498 backpack as myNewGrowthSerum
1180 if gardeningDebugMode > 1
1181 sysmsg "[Gardening] ... installing growth serum (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1182 endif
1183 gumpresponse 2 gardeningPlantGumpID
1184 wft gardeningMaxWaitForServerResponse
1185 target myNewGrowthSerum
1186 settimer gardeningMinWaitTimer 0
1187 getlabel backpack waitForPing
1188 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1189 endwhile
1190 endif
1191 if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Heat Filter" and findtype 28719|11942|28741 backpack as myNewHeatFilter
1192 if gardeningDebugMode > 1
1193 sysmsg "[Gardening] ... installing heat filter (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1194 endif
1195 gumpresponse 2 gardeningPlantGumpID
1196 wft gardeningMaxWaitForServerResponse
1197 target myNewHeatFilter
1198 settimer gardeningMinWaitTimer 0
1199 getlabel backpack waitForPing
1200 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1201 endwhile
1202 endif
1203 if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Fertilizer" and findtype 29217|19403|4154 backpack as myNewFertilizer
1204 if gardeningDebugMode > 1
1205 sysmsg "[Gardening] ... installing fertilizer (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1206 endif
1207 gumpresponse 2 gardeningPlantGumpID
1208 wft gardeningMaxWaitForServerResponse
1209 target myNewFertilizer
1210 settimer gardeningMinWaitTimer 0
1211 getlabel backpack waitForPing
1212 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1213 endwhile
1214 endif
1215 if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Purified Water" and findtype 20503|20502|20501 backpack as myNewPurifiedWater
1216 if gardeningDebugMode > 1
1217 sysmsg "[Gardening] ... installing purified water (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1218 endif
1219 gumpresponse 2 gardeningPlantGumpID
1220 wft gardeningMaxWaitForServerResponse
1221 target myNewPurifiedWater
1222 settimer gardeningMinWaitTimer 0
1223 getlabel backpack waitForPing
1224 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1225 endwhile
1226 endif
1227 elseif gardeningSelectiveBuffs = 2 and gardeningSpecialPlanter = 1
1228 //Apply superior and exceptional items only
1229 if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Growth Serum" and findtype 20500|20499 backpack as myNewGrowthSerum
1230 if gardeningDebugMode > 1
1231 sysmsg "[Gardening] ... installing growth serum (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1232 endif
1233 gumpresponse 2 gardeningPlantGumpID
1234 wft gardeningMaxWaitForServerResponse
1235 target myNewGrowthSerum
1236 settimer gardeningMinWaitTimer 0
1237 getlabel backpack waitForPing
1238 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1239 endwhile
1240 endif
1241 if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Heat Filter" and findtype 28719|11942 backpack as myNewHeatFilter
1242 if gardeningDebugMode > 1
1243 sysmsg "[Gardening] ... installing heat filter (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1244 endif
1245 gumpresponse 2 gardeningPlantGumpID
1246 wft gardeningMaxWaitForServerResponse
1247 target myNewHeatFilter
1248 settimer gardeningMinWaitTimer 0
1249 getlabel backpack waitForPing
1250 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1251 endwhile
1252 endif
1253 if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Fertilizer" and findtype 29217|19403 backpack as myNewFertilizer
1254 if gardeningDebugMode > 1
1255 sysmsg "[Gardening] ... installing fertilizer (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1256 endif
1257 gumpresponse 2 gardeningPlantGumpID
1258 wft gardeningMaxWaitForServerResponse
1259 target myNewFertilizer
1260 settimer gardeningMinWaitTimer 0
1261 getlabel backpack waitForPing
1262 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1263 endwhile
1264 endif
1265 if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Purified Water" and findtype 20503|20502 backpack as myNewPurifiedWater
1266 if gardeningDebugMode > 1
1267 sysmsg "[Gardening] ... installing purified water (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1268 endif
1269 gumpresponse 2 gardeningPlantGumpID
1270 wft gardeningMaxWaitForServerResponse
1271 target myNewPurifiedWater
1272 settimer gardeningMinWaitTimer 0
1273 getlabel backpack waitForPing
1274 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1275 endwhile
1276 endif
1277 elseif gardeningSelectiveBuffs = 2 and gardeningSpecialPlanter = 0
1278 //Apply only store-bought items
1279 if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Growth Serum" and findtype 20498 backpack as myNewGrowthSerum
1280 if gardeningDebugMode > 1
1281 sysmsg "[Gardening] ... installing growth serum (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1282 endif
1283 gumpresponse 2 gardeningPlantGumpID
1284 wft gardeningMaxWaitForServerResponse
1285 target myNewGrowthSerum
1286 settimer gardeningMinWaitTimer 0
1287 getlabel backpack waitForPing
1288 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1289 endwhile
1290 endif
1291 if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Heat Filter" and findtype 28741 backpack as myNewHeatFilter
1292 if gardeningDebugMode > 1
1293 sysmsg "[Gardening] ... installing heat filter (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1294 endif
1295 gumpresponse 2 gardeningPlantGumpID
1296 wft gardeningMaxWaitForServerResponse
1297 target myNewHeatFilter
1298 settimer gardeningMinWaitTimer 0
1299 getlabel backpack waitForPing
1300 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1301 endwhile
1302 endif
1303 if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Fertilizer" and findtype 4154 backpack as myNewFertilizer
1304 if gardeningDebugMode > 1
1305 sysmsg "[Gardening] ... installing fertilizer (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1306 endif
1307 gumpresponse 2 gardeningPlantGumpID
1308 wft gardeningMaxWaitForServerResponse
1309 target myNewFertilizer
1310 settimer gardeningMinWaitTimer 0
1311 getlabel backpack waitForPing
1312 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1313 endwhile
1314 endif
1315 if gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away." and not insysmsg "Purified Water" and findtype 20501 backpack as myNewPurifiedWater
1316 if gardeningDebugMode > 1
1317 sysmsg "[Gardening] ... installing purified water (gardeningSelectiveBuffs: {{gardeningSelectiveBuffs}}, gardeningSpecialPlanter: {{gardeningSpecialPlanter}}, Timer: {{gardeningRunTimer}} ms)" cLightBlue
1318 endif
1319 gumpresponse 2 gardeningPlantGumpID
1320 wft gardeningMaxWaitForServerResponse
1321 target myNewPurifiedWater
1322 settimer gardeningMinWaitTimer 0
1323 getlabel backpack waitForPing
1324 while timer gardeningMinWaitTimer < gardeningMinWaitForServerResponse
1325 endwhile
1326 endif
1327 endif
1328 endif
1329 endif
1330 //Labor and Toil
1331 if findtype 29868 backpack as myPlanterSpade and gumpexists gardeningPlantGumpID and not insysmsg! "That plant bowl is too far away."
1332 if gardeningDebugMode > 1
1333 sysmsg "[Gardening] ... labor and toil (Timer: {{gardeningRunTimer}} ms)" cLightBlue
1334 endif
1335 if not gumpexists 1429840072
1336 gumpresponse 2 gardeningPlantGumpID
1337 wft gardeningMaxWaitForServerResponse
1338 target myPlanterSpade
1339 waitforgump 1429840072 gardeningMaxWaitForServerResponse
1340 endif
1341 gumpresponse 6 1429840072
1342 waitforgump 1429840072 gardeningMaxWaitForServerResponse
1343 gumpclose 1429840072
1344 endif
1345 endif
1346 endif
1347
1348 gumpclose gardeningPlantGumpID
1349
1350 if not insysmsg "That is not a plant seed." and not insysmsg "That plant bowl is too far away."
1351 if gardeningSkipPlanterOverheadInfo = 0
1352 overhead "Done" cGreen myFlowerPot
1353 overhead " ▼ " cGreen myFlowerPot
1354 endif
1355 if gardeningDebugMode > 0
1356 sysmsg "[Gardening] Plant Done (Serial: {{myFlowerPot}}) ... Timer: {{gardeningRunTimer}} ms" cLightBlue
1357 endif
1358 @ignore myFlowerPot
1359 else
1360 if gardeningSkipPlanterOverheadInfo = 0
1361 overhead "Failed" cRed myFlowerPot
1362 overhead " ▼ " cRed myFlowerPot
1363 endif
1364 if gardeningDebugMode > 0
1365 sysmsg "[Gardening] Plant Failed (Serial: {{myFlowerPot}}) ... Timer: {{gardeningRunTimer}} ms" cLightBlue
1366 endif
1367 endif
1368
1369 settimer gardeningOverheadTimer -500
1370 endif
1371
1372endwhile
1373
1374//Cleanup
1375removetimer globalWorldSaveTimer
1376removetimer gardeningOverheadTimer
1377removetimer gardeningRunTimer
1378removetimer gardeningMinWaitTimer
1379removetimer gardeningRestartTimer
1380removelist gardeningSelectiveBuffList
1381removelist gardeningSpecialSeedList
1382removelist gardeningSpecialPlanterList
1383removelist gardeningFungiCounterList
1384removelist gardeningCreatureCounterList
1385@clearignore
1386
1387setvar! gardeningDone 1
1388overhead "|* Gardening Done *|" cGreen
1389
1390//General gardening information and relevant system messages
1391 #Plant gump ID gardeningPlantGumpID
1392 #Effects info button: gumpresponse 10 - 13
1393 #Effects next page arrow: gumpresponse 7
1394 #Water gump ID 3929333591
1395 #Soil gump ID 4024474571
1396 #Spade gump ID 1429840072
1397 #Flower pot getlabel info with seed placed: "% grown)" -> in progress, "ready for harvest" -> done
1398 #Always remove pestilent effects, because there are no positive ones
1399 #Mushroom effect strength (good and bad): troop (50 %) -> cluster (100 %) -> grove (150 %)
1400 # BAD <-> GOOD
1401 #black mushroom <-> orange mushroom (heat)
1402 #white mushroom <-> green mushroom (soil)
1403 #red mushroom <-> blue mushroom (water)
1404
1405 //Watering Can (only works with item in backpack, game does not allow item to be on ground)
1406 #Fill can:
1407 #You completely fill the water container.
1408 #You partialy fill the watering can from what water you can find nearby.
1409 #You do not see any nearby water containers to fill this from.
1410 #Water plant:
1411 #You add the ideal amount of water to the plant.
1412 #You add some water to the plant (unable to meet ideal amount needed)..
1413 #Water needed:
1414 #You have not yet estimated this plant's ideal water needs.
1415 #You have already met this plant's ideal water needs.
1416 #Too much water:
1417 #You have already added more water than this plant's ideal needs.
1418
1419 //Soil (only works with item in backpack, game does not allow item to be on ground)
1420 #Add soil:
1421 #You add the ideal amount of soil to the plant.
1422 #You add some soil to the plant (unable to meet ideal amount needed)..
1423 #Soil needed:
1424 #You have not yet estimated this plant's ideal soil needs.
1425 #You have already met this plant's ideal soil needs.
1426 #Too much soil:
1427 #You have already added more soil than this plant's ideal needs.
1428
1429 //Buff items (better quality items add prefixes and change the % values, use basic item description until ":" to descriminate system messages from buffs/debuffs)
1430 #Growth Serum: Increases total growth rate by ...%.
1431 #Heat Filter: Increases the growth impact of achieving an ideal heat level by ...%.
1432 #Fertilizer: Increases the growth impact of achieving an ideal soil level by ...%.
1433 #Purified Water: Increases the growth impact of achieving an ideal water level by ...%.
1434
1435 //Hostile effects sysmsgs
1436
1437 //Creature - all done: There are no active creature effects in this plant bowl.
1438 #Flies Infestation: Reduces total growth rate by 10% (Creature Effect).
1439 #Rat Infestation: Reduces total growth rate by 11% (Creature Effect).
1440 #Frog Infestation: Reduces total growth rate by 12% (Creature Effect).
1441 #Giant Slug Infestation: Reduces total growth rate by 13% (Creature Effect).
1442 #?
1443 #Giant Locust Infestation: Reduces total growth rate by 15% (Creature Effect).
1444 #Goat Infestation: Reduces total growth rate by 16% (Creature Effect).
1445 #Giant Beetle Infestation: Reduces total growth rate by 17% (Creature Effect).
1446 #Juvenile Crawler Infestation: Reduces total growth rate by 18% (Creature Effect).
1447 #Deer Infestation: Reduces total growth rate by 19% (Creature Effect).
1448 #Plaguemite Infestation: Reduces total growth rate by 20% (Creature Effect).
1449
1450 //Fungal - all done sysmsg: There are no active fungal effects in this plant bowl.
1451 #Brain Fungi: Has a 66% chance to negate the effects of Defoliants, Fungicides, and Farmer's Almanacs when used.
1452 #Remove fail sysmsg: A sentient brain fungi has adapted and negated the effects of your fungicide!
1453 #Remove success sysmsg: You use a fungicide to remove a fungus from the plant bowl (Brain Fungi).
1454
1455 #Black Mushroom Troop: Reduces the growth impact of achieving an ideal heat level by 50% (Fungal Effect).
1456 #Black Mushroom Cluster: Reduces the growth impact of achieving an ideal heat level by 100% (Fungal Effect).
1457 #Black Mushroom Grove: Reduces the growth impact of achieving an ideal heat level by 150% (Fungal Effect).
1458 #Red Mushroom Troop: Reduces the growth impact of achieving an ideal water level by 50% (Fungal Effect).
1459 #Red Mushroom Cluster: Reduces the growth impact of achieving an ideal water level by 100% (Fungal Effect).
1460 #Red Mushroom Grove: Reduces the growth impact of achieving an ideal water level by 150% (Fungal Effect).
1461 #White Mushroom Troop: Reduces the growth impact of achieving an ideal soil level by 50% (Fungal Effect).
1462 #White Mushroom Cluster: Reduces the growth impact of achieving an ideal soil level by 100% (Fungal Effect).
1463 #White Mushroom Grove: Reduces the growth impact of achieving an ideal soil level by 150% (Fungal Effect).
1464
1465 //Pestilent - all done: There are no active pestilent effects in this plant bowl.
1466 #Nox Cloud: Reduces the growth impact of achieving an ideal heat level by 75% (Pestilent Effect).
1467 #Strange Slime: Reduces the growth impact of achieving an ideal soil level by 75% (Pestilent Effect).
1468 #Deathmold: Reduces the growth impact of achieving an ideal water level by 75% (Pestilent Effect).
1469 #Corpseweed: Reduces the growth impact of achieving an ideal heat, water, and soil level by 25 each% (Pestilent Effect).
1470
1471 //Beneficial effects sysmsgs
1472
1473 #Lucky Clovers (Cannot be removed): Increases total growth rate by 200%.
1474
1475 //Creature
1476 #Spider: Prevents Flies, Rats, Frogs, Giant Slugs, Giant Locusts, and Giant Beetles (Creature Effect).
1477 #Arboreal Wisp: Prevents all creature effects. (Creature Effect)
1478 #Bees: Increases total growth rate by 50% (Creature Effect).
1479
1480 //Fungal
1481 #Orange Mushroom Troop: Increases the growth impact of achieving an ideal heat level by 50% (Fungal Effect).
1482 #Orange Mushroom Cluster: Increases the growth impact of achieving an ideal heat level by 100% (Fungal Effect).
1483 #Orange Mushroom Grove: Increases the growth impact of achieving an ideal heat level by 150% (Fungal Effect).
1484 #Blue Mushroom Troop: Increases the growth impact of achieving an ideal water level by 50% (Fungal Effect).
1485 #Blue Mushroom Cluster: Increases the growth impact of achieving an ideal water level by 100% (Fungal Effect).
1486 #Blue Mushroom Grove: Increases the growth impact of achieving an ideal water level by 150% (Fungal Effect).
1487 #Green Mushroom Troop: Increases the growth impact of achieving an ideal soil level by 50% (Fungal Effect).
1488 #Green Mushroom Cluster: Increases the growth impact of achieving an ideal soil level by 100% (Fungal Effect).
1489 #Green Mushroom Grove: Increases the growth impact of achieving an ideal soil level by 150% (Fungal Effect).