The Wiki for Tale 4 is in read-only mode and is available for archival and reference purposes only. Please visit the current Tale 11 Wiki in the meantime.

If you have any issues with this Wiki, please post in #wiki-editing on Discord or contact Brad in-game.

User:Cegaiel/Macros/Potash/Code

From A Tale in the Desert
Jump to navigationJump to search
;All new for Tale 5
;Make Potash/Acid/Salt: 1-21 kettles

;Use 1280x1024 resolution. 


;Pin Kettle #1-7 menus from left to right, starting at upper left corner
;Pin Kettle #8-14 below the above pinups/row
;Pin Kettle #15-21 below the above pinups/row


;Ctrl+R to reload
;Ctrl+P to pause
;Emergency: Hold F2 button down 2 seconds to Abort current countdown and hit Stoke Max immediately on all pots
;Only the current countdown will abort. It will move on to the next countdown and continue normally.

;Trust the script, only use Emergency F2 when you have more than 32s when the Wood count turns to zero
;As long as there is less than 32s, when the wood hits zero, then dont interupt the script
;When it hits zero wood, its still a full 32 seconds before the kettle goes out
;Likewise with stoking. It does not matter if you stoke the instant it hits zero wood or 29 seconds later, it wont speed anything up.


;Release Date: Oct 12, 2010
;Author: Cegaiel



	IfWinExist eGenesis Client
	{
	WinGet, GameWinHandle, ID, eGenesis Client
	} else {
	Msgbox, eGenesis client not running, exiting...
	Exit
	}



	WinGetActiveStats, win_Title, Xmax, Ymax, win_Xpos, win_Ypos


	Gui, +AlwaysOnTop +ToolWindow
	Gui, Add, Text,, Type of Kettles?
	Gui, Add, DropDownList, vKettle Choose1, Public or Guilded|Private
	Gui, Add, Text,, What are we making?
	Gui, Add, DropDownList, vMake Choose2, Acid|Potash|Salt
	Gui, Add, Text,, How many kettles?
	Gui, Add, DropDownList, vNumKettles Choose10, 1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21


	Gui, Add, Text,, How many runs?
	Gui, Add, Edit, vRuns wp number, 1
	Gui, Add, Button, Default gStart, BEGIN
	Gui, Show
	return


	Start:

	Gui, Submit
	Gui, Destroy

	Counter = 0
	Wood := (28 * runs * NumKettles)
	Water := (25 * runs * NumKettles)
	Salt := (1 * runs * NumKettles)
	Ash := (5 * runs * NumKettles)





	;Note Acid and Salt are on same X, just different Y

	if (Make == "Acid") {
	OutputTotal := (3 * NumKettles * runs)
	Msgbox, Ingredients needed to run %NumKettles% kettles (%runs% runs):`n`n%wood% Wood minimum (a few extra just in case)`n%water% Sulphurous Water`n%salt% Salt`n`nMake sure you have that in your inventory!`n`nYield: 3 Acid per kettle`nTotal: %OutputTotal% Acid (%runs% runs)`n`nKettle Type: %Kettle%`n`nClick OK to continue or Ctrl+R to reload script...


	;Position of the ACID button
	PotashX1 = 125
	PotashX2 = 295
	PotashX3 = 465
	PotashX4 = 635
	PotashX5 = 805
	PotashX6 = 975
	PotashX7 = 1145


	PotashY = 265 ;+260
	PotashY2 = 525
	PotashY3 = 785


	} else if (Make == "Salt") {
	OutputTotal := (3 * NumKettles * runs)
	Msgbox, Ingredients needed to run %NumKettles% kettles (%runs% runs):`n`n%wood% Wood minimum (a few extra just in case)`n%water% Coconut Water`n`nMake sure you have that in your inventory!`n`nYield: 3 Salt per kettle`nTotal: %OutputTotal% Salt (%runs% runs)`n`nKettle Type: %Kettle%`n`nClick OK to continue or Ctrl+R to reload script...




	;Position of the SALT button
	PotashX1 = 125
	PotashX2 = 295
	PotashX3 = 465
	PotashX4 = 635
	PotashX5 = 805
	PotashX6 = 975
	PotashX7 = 1145


	PotashY = 240 
	PotashY2 = 500
	PotashY3 = 760





	} else if (Make == "Potash") {
	OutputTotal := (5 * NumKettles * runs)
	Msgbox, Ingredients needed to run %NumKettles% kettles (%runs% runs):`n`n%wood% Wood minimum (a few extra just in case)`n%water% Water`n%ash% Ash`n`nMake sure you have that in your inventory!`n`nYield: 5 Potash per kettle`nTotal: %OutputTotal% Potash (%runs% runs)`n`nKettle Type: %Kettle%`n`nClick OK to continue or Ctrl+R to reload script...


	;Position of the POTASH button
	PotashX1 = 45 ;+170
	PotashX2 = 215
	PotashX3 = 385
	PotashX4 = 555
	PotashX5 = 725
	PotashX6 = 890
	PotashX7 = 1060


	PotashY = 170 ;+260
	PotashY2 = 430 
	PotashY3 = 690
	}








	;This is where the Stoke Max option appears on the menu
	StokeMaxX1 = 70 ;+170
	StokeMaxX2 = 240
	StokeMaxX3 = 410
	StokeMaxX4 = 580
	StokeMaxX5 = 750
	StokeMaxX6 = 920
	StokeMaxX7 = 1090


	StokeMaxY = 75 ;+260
	StokeMaxY2 = 335
	StokeMaxY3 = 595




	;Max button, this is after the pot is ignited and asks for Quantity, we hit the Max button instead of typing a number
	; This is hard coded at 1280x1024 . This would likely be the only values you need to change if you try other resolutions
	MaxButtonX = 645
	MaxButtonY = 555




	;The Begin, Ignite and Take button appear in the same place, so these apply to all three.
	BeginIgniteTakeX1 = 50 ;+170
	BeginIgniteTakeX2 = 220
	BeginIgniteTakeX3 = 390
	BeginIgniteTakeX4 = 560
	BeginIgniteTakeX5 = 730
	BeginIgniteTakeX6 = 900
	BeginIgniteTakeX7 = 1070


	BeginIgniteTakeY = 240 ;+260
	BeginIgniteTakeY2 = 500
	BeginIgniteTakeY3 = 760





;NOTE: PotashY, StokeMaxY and BeginIgniteTakeY is set to Y position in Private kettle setting.
;If this is a public kettle AND you are trying to change numbers for another resolution, then note:
;The coords are adjusted for public below, take that into consideration.
;If you dont have any of your own kettles and will change numbers for a different resolution, then
;Just plug in all the numbers above (center of buttons) and launch the script and choose "Private" kettle, even though it is "Public"

	if (Kettle == "Public or Guilded")
	{
	;If the kettle is public then it lowers 15 coords at 1024x768 (will vary with other resolutions)
	PotashY := PotashY + 15
	BeginIgniteTakeY := BeginIgniteTakeY + 15
	StokeMaxY := StokeMaxY + 15

	PotashY2 := PotashY2 + 30
	BeginIgniteTakeY2 := BeginIgniteTakeY2 + 30
	StokeMaxY2 := StokeMaxY2 + 30

	PotashY3 := PotashY3 + 45
	BeginIgniteTakeY3 := BeginIgniteTakeY3 + 45
	StokeMaxY3 := StokeMaxY3 + 45
	}






	;Make sure the RefreshY line stays after the 'if (Kettle == "Public")' line
	;This is the Y button of when it clicks the top of the menu to refresh the menu


	RefreshY := (StokeMaxY - 25)
	RefreshY2 := (StokeMaxY2 - 25)	
	RefreshY3 := (StokeMaxY3 - 25)	




	Gui, +AlwaysOnTop +ToolWindow
	Gui, Font, normal
	Gui, Add, Text, vMineCycleText, Preparing to start script, please stand by ...`n`n`n`n`n`n`n`n`n
	Gui, Show


	delay = 10
	Loop, %delay%
	{
	GuiControl, Text, MineCycleText, %delay% seconds before the script will begin ...`n`nMove this out of way`n`nDont cover any pinups!`n`nDont leave anywhere near middle of screen (Load/Stoke Max wood popup)`n`nCtrl+P to Pause/Resume if needed...
	delay --
	Sleep 1000
	}

SetDefaultMouseSpeed, 0


	GuiControl, Text, MineCycleText, Focusing to eGenesis client ...

	WinActivate, eGenesis Client
	Sleep 500



		Loop, %Runs%
		{
		counter ++
		stoke = 0
		waterlevel = -
		countdown = 0
		seconds = 0
		minutes = 0
		seconds_eta = 25
		minutes_eta = 15 
		cseconds = 0
		cminutes = 0
		sSeconds = 0
		sMinutes = 0
	
;Click Potash/Acid/Salt Button

GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Clicking "%make%" buttons...`n`nRuns: %counter% of %runs%  /  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s


	if (NumKettles >= 1)
	{
	Click, %PotashX1%, %PotashY% ;Pot 1
	sleep 200
	}
	if (NumKettles >= 2)
	{
	Click, %PotashX2%, %PotashY% ;Pot 2
	sleep 200
	}
	if (NumKettles >= 3)
	{
	Click, %PotashX3%, %PotashY% ;Pot 3
	sleep 200
	}
	if (NumKettles >= 4)
	{
	Click, %PotashX4%, %PotashY% ;Pot 4
	sleep 200
	}
	if (NumKettles >= 5)
	{
	Click, %PotashX5%, %PotashY% ;Pot 5
	sleep 200
	}
	if (NumKettles >= 6)
	{
	Click, %PotashX6%, %PotashY% ;Pot 6
	sleep 200
	}
	if (NumKettles >= 7)
	{
	Click, %PotashX7%, %PotashY% ;Pot 7
	sleep 200
	}

	if (NumKettles >= 8)
	{
	Click, %PotashX1%, %PotashY2% ;Pot 8
	sleep 200
	}
	if (NumKettles >= 9)
	{
	Click, %PotashX2%, %PotashY2% ;Pot 9
	sleep 200
	}
	if (NumKettles >= 10)
	{
	Click, %PotashX3%, %PotashY2% ;Pot 10
	sleep 200
	}
	if (NumKettles >= 11)
	{
	Click, %PotashX4%, %PotashY2% ;Pot 11
	sleep 200
	}
	if (NumKettles >= 12)
	{
	Click, %PotashX5%, %PotashY2% ;Pot 12
	sleep 200
	}
	if (NumKettles >= 13)
	{
	Click, %PotashX6%, %PotashY2% ;Pot 13
	sleep 200
	}
	if (NumKettles >= 14)
	{
	Click, %PotashX7%, %PotashY2% ;Pot 14
	sleep 200
	}


	if (NumKettles >= 15)
	{
	Click, %PotashX1%, %PotashY3% ;Pot 15
	sleep 200
	}
	if (NumKettles >= 16)
	{
	Click, %PotashX2%, %PotashY3% ;Pot 16
	sleep 200
	}
	if (NumKettles >= 17)
	{
	Click, %PotashX3%, %PotashY3% ;Pot 17
	sleep 200
	}
	if (NumKettles >= 18)
	{
	Click, %PotashX4%, %PotashY3% ;Pot 18
	sleep 200
	}
	if (NumKettles >= 19)
	{
	Click, %PotashX5%, %PotashY3% ;Pot 19
	sleep 200
	}
	if (NumKettles >= 20)
	{
	Click, %PotashX6%, %PotashY3% ;Pot 20
	sleep 200
	}
	if (NumKettles >= 21)
	{
	Click, %PotashX7%, %PotashY3% ;Pot 21
	sleep 200
	}



;Click Begin button

GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Clicking "Begin" buttons...`n`nRuns: %counter% of %runs%  /  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s


	if (NumKettles >= 1)
	{
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Pot 1			
	sleep 200
	}
	if (NumKettles >= 2)
	{
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Pot 2			
	sleep 200
	}
	if (NumKettles >= 3)
	{
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Pot 3			
	sleep 200
	}
	if (NumKettles >= 4)
	{
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Pot 4			
	sleep 200
	}
	if (NumKettles >= 5)
	{
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Pot 5			
	sleep 200
	}
	if (NumKettles >= 6)
	{
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Pot 6			
	sleep 200
	}
	if (NumKettles >= 7)
	{
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY% ;Pot 7			
	sleep 200
	}


	if (NumKettles >= 8)
	{
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY2% ;Pot 8			
	sleep 200
	}
	if (NumKettles >= 9)
	{
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY2% ;Pot 9			
	sleep 200
	}
	if (NumKettles >= 10)
	{
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY2% ;Pot 10			
	sleep 200
	}
	if (NumKettles >= 11)
	{
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY2% ;Pot 11			
	sleep 200
	}
	if (NumKettles >= 12)
	{
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY2% ;Pot 12		
	sleep 200
	}
	if (NumKettles >= 13)
	{
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY2% ;Pot 13		
	sleep 200
	}
	if (NumKettles >= 14)
	{
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY2% ;Pot 14		
	sleep 200
	}

	if (NumKettles >= 15)
	{
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY3% ;Pot 15			
	sleep 200
	}
	if (NumKettles >= 16)
	{
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY3% ;Pot 16			
	sleep 200
	}
	if (NumKettles >= 17)
	{
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY3% ;Pot 17			
	sleep 200
	}
	if (NumKettles >= 18)
	{
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY3% ;Pot 18			
	sleep 200
	}
	if (NumKettles >= 19)
	{
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY3% ;Pot 19		
	sleep 200
	}
	if (NumKettles >= 20)
	{
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY3% ;Pot 20		
	sleep 200
	}
	if (NumKettles >= 21)
	{
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY3% ;Pot 21		
	sleep 200
	}



;Click Ignite + Max button, then Refresh Menu (to show Stoke Max option)

GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Igniting + Adding Max Wood...`n`nRuns: %counter% of %runs%  /  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s



	if (NumKettles >= 1)
	{
	;Pot 1
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX1%, %RefreshY% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 2)
	{
	;Pot 2		
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX2%, %RefreshY% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 3)
	{
	;Pot 3
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX3%, %RefreshY% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 4)
	{
	;Pot 4
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX4%, %RefreshY% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 5)
	{
	;Pot 5
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX5%, %RefreshY% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 6)
	{
	;Pot 6
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX6%, %RefreshY% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 7)
	{
	;Pot 7
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX7%, %RefreshY% ;Click Menu to refresh	
	sleep 200
	}



	if (NumKettles >= 8)
	{
	;Pot 8		
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY2% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX1%, %RefreshY2% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 9)
	{
	;Pot 9
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY2% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX2%, %RefreshY2% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 10)
	{
	;Pot 10
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY2% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX3%, %RefreshY2% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 11)
	{
	;Pot 11
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY2% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX4%, %RefreshY2% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 12)
	{
	;Pot 12
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY2% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX5%, %RefreshY2% ;Click Menu to refresh	
	sleep 200
	}

	if (NumKettles >= 13)
	{
	;Pot 13
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY2% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX6%, %RefreshY2% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 14)
	{
	;Pot 14
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY2% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX7%, %RefreshY2% ;Click Menu to refresh	
	sleep 200
	}


	if (NumKettles >= 15)
	{
	;Pot 15		
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY3% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX1%, %RefreshY3% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 16)
	{
	;Pot 16
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY3% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX2%, %RefreshY3% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 17)
	{
	;Pot 17
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY3% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX3%, %RefreshY3% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 18)
	{
	;Pot 18
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY3% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX4%, %RefreshY3% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 19)
	{
	;Pot 19
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY3% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX5%, %RefreshY3% ;Click Menu to refresh	
	sleep 200
	}

	if (NumKettles >= 20)
	{
	;Pot 20
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY3% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX6%, %RefreshY3% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 21)
	{
	;Pot 21
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY3% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX7%, %RefreshY3% ;Click Menu to refresh	
	sleep 200
	}










	;This begins the Elapsed and ETA timers
	#Persistent 
	SetTimer, Timer, 1000



;Stoke 1 countdown (@ 24 water, first 3 waters dont get burned off after you first start a kettle

	waterlevel = 24
	cminutes = 2
	cseconds = 12
	;countdown = 132
	GoSub, SetCountdown

	Loop, %countdown%
	{

	Gosub, StokeTimer

		GetKeyState, state, F2
		if state = D
		break
		}

	waterlevel = 19
	Gosub, StokeMax




;Stoke 2 (@ 19 water) countdown

	cminutes = 2
	cseconds = 43
	;countdown = 163
	GoSub, SetCountdown

	Loop, %countdown%
	{

	Gosub, StokeTimer

		GetKeyState, state, F2
		if state = D
		{
		break
		}
	}

	waterlevel = 14
	Gosub, StokeMax



;Stoke 3 (@ 14 water) countdown

	cminutes = 2
	cseconds = 43
	;countdown = 163
	GoSub, SetCountdown

	Loop, %countdown%
	{

	Gosub, StokeTimer

		GetKeyState, state, F2
		if state = D
		{
		break
		}
	}

	waterlevel = 9
	Gosub, StokeMax



;Stoke 4 (@ 9 water) countdown

	cminutes = 2
	cseconds = 43
	;countdown = 163
	GoSub, SetCountdown

	Loop, %countdown%
	{

	Gosub, StokeTimer

		GetKeyState, state, F2
		if state = D
		{
		break
		}
	}

waterlevel = 6
Gosub, StokeMax


;Stoke 5 (@ 6 water) countdown

	cminutes = 1
	cseconds = 36
	;countdown = 96
	GoSub, SetCountdown

	Loop, %countdown%
	{

	Gosub, StokeTimer

		GetKeyState, state, F2
		if state = D
		{
		break
		}
	}

waterlevel = N/A
Gosub, StokeMax


;Countdown until complete
	cminutes = 3
	cseconds = 12
	;countdown = 192
	GoSub, SetCountdown

	Loop, %countdown%
	{

	Gosub, StokeTimer
	}


cminutes = 0
cseconds = 0
		} ; End Runs Loop




;Click Take button
	WinActivate, eGenesis Client

GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nFinish: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Taking items from kettle...`n`nRuns: %counter% of %runs%  /  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s

	if (NumKettles >= 1)
	{
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Pot 1			
	Sleep 200
	}
	if (NumKettles >= 2)
	{
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Pot 2			
	Sleep 200
	}
	if (NumKettles >= 3)
	{
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Pot 3			
	Sleep 200
	}
	if (NumKettles >= 4)
	{
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Pot 4			
	Sleep 200
	}
	if (NumKettles >= 5)
	{
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Pot 5			
	Sleep 200
	}
	if (NumKettles >= 6)
	{
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Pot 6			
	Sleep 200
	}
	if (NumKettles >= 7)
	{
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY% ;Pot 7			
	Sleep 200
	}

	if (NumKettles >= 8)
	{
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY2% ;Pot 8			
	Sleep 200
	}
	if (NumKettles >= 9)
	{
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY2% ;Pot 9			
	Sleep 200
	}
	if (NumKettles >= 10)
	{
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY2% ;Pot 10			
	Sleep 200
	}
	if (NumKettles >= 11)
	{
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY2% ;Pot 11		
	Sleep 200
	}
	if (NumKettles >= 12)
	{
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY2% ;Pot 12		
	Sleep 200
	}
	if (NumKettles >= 13)
	{
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY2% ;Pot 13			
	Sleep 200
	}
	if (NumKettles >= 14)
	{
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY2% ;Pot 14			
	Sleep 200
	}

	if (NumKettles >= 15)
	{
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY3% ;Pot 15			
	Sleep 200
	}
	if (NumKettles >= 16)
	{
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY3% ;Pot 16			
	Sleep 200
	}
	if (NumKettles >= 17)
	{
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY3% ;Pot 17			
	Sleep 200
	}
	if (NumKettles >= 18)
	{
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY3% ;Pot 18		
	Sleep 200
	}
	if (NumKettles >= 19)
	{
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY3% ;Pot 19		
	Sleep 200
	}
	if (NumKettles >= 20)
	{
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY3% ;Pot 20			
	Sleep 200
	}
	if (NumKettles >= 21)
	{
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY3% ;Pot 21			
	Sleep 200
	}


	



;ALL DONE!
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nFinish: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: All Done!  Reload: Ctrl+R`n`nRuns: %counter% of %runs%  /  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
return




	StokeMax:

	WinActivate, eGenesis Client


	;Click Stoke Max
	
	stoke ++

GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: STOKING!`n`nRuns: %counter% of %runs%  /  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s

	MouseGetPos, OldMX, OldMY

	if (NumKettles >= 1)
	{
	Click, %StokeMaxX1%, %StokeMaxY% ; Pot 1			
	sleep 200
	}
	if (NumKettles >= 2)
	{
	Click, %StokeMaxX2%, %StokeMaxY% ; Pot 2			
	sleep 200
	}
	if (NumKettles >= 3)
	{
	Click, %StokeMaxX3%, %StokeMaxY% ; Pot 3			
	sleep 200
	}
	if (NumKettles >= 4)
	{
	Click, %StokeMaxX4%, %StokeMaxY% ; Pot 4			
	sleep 200
	}
	if (NumKettles >= 5)
	{
	Click, %StokeMaxX5%, %StokeMaxY% ; Pot 5			
	sleep 200
	}
	if (NumKettles >= 6)
	{
	Click, %StokeMaxX6%, %StokeMaxY% ; Pot 6			
	sleep 200
	}
	if (NumKettles >= 7)
	{
	Click, %StokeMaxX7%, %StokeMaxY% ; Pot 7			
	sleep 200
	}

	if (NumKettles >= 8)
	{
	Click, %StokeMaxX1%, %StokeMaxY2% ; Pot 8
	sleep 200
	}
	if (NumKettles >= 9)
	{
	Click, %StokeMaxX2%, %StokeMaxY2% ; Pot 9
	sleep 200
	}
	if (NumKettles >= 10)
	{
	Click, %StokeMaxX3%, %StokeMaxY2% ; Pot 10
	sleep 200
	}
	if (NumKettles >= 11)
	{
	Click, %StokeMaxX4%, %StokeMaxY2% ; Pot 11
	sleep 200
	}
	if (NumKettles >= 12)
	{
	Click, %StokeMaxX5%, %StokeMaxY2% ; Pot 12
	sleep 200
	}
	if (NumKettles >= 13)
	{
	Click, %StokeMaxX6%, %StokeMaxY2% ; Pot 13
	sleep 200
	}
	if (NumKettles >= 14)
	{
	Click, %StokeMaxX7%, %StokeMaxY2% ; Pot 14
	sleep 200
	}

	if (NumKettles >= 15)
	{
	Click, %StokeMaxX1%, %StokeMaxY3% ; Pot 15
	sleep 200
	}
	if (NumKettles >= 16)
	{
	Click, %StokeMaxX2%, %StokeMaxY3% ; Pot 16
	sleep 200
	}
	if (NumKettles >= 17)
	{
	Click, %StokeMaxX3%, %StokeMaxY3% ; Pot 17
	sleep 200
	}
	if (NumKettles >= 18)
	{
	Click, %StokeMaxX4%, %StokeMaxY3% ; Pot 18
	sleep 200
	}
	if (NumKettles >= 19)
	{
	Click, %StokeMaxX5%, %StokeMaxY3% ; Pot 19
	sleep 200
	}
	if (NumKettles >= 20)
	{
	Click, %StokeMaxX6%, %StokeMaxY3% ; Pot 20
	sleep 200
	}
	if (NumKettles >= 21)
	{
	Click, %StokeMaxX7%, %StokeMaxY3% ; Pot 21
	sleep 200
	}



	MouseMove, %OldMX%, %OldMY%, 0			
	return


		Timer:

		seconds ++

		if (seconds = 60)
		{
		seconds := 0
		minutes ++
		}
		
		if (seconds_eta = 0) && (minutes_eta > 0)
		{
		seconds_eta := 60
		minutes_eta --
		}
		
		if (minutes_eta < 0)
		minutes_eta := 0

		seconds_eta --
		return


			SetCountdown:

			countdown := (cminutes * 60 + cseconds)
			sSeconds := cseconds
			sMinutes := cminutes
			return


				StokeTimer:
				if (stoke = 5)
				{
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nFinish: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Waiting on kettle to finish...`n`nRuns: %counter% of %runs%  /  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s

				} else {

GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Waiting to stoke...`n`nRuns: %counter% of %runs%  /  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
				}

				countdown --
				if (sSeconds = 0)
				{
				sSeconds := 60
				sMinutes --
				}
		
				if (sMinutes < 0)
				sMinutes := 0

				sSeconds --
				Sleep 1000
				return


^r::reload
^p::Pause