label="ion514_100509"
version="1.6"
completion="victory"
campaign_type="multiplayer"
difficulty="NORMAL"
random_seed="648560745"
random_calls="0"
next_underlying_unit_id="53"
end_text_duration="0"
[variables]
[/variables]
[replay]
	[command]
		[start]
		[/start]
	[/command]
	[command]
		undo="no"
		[speak]
			id="Tesafilmchen"
			message="gl&hf"
			side="1"
		[/speak]
	[/command]
	[command]
		[recruit]
			value="3"
			x="18"
			y="5"
		[/recruit]
		[random]
			value="765409168"
		[/random]
		[random]
			value="1499434753"
		[/random]
		[random]
			value="700235255"
		[/random]
		[random]
			value="191165562"
		[/random]
		[random]
			value="1394264456"
		[/random]
		[random]
			value="2021237234"
		[/random]
		[random]
			value="1105945455"
		[/random]
		[random]
			value="1129342662"
		[/random]
		[random]
			value="1914054414"
		[/random]
		[random]
			value="1425279137"
		[/random]
		[random]
			value="934704708"
		[/random]
		[random]
			value="2126497849"
		[/random]
		[random]
			value="2059142868"
		[/random]
		[random]
			value="555508378"
		[/random]
		[random]
			value="763596697"
			[results]
				checksum="80M696kdt17Q-aGPQ75eF4RIQSHu+GNvRCnIqFywJTCHmxqx1EwQVOxDmGODNOzCNSPAGPJsfzEDPJCs,8AqDwqDqPxMAuFRQxPzFwD4sc7wU,890qvi7pTKFPwx3xSB"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="4"
			x="20"
			y="4"
		[/recruit]
		[random]
			value="1478584394"
		[/random]
		[random]
			value="362748239"
		[/random]
		[random]
			value="1801458704"
		[/random]
		[random]
			value="1788439486"
		[/random]
		[random]
			value="1631179930"
		[/random]
		[random]
			value="2019949281"
		[/random]
		[random]
			value="198961821"
		[/random]
		[random]
			value="1553197389"
		[/random]
		[random]
			value="2064320881"
		[/random]
		[random]
			value="260344216"
		[/random]
		[random]
			value="1755088790"
		[/random]
		[random]
			value="1330988101"
		[/random]
		[random]
			value="1025753384"
		[/random]
		[random]
			value="1107039895"
		[/random]
		[random]
			value="2031223356"
			[results]
				checksum="3Cf1OSv,C7F>rbJjRs8AZ92.m<LzFBEHnuR73QRpoMa2r4.k-cpOaw87,.Y8Z.5ndaB-kwWvSlbAfbufC3iaj7hobd->Zheuk<>2fa5>ai01-b1+6Z+40CN5c8b.>X,4"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="2"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="1483163366"
		[/random]
		[random]
			value="1671547709"
		[/random]
		[random]
			value="1600659890"
		[/random]
		[random]
			value="270384426"
		[/random]
		[random]
			value="1650561910"
		[/random]
		[random]
			value="1512319110"
		[/random]
		[random]
			value="825892804"
		[/random]
		[random]
			value="266674959"
		[/random]
		[random]
			value="2072539076"
		[/random]
		[random]
			value="1303764624"
		[/random]
		[random]
			value="743713984"
		[/random]
		[random]
			value="1499339293"
		[/random]
		[random]
			value="634865370"
		[/random]
		[random]
			value="1106462223"
		[/random]
		[random]
			value="1153314349"
			[results]
				checksum="dyxuTOIUoJO8HNrG4rKqKKyCcwwqoNtRxBzMHwQmPyQBpPAuOCIG6zNHsCQFqzuGzwKqqyuyKqqT5RBJTuEm3frBwnBwBICTrpKGHCIsunwtfvIWc-MGO<7LH5>f<208"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="3"
			x="24"
			y="5"
		[/recruit]
		[random]
			value="2143355895"
		[/random]
		[random]
			value="942617216"
		[/random]
		[random]
			value="735127246"
		[/random]
		[random]
			value="1750961037"
		[/random]
		[random]
			value="126121670"
		[/random]
		[random]
			value="1760880631"
		[/random]
		[random]
			value="710517284"
		[/random]
		[random]
			value="9861378"
		[/random]
		[random]
			value="830315929"
		[/random]
		[random]
			value="1064337987"
		[/random]
		[random]
			value="1914838321"
		[/random]
		[random]
			value="1005696683"
		[/random]
		[random]
			value="400017705"
		[/random]
		[random]
			value="1438902382"
		[/random]
		[random]
			value="458872925"
			[results]
				checksum="80N696kdt17Q-aGPQ75eF4RIQSHu+GNvRCnIqFywJTCHmxqx1EwQVOxDmGODNOzCNSPAGPJnfzEDPJCs,8AqDwqDqPxMAuFRQxPzFwD4sc7wU,890qvi7pTKGPwx3xSB"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="2"
			x="23"
			y="5"
		[/recruit]
		[random]
			value="1896247464"
		[/random]
		[random]
			value="652575912"
		[/random]
		[random]
			value="1952369588"
		[/random]
		[random]
			value="1248103109"
		[/random]
		[random]
			value="1287441282"
		[/random]
		[random]
			value="911348163"
		[/random]
		[random]
			value="253933810"
		[/random]
		[random]
			value="1563262491"
		[/random]
		[random]
			value="1501506669"
		[/random]
		[random]
			value="1279713793"
		[/random]
		[random]
			value="2038045521"
		[/random]
		[random]
			value="1497378916"
		[/random]
		[random]
			value="74847362"
		[/random]
		[random]
			value="625689119"
		[/random]
		[random]
			value="1100856305"
			[results]
				checksum="dyxuTOJUoJO8HNrG4rKqKKyCcwwqoNtRxBzMHwQmPyQBpPAuOCIG6zNHsCQFqzuGzwKqqyuyKqqR5RBJTuEm3frBwnBwBICTrpKGHCIsunwtfyIWc-MGO<7LH5>f,208"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="2"
			x="22"
			y="4"
		[/recruit]
		[random]
			value="1069402032"
		[/random]
		[random]
			value="728227928"
		[/random]
		[random]
			value="2125668731"
		[/random]
		[random]
			value="2075098715"
		[/random]
		[random]
			value="1128245634"
		[/random]
		[random]
			value="1417087465"
		[/random]
		[random]
			value="386487992"
		[/random]
		[random]
			value="1798647766"
		[/random]
		[random]
			value="211584462"
		[/random]
		[random]
			value="210196380"
		[/random]
		[random]
			value="1147459054"
		[/random]
		[random]
			value="1420240066"
		[/random]
		[random]
			value="2106443844"
		[/random]
		[random]
			value="1800034967"
		[/random]
		[random]
			value="1225126006"
			[results]
				checksum="dyxuTOIUoJO8HNrG4rKqKKyCcwwqoNtRxBzMHwQmPyQBpPAuOCIG6zNHsCQFqzuGzwKqqyuyKqqT5RBJTuEm3frBwnBwBICTrpKGHCIsunwtfvIWc-MGO<7LH5>f<208"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="21,20,19,18,17"
			y="4,3,3,2,3"
		[/move]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="7"
			x="18"
			y="19"
		[/recruit]
		[random]
			value="26213"
		[/random]
		[random]
			value="9991"
		[/random]
		[random]
			value="16062"
		[/random]
		[random]
			value="1843"
		[/random]
		[random]
			value="27060"
		[/random]
		[random]
			value="3714"
		[/random]
		[random]
			value="31570"
		[/random]
		[random]
			value="8872"
		[/random]
		[random]
			value="9479"
		[/random]
		[random]
			value="12212"
		[/random]
		[random]
			value="10623"
		[/random]
		[random]
			value="16666"
		[/random]
		[random]
			value="13320"
		[/random]
		[random]
			value="5100"
		[/random]
		[random]
			value="22630"
			[results]
				checksum=",Ad3Y5f-Gtmsmp5jHbEoRiVrOCpxE4IDyxOzzQOG.nCLyyGDmUtLNvFrwCUxRLwFwmIsr1QENmxPFHFw.RFKFnqypNLmM8mwoFomIhFlq1.CLB<<ddNv5EsLNHBNzkOI"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="7"
			x="24"
			y="19"
		[/recruit]
		[random]
			value="1733"
		[/random]
		[random]
			value="7174"
		[/random]
		[random]
			value="21191"
		[/random]
		[random]
			value="4582"
		[/random]
		[random]
			value="5524"
		[/random]
		[random]
			value="17877"
		[/random]
		[random]
			value="18406"
		[/random]
		[random]
			value="31527"
		[/random]
		[random]
			value="7990"
		[/random]
		[random]
			value="31491"
		[/random]
		[random]
			value="19292"
		[/random]
		[random]
			value="15366"
		[/random]
		[random]
			value="24091"
		[/random]
		[random]
			value="4117"
		[/random]
		[random]
			value="5164"
			[results]
				checksum=",Ad3Y5f-Gtmspp5jHbEoRiSrOCpxE4IDyxOzzQOG.nCLyyGDmUtLNvFrwCUxRLwFwmIsr1QENmxPFHFw.RFKFnqypNLpM8mwoFomIhFlq1.CLW<<ddNv5EsLNHBNzkOI"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="fedemw has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="3"
			x="19"
			y="20"
		[/recruit]
		[random]
			value="25945"
		[/random]
		[random]
			value="19757"
		[/random]
		[random]
			value="16744"
		[/random]
		[random]
			value="1409"
		[/random]
		[random]
			value="11023"
		[/random]
		[random]
			value="10309"
		[/random]
		[random]
			value="23728"
		[/random]
		[random]
			value="6717"
		[/random]
		[random]
			value="29785"
		[/random]
		[random]
			value="1067"
		[/random]
		[random]
			value="14064"
		[/random]
		[random]
			value="483"
		[/random]
		[random]
			value="6515"
		[/random]
		[random]
			value="17147"
		[/random]
		[random]
			value="10601"
			[results]
				checksum="eKEMoMsJ2Sm2IxNK-ruIvyJD8uFQquOORqLQAKsDuHBwnqvBFyQvVsL8qHTmQQNRqrWuTuTxDUFLDPxfDLuyOcqNHBnCR5lyBlS<1Ip648,gYmdg-Lb7,b2<2j8d,4eh"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="5"
			x="20"
			y="20"
		[/recruit]
		[random]
			value="24982"
		[/random]
		[random]
			value="21578"
		[/random]
		[random]
			value="5543"
		[/random]
		[random]
			value="29912"
		[/random]
		[random]
			value="24158"
		[/random]
		[random]
			value="31150"
		[/random]
		[random]
			value="6277"
		[/random]
		[random]
			value="16479"
		[/random]
		[random]
			value="30629"
		[/random]
		[random]
			value="20866"
		[/random]
		[random]
			value="24652"
		[/random]
		[random]
			value="19582"
		[/random]
		[random]
			value="13607"
		[/random]
		[random]
			value="20132"
		[/random]
		[random]
			value="13875"
			[results]
				checksum="iqp,4nc1oNO<LLyKmJLIEhoF>vyBA6mszOAMDTywuzyODCrTtRLwFwmIsr1QENmxPFHFw.RFKFnqypNKpM8mwoFomIhFlq1.CLW<<ddBfkHDONNHvHQO1I9LGCHpACmL"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="0"
			x="23"
			y="20"
		[/recruit]
		[random]
			value="19365"
		[/random]
		[random]
			value="11125"
		[/random]
		[random]
			value="20993"
		[/random]
		[random]
			value="29846"
		[/random]
		[random]
			value="20886"
		[/random]
		[random]
			value="5642"
		[/random]
		[random]
			value="31042"
		[/random]
		[random]
			value="13583"
		[/random]
		[random]
			value="11197"
		[/random]
		[random]
			value="31269"
		[/random]
		[random]
			value="9604"
		[/random]
		[random]
			value="5584"
		[/random]
		[random]
			value="2851"
		[/random]
		[random]
			value="16440"
		[/random]
		[random]
			value="27326"
			[results]
				checksum="pMyPvoKvbBq0MCQtxRPyPu1PqOvyvtVtPtsuCMyPNLLqFJRxvqM3FDTGMqHwEVMDODuIOJsNEAPcOusOKDwebPsxOruODoP.K+zDJqnqswJL0PpQ,RvAQ30CF>ml1cth"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="1"
			x="22"
			y="20"
		[/recruit]
		[random]
			value="24813"
		[/random]
		[random]
			value="18842"
		[/random]
		[random]
			value="3190"
		[/random]
		[random]
			value="31208"
		[/random]
		[random]
			value="18801"
		[/random]
		[random]
			value="9578"
		[/random]
		[random]
			value="15157"
		[/random]
		[random]
			value="8292"
		[/random]
		[random]
			value="21013"
		[/random]
		[random]
			value="23159"
		[/random]
		[random]
			value="25955"
		[/random]
		[random]
			value="8981"
		[/random]
		[random]
			value="11913"
		[/random]
		[random]
			value="24255"
		[/random]
		[random]
			value="13787"
			[results]
				checksum="15,Wfc>cu2lH0olW9-5N-m<e6f60hfabkcij<4>i3h3e2.t0a1f<j870h0k565.Y0>ide2Ji80k.d8da021n<.26Z+40CN5c8b.-X,48E.7v3f3XdJFikGNTwGMoVOFH"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,22,23,24,25"
			y="21,20,20,20,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="20,19,18,18,18,17"
			y="4,5,5,6,7,8"
		[/move]
	[/command]
	[command]
		[move]
			x="19,19,20,20,21,22,22"
			y="5,6,6,7,8,8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="18,17,16,15,14,13,12,12,12,11"
			y="5,6,6,7,7,8,8,9,10,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Romuh has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="17,16,15,14,13,12"
			y="3,3,4,4,4,4"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="mufe has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="23,23,23,24,25,26,27"
			y="5,6,7,7,8,8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="22,23,23,23,24,25,25,26"
			y="4,5,6,7,7,8,9,9"
		[/move]
	[/command]
	[command]
		[move]
			x="24,25,26,27,28,29,30,31"
			y="5,5,5,6,5,6,6,6"
		[/move]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="maty has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="danzig has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,17,16,15"
			y="19,19,19,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,18,18,17,17,16"
			y="20,19,18,18,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,19,18,17,16,15,14"
			y="20,20,19,19,18,19,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="22,22,23,24,25,25"
			y="20,19,19,18,18,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="23,24,25,26,27,28"
			y="20,19,19,18,18,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,25,26,27,28,29,30"
			y="19,20,20,20,19,20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,24,23,22,21"
			y="21,20,20,20,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="12,13,14,15,16,17"
			y="4,5,5,6,6,7"
		[/move]
	[/command]
	[command]
		[move]
			x="22,23,24,25,26,26"
			y="9,9,8,9,9,10"
		[/move]
	[/command]
	[command]
		[move]
			x="31,31,31,31"
			y="6,7,8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="31,31,31"
			y="9,10,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Bigbadbrian has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="alesix has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="31,31"
			y="11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Vulcor has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="27,28,29,30,31,31,32"
			y="9,9,10,10,11,12,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Bigbadbrian has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="26,26,27"
			y="9,10,11"
		[/move]
	[/command]
	[command]
		[move]
			x="27,28,29,30"
			y="11,11,12,12"
		[/move]
	[/command]
	[command]
		[move]
			x="30,31"
			y="12,13"
		[/move]
	[/command]
	[command]
		[move]
			x="11,11"
			y="11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="11,11,12,12"
			y="12,13,13,14"
		[/move]
	[/command]
	[command]
		[move]
			x="12,12,11,10"
			y="14,13,13,13"
		[/move]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="skull13 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="16,16,16"
			y="16,15,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,14,13,12,11"
			y="20,19,19,19,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="14,13,12,11"
			y="18,19,19,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="30,30,30"
			y="20,19,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="30,30,30,31"
			y="18,17,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="28,28,29,29,30"
			y="17,18,19,20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="ambergris has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,25,26,27,28,29"
			y="17,18,18,18,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,20,19,19,19"
			y="21,20,20,19,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="17,17,18"
			y="7,6,5"
		[/move]
	[/command]
	[command]
		[recruit]
			value="4"
			x="24"
			y="5"
		[/recruit]
		[random]
			value="1446000360"
		[/random]
		[random]
			value="1633301815"
		[/random]
		[random]
			value="606067296"
		[/random]
		[random]
			value="1258372040"
		[/random]
		[random]
			value="870259254"
		[/random]
		[random]
			value="987309454"
		[/random]
		[random]
			value="1707069025"
		[/random]
		[random]
			value="1303413031"
		[/random]
		[random]
			value="622513409"
		[/random]
		[random]
			value="1910186092"
		[/random]
		[random]
			value="449392460"
		[/random]
		[random]
			value="7078789"
		[/random]
		[random]
			value="874881126"
		[/random]
		[random]
			value="247985491"
		[/random]
		[random]
			value="1704571932"
			[results]
				checksum="3Cf1OSv,C7F>rbJjRs8AZ92.m<LzFBEHnuR73QRpoMa2r4.k-cpOaw87,.Y8Z.5ndaB-kwWvSlbAfbufC3iaj7hobd->Zheuk<>2fa5>ai01-b1+6Z+40CN5c8b.>X,4"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="4"
			x="23"
			y="5"
		[/recruit]
		[random]
			value="400662827"
		[/random]
		[random]
			value="491989448"
		[/random]
		[random]
			value="585379956"
		[/random]
		[random]
			value="861371001"
		[/random]
		[random]
			value="1079024791"
		[/random]
		[random]
			value="1702215627"
		[/random]
		[random]
			value="1027152819"
		[/random]
		[random]
			value="796382131"
		[/random]
		[random]
			value="1893523834"
		[/random]
		[random]
			value="55560880"
		[/random]
		[random]
			value="704135791"
		[/random]
		[random]
			value="1094345389"
		[/random]
		[random]
			value="1501561240"
		[/random]
		[random]
			value="189953958"
		[/random]
		[random]
			value="1700412685"
			[results]
				checksum="4zf1OSw,C7F>rbJjIs8AZ92.m<KzFBEHnuR73QRpoMa2r4.k-cpOaw87,.Y8Z.5ndaB-kwWvSlbAfbufC3iaj7hobd->Zhenk<>2fa5>ai01-b1+6Z+40CN5c8b.>X,4"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="18,19,20,21"
			y="5,6,6,7"
		[/move]
	[/command]
	[command]
		[move]
			x="17,18,19,20,21,22,23"
			y="8,7,8,8,8,8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="31,32,33,34,35,36,37,38"
			y="10,10,11,10,11,11,12,12"
		[/move]
	[/command]
	[command]
		[move]
			x="38,38"
			y="12,11"
		[/move]
	[/command]
	[command]
		[move]
			x="32,32,32,31"
			y="12,11,10,10"
		[/move]
	[/command]
	[command]
		[move]
			x="31,31,31,31,30"
			y="13,12,11,10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="tmarxell has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="mam23444 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="31,32,33"
			y="16,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="29,30,31"
			y="17,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Galvastador_BR has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="33,34"
			y="16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="30,31,32,33,33,34"
			y="20,20,19,19,18,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,19,19,20,21"
			y="18,19,20,20,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="4"
			x="24"
			y="19"
		[/recruit]
		[random]
			value="7090"
		[/random]
		[random]
			value="31749"
		[/random]
		[random]
			value="16906"
		[/random]
		[random]
			value="5038"
		[/random]
		[random]
			value="27028"
		[/random]
		[random]
			value="9630"
		[/random]
		[random]
			value="7616"
		[/random]
		[random]
			value="16456"
		[/random]
		[random]
			value="18643"
		[/random]
		[random]
			value="27646"
		[/random]
		[random]
			value="25738"
		[/random]
		[random]
			value="19309"
		[/random]
		[random]
			value="288"
		[/random]
		[random]
			value="19744"
		[/random]
		[random]
			value="23880"
			[results]
				checksum="rhRteuCn>Im>OtyS+7ckzAuBMm0+Z8dI9a<pk8651Wl8Z5w.cldpBX>77bllckl2Y+5>aaii6<81Akljb2ifil7.WgZ2.h<5-XxS+j>k2403-o4TA9v1-xH1iTk+kX8Y"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,10"
			y="19,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,9,8"
			y="18,18,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Khronnus has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,11"
			y="20,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,20"
			y="21,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="16,15,14,13,13,12"
			y="14,14,13,13,12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="10,10,10,11"
			y="13,12,11,11"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="11"
				y="11"
			[/source]
			[destination]
				x="12"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="228942611"
			[results]
				chance="70"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1555194606"
			[results]
				chance="70"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1165726602"
			[results]
				chance="70"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="23,22,21,20,19,18,17"
			y="9,8,8,8,8,7,8"
		[/move]
	[/command]
	[command]
		[move]
			x="21,20,19,18"
			y="7,6,6,5"
		[/move]
	[/command]
	[command]
		[recruit]
			value="2"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="176139234"
		[/random]
		[random]
			value="1013215366"
		[/random]
		[random]
			value="1800049786"
		[/random]
		[random]
			value="792721754"
		[/random]
		[random]
			value="1570044297"
		[/random]
		[random]
			value="1882410114"
		[/random]
		[random]
			value="1968570905"
		[/random]
		[random]
			value="579724825"
		[/random]
		[random]
			value="900653069"
		[/random]
		[random]
			value="1139198265"
		[/random]
		[random]
			value="1912748388"
		[/random]
		[random]
			value="1342294730"
		[/random]
		[random]
			value="605600303"
		[/random]
		[random]
			value="1220096678"
		[/random]
		[random]
			value="1823188861"
			[results]
				checksum="dyxuTOIUoJO8HNrG4rKqKKyCcwwqoNtRxBzMHwQmPyQBpPAuOCIG6zNHsCQFqzuGzwKqqyuyKqpO5RBJTuEm3frBwnBwBICTrpKGHCIsunwtfyIWc-MGO<7LH5>c-208"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="18,17,16"
			y="5,6,6"
		[/move]
	[/command]
	[command]
		[move]
			x="24,25,26,26,26,27,28"
			y="5,6,6,7,8,9,9"
		[/move]
	[/command]
	[command]
		[move]
			x="23,24,24,25,25,26,26,27"
			y="5,5,6,7,8,8,9,10"
		[/move]
	[/command]
	[command]
		[move]
			x="26,27,27"
			y="10,11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="31,31,32"
			y="10,11,11"
		[/move]
	[/command]
	[command]
		[move]
			x="30,31,31,31"
			y="9,10,11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="38,37,36,35,34,33,32,31,30"
			y="11,12,12,12,12,12,12,13,12"
		[/move]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,25,26,27,28,29,30"
			y="19,20,20,20,19,20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="34,33,33"
			y="17,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="8,8,8,8,9"
			y="17,16,15,14,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,11,11,11,11,10"
			y="19,18,17,16,15,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="12,11"
			y="11,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="11"
				y="12"
			[/source]
			[destination]
				x="11"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="3075"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="5018"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="22777"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="5766"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="The_Unforgiven has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="katerina123123 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,21"
			y="20,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="7"
			x="24"
			y="19"
		[/recruit]
		[random]
			value="4822"
		[/random]
		[random]
			value="12293"
		[/random]
		[random]
			value="3202"
		[/random]
		[random]
			value="26787"
		[/random]
		[random]
			value="5732"
		[/random]
		[random]
			value="16866"
		[/random]
		[random]
			value="28567"
		[/random]
		[random]
			value="10911"
		[/random]
		[random]
			value="28414"
		[/random]
		[random]
			value="15271"
		[/random]
		[random]
			value="22989"
		[/random]
		[random]
			value="16044"
		[/random]
		[random]
			value="12039"
		[/random]
		[random]
			value="10814"
		[/random]
		[random]
			value="6197"
			[results]
				checksum=",Ad3Y5f-Gtmnsp5jHbEoRiVrOCpxE4IDyxOzzQOG.nCLyyGDmUtLNvFrwCUxRLwFwmIsr1QENmxPFHFw.RFKFnqypNQsM8mwoFomIhFlq1.CLW<<ddNv5EsLNHBNzkOI"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,22,23,24,25"
			y="21,20,20,20,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="zeb has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="19,18,17,16,15,14,13,12"
			y="5,5,6,6,7,7,8,8"
		[/move]
	[/command]
	[command]
		[move]
			x="16,17,18"
			y="6,6,5"
		[/move]
	[/command]
	[command]
		[move]
			x="17,17,16,15,14,13"
			y="8,7,6,7,7,8"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="11"
				y="11"
			[/source]
			[destination]
				x="11"
				y="12"
			[/destination]
		[/attack]
		[random]
			value="646766613"
			[results]
				chance="70"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="139163590"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1592270709"
			[results]
				chance="70"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="2"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="673088149"
		[/random]
		[random]
			value="482853201"
		[/random]
		[random]
			value="1002320712"
		[/random]
		[random]
			value="1092469394"
		[/random]
		[random]
			value="1623552232"
		[/random]
		[random]
			value="1306638938"
		[/random]
		[random]
			value="1585786823"
		[/random]
		[random]
			value="1232285991"
		[/random]
		[random]
			value="1953405551"
		[/random]
		[random]
			value="907564365"
		[/random]
		[random]
			value="1495370731"
		[/random]
		[random]
			value="1891199740"
		[/random]
		[random]
			value="1268473298"
		[/random]
		[random]
			value="529879426"
		[/random]
		[random]
			value="2030363331"
			[results]
				checksum="dyxuTOJUoJO8HNrG4rKqKKyCcwwqoNtRxBzMHwQmPyQBpPAuOCIG6zNHsCQFqzuGzwKqqyuyKqqV5RBJTuEm3frBwnBwBICTrpKGHCIsunwtfyIWc<MGO<7LH5>f0208"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Kakaroto has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="18,17,16,15"
			y="5,6,6,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Grail has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="28,29,30,31,31,32"
			y="9,10,10,11,12,12"
		[/move]
	[/command]
	[command]
		[move]
			x="32,33,34"
			y="11,12,12"
		[/move]
	[/command]
	[command]
		[move]
			x="31,32,33"
			y="12,11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="27,28,29,30,31,32"
			y="10,10,11,11,12,11"
		[/move]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,25,26,27,28,29"
			y="19,19,18,18,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,24,23,22,21"
			y="21,20,20,20,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="0"
			x="18"
			y="19"
		[/recruit]
		[random]
			value="892"
		[/random]
		[random]
			value="3605"
		[/random]
		[random]
			value="23826"
		[/random]
		[random]
			value="18033"
		[/random]
		[random]
			value="24388"
		[/random]
		[random]
			value="20009"
		[/random]
		[random]
			value="27852"
		[/random]
		[random]
			value="18589"
		[/random]
		[random]
			value="24817"
		[/random]
		[random]
			value="23501"
		[/random]
		[random]
			value="2594"
		[/random]
		[random]
			value="8986"
		[/random]
		[random]
			value="10812"
		[/random]
		[random]
			value="9443"
		[/random]
		[random]
			value="12857"
			[results]
				checksum="pMyPvoKvbBq0MCQtxRPyPu1PqOvyvtVtPtsuCMyPNLLqFJRxvqM3FDTGMqHwEVMDODuIOJsNEBPcOusOKDwebPsxOruODoP.K+zDJqnqswJG0PpQ,OvAQ30CF>nl1cth"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,11,12"
			y="12,13,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,10"
			y="14,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,9"
			y="14,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="34,35"
			y="16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="30,31,31,32,32,33"
			y="20,20,19,18,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="19,18,17,16,15,14,14"
			y="5,5,6,6,7,7,8"
		[/move]
	[/command]
	[command]
		[move]
			x="13,12,12,12,12,12"
			y="8,8,9,10,11,12"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="12"
				y="12"
			[/source]
			[destination]
				x="12"
				y="13"
			[/destination]
		[/attack]
		[random]
			value="1361400154"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1026315887"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="447613255"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="moep has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="15,16,17,18"
			y="7,6,6,5"
		[/move]
	[/command]
	[command]
		[move]
			x="12,12,12,11,11,11"
			y="8,9,10,11,12,13"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="11"
				y="13"
			[/source]
			[destination]
				x="12"
				y="13"
			[/destination]
		[/attack]
		[random]
			value="1299081785"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1071482854"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1711009569"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1131267932"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1388321919"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="oleub has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="11,12,13,14,14,14,13,12"
			y="11,11,12,12,13,14,15,14"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="12"
				y="14"
			[/source]
			[destination]
				x="12"
				y="13"
			[/destination]
		[/attack]
		[random]
			value="1161155958"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1044109474"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="310107244"
			[results]
				chance="60"
				damage="3"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="moep has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="JLS has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="32,32,32,31"
			y="11,10,9,9"
		[/move]
	[/command]
	[command]
		[move]
			x="33,32,32,31"
			y="12,11,10,10"
		[/move]
	[/command]
	[command]
		[move]
			x="34,33,33,33,32"
			y="12,12,11,10,9"
		[/move]
	[/command]
	[command]
		[move]
			x="31,30"
			y="10,9"
		[/move]
	[/command]
	[command]
		[move]
			x="30,31,31,31"
			y="12,12,11,10"
		[/move]
	[/command]
	[command]
		[move]
			x="32,31,31,31,31,30,29"
			y="12,12,11,10,9,8,8"
		[/move]
	[/command]
	[command]
		[move]
			x="27,27,26"
			y="12,11,10"
		[/move]
	[/command]
	[command]
		[move]
			x="18,19,20"
			y="5,6,6"
		[/move]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="apolon has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Gideon has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="love has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="33,32,32,32,31,30,30,30,30"
			y="17,16,15,14,14,13,12,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="30"
				y="10"
			[/source]
			[destination]
				x="30"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="513"
			[results]
				chance="60"
				damage="22"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="2069"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="18801"
			[results]
				chance="60"
				damage="22"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="tech has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="31,31,31,31,31,31"
			y="16,15,14,13,12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="31"
				y="11"
			[/source]
			[destination]
				x="31"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="522"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1352"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="911"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="14113"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="13179"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="5murf has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="33,33,32,32,31"
			y="16,15,14,13,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="35,35,35,35,34"
			y="16,15,14,13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="29,30,30,30,30,29"
			y="17,16,15,14,13,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="10"
				y="13"
			[/source]
			[destination]
				x="11"
				y="13"
			[/destination]
		[/attack]
		[random]
			value="2396"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="24158"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="26648"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="10543"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="13979"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="15395"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,9,9,10,11"
			y="14,13,12,11,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="11"
				y="12"
			[/source]
			[destination]
				x="12"
				y="12"
			[/destination]
		[/attack]
		[random]
			value="30693"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="30482"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="21612"
			[results]
				chance="70"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="4802"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="6923"
			[results]
				chance="70"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="7852"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Frognosis has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,17,17,16,16,15"
			y="19,19,18,17,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="7"
			x="18"
			y="19"
		[/recruit]
		[random]
			value="20775"
		[/random]
		[random]
			value="22642"
		[/random]
		[random]
			value="22192"
		[/random]
		[random]
			value="14088"
		[/random]
		[random]
			value="32377"
		[/random]
		[random]
			value="16812"
		[/random]
		[random]
			value="29356"
		[/random]
		[random]
			value="23125"
		[/random]
		[random]
			value="13329"
		[/random]
		[random]
			value="12968"
		[/random]
		[random]
			value="6574"
		[/random]
		[random]
			value="27048"
		[/random]
		[random]
			value="8780"
		[/random]
		[random]
			value="6042"
		[/random]
		[random]
			value="20270"
			[results]
				checksum=",Ad3Y5f-Gtmnsp5jHbEoRiVrOCpxE4IDyxOzzQOG.nCLyyGDmUtLNvFrwCUxRLwFwmIsr1QENmxPFHFw.RFKFnqypNQsM8mwoFomIhFlq1.CLW<<ddNv5EsLNHBNzkOI"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,20,19,19,19"
			y="21,20,20,19,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="14,13,12,12,11"
			y="8,9,9,10,11"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="11"
				y="11"
			[/source]
			[destination]
				x="11"
				y="12"
			[/destination]
		[/attack]
		[random]
			value="770814126"
			[results]
				chance="60"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1555059160"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="318445813"
			[results]
				chance="60"
				damage="10"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="12,12,12"
			y="14,15,16"
		[/move]
	[/command]
	[command]
		[move]
			x="12,12,12,11"
			y="16,17,18,19"
		[/move]
	[/command]
	[command]
		[move]
			x="11,11,11,11,11,11,11"
			y="13,12,11,10,9,8,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="necro has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="12,12,11,11,11,11,10"
			y="12,11,11,10,9,8,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="subLime has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="20,19,18"
			y="6,6,5"
		[/move]
	[/command]
	[command]
		[recruit]
			value="1"
			x="24"
			y="5"
		[/recruit]
		[random]
			value="905824274"
		[/random]
		[random]
			value="623789339"
		[/random]
		[random]
			value="752980248"
		[/random]
		[random]
			value="2005828125"
		[/random]
		[random]
			value="213858730"
		[/random]
		[random]
			value="366402718"
		[/random]
		[random]
			value="365923840"
		[/random]
		[random]
			value="1542054649"
		[/random]
		[random]
			value="1283552519"
		[/random]
		[random]
			value="322819633"
		[/random]
		[random]
			value="1308087155"
		[/random]
		[random]
			value="1020501736"
		[/random]
		[random]
			value="598161240"
		[/random]
		[random]
			value="896848155"
		[/random]
		[random]
			value="1388025424"
			[results]
				checksum="KzLvyin74-,vpeaEvE02ij,1f-H<ltHpHl.4.Zv+KOuxJJEBpQwGOLzIDBBrtvLGpNIMjJxOsDGJKEAIFmsFKnyPOyzu3tJHxVzEnyVqOuyLwrBF>8AJxGsqutBis5-V"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="5"
			x="23"
			y="5"
		[/recruit]
		[random]
			value="1426131743"
		[/random]
		[random]
			value="899949542"
		[/random]
		[random]
			value="1729733907"
		[/random]
		[random]
			value="210788500"
		[/random]
		[random]
			value="1287113936"
		[/random]
		[random]
			value="477541337"
		[/random]
		[random]
			value="1809073752"
		[/random]
		[random]
			value="798601773"
		[/random]
		[random]
			value="267203264"
		[/random]
		[random]
			value="528237804"
		[/random]
		[random]
			value="931287542"
		[/random]
		[random]
			value="501799500"
		[/random]
		[random]
			value="1434062079"
		[/random]
		[random]
			value="1555076881"
		[/random]
		[random]
			value="1254779749"
			[results]
				checksum="dfk10b5br.kQp.+wk<Ab-239eel1N5llg71o3Xl17<1,5g7Z-k6kZlaGnZ68p4>gn6n3e1iafnb5+9fo4>73a+>+.57mc,6d1edjnNmi-f,a8gbj.r.awWGe+,PQ3hpQ"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Akarias has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="18,17,16,15"
			y="5,6,6,7"
		[/move]
	[/command]
	[command]
		[move]
			x="31,30"
			y="9,9"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="30"
				y="9"
			[/source]
			[destination]
				x="30"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="881675074"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="279259822"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="625116258"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="31,31"
			y="10,9"
		[/move]
	[/command]
	[command]
		[move]
			x="32,31"
			y="9,10"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="31"
				y="10"
			[/source]
			[destination]
				x="30"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="407241407"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1013179860"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="296325066"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="sachar has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="26,27,28,29"
			y="10,11,10,11"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="29"
				y="11"
			[/source]
			[destination]
				x="30"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="2092664520"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="642655328"
			[results]
				chance="70"
				damage="14"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1848310073"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="595620276"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1220135531"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="29,29,29"
			y="8,9,10"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="29"
				y="10"
			[/source]
			[destination]
				x="30"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="1720889977"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="612023341"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1078093180"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="perty has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="31,30,29,28,27,26"
			y="9,8,9,9,10,10"
		[/move]
	[/command]
	[command]
		[move]
			x="11,12"
			y="7,6"
		[/move]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Champzor1 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="30,30"
			y="10,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="30"
				y="11"
			[/source]
			[destination]
				x="29"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="29944"
			[results]
				chance="70"
				damage="27"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="21173"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="32202"
			[results]
				chance="70"
				damage="27"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="34,33,33,32"
			y="12,12,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="32"
				y="10"
			[/source]
			[destination]
				x="31"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="10768"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="10455"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="31087"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="6718"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="20671"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="13147"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="31,30"
			y="11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="30"
				y="10"
			[/source]
			[destination]
				x="29"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="29864"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="27150"
			[results]
				chance="60"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="32598"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="19409"
			[results]
				chance="60"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="23192"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="31,31,31"
			y="13,12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="31"
				y="11"
			[/source]
			[destination]
				x="31"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="7801"
			[results]
				chance="60"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="5293"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1120"
			[results]
				chance="60"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="19602"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="30123"
			[results]
				chance="60"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="21566"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		undo="no"
		[speak]
			id="Tesafilmchen"
			message="wow"
			side="1"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="29,29,29"
			y="13,12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="29"
				y="11"
			[/source]
			[destination]
				x="29"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="8913"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="22203"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="5260"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="13579"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="26738"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,14,13"
			y="16,15,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,13,12"
			y="15,14,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="hi has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,17"
			y="19,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="17,16,15"
			y="19,19,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,19,19,20,21"
			y="18,19,20,20,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="0"
			x="18"
			y="19"
		[/recruit]
		[random]
			value="25792"
		[/random]
		[random]
			value="7866"
		[/random]
		[random]
			value="6600"
		[/random]
		[random]
			value="8280"
		[/random]
		[random]
			value="3437"
		[/random]
		[random]
			value="19474"
		[/random]
		[random]
			value="9704"
		[/random]
		[random]
			value="8386"
		[/random]
		[random]
			value="31249"
		[/random]
		[random]
			value="10177"
		[/random]
		[random]
			value="27725"
		[/random]
		[random]
			value="1667"
		[/random]
		[random]
			value="20034"
		[/random]
		[random]
			value="2581"
		[/random]
		[random]
			value="23256"
			[results]
				checksum="pMyPwoKvbBq0MCQtxRPyPu1PqOvyvtVtPtsuCMyPNLLqFJRxvqM3FDTGMqHwEVMDODuIOJsNErPcOusOKDwebPsxOruODoP.K+zDJqnqswJL0PpQ,RvAQ30CF>hl1cth"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,22"
			y="21,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="12,13,14,15,16,17,17"
			y="6,7,6,6,6,7,8"
		[/move]
	[/command]
	[command]
		[move]
			x="10,10,11,11,12"
			y="7,6,6,5,4"
		[/move]
	[/command]
	[command]
		[move]
			x="15,16,17,18"
			y="7,6,6,5"
		[/move]
	[/command]
	[command]
		[move]
			x="24,24,25,25,26"
			y="5,6,7,8,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="BuBu has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="23,24,25,26,27,28,29,29"
			y="5,5,6,6,7,6,7,8"
		[/move]
	[/command]
	[command]
		[recruit]
			value="4"
			x="24"
			y="5"
		[/recruit]
		[random]
			value="1341370038"
		[/random]
		[random]
			value="792928583"
		[/random]
		[random]
			value="1576550890"
		[/random]
		[random]
			value="1495871591"
		[/random]
		[random]
			value="1165725534"
		[/random]
		[random]
			value="145162333"
		[/random]
		[random]
			value="47898854"
		[/random]
		[random]
			value="299108160"
		[/random]
		[random]
			value="498761576"
		[/random]
		[random]
			value="714829446"
		[/random]
		[random]
			value="2114143655"
		[/random]
		[random]
			value="2058479047"
		[/random]
		[random]
			value="1046092342"
		[/random]
		[random]
			value="984123909"
		[/random]
		[random]
			value="822527434"
			[results]
				checksum="4zf1OSw,C7F>rbJjIs8AZ92.m<KzFBEHnuR73QRpoMa2r4.k-cpOaw87,.Y8Z.5ndaB-kwWvSlbAfbufC3iaj7hobd->Zhenk<>2fa5>ai01-b1+6Z+40CN5c8b.>X,4"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="pl has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="18,19,20"
			y="5,6,6"
		[/move]
	[/command]
	[command]
		[move]
			x="26,27,27,28,29,30"
			y="10,11,12,12,13,12"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="30"
				y="12"
			[/source]
			[destination]
				x="30"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="1765067033"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1339296608"
			[results]
				chance="60"
				damage="4"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="30,31,32"
			y="9,9,9"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="32"
				y="9"
			[/source]
			[destination]
				x="32"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="1769034139"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1571643113"
			[results]
				chance="40"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1879641307"
			[results]
				chance="70"
				damage="4"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="26,26,27"
			y="8,9,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="shan has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="11,10,9,8,7,6,5,4,3"
			y="19,18,18,17,17,16,16,15,15"
		[/move]
	[/command]
	[command]
		[move]
			x="31,32,33,33,32"
			y="10,9,10,11,11"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="32"
				y="11"
			[/source]
			[destination]
				x="31"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="1695686026"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="931080806"
			[results]
				chance="60"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="821102247"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="198648730"
			[results]
				chance="60"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1827043711"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="29,29,30,31,31"
			y="10,9,8,9,10"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="31"
				y="10"
			[/source]
			[destination]
				x="31"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="768401878"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1864854045"
			[results]
				chance="50"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="2027735711"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="512883211"
			[results]
				chance="50"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="776081208"
			[results]
				chance="70"
				damage="4"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="11,11,10,10"
			y="11,10,9,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="idiota has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,14,13,12,11"
			y="20,19,19,19,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,17,16,15"
			y="19,19,19,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="12,12"
			y="13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="12,12,11"
			y="12,11,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,10,10,10"
			y="13,12,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="22,21"
			y="20,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="0"
			x="24"
			y="19"
		[/recruit]
		[random]
			value="9091"
		[/random]
		[random]
			value="4747"
		[/random]
		[random]
			value="30404"
		[/random]
		[random]
			value="1498"
		[/random]
		[random]
			value="30282"
		[/random]
		[random]
			value="6421"
		[/random]
		[random]
			value="11474"
		[/random]
		[random]
			value="13295"
		[/random]
		[random]
			value="29574"
		[/random]
		[random]
			value="8746"
		[/random]
		[random]
			value="18805"
		[/random]
		[random]
			value="1949"
		[/random]
		[random]
			value="2043"
		[/random]
		[random]
			value="4498"
		[/random]
		[random]
			value="25386"
			[results]
				checksum="pMyPvoKvbBq0MCQtxRPyPu1PqOvyvtVtPtsuCMyPNLLqFJRxvqM3FDTGMqHwEVMDODuIOJsNEpPcOusOKDwebPsxOruODoP.K+zDJqnqswJG0PpQ,RvAQ30CF>bl1cth"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="30,31"
			y="10,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="31"
				y="11"
			[/source]
			[destination]
				x="31"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="28214"
			[results]
				chance="50"
				damage="8"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="29,30,31"
			y="11,10,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="31"
				y="10"
			[/source]
			[destination]
				x="32"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="22775"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="16610"
			[results]
				chance="40"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="21452"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="8153"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="2402"
			[results]
				chance="40"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="27,28,29,29,30,31"
			y="10,10,11,12,12,12"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="1"
			[source]
				x="31"
				y="12"
			[/source]
			[destination]
				x="31"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="1687633785"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="496207275"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="793204098"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1636094770"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="804739545"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="16480425"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1354951519"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="32,33"
			y="11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="24,24,24,24,25,25,26"
			y="5,6,7,8,9,10,10"
		[/move]
	[/command]
	[command]
		[move]
			x="29,30,31,32,32,32"
			y="8,8,9,9,10,11"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="32"
				y="11"
			[/source]
			[destination]
				x="31"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="482226269"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="252276710"
			[results]
				chance="40"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1043163118"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1435068091"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1767329831"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="877143291"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="556151254"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="32,32,31,30,29,29,29,30"
			y="9,8,8,8,9,10,11,11"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="30"
				y="11"
			[/source]
			[destination]
				x="31"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="2090370666"
			[results]
				chance="70"
				damage="4"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[choose]
			value="1"
		[/choose]
	[/command]
	[command]
		[move]
			x="30,30"
			y="12,13"
		[/move]
	[/command]
	[command]
		[move]
			x="30,30,30,30"
			y="13,14,15,16"
		[/move]
	[/command]
	[command]
		[move]
			x="30,30,30,30,30"
			y="16,17,18,19,20"
		[/move]
	[/command]
	[command]
		[move]
			x="33,32,31,31,31,31"
			y="12,12,13,14,15,16"
		[/move]
	[/command]
	[command]
		[move]
			x="20,19,18"
			y="6,6,5"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="julian has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Anarchid has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="10,10,11,12,13,13,14"
			y="8,7,7,6,6,5,4"
		[/move]
	[/command]
	[command]
		[move]
			x="3,3,3,3,3,3,4,4"
			y="15,14,13,12,11,10,9,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Warfall has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,24,25"
			y="19,20,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="kirlia has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="7"
			x="24"
			y="19"
		[/recruit]
		[random]
			value="22277"
		[/random]
		[random]
			value="29291"
		[/random]
		[random]
			value="18693"
		[/random]
		[random]
			value="22084"
		[/random]
		[random]
			value="6420"
		[/random]
		[random]
			value="30700"
		[/random]
		[random]
			value="28857"
		[/random]
		[random]
			value="25797"
		[/random]
		[random]
			value="20987"
		[/random]
		[random]
			value="16439"
		[/random]
		[random]
			value="24091"
		[/random]
		[random]
			value="27668"
		[/random]
		[random]
			value="26351"
		[/random]
		[random]
			value="13562"
		[/random]
		[random]
			value="18482"
			[results]
				checksum=",Ad3Y5f-Gtmnsp5jHbEoRiVrOCpxE4IDyxOzzQOG.nCLyyGDmUtLNvFrwCUxRLwFwmIsr1QENmxPFHFw.RFKFnqypNQsM8mwoFomIhFlq1.CLW<<ddNv5EsLNHBNzkOI"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,16,17,18,19,20,21"
			y="20,19,19,19,20,20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,11,11,11,11"
			y="19,18,17,16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="edu has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,11"
			y="10,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,11,11"
			y="11,10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,11,11,10"
			y="10,9,8,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="ZeldaLink has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,11,11"
			y="9,8,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="31,32,33,33"
			y="10,9,10,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="33"
				y="11"
			[/source]
			[destination]
				x="32"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="15641"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="22938"
			[results]
				chance="50"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="9863"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="16465"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="9576"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="4815"
			[results]
				chance="50"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="30166"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="30,31,32,33"
			y="11,12,12,12"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="33"
				y="12"
			[/source]
			[destination]
				x="33"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="1134529845"
			[results]
				chance="70"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="443710916"
			[results]
				chance="40"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="605483424"
			[results]
				chance="70"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="2035296296"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="26,27,28,29,30,31,32"
			y="10,10,10,10,10,10,10"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="32"
				y="10"
			[/source]
			[destination]
				x="33"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="1333051336"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="544337856"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1091788556"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="47280738"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="32,31,31"
			y="11,11,10"
		[/move]
	[/command]
	[command]
		[move]
			x="31,32"
			y="12,11"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="1"
			[source]
				x="32"
				y="11"
			[/source]
			[destination]
				x="33"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="51452450"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1344120730"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1671804196"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="639018093"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="756294380"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="490738922"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1469547994"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="30,31,31,32,32,33"
			y="20,20,19,18,17,17"
		[/move]
	[/command]
	[command]
		[recruit]
			value="1"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="107326058"
		[/random]
		[random]
			value="839570979"
		[/random]
		[random]
			value="6010040"
		[/random]
		[random]
			value="427251859"
		[/random]
		[random]
			value="1595865359"
		[/random]
		[random]
			value="1191798546"
		[/random]
		[random]
			value="473748005"
		[/random]
		[random]
			value="2035151831"
		[/random]
		[random]
			value="19023421"
		[/random]
		[random]
			value="857434653"
		[/random]
		[random]
			value="378407106"
		[/random]
		[random]
			value="1976578290"
		[/random]
		[random]
			value="646931736"
		[/random]
		[random]
			value="503834370"
		[/random]
		[random]
			value="1457897524"
			[results]
				checksum="KzLvyin74-,speaEvE02ij,1f-H<ltHpHl.4.Zv+KOuxJJEBpQwGOLzIDBBrtvLGpNIMjJxOsDGJKEAIFmsFKnyPOywu3tJHxVzEnyVqOuyLwrBF>8AJxGsqutBjv5-V"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Kingas has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="KnightKunibert has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="18,17,16,15,14,13"
			y="5,6,6,7,7,7"
		[/move]
	[/command]
	[command]
		[move]
			x="12,12,13,13,12"
			y="4,5,6,7,7"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="12"
				y="7"
			[/source]
			[destination]
				x="11"
				y="7"
			[/destination]
		[/attack]
		[random]
			value="854657606"
			[results]
				chance="70"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1121917484"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1270742180"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="591634657"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1339120094"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1985476034"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="14,13,13,12"
			y="4,5,6,6"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="12"
				y="6"
			[/source]
			[destination]
				x="11"
				y="7"
			[/destination]
		[/attack]
		[random]
			value="1160173386"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="592524460"
			[results]
				chance="70"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1414037526"
			[results]
				chance="50"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1456697367"
			[results]
				chance="70"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1128154547"
			[results]
				chance="50"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="17,17,16,15,14,13,12,11"
			y="8,7,6,7,7,8,8,8"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="11"
				y="8"
			[/source]
			[destination]
				x="11"
				y="7"
			[/destination]
		[/attack]
		[random]
			value="1222382285"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="976407805"
			[results]
				chance="70"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="543544800"
			[results]
				chance="50"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="2137182750"
			[results]
				chance="70"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="428496925"
			[results]
				chance="50"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="4,5,6,7,8,9,10"
			y="8,8,7,7,6,6,6"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="10"
				y="6"
			[/source]
			[destination]
				x="11"
				y="7"
			[/destination]
		[/attack]
		[random]
			value="190556477"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1239086878"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1435316278"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="689058044"
			[results]
				chance="70"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="33"
				y="11"
			[/source]
			[destination]
				x="33"
				y="12"
			[/destination]
		[/attack]
		[random]
			value="8076"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="30158"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="23309"
			[results]
				chance="40"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="31156"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="14862"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,26,27"
			y="21,20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,28,29,30"
			y="20,19,20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,24,25"
			y="19,20,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="7"
			x="24"
			y="19"
		[/recruit]
		[random]
			value="13802"
		[/random]
		[random]
			value="29898"
		[/random]
		[random]
			value="21407"
		[/random]
		[random]
			value="13494"
		[/random]
		[random]
			value="26845"
		[/random]
		[random]
			value="5521"
		[/random]
		[random]
			value="1452"
		[/random]
		[random]
			value="7593"
		[/random]
		[random]
			value="31734"
		[/random]
		[random]
			value="4271"
		[/random]
		[random]
			value="7258"
		[/random]
		[random]
			value="20938"
		[/random]
		[random]
			value="18002"
		[/random]
		[random]
			value="3995"
		[/random]
		[random]
			value="20178"
			[results]
				checksum=",Ad3Y5f-Gtmnrp5jHbEoRiVrOCpxE4IDyxOzzQOG.nCLyyGDmUtLNvFrwCUxRLwFwmIsr1QENmxPFHFw.RFKFnqypNQrM8mwoFomIhFlq1.CLB<<ddNv5EsLNHBNzhOI"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,10,10"
			y="15,14,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,10"
			y="7,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="10"
				y="8"
			[/source]
			[destination]
				x="11"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="8503"
			[results]
				chance="70"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="8884"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="31757"
			[results]
				chance="70"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="19387"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="31391"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="14958"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="tech has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,10"
			y="7,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="10"
				y="7"
			[/source]
			[destination]
				x="11"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="28956"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="7388"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="95"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="16335"
			[results]
				chance="50"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="27507"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="13408"
			[results]
				chance="50"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="elvin has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Doeheadmic has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,22,23,24,25,25"
			y="20,19,19,18,18,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,20,19,18"
			y="21,20,20,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="10,9"
			y="6,7"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="9"
				y="7"
			[/source]
			[destination]
				x="10"
				y="7"
			[/destination]
		[/attack]
		[random]
			value="756757348"
			[results]
				chance="60"
				damage="2"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[choose]
			value="0"
		[/choose]
	[/command]
	[command]
		[move]
			x="11,11,11,11,12"
			y="8,7,6,5,4"
		[/move]
	[/command]
	[command]
		[move]
			x="19,18,17,16,15,14,13"
			y="5,5,6,6,7,7,8"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="1"
			[source]
				x="32"
				y="11"
			[/source]
			[destination]
				x="33"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="738553975"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="515833488"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="2104205463"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1570734926"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1984136961"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="182456818"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="583795060"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="32"
				y="10"
			[/source]
			[destination]
				x="33"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="1538271358"
			[results]
				chance="70"
				damage="6"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="TanuPoN has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Cremember has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="33,33"
			y="12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="TanuPoN has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="31,31,31,31"
			y="10,11,12,13"
		[/move]
	[/command]
	[command]
		[move]
			x="13,14,15,16,17,18"
			y="7,6,6,5,5,5"
		[/move]
	[/command]
	[command]
		[recruit]
			value="0"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="861506747"
		[/random]
		[random]
			value="160976744"
		[/random]
		[random]
			value="1608366607"
		[/random]
		[random]
			value="1505852504"
		[/random]
		[random]
			value="561218687"
		[/random]
		[random]
			value="2118456288"
		[/random]
		[random]
			value="1967235329"
		[/random]
		[random]
			value="256868970"
		[/random]
		[random]
			value="1961352107"
		[/random]
		[random]
			value="1819405864"
		[/random]
		[random]
			value="818662519"
		[/random]
		[random]
			value="970301497"
		[/random]
		[random]
			value="1049902925"
		[/random]
		[random]
			value="574688416"
		[/random]
		[random]
			value="1419504163"
			[results]
				checksum=">UABvPGKRFs+RPP0VDMFU5szDKhwNqBscwwqoNtRxBzMHwQmPyPvpPAuOCIG6zNHsCQFqzuGzwKqqyuyKqqS5RBJTuEm3frBwnBwBICTrpKGHCIsunwtfyIWceMGO<Yo"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="12,12,12,12,12"
			y="7,6,5,4,3"
		[/move]
	[/command]
	[command]
		[move]
			x="12,12"
			y="6,5"
		[/move]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,11,11,11"
			y="8,9,10,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,9,9"
			y="13,13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="30,31"
			y="20,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="maty has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,26,27,28,29,30"
			y="21,20,20,19,20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,25,26,27,28"
			y="19,20,20,20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="6"
			x="24"
			y="19"
		[/recruit]
		[random]
			value="13059"
		[/random]
		[random]
			value="4694"
		[/random]
		[random]
			value="4581"
		[/random]
		[random]
			value="29902"
		[/random]
		[random]
			value="14530"
		[/random]
		[random]
			value="12938"
		[/random]
		[random]
			value="4412"
		[/random]
		[random]
			value="31291"
		[/random]
		[random]
			value="13417"
		[/random]
		[random]
			value="22793"
		[/random]
		[random]
			value="6558"
		[/random]
		[random]
			value="5297"
		[/random]
		[random]
			value="21616"
		[/random]
		[random]
			value="3071"
		[/random]
		[random]
			value="9181"
			[results]
				checksum="XBfX4cmcHYau810h3t9co8gj2UWo-1,n-62ad7l9i<dX9dX-4o9W2w2-6hZd9kbd.d07gZj2f,ei>ybXfdk5k4Nw>d595,cp6dzgA.Zj4982<j3D1<4M26i7zO.<BtyI"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,25,25,25,25"
			y="17,18,19,20,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="maty has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="19,18,17,16,15,14"
			y="5,5,6,6,7,7"
		[/move]
	[/command]
	[command]
		[move]
			x="18,17,16,15,14,13"
			y="5,6,6,7,6,7"
		[/move]
	[/command]
	[command]
		[move]
			x="13,12"
			y="8,7"
		[/move]
	[/command]
	[command]
		[move]
			x="12,12,11"
			y="5,6,7"
		[/move]
	[/command]
	[command]
		[move]
			x="9,10,11,12,13,14,15,16,17,18"
			y="7,6,6,6,6,6,7,6,7,7"
		[/move]
	[/command]
	[command]
		[move]
			x="12,12"
			y="4,5"
		[/move]
	[/command]
	[command]
		[move]
			x="12,12"
			y="3,4"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="paris has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="33,33,33"
			y="11,12,13"
		[/move]
	[/command]
	[command]
		[move]
			x="32,33,33"
			y="10,11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="31,32"
			y="16,15"
		[/move]
	[/command]
	[command]
		[move]
			x="33,33,34,34,34,34"
			y="17,16,15,14,13,12"
		[/move]
	[/command]
	[command]
		[move]
			x="32,32,32,32"
			y="15,14,13,12"
		[/move]
	[/command]
	[command]
		[move]
			x="31,31"
			y="13,12"
		[/move]
	[/command]
	[command]
		[move]
			x="32,31"
			y="12,13"
		[/move]
	[/command]
	[command]
		[move]
			x="32,32"
			y="11,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="harry has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,23,22,21,21,21"
			y="19,19,18,18,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="30,30,30"
			y="20,19,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="30,30"
			y="18,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="30,30"
			y="17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="30,31"
			y="16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Krieger has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="MaRtEl__ has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="28,28,28,29,29,30"
			y="20,19,18,18,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,26,27,27,28,28,29"
			y="21,20,20,19,18,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="31,31,31,31,32"
			y="21,20,19,18,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="32,32"
			y="17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,19,20,21"
			y="19,20,20,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="4"
			x="18"
			y="19"
		[/recruit]
		[random]
			value="17837"
		[/random]
		[random]
			value="9690"
		[/random]
		[random]
			value="4521"
		[/random]
		[random]
			value="12333"
		[/random]
		[random]
			value="23036"
		[/random]
		[random]
			value="2792"
		[/random]
		[random]
			value="29127"
		[/random]
		[random]
			value="559"
		[/random]
		[random]
			value="11289"
		[/random]
		[random]
			value="24166"
		[/random]
		[random]
			value="13072"
		[/random]
		[random]
			value="16215"
		[/random]
		[random]
			value="21732"
		[/random]
		[random]
			value="6534"
		[/random]
		[random]
			value="24181"
			[results]
				checksum="KcwfALHM1AKcptV75qVBLNNDjB+ho.t0,fnp91.7>Yl1cF7<01e5yd,9+0e3j4jcb6cifadb1-6cKf37b2ifil7.WgZ2.h<5-XxS+j>k2403-p8TA9v9PQDp80F<5210"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,11,11,12"
			y="11,12,13,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,9,10"
			y="12,13,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="18,19,19"
			y="7,8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="19,19,19,19"
			y="9,10,11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="19,19"
			y="12,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="paris has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="12,13,14,15,16,17,17"
			y="5,6,6,7,6,7,8"
		[/move]
	[/command]
	[command]
		[move]
			x="13,14,15,16,17,18"
			y="7,6,6,5,5,5"
		[/move]
	[/command]
	[command]
		[recruit]
			value="0"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="54446401"
		[/random]
		[random]
			value="1295441033"
		[/random]
		[random]
			value="626947751"
		[/random]
		[random]
			value="920236499"
		[/random]
		[random]
			value="1204576385"
		[/random]
		[random]
			value="548112732"
		[/random]
		[random]
			value="1851861576"
		[/random]
		[random]
			value="2122970884"
		[/random]
		[random]
			value="1326093245"
		[/random]
		[random]
			value="1003409732"
		[/random]
		[random]
			value="663970923"
		[/random]
		[random]
			value="502268604"
		[/random]
		[random]
			value="61999671"
		[/random]
		[random]
			value="1506586744"
		[/random]
		[random]
			value="412846798"
			[results]
				checksum=">UABvPGKRFs+RPP0VDMFU5szDKhwNqBscwwqoNtRxBzMHwQmPyPvpPAuOCIG6zNHsCQFqzuGzwKqqyuyKqqS5RBJTuEm3frBwnBwBICTrpKGHCIsunwtfyIWceMGO<Yo"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="skull13 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="32,32,32,32"
			y="12,13,14,15"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="1"
			[source]
				x="32"
				y="15"
			[/source]
			[destination]
				x="32"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="1211114391"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="182616077"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="479981717"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1565264817"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="698575682"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1468150169"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="31,31,32,33,34,34,33"
			y="13,14,14,15,15,16,17"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="33"
				y="17"
			[/source]
			[destination]
				x="32"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="1591750078"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="509967078"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1976713624"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1362934849"
			[results]
				chance="60"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1154820248"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="33,33,33,33,33"
			y="12,13,14,15,16"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="33"
				y="16"
			[/source]
			[destination]
				x="32"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="575560043"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1230304355"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1521059238"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="809921469"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1317418587"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1105603825"
			[results]
				chance="40"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="34,34,34,34,34,34,33,32"
			y="12,13,14,15,16,17,18,17"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="32"
				y="17"
			[/source]
			[destination]
				x="32"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="1827488529"
			[results]
				chance="60"
				damage="4"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="31,31"
			y="12,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="BuBu has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="33,33,33,33,34"
			y="13,14,15,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="severus has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="11,11,11"
			y="7,8,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="pirrus2 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="12,12,12,12,11"
			y="7,8,9,10,11"
		[/move]
	[/command]
	[command]
		[move]
			x="14,13,12,11,10"
			y="7,8,8,9,9"
		[/move]
	[/command]
	[command]
		[move]
			x="12,12,11,10,10,10"
			y="4,5,6,6,7,8"
		[/move]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,17,16,15,14,13,12,11"
			y="19,19,19,19,18,19,19,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="12,12,12,13"
			y="13,14,15,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,10,10,10"
			y="13,14,15,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,21"
			y="16,15"
		[/move]
	[/command]
	[command]
		undo="no"
		[speak]
			id="Tesafilmchen"
			message="myou forgot one of your vills"
			side="1"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,20"
			y="15,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="1"
			weapon="0"
			[source]
				x="31"
				y="16"
			[/source]
			[destination]
				x="32"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="23713"
			[results]
				chance="70"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="31898"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="13639"
			[results]
				chance="70"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="5607"
			[results]
				chance="40"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="5298"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="24913"
			[results]
				chance="40"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="16111"
			[results]
				chance="40"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="29,30,30,31"
			y="17,16,15,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="31"
				y="15"
			[/source]
			[destination]
				x="32"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="2444"
			[results]
				chance="70"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="21027"
			[results]
				chance="70"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1936"
			[results]
				chance="70"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Children_of_Bodom has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="aldarion has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="30,31"
			y="16,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="31"
				y="17"
			[/source]
			[destination]
				x="32"
				y="17"
			[/destination]
		[/attack]
		[random]
			value="26082"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="30954"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1693"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="14687"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="3792"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Zorro- has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="7"
			x="24"
			y="19"
		[/recruit]
		[random]
			value="23124"
		[/random]
		[random]
			value="23850"
		[/random]
		[random]
			value="27211"
		[/random]
		[random]
			value="3946"
		[/random]
		[random]
			value="21046"
		[/random]
		[random]
			value="27718"
		[/random]
		[random]
			value="19437"
		[/random]
		[random]
			value="25575"
		[/random]
		[random]
			value="30169"
		[/random]
		[random]
			value="30291"
		[/random]
		[random]
			value="17959"
		[/random]
		[random]
			value="18003"
		[/random]
		[random]
			value="3203"
		[/random]
		[random]
			value="25802"
		[/random]
		[random]
			value="7839"
			[results]
				checksum=",Ad3Y5f-Gtmsmp5jHbEoRiVrOCpxE4IDyxOzzQOG.nCLyyGDmUtLNvFrwCUxRLwFwmIsr1QENmxPFHFw.RFKFnqypNLmM8mwoFomIhFlq1.CLB<<ddNv5EsLNHBNzkOI"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="harry has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="JayEpstein4 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="19,18,17,16,15,14"
			y="5,5,6,6,7,7"
		[/move]
	[/command]
	[command]
		[move]
			x="17,18,19,20,21,22"
			y="8,7,8,8,9,9"
		[/move]
	[/command]
	[command]
		[move]
			x="32,33,33,32,32,31,31"
			y="15,15,14,13,12,12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Krieger has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="33,33,33,32"
			y="17,16,15,14"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="32"
				y="14"
			[/source]
			[destination]
				x="31"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="2037325402"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1484171893"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1446648831"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1171838508"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1176051354"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="33,33,33,32,31"
			y="16,15,14,13,14"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="31"
				y="14"
			[/source]
			[destination]
				x="31"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="91674065"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1680910204"
			[results]
				chance="60"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1089440433"
			[results]
				chance="70"
				damage="4"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[choose]
			value="0"
		[/choose]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="kOJACK has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Micha has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="32,33,33,32"
			y="17,17,16,15"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="32"
				y="15"
			[/source]
			[destination]
				x="31"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="310783032"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1754805494"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="955202335"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1017656994"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="31,30,30,30"
			y="13,13,14,15"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="30"
				y="15"
			[/source]
			[destination]
				x="31"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="1940817843"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="241634910"
			[results]
				chance="40"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="184809856"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="54245828"
			[results]
				chance="40"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1993060077"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1592974334"
			[results]
				chance="40"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="881847562"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Cremember has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="34,33,33,32,31"
			y="16,16,15,14,15"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="31"
				y="15"
			[/source]
			[destination]
				x="31"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="392058753"
			[results]
				chance="70"
				damage="5"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Dracon has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="31,31,31,31,30"
			y="17,18,19,20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,25,26,27,28"
			y="19,20,20,20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="0"
			x="24"
			y="19"
		[/recruit]
		[random]
			value="30347"
		[/random]
		[random]
			value="2227"
		[/random]
		[random]
			value="9357"
		[/random]
		[random]
			value="12730"
		[/random]
		[random]
			value="8439"
		[/random]
		[random]
			value="9253"
		[/random]
		[random]
			value="10329"
		[/random]
		[random]
			value="12590"
		[/random]
		[random]
			value="23119"
		[/random]
		[random]
			value="18495"
		[/random]
		[random]
			value="26088"
		[/random]
		[random]
			value="11313"
		[/random]
		[random]
			value="14972"
		[/random]
		[random]
			value="28501"
		[/random]
		[random]
			value="26636"
			[results]
				checksum="pMyPwoKvbBq0MCQtxRPyPu1PqOvyvtVtPtsuCMyPNLLqFJRxvqM3FDTGMqHwEVMDODuIOJsNEnPcOusOKDwebPsxOruODoP.K+zDJqnqswJL0PpQ,OvAQ30CF>dl1cth"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,20"
			y="15,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,10,10,10"
			y="16,15,14,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,13,13,12"
			y="16,15,14,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,11,11,11"
			y="19,18,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,11"
			y="16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,22,23,24,25"
			y="21,20,20,20,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[recruit]
			value="0"
			x="24"
			y="5"
		[/recruit]
		[random]
			value="40697958"
		[/random]
		[random]
			value="1660805782"
		[/random]
		[random]
			value="375726346"
		[/random]
		[random]
			value="102457030"
		[/random]
		[random]
			value="476447532"
		[/random]
		[random]
			value="674041854"
		[/random]
		[random]
			value="1957255930"
		[/random]
		[random]
			value="811993986"
		[/random]
		[random]
			value="1215829241"
		[/random]
		[random]
			value="244915402"
		[/random]
		[random]
			value="1702997831"
		[/random]
		[random]
			value="735452421"
		[/random]
		[random]
			value="584309342"
		[/random]
		[random]
			value="698865381"
		[/random]
		[random]
			value="203675028"
			[results]
				checksum=">UABxPGKRFs+RPQ0VDMFU5szDKhwNqBscwwqoNtRxBzMHwQmPyPvpPAuOCIG6zNHsCQFqzuGzwKqqyuyKqqU5RBJTuEm3frBwnBwBICTrpKGHCIsunwteCIWceMGO<Yo"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="18,19,20,21,22,23"
			y="5,6,6,7,7,8"
		[/move]
	[/command]
	[command]
		[move]
			x="22,23,24,25,26,26"
			y="9,9,8,9,9,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Devrailis has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="elvin has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="JayEpstein4 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="31,31,31,31,31,31,31"
			y="14,15,16,17,18,19,20"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="31"
				y="20"
			[/source]
			[destination]
				x="30"
				y="20"
			[/destination]
		[/attack]
		[random]
			value="868137201"
			[results]
				chance="70"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="766527911"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="837520677"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1295289302"
			[results]
				chance="70"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="cod2-ppsh has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="31,31,31,31,31,32,32,31"
			y="15,16,17,18,19,19,20,21"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="31"
				y="21"
			[/source]
			[destination]
				x="30"
				y="20"
			[/destination]
		[/attack]
		[random]
			value="1260747614"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="71965837"
			[results]
				chance="40"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1343336096"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="224591942"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="32,31,31,31,31,31,30"
			y="14,15,16,17,18,19,19"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="30"
				y="19"
			[/source]
			[destination]
				x="30"
				y="20"
			[/destination]
		[/attack]
		[random]
			value="723554600"
			[results]
				chance="70"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="306887441"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="2087945307"
			[results]
				chance="70"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1828456986"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1925011761"
			[results]
				chance="70"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="715877788"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Elvin_GER has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="32,32,32,32,32,32,32,31,30"
			y="15,16,17,18,19,20,21,22,21"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="30"
				y="21"
			[/source]
			[destination]
				x="30"
				y="20"
			[/destination]
		[/attack]
		[random]
			value="1664691010"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="917992638"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="2001066534"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="2073052285"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[choose]
			value="0"
		[/choose]
	[/command]
	[command]
		[move]
			x="30,30,30,30,29,29,29"
			y="15,16,17,18,19,20,21"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="29"
				y="21"
			[/source]
			[destination]
				x="30"
				y="20"
			[/destination]
		[/attack]
		[random]
			value="856504999"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1377732327"
			[results]
				chance="40"
				damage="4"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="31,31,31,31,31,31"
			y="11,12,13,14,15,16"
		[/move]
	[/command]
	[command]
		[move]
			x="10,11,11,11,11,12"
			y="8,9,10,11,12,12"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="12"
				y="12"
			[/source]
			[destination]
				x="12"
				y="13"
			[/destination]
		[/attack]
		[random]
			value="1740258429"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="54338674"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1928144016"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1947089645"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="10,10,11,11,11"
			y="9,10,11,12,13"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="11"
				y="13"
			[/source]
			[destination]
				x="12"
				y="13"
			[/destination]
		[/attack]
		[random]
			value="1318396201"
			[results]
				chance="50"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="416200646"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="346399149"
			[results]
				chance="50"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="414053620"
			[results]
				chance="50"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="735267947"
			[results]
				chance="50"
				damage="6"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="14,13,13,13,13,13"
			y="7,8,9,10,11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="11,11,12,12,12"
			y="11,12,12,13,14"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="1"
			[source]
				x="12"
				y="14"
			[/source]
			[destination]
				x="11"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="633039778"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1100442804"
			[results]
				chance="70"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="355957701"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="326523390"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="96565796"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="542742169"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="11,11,11,11,12,12"
			y="9,10,11,12,12,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Tyrion has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="darkhunter0 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="28,28,28,29,30"
			y="20,19,18,18,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="30"
				y="18"
			[/source]
			[destination]
				x="30"
				y="19"
			[/destination]
		[/attack]
		[random]
			value="3730"
			[results]
				chance="70"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="16903"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1380"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="13323"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="31315"
			[results]
				chance="70"
				damage="9"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,25,26,27,28,29,30"
			y="19,19,18,18,17,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="30"
				y="16"
			[/source]
			[destination]
				x="31"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="3932"
			[results]
				chance="60"
				damage="6"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,24,23,22,21"
			y="21,20,20,20,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="0"
			x="22"
			y="20"
		[/recruit]
		[random]
			value="6702"
		[/random]
		[random]
			value="13914"
		[/random]
		[random]
			value="32007"
		[/random]
		[random]
			value="670"
		[/random]
		[random]
			value="9075"
		[/random]
		[random]
			value="12504"
		[/random]
		[random]
			value="27373"
		[/random]
		[random]
			value="16400"
		[/random]
		[random]
			value="30706"
		[/random]
		[random]
			value="9755"
		[/random]
		[random]
			value="26404"
		[/random]
		[random]
			value="6827"
		[/random]
		[random]
			value="20639"
		[/random]
		[random]
			value="24535"
		[/random]
		[random]
			value="30432"
			[results]
				checksum="pMyPvoKvbBq0MCQtxRPyPu1PqOvyvtVtPtsuCMyPNLLqFJRxvqM3FDTGMqHwEVMDODuIOJsNEAPcOusOKDwebPsxOruODoP.K+zDJqnqswJL0PpQ,RvAQ30CF>ml1cth"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,21,22,23,23"
			y="14,14,13,13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="xrol has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,11,12,13,14,14,14,13"
			y="15,16,16,16,15,14,13,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="13"
				y="13"
			[/source]
			[destination]
				x="13"
				y="12"
			[/destination]
		[/attack]
		[random]
			value="24263"
			[results]
				chance="70"
				damage="20"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1738"
			[results]
				chance="60"
				damage="13"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="28167"
			[results]
				chance="70"
				damage="20"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="18567"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="10"
				y="13"
			[/source]
			[destination]
				x="11"
				y="13"
			[/destination]
		[/attack]
		[random]
			value="30864"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="30990"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="14484"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="28568"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="14283"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="12,13"
			y="14,14"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="1"
			[source]
				x="13"
				y="14"
			[/source]
			[destination]
				x="13"
				y="13"
			[/destination]
		[/attack]
		[random]
			value="149917605"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="799584102"
			[results]
				chance="70"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="691428378"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1809958433"
			[results]
				chance="70"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="937093204"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="76995078"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="11,11,12,13,14,14"
			y="13,12,11,11,11,12"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="14"
				y="12"
			[/source]
			[destination]
				x="13"
				y="13"
			[/destination]
		[/attack]
		[random]
			value="265622412"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1329500083"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="283550129"
			[results]
				chance="60"
				damage="5"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="12,11,10"
			y="12,12,12"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="10"
				y="12"
			[/source]
			[destination]
				x="10"
				y="13"
			[/destination]
		[/attack]
		[random]
			value="225734819"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1801772923"
			[results]
				chance="40"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1394256275"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="2121370141"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="rb has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="13,13,14,15,16"
			y="12,13,13,14,14"
		[/move]
	[/command]
	[command]
		[move]
			x="12,12,12,12,12,12,11"
			y="13,14,15,16,17,18,19"
		[/move]
	[/command]
	[command]
		[move]
			x="26,25,24,23"
			y="10,10,10,11"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="23"
				y="11"
			[/source]
			[destination]
				x="23"
				y="12"
			[/destination]
		[/attack]
		[random]
			value="1927283089"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="768043371"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="65509425"
			[results]
				chance="40"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="23,24,25,26,26"
			y="8,8,9,9,10"
		[/move]
	[/command]
	[command]
		[move]
			x="24,24,23,23,23,22,22"
			y="5,6,7,8,9,9,10"
		[/move]
	[/command]
	[command]
		[move]
			x="19,20,21,22,23"
			y="13,13,14,13,13"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="23"
				y="13"
			[/source]
			[destination]
				x="23"
				y="12"
			[/destination]
		[/attack]
		[random]
			value="1734979179"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1791947832"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="800026853"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Nicholas has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="26,27"
			y="10,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="JayEpstein4 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="29,30,30,31,31,31,31"
			y="21,20,19,19,18,17,16"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="31"
				y="16"
			[/source]
			[destination]
				x="30"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="235118044"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="708603298"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1873748545"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="410290222"
			[results]
				chance="40"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1533800552"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1008014090"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="30,30,29,28,28,28,29"
			y="21,20,20,19,18,17,17"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="29"
				y="17"
			[/source]
			[destination]
				x="30"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="572768345"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1848252440"
			[results]
				chance="50"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="151581130"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1777711879"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="431429502"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="31,30"
			y="20,19"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="30"
				y="19"
			[/source]
			[destination]
				x="30"
				y="18"
			[/destination]
		[/attack]
		[random]
			value="141085244"
			[results]
				chance="70"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="185617142"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1666033209"
			[results]
				chance="70"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="2111001700"
			[results]
				chance="70"
				damage="10"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="31,30,30,30,30"
			y="21,20,19,18,17"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="30"
				y="17"
			[/source]
			[destination]
				x="30"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="785727918"
			[results]
				chance="70"
				damage="7"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,10,11,12,13"
			y="13,14,15,15,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="1"
			weapon="0"
			[source]
				x="13"
				y="15"
			[/source]
			[destination]
				x="13"
				y="14"
			[/destination]
		[/attack]
		[random]
			value="14564"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="26221"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="4279"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="14999"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="11649"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="22640"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="21477"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="23,24"
			y="12,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="24"
				y="12"
			[/source]
			[destination]
				x="23"
				y="13"
			[/destination]
		[/attack]
		[random]
			value="27965"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="2324"
			[results]
				chance="40"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="8541"
			[results]
				chance="50"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="14157"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="26575"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="9275"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="22,23"
			y="20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="23,24"
			y="20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,25"
			y="20,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="7"
			x="23"
			y="20"
		[/recruit]
		[random]
			value="18980"
		[/random]
		[random]
			value="2505"
		[/random]
		[random]
			value="30412"
		[/random]
		[random]
			value="24347"
		[/random]
		[random]
			value="16027"
		[/random]
		[random]
			value="9096"
		[/random]
		[random]
			value="17511"
		[/random]
		[random]
			value="9478"
		[/random]
		[random]
			value="25319"
		[/random]
		[random]
			value="19899"
		[/random]
		[random]
			value="5317"
		[/random]
		[random]
			value="2628"
		[/random]
		[random]
			value="26211"
		[/random]
		[random]
			value="1765"
		[/random]
		[random]
			value="1711"
			[results]
				checksum=",Ad3Y5f-Gtmspp5jHbEoRiSrOCpxE4IDyxOzzQOG.nCLyyGDmUtLNvFrwCUxRLwFwmIsr1QENmxPFHFw.RFKFnqypNLpM8mwoFomIhFlq1.CLW<<ddNv5EsLNHBNzkOI"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="rainreck has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,22,23,24"
			y="21,20,20,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="10,11,12,13,14,14"
			y="12,12,12,13,13,14"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="14"
				y="14"
			[/source]
			[destination]
				x="13"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="1088155761"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="500391999"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1062900901"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="815845157"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="14,14,15,15,14"
			y="12,13,14,15,15"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="14"
				y="15"
			[/source]
			[destination]
				x="13"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="553002784"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="993743765"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1613720054"
			[results]
				chance="60"
				damage="5"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[choose]
			value="0"
		[/choose]
	[/command]
	[command]
		[move]
			x="13,12,12,12,11"
			y="14,13,12,11,11"
		[/move]
	[/command]
	[command]
		[move]
			x="11,12,13,14,15"
			y="19,18,19,19,20"
		[/move]
	[/command]
	[command]
		[move]
			x="22,23,23"
			y="10,11,12"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="23"
				y="12"
			[/source]
			[destination]
				x="24"
				y="12"
			[/destination]
		[/attack]
		[random]
			value="685834734"
			[results]
				chance="40"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1315293891"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="869209826"
			[results]
				chance="40"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1702347893"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="23"
				y="13"
			[/source]
			[destination]
				x="24"
				y="12"
			[/destination]
		[/attack]
		[random]
			value="181442686"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="582214445"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1670740965"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="23,24"
			y="11,11"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="24"
				y="11"
			[/source]
			[destination]
				x="24"
				y="12"
			[/destination]
		[/attack]
		[random]
			value="950496234"
			[results]
				chance="40"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="2145571364"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="293306780"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="27,28,28,28,29,29"
			y="11,11,12,13,14,15"
		[/move]
	[/command]
	[command]
		[move]
			x="30,31,32,32,33"
			y="19,19,18,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="vagrant has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="30,31,32,33"
			y="17,17,16,16"
		[/move]
	[/command]
	[command]
		[move]
			x="29,30"
			y="17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Nick_censored has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="bluepierrot has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="void has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="24"
				y="12"
			[/source]
			[destination]
				x="23"
				y="12"
			[/destination]
		[/attack]
		[random]
			value="25610"
			[results]
				chance="80"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="9017"
			[results]
				chance="40"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="26125"
			[results]
				chance="80"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="2837"
			[results]
				chance="40"
				damage="6"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,23,22,21"
			y="19,20,20,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="7"
			x="20"
			y="20"
		[/recruit]
		[random]
			value="22649"
		[/random]
		[random]
			value="17441"
		[/random]
		[random]
			value="11920"
		[/random]
		[random]
			value="32514"
		[/random]
		[random]
			value="22171"
		[/random]
		[random]
			value="19569"
		[/random]
		[random]
			value="11959"
		[/random]
		[random]
			value="20349"
		[/random]
		[random]
			value="7572"
		[/random]
		[random]
			value="19593"
		[/random]
		[random]
			value="13487"
		[/random]
		[random]
			value="6938"
		[/random]
		[random]
			value="20853"
		[/random]
		[random]
			value="24318"
		[/random]
		[random]
			value="7237"
			[results]
				checksum=",Ad3Y5f-Gtmspp5jHbEoRiSrOCpxE4IDyxOzzQOG.nCLyyGDmUtLNvFrwCUxRLwFwmIsr1QENmxPFHFw.RFKFnqypNLpM8mwoFomIhFlq1.CLW<<ddNv5EsLNHBNzkOI"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="23,22,21,20"
			y="20,20,21,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,24,23,22"
			y="21,20,20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		undo="no"
		[speak]
			id="Tesafilmchen"
			message="you have the right to surrender"
			side="1"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Dracon has logged into the lobby"
		[/speak]
	[/command]
	[command]
		undo="no"
		[speak]
			id="Tesafilmchen"
			message="if you want of course"
			side="1"
		[/speak]
	[/command]
	[command]
		[move]
			x="31,31,31,31,31,30"
			y="16,17,18,19,20,20"
		[/move]
	[/command]
	[command]
		[move]
			x="33,33,33,32,32,31"
			y="17,18,19,19,20,21"
		[/move]
	[/command]
	[command]
		[move]
			x="33,32,32,32,32,32,32"
			y="16,16,17,18,19,20,21"
		[/move]
	[/command]
	[command]
		[move]
			x="30,30,30,30,29,29"
			y="16,17,18,19,20,21"
		[/move]
	[/command]
	[command]
		[move]
			x="29,30,31"
			y="15,15,16"
		[/move]
	[/command]
	[command]
		[move]
			x="14,15,16,17,18,19,20"
			y="14,15,15,16,16,16,15"
		[/move]
	[/command]
	[command]
		[move]
			x="23,23,23,23,24"
			y="12,13,14,15,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		undo="no"
		[speak]
			id="Ion514"
			message="Nah, i'll pass on that, thanks for the offer though. "
			side="2"
		[/speak]
	[/command]
	[command]
		[move]
			x="24,24,23,22,21"
			y="11,12,13,13,13"
		[/move]
	[/command]
	[command]
		[move]
			x="23,23,23,24,25,26,27,28,29"
			y="13,14,15,15,16,15,16,16,17"
		[/move]
	[/command]
	[command]
		[move]
			x="14,15,16,17"
			y="15,15,14,15"
		[/move]
	[/command]
	[command]
		[move]
			x="15,14,13,12,11"
			y="20,19,19,18,19"
		[/move]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		undo="no"
		[speak]
			id="Tesafilmchen"
			message="kk"
			side="1"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="22,23,23"
			y="20,21,22"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,21,22"
			y="21,21,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="23,22"
			y="22,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="slotUSB has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="29,28"
			y="17,17"
		[/move]
	[/command]
	[command]
		[move]
			x="31,30,29"
			y="16,16,17"
		[/move]
	[/command]
	[command]
		[move]
			x="31,30,29"
			y="21,21,22"
		[/move]
	[/command]
	[command]
		[move]
			x="32,31,30"
			y="21,22,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="owned has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Faolan has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="11,12,13,14,15"
			y="19,18,19,19,20"
		[/move]
	[/command]
	[command]
		[move]
			x="21,21,21,20,20,20,19"
			y="13,14,15,15,16,17,18"
		[/move]
	[/command]
	[command]
		[move]
			x="16,16,16,16,17"
			y="14,15,16,17,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Clik has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="17,17,17"
			y="15,16,17"
		[/move]
	[/command]
	[command]
		[move]
			x="20,19,19,18"
			y="15,16,17,17"
		[/move]
	[/command]
	[command]
		[move]
			x="24,23,22,21,20,19"
			y="15,15,15,16,16,17"
		[/move]
	[/command]
	[command]
		[move]
			x="11,12,12,13,14,15,16"
			y="11,11,12,13,13,14,14"
		[/move]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="22,21,20,19,19"
			y="21,21,20,20,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="19"
				y="19"
			[/source]
			[destination]
				x="19"
				y="18"
			[/destination]
		[/attack]
		[random]
			value="31619"
			[results]
				chance="60"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="10396"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="9533"
			[results]
				chance="60"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="18027"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="10421"
			[results]
				chance="60"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="19970"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,20,20"
			y="20,19,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="20"
				y="18"
			[/source]
			[destination]
				x="19"
				y="18"
			[/destination]
		[/attack]
		[random]
			value="32584"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="9086"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1396"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="959"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="4088"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="27188"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="22,21,20,19"
			y="20,21,20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,20,20"
			y="21,20,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="19,20,21,22,22,22,21"
			y="17,16,17,17,18,19,20"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="21"
				y="20"
			[/source]
			[destination]
				x="20"
				y="19"
			[/destination]
		[/attack]
		[random]
			value="1684353874"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1223818762"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="842260752"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="323497885"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="y has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="17,18,19,20"
			y="18,17,17,17"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="20"
				y="17"
			[/source]
			[destination]
				x="20"
				y="18"
			[/destination]
		[/attack]
		[random]
			value="119795514"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="192386850"
			[results]
				chance="70"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1882992452"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="493608153"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1308523177"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="19"
				y="18"
			[/source]
			[destination]
				x="20"
				y="18"
			[/destination]
		[/attack]
		[random]
			value="2050260052"
			[results]
				chance="60"
				damage="4"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="17,18,19,20,21,21"
			y="17,16,17,17,18,19"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="21"
				y="19"
			[/source]
			[destination]
				x="20"
				y="19"
			[/destination]
		[/attack]
		[random]
			value="223965922"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="517636003"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1759493897"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="2063919143"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1426747468"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="15,16,17,18,19,20,20"
			y="20,20,21,21,22,21,20"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="20"
				y="20"
			[/source]
			[destination]
				x="20"
				y="19"
			[/destination]
		[/attack]
		[random]
			value="35000935"
			[results]
				chance="60"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1828755244"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1107423888"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1875236757"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="546857247"
			[results]
				chance="60"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1609393626"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="85543184"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="18,19,20,20"
			y="17,17,17,18"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="20"
				y="18"
			[/source]
			[destination]
				x="20"
				y="19"
			[/destination]
		[/attack]
		[random]
			value="671195349"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="95374472"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1131677141"
			[results]
				chance="70"
				damage="4"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[choose]
			value="0"
		[/choose]
	[/command]
	[command]
		undo="no"
		[speak]
			id="Tesafilmchen"
			message="gg"
			side="1"
		[/speak]
	[/command]
	[command]
		sent="yes"
		undo="no"
		[speak]
			id="Ion514"
			message="gg"
			side="2"
		[/speak]
	[/command]
	[command]
		undo="no"
		[speak]
			id="Tesafilmchen"
			message="drakes are ugly to play against"
			side="1"
		[/speak]
	[/command]
[/replay]
[snapshot]
[/snapshot]
[replay_start]
	current_tod="0"
#textdomain wesnoth-multiplayer
	description=_ "These caves were once the lair of Chak'kso Ney'yks, a legendary Elder Basilisk. The petrified forms of his victims remain as monuments to his savage power."
	experience_modifier="70"
	hash="McPgEzp.LJt7h.t1Qr.c0wdN6DSMrFSDz4LpPy.MjaHg-SJ4NO6RN7,AJkIOwBZE.K6Gt>F,tbOGluI+4Fgcg7SDu,wQihAGrihF1c3lurN0vQXAvq<LoFHYPrX2RHE1"
	id="multiplayer_Basilisk"
	map_data="border_size=1
usage=map

_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Mm^Xm       , Mm^Xm       , Mm^Xm       , Gs^Fp       , Mm^Xm       , Gs^Fp       , Hh          , Gs^Fms      , Ww          , Ww          , Ww          , Gs^Fp       , Gs^Fms      , Hh          , Mm^Xm       , Gs^Fp       , Mm^Xm       , Mm^Xm       , Mm          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Gs^Fp       , Mm          , Gg^Fet      , Mm          , Gs^Fp       , Mm^Xm       , Gs^Fms      , Gg^Ve       , Gg          , Hh          , Mm          , Ww          , Gs^Fp       , Hh          , Gg          , Mm          , Gg^Fet      , Mm^Xm       , Mm          , Mm          , Hh          , Gs^Fp       , Ggf         , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Hh          , Ggf         , Gg          , Hh          , Gg^Ve       , Hh          , Gs^Fms      , Mm          , Mm          , Ggf         , Gg          , Gg          , Ch          , 1 Kh        , Ch          , Gg          , Hh          , Gg          , Gg          , Gs^Fp       , Gg          , Gg          , Gg          , Gg          , Gs^Fms      , Wwf         , Wwf         , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Xu          , Wwf         , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Kh          , Ch          , Gg          , Wwf         , Gg          , Ch          , Kh          , Gs^Fp       , Mm          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Mm          , Wwf         , Xu          , Xu          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Xu          , Xu          , Wwf         , Wwf         , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Re          , Gg          , Re          , Gg          , Gg          , Gg          , Gg          , Wwf         , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Hh          , Gs^Fp       , Gg^Ve       , Gg          , Ggf         , Mm          , Wwf         , Xu          , Xu          , Xu          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , Xu          , Xu          , Xu          , Xu          , Wwf         , Gg          , Gg          , Gs^Fp       , Hh          , Gs^Fp       , Gg          , Gg          , Re          , Re          , Xu          , Re          , Re^Uf       , Gg          , Re          , Wwf         , Gg          , Gs^Fms      , Gg          , Re          , Re          , Re          , Xu          , Gg          , Gg          , Hh          , Gg          , Gg          , Gs^Fp       , Wwf         , Wwf         , Xu          , Uh          , Xu          , Xu          , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , Xu          , Xu          , Wwf         , Wwf         , Mm          , Gg          , Gg          , Re^Uf       , Mm          , Gg          , Re          , Re          , Ww          , Xu          , Uh          , Uu^Vud      , Xu          , Re          , Wwf         , Wwf         , Re          , Gg          , Re          , Re          , Wwf         , Xu          , Xu          , Re^Uf       , Re          , Gg          , Gg          , Hh          , Ggf         , Hh          , Wwf         , Xu          , Wwf         , Uu          , Uu^Uf       , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , Xu          , Wwf         , Gs^Fp       , Hh          , Hh          , Gg          , Gg          , Hh          , Gs^Fms      , Gg          , Re          , Ww          , Wo          , Ww          , Wwf         , Wwf         , Uh          , Uu^Uf       , Wwf         , Ww          , Ss^Vhs      , Re          , Xu          , Wwf         , Ur          , Ur          , Re          , Re          , Gs^Fms      , Hh          , Gg^Uf       , Gg          , Gg          , Re          , Re^Uf       , Wwf         , Wwf         , Uu          , Xu          , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , Wwf         , Wwf         , Ggf         , Ggf         , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Re          , Ww          , Ww          , Ww          , Xu          , Uh          , Xu          , Ur          , Ww          , Ww          , Ww          , Xu          , Ww          , Uh          , Uu^Vu       , Re          , Gg          , Gg          , Gg          , Gg^Ve       , Gg          , Gg          , Gg          , Gg          , Re          , Gs^Fp       , Wwf         , Xu          , Xu          , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , Gs^Fms      , Gs^Fp       , Re^Uf       , Re          , Gg          , Gg          , Gg          , Gg          , Gg          , Ss^Vhs      , Gg          , Re          , Wwf         , Uh          , Xu          , Ur          , Xu          , Wwf         , Ww          , Wo          , Uu          , Uh          , Ww          , Xu          , Xu          , Re          , Re          , Gg          , Gg          , Gg          , Gs^Fms      , Hh          , Hh          , Gg          , Gg          , Re          , Re          , Wwf         , Xu          , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , Mm          , Hh          , Re          , Re          , Gg          , Gg          , Hh          , Gs^Fp       , Ss          , Gg          , Hh          , Re          , Wwf         , Xu          , Xu          , Ur          , Wwf         , Wwf         , Ww          , Uu^Uf       , Ww          , Ww          , Wwf         , Uu^Uf       , Xu          , Uh          , Wwf         , Re          , Hh          , Hh          , Mm          , Gs^Fp       , Hh          , Gs^Fp       , Gg          , Re          , Re          , Wwf         , Wwf         , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , Wwf         , Re^Uf       , Re          , Gg          , Gg          , Gs^Fp       , Re^Uf       , Gs^Fms      , Mm          , Gs^Fp       , Hh          , Re          , Re          , Uh          , Xu          , Uu^Uf       , Ww          , Ww          , Uu          , Uu^Uf       , Ww          , Wwf         , Xu          , Ur          , Xu          , Xu          , Wwf         , Re          , Re          , Gs^Fp       , Gg          , Ss          , Gg          , Gg          , Gg          , Gg          , Gg          , Re^Uf       , Mm          , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , Xu          , Wwf         , Re          , Gg          , Gg          , Gg          , Gg          , Hh          , Gg          , Hh          , Gg          , Gg          , Gg          , Re          , Uu^Vu       , Xu          , Ww          , Uh          , Ww          , Wo          , Ww          , Wwf         , Xu          , Ur          , Xu          , Uh          , Ww          , Re          , Re          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Ggf         , Hh          , Hh          , Gs^Fp       , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , Xu          , Wwf         , Wwf         , Hh          , Hh          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Re          , Re          , Ur          , Uh          , Xu          , Xu          , Ss^Vhs      , Ww          , Wwf         , Ur          , Uh          , Uh          , Wwf         , Ww          , Wo          , Ww          , Re          , Re          , Gg          , Gg          , Gs^Fms      , Gg          , Gg          , Gg          , Gg          , Gs^Fp       , Wwf         , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , Xu          , Xu          , Wwf         , Gs^Fp       , Re          , Gg          , Ggf         , Gg          , Gg          , Gg          , Gg          , Gs^Fp       , Xu          , Ur          , Wwf         , Wwf         , Re          , Re          , Re          , Ww          , Wwf         , Uu^Uf       , Xu          , Wwf         , Uh          , Ww          , Ww          , Ww          , Re          , Ss^Vhs      , Gg          , Hh          , Mm          , Hh          , Re^Uf       , Gg          , Gg          , Wwf         , Xu          , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , Uu^Uf       , Uu          , Wwf         , Wwf         , Wwf         , Re          , Hh          , Mm          , Gs^Fp       , Gg          , Gg          , Uh          , Xu          , Xu          , Re          , Re          , Gg          , Gg          , Gg          , Wwf         , Re          , Re          , Re^Uf       , Uu^Vud      , Xu          , Xu          , Re          , Re          , Gg          , Gg          , Gg          , Gs^Fms      , Ggf         , Gs^Fp       , Gg          , Gg          , Wwf         , Wwf         , Xu          , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , Xu          , Wwf         , Uh          , Xu          , Xu          , Wwf         , Re          , Re^Uf       , Ggf         , Gg^Uf       , Gs^Fp       , Gg          , Gg          , Re          , Gg          , Re          , Gg          , Gs^Fp       , Gg          , Wwf         , Gg          , Gg          , Gg          , Re          , Re          , Re          , Re          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Wwf         , Wwf         , Xu          , Xu          , Xu          , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , Xu          , Xu          , Xu          , Xu          , Wwf         , Re          , Gs^Fms      , Gg          , Gg^Ve       , Ggf         , Gg          , Gg          , Gg          , Ggf         , Gg          , Kh          , Gg          , Gg          , Wwf         , Gg          , Gg          , Kh          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Wwf         , Xu          , Xu          , Xu          , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Xu          , Xu          , Wwf         , Wwf         , Re          , Mm          , Hh          , Gg          , Gg          , Gg          , Gg^Ve       , Gg          , Gs^Fms      , Gg          , Ch          , Ch          , Wwf         , Ch          , Ch          , Gg          , Gg          , Gg          , Gg          , Gg^Fet      , Gg          , Gg^Ve       , Gg          , Gg          , Gs^Fp       , Gg          , Wwf         , Xu          , Xu          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Xu          , Wwf         , Re          , Re          , Gs^Fp       , Re          , Gg          , Hh          , Hh          , Gs^Fms      , Gg          , Gg          , Hh          , Mm          , 2 Kh        , Gs^Fp       , Gg          , Gg          , Gg^Ve       , Gs^Fp       , Gg          , Hh          , Hh          , Gs^Fp       , Hh          , Gs^Fms      , Gg          , Wwf         , Wwf         , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Wwf         , Re          , Re          , Re          , Gs^Fp       , Mm          , Mm          , Mm          , Mm          , Gs^Fms      , Gg^Fet      , Hh          , Ww          , Hh          , Hh          , Gs^Fms      , Hh          , Mm          , Hh          , Mm^Xm       , Mm          , Mm          , Hh          , Gs^Fp       , Mm          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Mm          , Hh          , Hh          , Mm^Xm       , Mm^Xm       , Mm^Xm       , Mm^Xm       , Mm^Xm       , Mm          , Mm^Xm       , Ww          , Ww          , Mm          , Mm^Xm       , Mm^Xm       , Mm^Xm       , Mm^Xm       , Mm          , Mm^Xm       , Mm          , Hh          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Mm^Xm       , _off^_usr   , Mm          , _off^_usr   , Gs^Fp       , _off^_usr   , Mm^Xm       , _off^_usr   , Ww          , _off^_usr   , Gs^Fp       , _off^_usr   , Hh          , _off^_usr   , Gs^Fp       , _off^_usr   , Mm^Xm       , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
"
	mp_countdown="no"
	mp_countdown_action_bonus="13"
	mp_countdown_init_time="270"
	mp_countdown_reservoir_time="330"
	mp_countdown_turn_bonus="60"
	mp_fog="yes"
	mp_shroud="no"
	mp_use_map_settings="yes"
	mp_village_gold="2"
	name=_ "2p - Caves of the Basilisk"
	next_underlying_unit_id="0"
#textdomain wesnoth
	objectives=_ "Victory:
@Defeat enemy leader(s)"
	observer="yes"
	random_seed="648560745"
	random_start_time="no"
	scenario="ladder tesafilmchen vs ion514"
	turns="-1"
	version="1.6"
	[time]
		green="-20"
		id="dawn"
		image="misc/schedule-dawn.png"
		name=_ "Dawn"
		red="-20"
		sound="ambient/morning.ogg"
	[/time]
	[time]
		id="morning"
		image="misc/schedule-morning.png"
		lawful_bonus="25"
		name=_ "Morning"
	[/time]
	[time]
		id="afternoon"
		image="misc/schedule-afternoon.png"
		lawful_bonus="25"
		name=_ "Afternoon"
	[/time]
	[time]
		blue="-20"
		green="-20"
		id="dusk"
		image="misc/schedule-dusk.png"
		name=_ "Dusk"
		sound="ambient/night.ogg"
	[/time]
	[time]
		blue="-10"
		green="-40"
		id="first_watch"
		image="misc/schedule-firstwatch.png"
		lawful_bonus="-25"
		name=_ "First Watch"
		red="-40"
	[/time]
	[time]
		blue="-10"
		green="-40"
		id="second_watch"
		image="misc/schedule-secondwatch.png"
		lawful_bonus="-25"
		name=_ "Second Watch"
		red="-40"
	[/time]
	[music]
		ms_before="12000"
		name="knolls.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="wanderer.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="battle.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="transience.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="the_king_is_dead.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="knalgan_theme.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="the_city_falls.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="nunc_dimittis.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="revelation.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="loyalists.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="breaking_the_chains.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="elvish-theme.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="legends_of_the_north.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="traveling_minstrels.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="underground.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="vengeful.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="frantic.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="the_dangerous_symphony.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="heroes_rite.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="suspense.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="the_deep_path.ogg"
	[/music]
	[music]
		append="yes"
		ms_before="12000"
		name="siege_of_laurelmor.ogg"
	[/music]
	[event]
		name="prestart"
		[music]
			ms_before="12000"
			name="knolls.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="wanderer.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="battle.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="transience.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="revelation.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="loyalists.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="the_king_is_dead.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="knalgan_theme.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="the_city_falls.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="nunc_dimittis.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="breaking_the_chains.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="elvish-theme.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="legends_of_the_north.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="traveling_minstrels.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="underground.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="vengeful.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="frantic.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="the_dangerous_symphony.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="heroes_rite.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="suspense.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="the_deep_path.ogg"
		[/music]
		[music]
			append="yes"
			ms_before="12000"
			name="siege_of_laurelmor.ogg"
		[/music]
	[/event]
	[era]
		id="era_default"
#textdomain wesnoth-multiplayer
		name=_ "Default"
		[multiplayer_side]
			flag_rgb="magenta"
			id="Random"
			image="units/random-dice.png"
			name=_ "Random"
			random_faction="yes"
		[/multiplayer_side]
		[multiplayer_side]
			flag_rgb="magenta"
			id="Loyalists"
			image="units/human-loyalists/lieutenant.png"
			leader="Lieutenant,Swordsman,Pikeman,Javelineer,Shock Trooper,Longbowman,White Mage,Red Mage"
			name=_ "Loyalists"
			random_leader="Lieutenant,Swordsman,Pikeman,Javelineer,Longbowman,Red Mage"
			recruit="Cavalryman,Horseman,Spearman,Fencer,Heavy Infantryman,Bowman,Mage,Merman Fighter"
			terrain_liked="Gg, Ww, Wo"
			type="Lieutenant"
			[ai]
				recruitment_pattern="fighter,fighter,fighter,archer,mixed fighter,scout"
				[team_formula]
					rulebase="fai 'recruitment.fai'
		# ===== Some general functions used later ==== #

def sumarize_values( input_map )
	sum(
		values(input_map)
	);

def lowest_value( input_map )
	choose( input_map, -value ).value;

def highest_value( input_map )
	choose( input_map, value ).value;

def change_numbers_to_percents( input_map )
	map( input_map, 
		(value*100) / highest_value(input_map) 
	);

def add_number_to_values( input_map, number )
	map( input_map, 
		value + number 
	);

#make sure we have only positive values in a map #

def make_positive_only( input_map )
	if( lowest_value( input_map ) < 0, 
		add_number_to_values( 
			input_map, 
			abs(lowest_value(input_map))
		), 
		input_map 
	);

def sumarize_maps_values( map_A, map_B )
	map( map_A + map_B, 
		value + map_A[key]
	);

		#===== Evaluation how good unit is on a map ===== #

# ==1==  evaluate average defense #
#gives map where key is id of terrain, and value is number of hexes of that terrain on a gamemap#

def locations_map(ai*) 
	tomap( 
		map( 
			map.terrain, 
			id 
		) 
	);

#filters terrain map, min_percent it minimal % of map that terrain has to occupy to be considered in later evaluations# 

def filtered_locations_map(ai*, min_percent)
	filter( 
		locations_map(ai) , 
		value >  (map.w * map.h) / ( 100 / min_percent ) 
	);

#returns average defense of the unit #

def unit_average_defense(ai*, unit, terrain_min_percent )
	sum( 
		values( 
			map(
				filtered_locations_map(ai,terrain_min_percent), 
				defense_on( 
					unit, 
					find(map.terrain,id=key).loc
				) *
				value
			) 
		) 
	) / 
	sum(
		values(
			filtered_locations_map(
				ai,
				terrain_min_percent
			)
		)
	);

#returns map of units from units_list and their average defense (more -> better) #

def map_units_average_defense(ai*, units_list, terrain_min_percent) 
	tomap(
		map( 
			units_list, 
			id 
		), 
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	);

def units_average_defense(ai*, units_list, terrain_min_percent)
	sum(
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	) /
	size(
		units_list
	);


# ==2== TODO: evaluate unit effectivness based on movement points and movement cost#


		#===== Evaluation of game state - how good is ai doing ===== #

# ==1== based on unit cost and current amount of gold #
# returns number between 0 and 100 where: 0 we are losing, 100 we are winning #

def units_cost_gold_eval(ai*)
	min(
		[
			(
				(
					sum(
						map(
							allies, 'team', 
							sum(
								map(
									units_of_side[team], 
									cost
								)
							) + 
							teams[team].gold 
						)
					) * 
					100
				) / 
				sum(
					map(
						enemies, 'team', 
						sum(
							map(
								units_of_side[team], 
								cost
							)
						) + 
						max(
							[teams[team].gold, 0]
						) 
					)
				)
			) / 2,
			100
		]
	);

# ==2== based on village possession #

def count_allied_villages(ai*)
	sum(
		map(
			allies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

def count_enemy_villages(ai*)
	sum(
		map(
			enemies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

# multipled by 1000 to increase precision #

def village_evaluation(ai*)
	(
		50000 + 
		(
			count_allied_villages(ai) - 
			count_enemy_villages(ai)
		) * 
		(
			50000 /
			size(
				villages
			)
		)
	) /
	1000;

# ==3== combined 2 of the above #

def eval(ai*)
	( 
		units_cost_gold_eval(ai) + 
		village_evaluation(ai)
	) / 
	2;

		#===== Evaluation how effective my units are against the enemy ===== #

#==1==  basic evaluation #

# evaluate how much damage unit can inflict - how much damage unit can get#

def evaluate_attacker_against_opponents(ai*, unit, enemy_units)
	sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( unit, enemy_unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				) 
			)
		)
	);

def evaluate_defender_against_opponents(ai*, unit, enemy_units)
	-sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( enemy_unit, unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				)
			)
		)
	);

def units_hp_map(ai*, units)
	tomap( 
		map(
			units, 
			id
		), 
		map( 
			units, 
			hitpoints
		)
	);

#in case side's gold is more than 50, add units that side can recruit to the side's unit list#

def create_side_unit_list(ai*, side)
	if( 
		teams[side].gold > 50, 
		recruits_of_side[side], 
		[]
	) + 
	units_of_side[side];

def evaluate_my_recruits_as_attackers(ai*)
	tomap( 
		map(
			my_recruits, 
			id
		), 
		map(
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_attacker_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai, 
							enemy_side
						)
					)
				)
			)
		)
	);

def evaluate_my_recruits_as_defenders(ai*)
	tomap(
		map(
			my_recruits, 
			id
		),
		map( 
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_defender_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai,
							enemy_side
						)
					)
				)
			)
		)
	);


# === 2 ===  now consider abilities and weapon specials  #

def abilities_weights()
	['skirmisher' -> 15, 'ambush' -> 10, 'nightstalk' -> 20, 'regenerates' -> 20, 'healing' -> 15, 'curing' -> 10, 'leadership' -> 20, 'illumination' -> 15, 'teleport' -> 10, 'steadfast' -> 15 ];

def weapon_specials_weights()
	[ 'backstab' -> 20 ,'slow' -> 10 ,'berserk' -> 20 ,'stones' -> 60 ,'plague' -> 10 ,'marksman' -> 30 ,'magical' -> 40 ,'charge' -> 30 ,'drains' -> 30,  'firststrike' -> 10, 'poison' -> 25 ];

def apply_abilities_weights( units_map )
	map( 
		units_map, 
		value +
		(
			value * 
			max(
				map(
					get_unit_type( key ).abilities, 'ability',
					abilities_weights()[ability]
				)
			)
		) / 100
	);

def apply_weapon_specials_weights( units_map )
	map(
		units_map, 
		value +
		(
			value *
			max(
				map(
					get_unit_type( key ).attacks, 'attack',
					vars.weapon_specials[attack.special]
				)
			)
		) / 100
	);

# since undead units don't get random traits and are balanced with that, we need to lower their evaluation a bit to match fairly the living units #

def undead_malus( units_map )
	map( 
		units_map, 
		if(
			get_unit_type(key).undead,
			( value * 90 ) / 100,
			value 
		)
	);

# === 3 ===  pit 1 and 2 together  #

def evaluate_attackers(ai*)
	change_numbers_to_percents(
		apply_abilities_weights(
			apply_weapon_specials_weights(
				undead_malus( 
					make_positive_only(
						evaluate_my_recruits_as_attackers( ai )	
					)
				)
			)
		)
	);

def evaluate_defenders(ai*)
	map(
		map(
			change_numbers_to_percents(
				apply_abilities_weights(
					apply_weapon_specials_weights(
						undead_malus( 
							make_positive_only(
								evaluate_my_recruits_as_defenders( ai )	
							)
						)
					)
				)
			),
			value / 3
		), 
		value +
		map(
			change_numbers_to_percents(
				units_hp_map(
					ai,
					my_recruits
				)
			),
		value * 2 / 3
		)[key]
	);

	#=========== we have evaluation of game state and units, time to combine them: ==========#
		#=========	recruitment_list_builder	=========#

def rlb_apply_eval(eval, attackers_map, defenders_map, offset)
	map(
		sumarize_maps_values(
			map(
				attackers_map, 
				value * (eval+offset)
			),
			map(
				defenders_map,
				value * ( (100 - eval) - offset )
			)
		),
		value / 100
	);

def rlb_remove_lowest( input_map, percent)
	filter(
		input_map, 
		value > 
		(
			(
				percent * sumarize_values(input_map)
			) / 100
		)
	);

def rlb_first_step(eval, attackers_map, defenders_map, offset)
	rlb_remove_lowest(
		rlb_apply_eval(
			eval,
			attackers_map,
			defenders_map,
			offset
		),
		10
	);

def recruitment_list_builder(eval, attackers_map, defenders_map)
	map(
		rlb_first_step(
			eval,
			attackers_map,
			defenders_map,
			40
		),
		(
			(
				value * 100
			) / 
			sumarize_values(
				rlb_first_step(
					eval,
					attackers_map,
					defenders_map,
					40
				)
			)
		)
	);

		# ========== choose the unit to recruit now ========= #

def unit_chooser(ai*,unit_map) 
	choose(
		keys(unit_map), 'unit_type',
		unit_map[unit_type] - 
		(
			(
				100 * 
				size(
					filter(
						my_units, 
						type = unit_type
					)
				)
			) / 
			size(my_units)
		)
	);

def unit_map_cost_filter(ai*, unit_map)
	filter( unit_map,
		get_unit_type(key).cost < my_side.gold
	);

		# ==========	Main formula section 	========== #

def initialize_weapon_specials_map(ai*)
	if(vars.weapon_specials_init != turn,
		[
			set_var('weapon_specials_init', turn),
			set_var('weapon_specials',
				map(
					weapon_specials_weights(),
					if( key = 'magical',
						units_average_defense(ai, enemy_units, 10),
						if( key = 'marksman',
							units_average_defense(ai, enemy_units, 10) - 10,
							value
						)
					)
				)
			)
		],
		[]
	);

def create_recruits_map(ai*)
	if(vars.recruits_map_creator != turn,
		[
			set_var('recruits_map_creator', turn ),
			set_var('recruits_map',
				debug_print('final unit evaluation: ', recruitment_list_builder(
					debug_print('current AI evaluation (0-100): ', eval(ai)),
					debug_print('attackers evaluation: ',evaluate_attackers(ai)),
					debug_print('defenders evaluation: ',evaluate_defenders(ai))
				))
			)
		],
		[]
	);

def castle_space(ai*)
	filter( map( castle_locs( my_leader.loc ), 'location', if( unit_at( location ), 1, 0 ) ), self = 0  ).size;

if(vars.turn_initialized = turn,
		if( my_leader.loc = nearest_keep( my_leader.loc ),
			if( 
				get_unit_type(
					choose(
						vars.recruits_map,
						-get_unit_type(key).cost
					).key
				).cost <
				my_side.gold,
				if( castle_space(self),
					recruit(debug_print(
						unit_chooser(
							self,
							unit_map_cost_filter(
								self,
								vars.recruits_map
							)
						)
					)),
					fallback()
				),
				fallback() 
			),
			if( my_leader.movement_left > 0,
				move( my_leader.loc, nearest_keep( my_leader.loc ) ),
				fallback()
			)
		),
	[set_var(debug_print('turn_initialized'), turn)] +
	initialize_weapon_specials_map(self) +
	create_recruits_map(self)
)

faiend
"
				[/team_formula]
			[/ai]
		[/multiplayer_side]
		[multiplayer_side]
			flag_rgb="magenta"
			id="Rebels"
			image="units/elves-wood/captain.png"
			leader="Elvish Captain,Elvish Hero,Elvish Ranger,Elvish Marksman,Elvish Druid,Elvish Sorceress,White Mage,Red Mage,Elder Wose"
			name=_ "Rebels"
			random_leader="Elvish Captain,Elvish Hero,Elvish Ranger,Elvish Marksman,Elvish Druid,Elvish Sorceress,Red Mage"
			recruit="Elvish Fighter,Elvish Archer,Mage,Elvish Shaman,Elvish Scout,Wose,Merman Hunter"
			terrain_liked="Ff, Fa, Ss, Ww"
			type="Elvish Captain"
			[ai]
				recruitment_pattern="fighter,fighter,archer,archer,mixed fighter,healer,scout"
				[team_formula]
					rulebase="fai 'recruitment.fai'
		# ===== Some general functions used later ==== #

def sumarize_values( input_map )
	sum(
		values(input_map)
	);

def lowest_value( input_map )
	choose( input_map, -value ).value;

def highest_value( input_map )
	choose( input_map, value ).value;

def change_numbers_to_percents( input_map )
	map( input_map, 
		(value*100) / highest_value(input_map) 
	);

def add_number_to_values( input_map, number )
	map( input_map, 
		value + number 
	);

#make sure we have only positive values in a map #

def make_positive_only( input_map )
	if( lowest_value( input_map ) < 0, 
		add_number_to_values( 
			input_map, 
			abs(lowest_value(input_map))
		), 
		input_map 
	);

def sumarize_maps_values( map_A, map_B )
	map( map_A + map_B, 
		value + map_A[key]
	);

		#===== Evaluation how good unit is on a map ===== #

# ==1==  evaluate average defense #
#gives map where key is id of terrain, and value is number of hexes of that terrain on a gamemap#

def locations_map(ai*) 
	tomap( 
		map( 
			map.terrain, 
			id 
		) 
	);

#filters terrain map, min_percent it minimal % of map that terrain has to occupy to be considered in later evaluations# 

def filtered_locations_map(ai*, min_percent)
	filter( 
		locations_map(ai) , 
		value >  (map.w * map.h) / ( 100 / min_percent ) 
	);

#returns average defense of the unit #

def unit_average_defense(ai*, unit, terrain_min_percent )
	sum( 
		values( 
			map(
				filtered_locations_map(ai,terrain_min_percent), 
				defense_on( 
					unit, 
					find(map.terrain,id=key).loc
				) *
				value
			) 
		) 
	) / 
	sum(
		values(
			filtered_locations_map(
				ai,
				terrain_min_percent
			)
		)
	);

#returns map of units from units_list and their average defense (more -> better) #

def map_units_average_defense(ai*, units_list, terrain_min_percent) 
	tomap(
		map( 
			units_list, 
			id 
		), 
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	);

def units_average_defense(ai*, units_list, terrain_min_percent)
	sum(
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	) /
	size(
		units_list
	);


# ==2== TODO: evaluate unit effectivness based on movement points and movement cost#


		#===== Evaluation of game state - how good is ai doing ===== #

# ==1== based on unit cost and current amount of gold #
# returns number between 0 and 100 where: 0 we are losing, 100 we are winning #

def units_cost_gold_eval(ai*)
	min(
		[
			(
				(
					sum(
						map(
							allies, 'team', 
							sum(
								map(
									units_of_side[team], 
									cost
								)
							) + 
							teams[team].gold 
						)
					) * 
					100
				) / 
				sum(
					map(
						enemies, 'team', 
						sum(
							map(
								units_of_side[team], 
								cost
							)
						) + 
						max(
							[teams[team].gold, 0]
						) 
					)
				)
			) / 2,
			100
		]
	);

# ==2== based on village possession #

def count_allied_villages(ai*)
	sum(
		map(
			allies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

def count_enemy_villages(ai*)
	sum(
		map(
			enemies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

# multipled by 1000 to increase precision #

def village_evaluation(ai*)
	(
		50000 + 
		(
			count_allied_villages(ai) - 
			count_enemy_villages(ai)
		) * 
		(
			50000 /
			size(
				villages
			)
		)
	) /
	1000;

# ==3== combined 2 of the above #

def eval(ai*)
	( 
		units_cost_gold_eval(ai) + 
		village_evaluation(ai)
	) / 
	2;

		#===== Evaluation how effective my units are against the enemy ===== #

#==1==  basic evaluation #

# evaluate how much damage unit can inflict - how much damage unit can get#

def evaluate_attacker_against_opponents(ai*, unit, enemy_units)
	sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( unit, enemy_unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				) 
			)
		)
	);

def evaluate_defender_against_opponents(ai*, unit, enemy_units)
	-sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( enemy_unit, unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				)
			)
		)
	);

def units_hp_map(ai*, units)
	tomap( 
		map(
			units, 
			id
		), 
		map( 
			units, 
			hitpoints
		)
	);

#in case side's gold is more than 50, add units that side can recruit to the side's unit list#

def create_side_unit_list(ai*, side)
	if( 
		teams[side].gold > 50, 
		recruits_of_side[side], 
		[]
	) + 
	units_of_side[side];

def evaluate_my_recruits_as_attackers(ai*)
	tomap( 
		map(
			my_recruits, 
			id
		), 
		map(
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_attacker_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai, 
							enemy_side
						)
					)
				)
			)
		)
	);

def evaluate_my_recruits_as_defenders(ai*)
	tomap(
		map(
			my_recruits, 
			id
		),
		map( 
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_defender_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai,
							enemy_side
						)
					)
				)
			)
		)
	);


# === 2 ===  now consider abilities and weapon specials  #

def abilities_weights()
	['skirmisher' -> 15, 'ambush' -> 10, 'nightstalk' -> 20, 'regenerates' -> 20, 'healing' -> 15, 'curing' -> 10, 'leadership' -> 20, 'illumination' -> 15, 'teleport' -> 10, 'steadfast' -> 15 ];

def weapon_specials_weights()
	[ 'backstab' -> 20 ,'slow' -> 10 ,'berserk' -> 20 ,'stones' -> 60 ,'plague' -> 10 ,'marksman' -> 30 ,'magical' -> 40 ,'charge' -> 30 ,'drains' -> 30,  'firststrike' -> 10, 'poison' -> 25 ];

def apply_abilities_weights( units_map )
	map( 
		units_map, 
		value +
		(
			value * 
			max(
				map(
					get_unit_type( key ).abilities, 'ability',
					abilities_weights()[ability]
				)
			)
		) / 100
	);

def apply_weapon_specials_weights( units_map )
	map(
		units_map, 
		value +
		(
			value *
			max(
				map(
					get_unit_type( key ).attacks, 'attack',
					vars.weapon_specials[attack.special]
				)
			)
		) / 100
	);

# since undead units don't get random traits and are balanced with that, we need to lower their evaluation a bit to match fairly the living units #

def undead_malus( units_map )
	map( 
		units_map, 
		if(
			get_unit_type(key).undead,
			( value * 90 ) / 100,
			value 
		)
	);

# === 3 ===  pit 1 and 2 together  #

def evaluate_attackers(ai*)
	change_numbers_to_percents(
		apply_abilities_weights(
			apply_weapon_specials_weights(
				undead_malus( 
					make_positive_only(
						evaluate_my_recruits_as_attackers( ai )	
					)
				)
			)
		)
	);

def evaluate_defenders(ai*)
	map(
		map(
			change_numbers_to_percents(
				apply_abilities_weights(
					apply_weapon_specials_weights(
						undead_malus( 
							make_positive_only(
								evaluate_my_recruits_as_defenders( ai )	
							)
						)
					)
				)
			),
			value / 3
		), 
		value +
		map(
			change_numbers_to_percents(
				units_hp_map(
					ai,
					my_recruits
				)
			),
		value * 2 / 3
		)[key]
	);

	#=========== we have evaluation of game state and units, time to combine them: ==========#
		#=========	recruitment_list_builder	=========#

def rlb_apply_eval(eval, attackers_map, defenders_map, offset)
	map(
		sumarize_maps_values(
			map(
				attackers_map, 
				value * (eval+offset)
			),
			map(
				defenders_map,
				value * ( (100 - eval) - offset )
			)
		),
		value / 100
	);

def rlb_remove_lowest( input_map, percent)
	filter(
		input_map, 
		value > 
		(
			(
				percent * sumarize_values(input_map)
			) / 100
		)
	);

def rlb_first_step(eval, attackers_map, defenders_map, offset)
	rlb_remove_lowest(
		rlb_apply_eval(
			eval,
			attackers_map,
			defenders_map,
			offset
		),
		10
	);

def recruitment_list_builder(eval, attackers_map, defenders_map)
	map(
		rlb_first_step(
			eval,
			attackers_map,
			defenders_map,
			40
		),
		(
			(
				value * 100
			) / 
			sumarize_values(
				rlb_first_step(
					eval,
					attackers_map,
					defenders_map,
					40
				)
			)
		)
	);

		# ========== choose the unit to recruit now ========= #

def unit_chooser(ai*,unit_map) 
	choose(
		keys(unit_map), 'unit_type',
		unit_map[unit_type] - 
		(
			(
				100 * 
				size(
					filter(
						my_units, 
						type = unit_type
					)
				)
			) / 
			size(my_units)
		)
	);

def unit_map_cost_filter(ai*, unit_map)
	filter( unit_map,
		get_unit_type(key).cost < my_side.gold
	);

		# ==========	Main formula section 	========== #

def initialize_weapon_specials_map(ai*)
	if(vars.weapon_specials_init != turn,
		[
			set_var('weapon_specials_init', turn),
			set_var('weapon_specials',
				map(
					weapon_specials_weights(),
					if( key = 'magical',
						units_average_defense(ai, enemy_units, 10),
						if( key = 'marksman',
							units_average_defense(ai, enemy_units, 10) - 10,
							value
						)
					)
				)
			)
		],
		[]
	);

def create_recruits_map(ai*)
	if(vars.recruits_map_creator != turn,
		[
			set_var('recruits_map_creator', turn ),
			set_var('recruits_map',
				debug_print('final unit evaluation: ', recruitment_list_builder(
					debug_print('current AI evaluation (0-100): ', eval(ai)),
					debug_print('attackers evaluation: ',evaluate_attackers(ai)),
					debug_print('defenders evaluation: ',evaluate_defenders(ai))
				))
			)
		],
		[]
	);

def castle_space(ai*)
	filter( map( castle_locs( my_leader.loc ), 'location', if( unit_at( location ), 1, 0 ) ), self = 0  ).size;

if(vars.turn_initialized = turn,
		if( my_leader.loc = nearest_keep( my_leader.loc ),
			if( 
				get_unit_type(
					choose(
						vars.recruits_map,
						-get_unit_type(key).cost
					).key
				).cost <
				my_side.gold,
				if( castle_space(self),
					recruit(debug_print(
						unit_chooser(
							self,
							unit_map_cost_filter(
								self,
								vars.recruits_map
							)
						)
					)),
					fallback()
				),
				fallback() 
			),
			if( my_leader.movement_left > 0,
				move( my_leader.loc, nearest_keep( my_leader.loc ) ),
				fallback()
			)
		),
	[set_var(debug_print('turn_initialized'), turn)] +
	initialize_weapon_specials_map(self) +
	create_recruits_map(self)
)

faiend
"
				[/team_formula]
			[/ai]
		[/multiplayer_side]
		[multiplayer_side]
			flag_rgb="magenta"
			id="Northerners"
			image="units/orcs/warrior.png"
			leader="Orcish Warrior,Troll,Troll Rocklobber,Orcish Crossbowman,Orcish Slayer"
			name=_ "Northerners"
			recruit="Orcish Grunt,Troll Whelp,Wolf Rider,Orcish Archer,Orcish Assassin,Naga Fighter,Goblin Spearman"
			terrain_liked="Hh, Ha, Mm, Ss"
			type="Orcish Warrior"
			[ai]
				recruitment_pattern="fighter,fighter,fighter,mixed fighter,archer,scout"
				[team_formula]
					rulebase="fai 'recruitment.fai'
		# ===== Some general functions used later ==== #

def sumarize_values( input_map )
	sum(
		values(input_map)
	);

def lowest_value( input_map )
	choose( input_map, -value ).value;

def highest_value( input_map )
	choose( input_map, value ).value;

def change_numbers_to_percents( input_map )
	map( input_map, 
		(value*100) / highest_value(input_map) 
	);

def add_number_to_values( input_map, number )
	map( input_map, 
		value + number 
	);

#make sure we have only positive values in a map #

def make_positive_only( input_map )
	if( lowest_value( input_map ) < 0, 
		add_number_to_values( 
			input_map, 
			abs(lowest_value(input_map))
		), 
		input_map 
	);

def sumarize_maps_values( map_A, map_B )
	map( map_A + map_B, 
		value + map_A[key]
	);

		#===== Evaluation how good unit is on a map ===== #

# ==1==  evaluate average defense #
#gives map where key is id of terrain, and value is number of hexes of that terrain on a gamemap#

def locations_map(ai*) 
	tomap( 
		map( 
			map.terrain, 
			id 
		) 
	);

#filters terrain map, min_percent it minimal % of map that terrain has to occupy to be considered in later evaluations# 

def filtered_locations_map(ai*, min_percent)
	filter( 
		locations_map(ai) , 
		value >  (map.w * map.h) / ( 100 / min_percent ) 
	);

#returns average defense of the unit #

def unit_average_defense(ai*, unit, terrain_min_percent )
	sum( 
		values( 
			map(
				filtered_locations_map(ai,terrain_min_percent), 
				defense_on( 
					unit, 
					find(map.terrain,id=key).loc
				) *
				value
			) 
		) 
	) / 
	sum(
		values(
			filtered_locations_map(
				ai,
				terrain_min_percent
			)
		)
	);

#returns map of units from units_list and their average defense (more -> better) #

def map_units_average_defense(ai*, units_list, terrain_min_percent) 
	tomap(
		map( 
			units_list, 
			id 
		), 
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	);

def units_average_defense(ai*, units_list, terrain_min_percent)
	sum(
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	) /
	size(
		units_list
	);


# ==2== TODO: evaluate unit effectivness based on movement points and movement cost#


		#===== Evaluation of game state - how good is ai doing ===== #

# ==1== based on unit cost and current amount of gold #
# returns number between 0 and 100 where: 0 we are losing, 100 we are winning #

def units_cost_gold_eval(ai*)
	min(
		[
			(
				(
					sum(
						map(
							allies, 'team', 
							sum(
								map(
									units_of_side[team], 
									cost
								)
							) + 
							teams[team].gold 
						)
					) * 
					100
				) / 
				sum(
					map(
						enemies, 'team', 
						sum(
							map(
								units_of_side[team], 
								cost
							)
						) + 
						max(
							[teams[team].gold, 0]
						) 
					)
				)
			) / 2,
			100
		]
	);

# ==2== based on village possession #

def count_allied_villages(ai*)
	sum(
		map(
			allies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

def count_enemy_villages(ai*)
	sum(
		map(
			enemies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

# multipled by 1000 to increase precision #

def village_evaluation(ai*)
	(
		50000 + 
		(
			count_allied_villages(ai) - 
			count_enemy_villages(ai)
		) * 
		(
			50000 /
			size(
				villages
			)
		)
	) /
	1000;

# ==3== combined 2 of the above #

def eval(ai*)
	( 
		units_cost_gold_eval(ai) + 
		village_evaluation(ai)
	) / 
	2;

		#===== Evaluation how effective my units are against the enemy ===== #

#==1==  basic evaluation #

# evaluate how much damage unit can inflict - how much damage unit can get#

def evaluate_attacker_against_opponents(ai*, unit, enemy_units)
	sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( unit, enemy_unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				) 
			)
		)
	);

def evaluate_defender_against_opponents(ai*, unit, enemy_units)
	-sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( enemy_unit, unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				)
			)
		)
	);

def units_hp_map(ai*, units)
	tomap( 
		map(
			units, 
			id
		), 
		map( 
			units, 
			hitpoints
		)
	);

#in case side's gold is more than 50, add units that side can recruit to the side's unit list#

def create_side_unit_list(ai*, side)
	if( 
		teams[side].gold > 50, 
		recruits_of_side[side], 
		[]
	) + 
	units_of_side[side];

def evaluate_my_recruits_as_attackers(ai*)
	tomap( 
		map(
			my_recruits, 
			id
		), 
		map(
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_attacker_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai, 
							enemy_side
						)
					)
				)
			)
		)
	);

def evaluate_my_recruits_as_defenders(ai*)
	tomap(
		map(
			my_recruits, 
			id
		),
		map( 
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_defender_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai,
							enemy_side
						)
					)
				)
			)
		)
	);


# === 2 ===  now consider abilities and weapon specials  #

def abilities_weights()
	['skirmisher' -> 15, 'ambush' -> 10, 'nightstalk' -> 20, 'regenerates' -> 20, 'healing' -> 15, 'curing' -> 10, 'leadership' -> 20, 'illumination' -> 15, 'teleport' -> 10, 'steadfast' -> 15 ];

def weapon_specials_weights()
	[ 'backstab' -> 20 ,'slow' -> 10 ,'berserk' -> 20 ,'stones' -> 60 ,'plague' -> 10 ,'marksman' -> 30 ,'magical' -> 40 ,'charge' -> 30 ,'drains' -> 30,  'firststrike' -> 10, 'poison' -> 25 ];

def apply_abilities_weights( units_map )
	map( 
		units_map, 
		value +
		(
			value * 
			max(
				map(
					get_unit_type( key ).abilities, 'ability',
					abilities_weights()[ability]
				)
			)
		) / 100
	);

def apply_weapon_specials_weights( units_map )
	map(
		units_map, 
		value +
		(
			value *
			max(
				map(
					get_unit_type( key ).attacks, 'attack',
					vars.weapon_specials[attack.special]
				)
			)
		) / 100
	);

# since undead units don't get random traits and are balanced with that, we need to lower their evaluation a bit to match fairly the living units #

def undead_malus( units_map )
	map( 
		units_map, 
		if(
			get_unit_type(key).undead,
			( value * 90 ) / 100,
			value 
		)
	);

# === 3 ===  pit 1 and 2 together  #

def evaluate_attackers(ai*)
	change_numbers_to_percents(
		apply_abilities_weights(
			apply_weapon_specials_weights(
				undead_malus( 
					make_positive_only(
						evaluate_my_recruits_as_attackers( ai )	
					)
				)
			)
		)
	);

def evaluate_defenders(ai*)
	map(
		map(
			change_numbers_to_percents(
				apply_abilities_weights(
					apply_weapon_specials_weights(
						undead_malus( 
							make_positive_only(
								evaluate_my_recruits_as_defenders( ai )	
							)
						)
					)
				)
			),
			value / 3
		), 
		value +
		map(
			change_numbers_to_percents(
				units_hp_map(
					ai,
					my_recruits
				)
			),
		value * 2 / 3
		)[key]
	);

	#=========== we have evaluation of game state and units, time to combine them: ==========#
		#=========	recruitment_list_builder	=========#

def rlb_apply_eval(eval, attackers_map, defenders_map, offset)
	map(
		sumarize_maps_values(
			map(
				attackers_map, 
				value * (eval+offset)
			),
			map(
				defenders_map,
				value * ( (100 - eval) - offset )
			)
		),
		value / 100
	);

def rlb_remove_lowest( input_map, percent)
	filter(
		input_map, 
		value > 
		(
			(
				percent * sumarize_values(input_map)
			) / 100
		)
	);

def rlb_first_step(eval, attackers_map, defenders_map, offset)
	rlb_remove_lowest(
		rlb_apply_eval(
			eval,
			attackers_map,
			defenders_map,
			offset
		),
		10
	);

def recruitment_list_builder(eval, attackers_map, defenders_map)
	map(
		rlb_first_step(
			eval,
			attackers_map,
			defenders_map,
			40
		),
		(
			(
				value * 100
			) / 
			sumarize_values(
				rlb_first_step(
					eval,
					attackers_map,
					defenders_map,
					40
				)
			)
		)
	);

		# ========== choose the unit to recruit now ========= #

def unit_chooser(ai*,unit_map) 
	choose(
		keys(unit_map), 'unit_type',
		unit_map[unit_type] - 
		(
			(
				100 * 
				size(
					filter(
						my_units, 
						type = unit_type
					)
				)
			) / 
			size(my_units)
		)
	);

def unit_map_cost_filter(ai*, unit_map)
	filter( unit_map,
		get_unit_type(key).cost < my_side.gold
	);

		# ==========	Main formula section 	========== #

def initialize_weapon_specials_map(ai*)
	if(vars.weapon_specials_init != turn,
		[
			set_var('weapon_specials_init', turn),
			set_var('weapon_specials',
				map(
					weapon_specials_weights(),
					if( key = 'magical',
						units_average_defense(ai, enemy_units, 10),
						if( key = 'marksman',
							units_average_defense(ai, enemy_units, 10) - 10,
							value
						)
					)
				)
			)
		],
		[]
	);

def create_recruits_map(ai*)
	if(vars.recruits_map_creator != turn,
		[
			set_var('recruits_map_creator', turn ),
			set_var('recruits_map',
				debug_print('final unit evaluation: ', recruitment_list_builder(
					debug_print('current AI evaluation (0-100): ', eval(ai)),
					debug_print('attackers evaluation: ',evaluate_attackers(ai)),
					debug_print('defenders evaluation: ',evaluate_defenders(ai))
				))
			)
		],
		[]
	);

def castle_space(ai*)
	filter( map( castle_locs( my_leader.loc ), 'location', if( unit_at( location ), 1, 0 ) ), self = 0  ).size;

if(vars.turn_initialized = turn,
		if( my_leader.loc = nearest_keep( my_leader.loc ),
			if( 
				get_unit_type(
					choose(
						vars.recruits_map,
						-get_unit_type(key).cost
					).key
				).cost <
				my_side.gold,
				if( castle_space(self),
					recruit(debug_print(
						unit_chooser(
							self,
							unit_map_cost_filter(
								self,
								vars.recruits_map
							)
						)
					)),
					fallback()
				),
				fallback() 
			),
			if( my_leader.movement_left > 0,
				move( my_leader.loc, nearest_keep( my_leader.loc ) ),
				fallback()
			)
		),
	[set_var(debug_print('turn_initialized'), turn)] +
	initialize_weapon_specials_map(self) +
	create_recruits_map(self)
)

faiend
"
				[/team_formula]
			[/ai]
		[/multiplayer_side]
		[multiplayer_side]
			flag_rgb="magenta"
			id="Undead"
			image="units/undead-necromancers/dark-sorcerer.png"
			leader="Dark Sorcerer,Revenant,Deathblade,Bone Shooter,Necrophage"
			name=_ "Undead"
			random_leader="Dark Sorcerer,Revenant,Deathblade,Bone Shooter"
			recruit="Skeleton,Skeleton Archer,Walking Corpse,Ghost,Vampire Bat,Dark Adept,Ghoul"
			terrain_liked="Ss, Hh, Ha, Ww"
			type="Dark Sorcerer"
			[ai]
				recruitment_pattern="fighter,fighter,archer,fighter,scout,archer"
				[team_formula]
					rulebase="fai 'recruitment.fai'
		# ===== Some general functions used later ==== #

def sumarize_values( input_map )
	sum(
		values(input_map)
	);

def lowest_value( input_map )
	choose( input_map, -value ).value;

def highest_value( input_map )
	choose( input_map, value ).value;

def change_numbers_to_percents( input_map )
	map( input_map, 
		(value*100) / highest_value(input_map) 
	);

def add_number_to_values( input_map, number )
	map( input_map, 
		value + number 
	);

#make sure we have only positive values in a map #

def make_positive_only( input_map )
	if( lowest_value( input_map ) < 0, 
		add_number_to_values( 
			input_map, 
			abs(lowest_value(input_map))
		), 
		input_map 
	);

def sumarize_maps_values( map_A, map_B )
	map( map_A + map_B, 
		value + map_A[key]
	);

		#===== Evaluation how good unit is on a map ===== #

# ==1==  evaluate average defense #
#gives map where key is id of terrain, and value is number of hexes of that terrain on a gamemap#

def locations_map(ai*) 
	tomap( 
		map( 
			map.terrain, 
			id 
		) 
	);

#filters terrain map, min_percent it minimal % of map that terrain has to occupy to be considered in later evaluations# 

def filtered_locations_map(ai*, min_percent)
	filter( 
		locations_map(ai) , 
		value >  (map.w * map.h) / ( 100 / min_percent ) 
	);

#returns average defense of the unit #

def unit_average_defense(ai*, unit, terrain_min_percent )
	sum( 
		values( 
			map(
				filtered_locations_map(ai,terrain_min_percent), 
				defense_on( 
					unit, 
					find(map.terrain,id=key).loc
				) *
				value
			) 
		) 
	) / 
	sum(
		values(
			filtered_locations_map(
				ai,
				terrain_min_percent
			)
		)
	);

#returns map of units from units_list and their average defense (more -> better) #

def map_units_average_defense(ai*, units_list, terrain_min_percent) 
	tomap(
		map( 
			units_list, 
			id 
		), 
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	);

def units_average_defense(ai*, units_list, terrain_min_percent)
	sum(
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	) /
	size(
		units_list
	);


# ==2== TODO: evaluate unit effectivness based on movement points and movement cost#


		#===== Evaluation of game state - how good is ai doing ===== #

# ==1== based on unit cost and current amount of gold #
# returns number between 0 and 100 where: 0 we are losing, 100 we are winning #

def units_cost_gold_eval(ai*)
	min(
		[
			(
				(
					sum(
						map(
							allies, 'team', 
							sum(
								map(
									units_of_side[team], 
									cost
								)
							) + 
							teams[team].gold 
						)
					) * 
					100
				) / 
				sum(
					map(
						enemies, 'team', 
						sum(
							map(
								units_of_side[team], 
								cost
							)
						) + 
						max(
							[teams[team].gold, 0]
						) 
					)
				)
			) / 2,
			100
		]
	);

# ==2== based on village possession #

def count_allied_villages(ai*)
	sum(
		map(
			allies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

def count_enemy_villages(ai*)
	sum(
		map(
			enemies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

# multipled by 1000 to increase precision #

def village_evaluation(ai*)
	(
		50000 + 
		(
			count_allied_villages(ai) - 
			count_enemy_villages(ai)
		) * 
		(
			50000 /
			size(
				villages
			)
		)
	) /
	1000;

# ==3== combined 2 of the above #

def eval(ai*)
	( 
		units_cost_gold_eval(ai) + 
		village_evaluation(ai)
	) / 
	2;

		#===== Evaluation how effective my units are against the enemy ===== #

#==1==  basic evaluation #

# evaluate how much damage unit can inflict - how much damage unit can get#

def evaluate_attacker_against_opponents(ai*, unit, enemy_units)
	sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( unit, enemy_unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				) 
			)
		)
	);

def evaluate_defender_against_opponents(ai*, unit, enemy_units)
	-sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( enemy_unit, unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				)
			)
		)
	);

def units_hp_map(ai*, units)
	tomap( 
		map(
			units, 
			id
		), 
		map( 
			units, 
			hitpoints
		)
	);

#in case side's gold is more than 50, add units that side can recruit to the side's unit list#

def create_side_unit_list(ai*, side)
	if( 
		teams[side].gold > 50, 
		recruits_of_side[side], 
		[]
	) + 
	units_of_side[side];

def evaluate_my_recruits_as_attackers(ai*)
	tomap( 
		map(
			my_recruits, 
			id
		), 
		map(
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_attacker_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai, 
							enemy_side
						)
					)
				)
			)
		)
	);

def evaluate_my_recruits_as_defenders(ai*)
	tomap(
		map(
			my_recruits, 
			id
		),
		map( 
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_defender_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai,
							enemy_side
						)
					)
				)
			)
		)
	);


# === 2 ===  now consider abilities and weapon specials  #

def abilities_weights()
	['skirmisher' -> 15, 'ambush' -> 10, 'nightstalk' -> 20, 'regenerates' -> 20, 'healing' -> 15, 'curing' -> 10, 'leadership' -> 20, 'illumination' -> 15, 'teleport' -> 10, 'steadfast' -> 15 ];

def weapon_specials_weights()
	[ 'backstab' -> 20 ,'slow' -> 10 ,'berserk' -> 20 ,'stones' -> 60 ,'plague' -> 10 ,'marksman' -> 30 ,'magical' -> 40 ,'charge' -> 30 ,'drains' -> 30,  'firststrike' -> 10, 'poison' -> 25 ];

def apply_abilities_weights( units_map )
	map( 
		units_map, 
		value +
		(
			value * 
			max(
				map(
					get_unit_type( key ).abilities, 'ability',
					abilities_weights()[ability]
				)
			)
		) / 100
	);

def apply_weapon_specials_weights( units_map )
	map(
		units_map, 
		value +
		(
			value *
			max(
				map(
					get_unit_type( key ).attacks, 'attack',
					vars.weapon_specials[attack.special]
				)
			)
		) / 100
	);

# since undead units don't get random traits and are balanced with that, we need to lower their evaluation a bit to match fairly the living units #

def undead_malus( units_map )
	map( 
		units_map, 
		if(
			get_unit_type(key).undead,
			( value * 90 ) / 100,
			value 
		)
	);

# === 3 ===  pit 1 and 2 together  #

def evaluate_attackers(ai*)
	change_numbers_to_percents(
		apply_abilities_weights(
			apply_weapon_specials_weights(
				undead_malus( 
					make_positive_only(
						evaluate_my_recruits_as_attackers( ai )	
					)
				)
			)
		)
	);

def evaluate_defenders(ai*)
	map(
		map(
			change_numbers_to_percents(
				apply_abilities_weights(
					apply_weapon_specials_weights(
						undead_malus( 
							make_positive_only(
								evaluate_my_recruits_as_defenders( ai )	
							)
						)
					)
				)
			),
			value / 3
		), 
		value +
		map(
			change_numbers_to_percents(
				units_hp_map(
					ai,
					my_recruits
				)
			),
		value * 2 / 3
		)[key]
	);

	#=========== we have evaluation of game state and units, time to combine them: ==========#
		#=========	recruitment_list_builder	=========#

def rlb_apply_eval(eval, attackers_map, defenders_map, offset)
	map(
		sumarize_maps_values(
			map(
				attackers_map, 
				value * (eval+offset)
			),
			map(
				defenders_map,
				value * ( (100 - eval) - offset )
			)
		),
		value / 100
	);

def rlb_remove_lowest( input_map, percent)
	filter(
		input_map, 
		value > 
		(
			(
				percent * sumarize_values(input_map)
			) / 100
		)
	);

def rlb_first_step(eval, attackers_map, defenders_map, offset)
	rlb_remove_lowest(
		rlb_apply_eval(
			eval,
			attackers_map,
			defenders_map,
			offset
		),
		10
	);

def recruitment_list_builder(eval, attackers_map, defenders_map)
	map(
		rlb_first_step(
			eval,
			attackers_map,
			defenders_map,
			40
		),
		(
			(
				value * 100
			) / 
			sumarize_values(
				rlb_first_step(
					eval,
					attackers_map,
					defenders_map,
					40
				)
			)
		)
	);

		# ========== choose the unit to recruit now ========= #

def unit_chooser(ai*,unit_map) 
	choose(
		keys(unit_map), 'unit_type',
		unit_map[unit_type] - 
		(
			(
				100 * 
				size(
					filter(
						my_units, 
						type = unit_type
					)
				)
			) / 
			size(my_units)
		)
	);

def unit_map_cost_filter(ai*, unit_map)
	filter( unit_map,
		get_unit_type(key).cost < my_side.gold
	);

		# ==========	Main formula section 	========== #

def initialize_weapon_specials_map(ai*)
	if(vars.weapon_specials_init != turn,
		[
			set_var('weapon_specials_init', turn),
			set_var('weapon_specials',
				map(
					weapon_specials_weights(),
					if( key = 'magical',
						units_average_defense(ai, enemy_units, 10),
						if( key = 'marksman',
							units_average_defense(ai, enemy_units, 10) - 10,
							value
						)
					)
				)
			)
		],
		[]
	);

def create_recruits_map(ai*)
	if(vars.recruits_map_creator != turn,
		[
			set_var('recruits_map_creator', turn ),
			set_var('recruits_map',
				debug_print('final unit evaluation: ', recruitment_list_builder(
					debug_print('current AI evaluation (0-100): ', eval(ai)),
					debug_print('attackers evaluation: ',evaluate_attackers(ai)),
					debug_print('defenders evaluation: ',evaluate_defenders(ai))
				))
			)
		],
		[]
	);

def castle_space(ai*)
	filter( map( castle_locs( my_leader.loc ), 'location', if( unit_at( location ), 1, 0 ) ), self = 0  ).size;

if(vars.turn_initialized = turn,
		if( my_leader.loc = nearest_keep( my_leader.loc ),
			if( 
				get_unit_type(
					choose(
						vars.recruits_map,
						-get_unit_type(key).cost
					).key
				).cost <
				my_side.gold,
				if( castle_space(self),
					recruit(debug_print(
						unit_chooser(
							self,
							unit_map_cost_filter(
								self,
								vars.recruits_map
							)
						)
					)),
					fallback()
				),
				fallback() 
			),
			if( my_leader.movement_left > 0,
				move( my_leader.loc, nearest_keep( my_leader.loc ) ),
				fallback()
			)
		),
	[set_var(debug_print('turn_initialized'), turn)] +
	initialize_weapon_specials_map(self) +
	create_recruits_map(self)
)

faiend
"
				[/team_formula]
			[/ai]
		[/multiplayer_side]
		[multiplayer_side]
			flag_rgb="magenta"
			id="Knalgan Alliance"
			image="units/dwarves/steelclad.png"
			leader="Dwarvish Steelclad,Dwarvish Thunderguard,Dwarvish Stalwart,Rogue,Trapper"
			name=_ "Knalgan Alliance"
			random_leader="Dwarvish Steelclad,Dwarvish Thunderguard,Rogue,Trapper"
			recruit="Dwarvish Guardsman,Dwarvish Fighter,Dwarvish Ulfserker,Dwarvish Thunderer,Thief,Poacher,Footpad,Gryphon Rider"
			terrain_liked="Hh, Ha, Mm"
			type="Dwarvish Steelclad"
			[ai]
				recruitment_pattern="fighter,fighter,fighter,mixed fighter,archer,scout"
				[team_formula]
					rulebase="fai 'recruitment.fai'
		# ===== Some general functions used later ==== #

def sumarize_values( input_map )
	sum(
		values(input_map)
	);

def lowest_value( input_map )
	choose( input_map, -value ).value;

def highest_value( input_map )
	choose( input_map, value ).value;

def change_numbers_to_percents( input_map )
	map( input_map, 
		(value*100) / highest_value(input_map) 
	);

def add_number_to_values( input_map, number )
	map( input_map, 
		value + number 
	);

#make sure we have only positive values in a map #

def make_positive_only( input_map )
	if( lowest_value( input_map ) < 0, 
		add_number_to_values( 
			input_map, 
			abs(lowest_value(input_map))
		), 
		input_map 
	);

def sumarize_maps_values( map_A, map_B )
	map( map_A + map_B, 
		value + map_A[key]
	);

		#===== Evaluation how good unit is on a map ===== #

# ==1==  evaluate average defense #
#gives map where key is id of terrain, and value is number of hexes of that terrain on a gamemap#

def locations_map(ai*) 
	tomap( 
		map( 
			map.terrain, 
			id 
		) 
	);

#filters terrain map, min_percent it minimal % of map that terrain has to occupy to be considered in later evaluations# 

def filtered_locations_map(ai*, min_percent)
	filter( 
		locations_map(ai) , 
		value >  (map.w * map.h) / ( 100 / min_percent ) 
	);

#returns average defense of the unit #

def unit_average_defense(ai*, unit, terrain_min_percent )
	sum( 
		values( 
			map(
				filtered_locations_map(ai,terrain_min_percent), 
				defense_on( 
					unit, 
					find(map.terrain,id=key).loc
				) *
				value
			) 
		) 
	) / 
	sum(
		values(
			filtered_locations_map(
				ai,
				terrain_min_percent
			)
		)
	);

#returns map of units from units_list and their average defense (more -> better) #

def map_units_average_defense(ai*, units_list, terrain_min_percent) 
	tomap(
		map( 
			units_list, 
			id 
		), 
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	);

def units_average_defense(ai*, units_list, terrain_min_percent)
	sum(
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	) /
	size(
		units_list
	);


# ==2== TODO: evaluate unit effectivness based on movement points and movement cost#


		#===== Evaluation of game state - how good is ai doing ===== #

# ==1== based on unit cost and current amount of gold #
# returns number between 0 and 100 where: 0 we are losing, 100 we are winning #

def units_cost_gold_eval(ai*)
	min(
		[
			(
				(
					sum(
						map(
							allies, 'team', 
							sum(
								map(
									units_of_side[team], 
									cost
								)
							) + 
							teams[team].gold 
						)
					) * 
					100
				) / 
				sum(
					map(
						enemies, 'team', 
						sum(
							map(
								units_of_side[team], 
								cost
							)
						) + 
						max(
							[teams[team].gold, 0]
						) 
					)
				)
			) / 2,
			100
		]
	);

# ==2== based on village possession #

def count_allied_villages(ai*)
	sum(
		map(
			allies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

def count_enemy_villages(ai*)
	sum(
		map(
			enemies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

# multipled by 1000 to increase precision #

def village_evaluation(ai*)
	(
		50000 + 
		(
			count_allied_villages(ai) - 
			count_enemy_villages(ai)
		) * 
		(
			50000 /
			size(
				villages
			)
		)
	) /
	1000;

# ==3== combined 2 of the above #

def eval(ai*)
	( 
		units_cost_gold_eval(ai) + 
		village_evaluation(ai)
	) / 
	2;

		#===== Evaluation how effective my units are against the enemy ===== #

#==1==  basic evaluation #

# evaluate how much damage unit can inflict - how much damage unit can get#

def evaluate_attacker_against_opponents(ai*, unit, enemy_units)
	sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( unit, enemy_unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				) 
			)
		)
	);

def evaluate_defender_against_opponents(ai*, unit, enemy_units)
	-sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( enemy_unit, unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				)
			)
		)
	);

def units_hp_map(ai*, units)
	tomap( 
		map(
			units, 
			id
		), 
		map( 
			units, 
			hitpoints
		)
	);

#in case side's gold is more than 50, add units that side can recruit to the side's unit list#

def create_side_unit_list(ai*, side)
	if( 
		teams[side].gold > 50, 
		recruits_of_side[side], 
		[]
	) + 
	units_of_side[side];

def evaluate_my_recruits_as_attackers(ai*)
	tomap( 
		map(
			my_recruits, 
			id
		), 
		map(
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_attacker_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai, 
							enemy_side
						)
					)
				)
			)
		)
	);

def evaluate_my_recruits_as_defenders(ai*)
	tomap(
		map(
			my_recruits, 
			id
		),
		map( 
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_defender_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai,
							enemy_side
						)
					)
				)
			)
		)
	);


# === 2 ===  now consider abilities and weapon specials  #

def abilities_weights()
	['skirmisher' -> 15, 'ambush' -> 10, 'nightstalk' -> 20, 'regenerates' -> 20, 'healing' -> 15, 'curing' -> 10, 'leadership' -> 20, 'illumination' -> 15, 'teleport' -> 10, 'steadfast' -> 15 ];

def weapon_specials_weights()
	[ 'backstab' -> 20 ,'slow' -> 10 ,'berserk' -> 20 ,'stones' -> 60 ,'plague' -> 10 ,'marksman' -> 30 ,'magical' -> 40 ,'charge' -> 30 ,'drains' -> 30,  'firststrike' -> 10, 'poison' -> 25 ];

def apply_abilities_weights( units_map )
	map( 
		units_map, 
		value +
		(
			value * 
			max(
				map(
					get_unit_type( key ).abilities, 'ability',
					abilities_weights()[ability]
				)
			)
		) / 100
	);

def apply_weapon_specials_weights( units_map )
	map(
		units_map, 
		value +
		(
			value *
			max(
				map(
					get_unit_type( key ).attacks, 'attack',
					vars.weapon_specials[attack.special]
				)
			)
		) / 100
	);

# since undead units don't get random traits and are balanced with that, we need to lower their evaluation a bit to match fairly the living units #

def undead_malus( units_map )
	map( 
		units_map, 
		if(
			get_unit_type(key).undead,
			( value * 90 ) / 100,
			value 
		)
	);

# === 3 ===  pit 1 and 2 together  #

def evaluate_attackers(ai*)
	change_numbers_to_percents(
		apply_abilities_weights(
			apply_weapon_specials_weights(
				undead_malus( 
					make_positive_only(
						evaluate_my_recruits_as_attackers( ai )	
					)
				)
			)
		)
	);

def evaluate_defenders(ai*)
	map(
		map(
			change_numbers_to_percents(
				apply_abilities_weights(
					apply_weapon_specials_weights(
						undead_malus( 
							make_positive_only(
								evaluate_my_recruits_as_defenders( ai )	
							)
						)
					)
				)
			),
			value / 3
		), 
		value +
		map(
			change_numbers_to_percents(
				units_hp_map(
					ai,
					my_recruits
				)
			),
		value * 2 / 3
		)[key]
	);

	#=========== we have evaluation of game state and units, time to combine them: ==========#
		#=========	recruitment_list_builder	=========#

def rlb_apply_eval(eval, attackers_map, defenders_map, offset)
	map(
		sumarize_maps_values(
			map(
				attackers_map, 
				value * (eval+offset)
			),
			map(
				defenders_map,
				value * ( (100 - eval) - offset )
			)
		),
		value / 100
	);

def rlb_remove_lowest( input_map, percent)
	filter(
		input_map, 
		value > 
		(
			(
				percent * sumarize_values(input_map)
			) / 100
		)
	);

def rlb_first_step(eval, attackers_map, defenders_map, offset)
	rlb_remove_lowest(
		rlb_apply_eval(
			eval,
			attackers_map,
			defenders_map,
			offset
		),
		10
	);

def recruitment_list_builder(eval, attackers_map, defenders_map)
	map(
		rlb_first_step(
			eval,
			attackers_map,
			defenders_map,
			40
		),
		(
			(
				value * 100
			) / 
			sumarize_values(
				rlb_first_step(
					eval,
					attackers_map,
					defenders_map,
					40
				)
			)
		)
	);

		# ========== choose the unit to recruit now ========= #

def unit_chooser(ai*,unit_map) 
	choose(
		keys(unit_map), 'unit_type',
		unit_map[unit_type] - 
		(
			(
				100 * 
				size(
					filter(
						my_units, 
						type = unit_type
					)
				)
			) / 
			size(my_units)
		)
	);

def unit_map_cost_filter(ai*, unit_map)
	filter( unit_map,
		get_unit_type(key).cost < my_side.gold
	);

		# ==========	Main formula section 	========== #

def initialize_weapon_specials_map(ai*)
	if(vars.weapon_specials_init != turn,
		[
			set_var('weapon_specials_init', turn),
			set_var('weapon_specials',
				map(
					weapon_specials_weights(),
					if( key = 'magical',
						units_average_defense(ai, enemy_units, 10),
						if( key = 'marksman',
							units_average_defense(ai, enemy_units, 10) - 10,
							value
						)
					)
				)
			)
		],
		[]
	);

def create_recruits_map(ai*)
	if(vars.recruits_map_creator != turn,
		[
			set_var('recruits_map_creator', turn ),
			set_var('recruits_map',
				debug_print('final unit evaluation: ', recruitment_list_builder(
					debug_print('current AI evaluation (0-100): ', eval(ai)),
					debug_print('attackers evaluation: ',evaluate_attackers(ai)),
					debug_print('defenders evaluation: ',evaluate_defenders(ai))
				))
			)
		],
		[]
	);

def castle_space(ai*)
	filter( map( castle_locs( my_leader.loc ), 'location', if( unit_at( location ), 1, 0 ) ), self = 0  ).size;

if(vars.turn_initialized = turn,
		if( my_leader.loc = nearest_keep( my_leader.loc ),
			if( 
				get_unit_type(
					choose(
						vars.recruits_map,
						-get_unit_type(key).cost
					).key
				).cost <
				my_side.gold,
				if( castle_space(self),
					recruit(debug_print(
						unit_chooser(
							self,
							unit_map_cost_filter(
								self,
								vars.recruits_map
							)
						)
					)),
					fallback()
				),
				fallback() 
			),
			if( my_leader.movement_left > 0,
				move( my_leader.loc, nearest_keep( my_leader.loc ) ),
				fallback()
			)
		),
	[set_var(debug_print('turn_initialized'), turn)] +
	initialize_weapon_specials_map(self) +
	create_recruits_map(self)
)

faiend
"
				[/team_formula]
			[/ai]
		[/multiplayer_side]
		[multiplayer_side]
			flag_rgb="magenta"
			id="Drakes"
			image="units/drakes/flare.png"
			leader="Drake Flare,Fire Drake,Drake Slasher,Drake Gladiator,Drake Warrior,Saurian Oracle,Saurian Soothsayer"
			name=_ "Drakes"
			random_leader="Drake Flare,Fire Drake,Drake Slasher,Drake Gladiator,Drake Warrior"
			recruit="Drake Burner,Drake Clasher,Drake Glider,Drake Fighter,Saurian Skirmisher,Saurian Augur"
			terrain_liked="Hh, Ha, Ds, Ss"
			type="Drake Flare"
			[ai]
				recruitment_pattern="fighter,fighter,archer,healer,scout,scout"
				[team_formula]
					rulebase="fai 'recruitment.fai'
		# ===== Some general functions used later ==== #

def sumarize_values( input_map )
	sum(
		values(input_map)
	);

def lowest_value( input_map )
	choose( input_map, -value ).value;

def highest_value( input_map )
	choose( input_map, value ).value;

def change_numbers_to_percents( input_map )
	map( input_map, 
		(value*100) / highest_value(input_map) 
	);

def add_number_to_values( input_map, number )
	map( input_map, 
		value + number 
	);

#make sure we have only positive values in a map #

def make_positive_only( input_map )
	if( lowest_value( input_map ) < 0, 
		add_number_to_values( 
			input_map, 
			abs(lowest_value(input_map))
		), 
		input_map 
	);

def sumarize_maps_values( map_A, map_B )
	map( map_A + map_B, 
		value + map_A[key]
	);

		#===== Evaluation how good unit is on a map ===== #

# ==1==  evaluate average defense #
#gives map where key is id of terrain, and value is number of hexes of that terrain on a gamemap#

def locations_map(ai*) 
	tomap( 
		map( 
			map.terrain, 
			id 
		) 
	);

#filters terrain map, min_percent it minimal % of map that terrain has to occupy to be considered in later evaluations# 

def filtered_locations_map(ai*, min_percent)
	filter( 
		locations_map(ai) , 
		value >  (map.w * map.h) / ( 100 / min_percent ) 
	);

#returns average defense of the unit #

def unit_average_defense(ai*, unit, terrain_min_percent )
	sum( 
		values( 
			map(
				filtered_locations_map(ai,terrain_min_percent), 
				defense_on( 
					unit, 
					find(map.terrain,id=key).loc
				) *
				value
			) 
		) 
	) / 
	sum(
		values(
			filtered_locations_map(
				ai,
				terrain_min_percent
			)
		)
	);

#returns map of units from units_list and their average defense (more -> better) #

def map_units_average_defense(ai*, units_list, terrain_min_percent) 
	tomap(
		map( 
			units_list, 
			id 
		), 
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	);

def units_average_defense(ai*, units_list, terrain_min_percent)
	sum(
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	) /
	size(
		units_list
	);


# ==2== TODO: evaluate unit effectivness based on movement points and movement cost#


		#===== Evaluation of game state - how good is ai doing ===== #

# ==1== based on unit cost and current amount of gold #
# returns number between 0 and 100 where: 0 we are losing, 100 we are winning #

def units_cost_gold_eval(ai*)
	min(
		[
			(
				(
					sum(
						map(
							allies, 'team', 
							sum(
								map(
									units_of_side[team], 
									cost
								)
							) + 
							teams[team].gold 
						)
					) * 
					100
				) / 
				sum(
					map(
						enemies, 'team', 
						sum(
							map(
								units_of_side[team], 
								cost
							)
						) + 
						max(
							[teams[team].gold, 0]
						) 
					)
				)
			) / 2,
			100
		]
	);

# ==2== based on village possession #

def count_allied_villages(ai*)
	sum(
		map(
			allies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

def count_enemy_villages(ai*)
	sum(
		map(
			enemies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

# multipled by 1000 to increase precision #

def village_evaluation(ai*)
	(
		50000 + 
		(
			count_allied_villages(ai) - 
			count_enemy_villages(ai)
		) * 
		(
			50000 /
			size(
				villages
			)
		)
	) /
	1000;

# ==3== combined 2 of the above #

def eval(ai*)
	( 
		units_cost_gold_eval(ai) + 
		village_evaluation(ai)
	) / 
	2;

		#===== Evaluation how effective my units are against the enemy ===== #

#==1==  basic evaluation #

# evaluate how much damage unit can inflict - how much damage unit can get#

def evaluate_attacker_against_opponents(ai*, unit, enemy_units)
	sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( unit, enemy_unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				) 
			)
		)
	);

def evaluate_defender_against_opponents(ai*, unit, enemy_units)
	-sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( enemy_unit, unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				)
			)
		)
	);

def units_hp_map(ai*, units)
	tomap( 
		map(
			units, 
			id
		), 
		map( 
			units, 
			hitpoints
		)
	);

#in case side's gold is more than 50, add units that side can recruit to the side's unit list#

def create_side_unit_list(ai*, side)
	if( 
		teams[side].gold > 50, 
		recruits_of_side[side], 
		[]
	) + 
	units_of_side[side];

def evaluate_my_recruits_as_attackers(ai*)
	tomap( 
		map(
			my_recruits, 
			id
		), 
		map(
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_attacker_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai, 
							enemy_side
						)
					)
				)
			)
		)
	);

def evaluate_my_recruits_as_defenders(ai*)
	tomap(
		map(
			my_recruits, 
			id
		),
		map( 
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_defender_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai,
							enemy_side
						)
					)
				)
			)
		)
	);


# === 2 ===  now consider abilities and weapon specials  #

def abilities_weights()
	['skirmisher' -> 15, 'ambush' -> 10, 'nightstalk' -> 20, 'regenerates' -> 20, 'healing' -> 15, 'curing' -> 10, 'leadership' -> 20, 'illumination' -> 15, 'teleport' -> 10, 'steadfast' -> 15 ];

def weapon_specials_weights()
	[ 'backstab' -> 20 ,'slow' -> 10 ,'berserk' -> 20 ,'stones' -> 60 ,'plague' -> 10 ,'marksman' -> 30 ,'magical' -> 40 ,'charge' -> 30 ,'drains' -> 30,  'firststrike' -> 10, 'poison' -> 25 ];

def apply_abilities_weights( units_map )
	map( 
		units_map, 
		value +
		(
			value * 
			max(
				map(
					get_unit_type( key ).abilities, 'ability',
					abilities_weights()[ability]
				)
			)
		) / 100
	);

def apply_weapon_specials_weights( units_map )
	map(
		units_map, 
		value +
		(
			value *
			max(
				map(
					get_unit_type( key ).attacks, 'attack',
					vars.weapon_specials[attack.special]
				)
			)
		) / 100
	);

# since undead units don't get random traits and are balanced with that, we need to lower their evaluation a bit to match fairly the living units #

def undead_malus( units_map )
	map( 
		units_map, 
		if(
			get_unit_type(key).undead,
			( value * 90 ) / 100,
			value 
		)
	);

# === 3 ===  pit 1 and 2 together  #

def evaluate_attackers(ai*)
	change_numbers_to_percents(
		apply_abilities_weights(
			apply_weapon_specials_weights(
				undead_malus( 
					make_positive_only(
						evaluate_my_recruits_as_attackers( ai )	
					)
				)
			)
		)
	);

def evaluate_defenders(ai*)
	map(
		map(
			change_numbers_to_percents(
				apply_abilities_weights(
					apply_weapon_specials_weights(
						undead_malus( 
							make_positive_only(
								evaluate_my_recruits_as_defenders( ai )	
							)
						)
					)
				)
			),
			value / 3
		), 
		value +
		map(
			change_numbers_to_percents(
				units_hp_map(
					ai,
					my_recruits
				)
			),
		value * 2 / 3
		)[key]
	);

	#=========== we have evaluation of game state and units, time to combine them: ==========#
		#=========	recruitment_list_builder	=========#

def rlb_apply_eval(eval, attackers_map, defenders_map, offset)
	map(
		sumarize_maps_values(
			map(
				attackers_map, 
				value * (eval+offset)
			),
			map(
				defenders_map,
				value * ( (100 - eval) - offset )
			)
		),
		value / 100
	);

def rlb_remove_lowest( input_map, percent)
	filter(
		input_map, 
		value > 
		(
			(
				percent * sumarize_values(input_map)
			) / 100
		)
	);

def rlb_first_step(eval, attackers_map, defenders_map, offset)
	rlb_remove_lowest(
		rlb_apply_eval(
			eval,
			attackers_map,
			defenders_map,
			offset
		),
		10
	);

def recruitment_list_builder(eval, attackers_map, defenders_map)
	map(
		rlb_first_step(
			eval,
			attackers_map,
			defenders_map,
			40
		),
		(
			(
				value * 100
			) / 
			sumarize_values(
				rlb_first_step(
					eval,
					attackers_map,
					defenders_map,
					40
				)
			)
		)
	);

		# ========== choose the unit to recruit now ========= #

def unit_chooser(ai*,unit_map) 
	choose(
		keys(unit_map), 'unit_type',
		unit_map[unit_type] - 
		(
			(
				100 * 
				size(
					filter(
						my_units, 
						type = unit_type
					)
				)
			) / 
			size(my_units)
		)
	);

def unit_map_cost_filter(ai*, unit_map)
	filter( unit_map,
		get_unit_type(key).cost < my_side.gold
	);

		# ==========	Main formula section 	========== #

def initialize_weapon_specials_map(ai*)
	if(vars.weapon_specials_init != turn,
		[
			set_var('weapon_specials_init', turn),
			set_var('weapon_specials',
				map(
					weapon_specials_weights(),
					if( key = 'magical',
						units_average_defense(ai, enemy_units, 10),
						if( key = 'marksman',
							units_average_defense(ai, enemy_units, 10) - 10,
							value
						)
					)
				)
			)
		],
		[]
	);

def create_recruits_map(ai*)
	if(vars.recruits_map_creator != turn,
		[
			set_var('recruits_map_creator', turn ),
			set_var('recruits_map',
				debug_print('final unit evaluation: ', recruitment_list_builder(
					debug_print('current AI evaluation (0-100): ', eval(ai)),
					debug_print('attackers evaluation: ',evaluate_attackers(ai)),
					debug_print('defenders evaluation: ',evaluate_defenders(ai))
				))
			)
		],
		[]
	);

def castle_space(ai*)
	filter( map( castle_locs( my_leader.loc ), 'location', if( unit_at( location ), 1, 0 ) ), self = 0  ).size;

if(vars.turn_initialized = turn,
		if( my_leader.loc = nearest_keep( my_leader.loc ),
			if( 
				get_unit_type(
					choose(
						vars.recruits_map,
						-get_unit_type(key).cost
					).key
				).cost <
				my_side.gold,
				if( castle_space(self),
					recruit(debug_print(
						unit_chooser(
							self,
							unit_map_cost_filter(
								self,
								vars.recruits_map
							)
						)
					)),
					fallback()
				),
				fallback() 
			),
			if( my_leader.movement_left > 0,
				move( my_leader.loc, nearest_keep( my_leader.loc ) ),
				fallback()
			)
		),
	[set_var(debug_print('turn_initialized'), turn)] +
	initialize_weapon_specials_map(self) +
	create_recruits_map(self)
)

faiend
"
				[/team_formula]
			[/ai]
		[/multiplayer_side]
		[event]
			name="prestart"
			[store_unit]
				kill="yes"
				variable="leaders_to_make_quick"
				[filter]
					canrecruit="yes"
					[filter_wml]
						max_moves="4"
					[/filter_wml]
				[/filter]
			[/store_unit]
			[set_variable]
				name="i"
				value="0"
			[/set_variable]
			[while]
				[variable]
					less_than="$leaders_to_make_quick.length"
					name="i"
				[/variable]
				[do]
					[set_variables]
						mode="merge"
						name="leaders_to_make_quick[$i].modifications"
						[literal]
							[trait]
#textdomain wesnoth
								female_name=_ "female^quick"
								id="quick"
								male_name=_ "quick"
								[effect]
									apply_to="movement"
									increase="1"
								[/effect]
								[effect]
									apply_to="hitpoints"
									increase_total="-5%"
								[/effect]
							[/trait]
						[/literal]
					[/set_variables]
					[clear_variable]
						name="leaders_to_make_quick[$i].max_moves,leaders_to_make_quick[$i].moves,leaders_to_make_quick[$i].max_hitpoints,leaders_to_make_quick[$i].hitpoints"
					[/clear_variable]
					[unstore_unit]
						variable="leaders_to_make_quick[$i]"
					[/unstore_unit]
					[set_variable]
						add="1"
						name="i"
					[/set_variable]
				[/do]
			[/while]
			[clear_variable]
				name="i"
			[/clear_variable]
			[clear_variable]
				name="leaders_to_make_quick"
			[/clear_variable]
		[/event]
	[/era]
	[side]
		allow_changes="yes"
		allow_player="yes"
		canrecruit="yes"
		colour="1"
		controller="human"
		current_player="Tesafilmchen"
		flag_rgb="magenta"
		fog="yes"
		gender="male"
		gold="100"
		id="Tesafilmchen1"
		image="units/drakes/flare.png"
		income="0"
		leader="Drake Flare,Fire Drake,Drake Slasher,Drake Gladiator,Drake Warrior,Saurian Oracle,Saurian Soothsayer"
		mp_countdown="no"
		mp_countdown_action_bonus="13"
		mp_countdown_init_time="270"
		mp_countdown_reservoir_time="330"
		mp_countdown_turn_bonus="60"
		name="Tesafilmchen"
		random_leader="Drake Flare,Fire Drake,Drake Slasher,Drake Gladiator,Drake Warrior"
		recruit="Drake Burner,Drake Clasher,Drake Glider,Drake Fighter,Saurian Skirmisher,Saurian Augur"
		save_id="Tesafilmchen1"
		share_maps="no"
		share_view="yes"
		shroud="no"
		side="1"
		team_name="north"
		terrain_liked="Hh, Ha, Ds, Ss"
		type="Drake Flare"
		user_team_name="wesnoth-multiplayerteamname^North"
		village_gold="2"
		[ai]
			recruitment_pattern="fighter,fighter,archer,healer,scout,scout"
			villages_per_scout="8"
			[team_formula]
				rulebase="fai 'recruitment.fai'
		# ===== Some general functions used later ==== #

def sumarize_values( input_map )
	sum(
		values(input_map)
	);

def lowest_value( input_map )
	choose( input_map, -value ).value;

def highest_value( input_map )
	choose( input_map, value ).value;

def change_numbers_to_percents( input_map )
	map( input_map, 
		(value*100) / highest_value(input_map) 
	);

def add_number_to_values( input_map, number )
	map( input_map, 
		value + number 
	);

#make sure we have only positive values in a map #

def make_positive_only( input_map )
	if( lowest_value( input_map ) < 0, 
		add_number_to_values( 
			input_map, 
			abs(lowest_value(input_map))
		), 
		input_map 
	);

def sumarize_maps_values( map_A, map_B )
	map( map_A + map_B, 
		value + map_A[key]
	);

		#===== Evaluation how good unit is on a map ===== #

# ==1==  evaluate average defense #
#gives map where key is id of terrain, and value is number of hexes of that terrain on a gamemap#

def locations_map(ai*) 
	tomap( 
		map( 
			map.terrain, 
			id 
		) 
	);

#filters terrain map, min_percent it minimal % of map that terrain has to occupy to be considered in later evaluations# 

def filtered_locations_map(ai*, min_percent)
	filter( 
		locations_map(ai) , 
		value >  (map.w * map.h) / ( 100 / min_percent ) 
	);

#returns average defense of the unit #

def unit_average_defense(ai*, unit, terrain_min_percent )
	sum( 
		values( 
			map(
				filtered_locations_map(ai,terrain_min_percent), 
				defense_on( 
					unit, 
					find(map.terrain,id=key).loc
				) *
				value
			) 
		) 
	) / 
	sum(
		values(
			filtered_locations_map(
				ai,
				terrain_min_percent
			)
		)
	);

#returns map of units from units_list and their average defense (more -> better) #

def map_units_average_defense(ai*, units_list, terrain_min_percent) 
	tomap(
		map( 
			units_list, 
			id 
		), 
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	);

def units_average_defense(ai*, units_list, terrain_min_percent)
	sum(
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	) /
	size(
		units_list
	);


# ==2== TODO: evaluate unit effectivness based on movement points and movement cost#


		#===== Evaluation of game state - how good is ai doing ===== #

# ==1== based on unit cost and current amount of gold #
# returns number between 0 and 100 where: 0 we are losing, 100 we are winning #

def units_cost_gold_eval(ai*)
	min(
		[
			(
				(
					sum(
						map(
							allies, 'team', 
							sum(
								map(
									units_of_side[team], 
									cost
								)
							) + 
							teams[team].gold 
						)
					) * 
					100
				) / 
				sum(
					map(
						enemies, 'team', 
						sum(
							map(
								units_of_side[team], 
								cost
							)
						) + 
						max(
							[teams[team].gold, 0]
						) 
					)
				)
			) / 2,
			100
		]
	);

# ==2== based on village possession #

def count_allied_villages(ai*)
	sum(
		map(
			allies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

def count_enemy_villages(ai*)
	sum(
		map(
			enemies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

# multipled by 1000 to increase precision #

def village_evaluation(ai*)
	(
		50000 + 
		(
			count_allied_villages(ai) - 
			count_enemy_villages(ai)
		) * 
		(
			50000 /
			size(
				villages
			)
		)
	) /
	1000;

# ==3== combined 2 of the above #

def eval(ai*)
	( 
		units_cost_gold_eval(ai) + 
		village_evaluation(ai)
	) / 
	2;

		#===== Evaluation how effective my units are against the enemy ===== #

#==1==  basic evaluation #

# evaluate how much damage unit can inflict - how much damage unit can get#

def evaluate_attacker_against_opponents(ai*, unit, enemy_units)
	sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( unit, enemy_unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				) 
			)
		)
	);

def evaluate_defender_against_opponents(ai*, unit, enemy_units)
	-sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( enemy_unit, unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				)
			)
		)
	);

def units_hp_map(ai*, units)
	tomap( 
		map(
			units, 
			id
		), 
		map( 
			units, 
			hitpoints
		)
	);

#in case side's gold is more than 50, add units that side can recruit to the side's unit list#

def create_side_unit_list(ai*, side)
	if( 
		teams[side].gold > 50, 
		recruits_of_side[side], 
		[]
	) + 
	units_of_side[side];

def evaluate_my_recruits_as_attackers(ai*)
	tomap( 
		map(
			my_recruits, 
			id
		), 
		map(
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_attacker_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai, 
							enemy_side
						)
					)
				)
			)
		)
	);

def evaluate_my_recruits_as_defenders(ai*)
	tomap(
		map(
			my_recruits, 
			id
		),
		map( 
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_defender_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai,
							enemy_side
						)
					)
				)
			)
		)
	);


# === 2 ===  now consider abilities and weapon specials  #

def abilities_weights()
	['skirmisher' -> 15, 'ambush' -> 10, 'nightstalk' -> 20, 'regenerates' -> 20, 'healing' -> 15, 'curing' -> 10, 'leadership' -> 20, 'illumination' -> 15, 'teleport' -> 10, 'steadfast' -> 15 ];

def weapon_specials_weights()
	[ 'backstab' -> 20 ,'slow' -> 10 ,'berserk' -> 20 ,'stones' -> 60 ,'plague' -> 10 ,'marksman' -> 30 ,'magical' -> 40 ,'charge' -> 30 ,'drains' -> 30,  'firststrike' -> 10, 'poison' -> 25 ];

def apply_abilities_weights( units_map )
	map( 
		units_map, 
		value +
		(
			value * 
			max(
				map(
					get_unit_type( key ).abilities, 'ability',
					abilities_weights()[ability]
				)
			)
		) / 100
	);

def apply_weapon_specials_weights( units_map )
	map(
		units_map, 
		value +
		(
			value *
			max(
				map(
					get_unit_type( key ).attacks, 'attack',
					vars.weapon_specials[attack.special]
				)
			)
		) / 100
	);

# since undead units don't get random traits and are balanced with that, we need to lower their evaluation a bit to match fairly the living units #

def undead_malus( units_map )
	map( 
		units_map, 
		if(
			get_unit_type(key).undead,
			( value * 90 ) / 100,
			value 
		)
	);

# === 3 ===  pit 1 and 2 together  #

def evaluate_attackers(ai*)
	change_numbers_to_percents(
		apply_abilities_weights(
			apply_weapon_specials_weights(
				undead_malus( 
					make_positive_only(
						evaluate_my_recruits_as_attackers( ai )	
					)
				)
			)
		)
	);

def evaluate_defenders(ai*)
	map(
		map(
			change_numbers_to_percents(
				apply_abilities_weights(
					apply_weapon_specials_weights(
						undead_malus( 
							make_positive_only(
								evaluate_my_recruits_as_defenders( ai )	
							)
						)
					)
				)
			),
			value / 3
		), 
		value +
		map(
			change_numbers_to_percents(
				units_hp_map(
					ai,
					my_recruits
				)
			),
		value * 2 / 3
		)[key]
	);

	#=========== we have evaluation of game state and units, time to combine them: ==========#
		#=========	recruitment_list_builder	=========#

def rlb_apply_eval(eval, attackers_map, defenders_map, offset)
	map(
		sumarize_maps_values(
			map(
				attackers_map, 
				value * (eval+offset)
			),
			map(
				defenders_map,
				value * ( (100 - eval) - offset )
			)
		),
		value / 100
	);

def rlb_remove_lowest( input_map, percent)
	filter(
		input_map, 
		value > 
		(
			(
				percent * sumarize_values(input_map)
			) / 100
		)
	);

def rlb_first_step(eval, attackers_map, defenders_map, offset)
	rlb_remove_lowest(
		rlb_apply_eval(
			eval,
			attackers_map,
			defenders_map,
			offset
		),
		10
	);

def recruitment_list_builder(eval, attackers_map, defenders_map)
	map(
		rlb_first_step(
			eval,
			attackers_map,
			defenders_map,
			40
		),
		(
			(
				value * 100
			) / 
			sumarize_values(
				rlb_first_step(
					eval,
					attackers_map,
					defenders_map,
					40
				)
			)
		)
	);

		# ========== choose the unit to recruit now ========= #

def unit_chooser(ai*,unit_map) 
	choose(
		keys(unit_map), 'unit_type',
		unit_map[unit_type] - 
		(
			(
				100 * 
				size(
					filter(
						my_units, 
						type = unit_type
					)
				)
			) / 
			size(my_units)
		)
	);

def unit_map_cost_filter(ai*, unit_map)
	filter( unit_map,
		get_unit_type(key).cost < my_side.gold
	);

		# ==========	Main formula section 	========== #

def initialize_weapon_specials_map(ai*)
	if(vars.weapon_specials_init != turn,
		[
			set_var('weapon_specials_init', turn),
			set_var('weapon_specials',
				map(
					weapon_specials_weights(),
					if( key = 'magical',
						units_average_defense(ai, enemy_units, 10),
						if( key = 'marksman',
							units_average_defense(ai, enemy_units, 10) - 10,
							value
						)
					)
				)
			)
		],
		[]
	);

def create_recruits_map(ai*)
	if(vars.recruits_map_creator != turn,
		[
			set_var('recruits_map_creator', turn ),
			set_var('recruits_map',
				debug_print('final unit evaluation: ', recruitment_list_builder(
					debug_print('current AI evaluation (0-100): ', eval(ai)),
					debug_print('attackers evaluation: ',evaluate_attackers(ai)),
					debug_print('defenders evaluation: ',evaluate_defenders(ai))
				))
			)
		],
		[]
	);

def castle_space(ai*)
	filter( map( castle_locs( my_leader.loc ), 'location', if( unit_at( location ), 1, 0 ) ), self = 0  ).size;

if(vars.turn_initialized = turn,
		if( my_leader.loc = nearest_keep( my_leader.loc ),
			if( 
				get_unit_type(
					choose(
						vars.recruits_map,
						-get_unit_type(key).cost
					).key
				).cost <
				my_side.gold,
				if( castle_space(self),
					recruit(debug_print(
						unit_chooser(
							self,
							unit_map_cost_filter(
								self,
								vars.recruits_map
							)
						)
					)),
					fallback()
				),
				fallback() 
			),
			if( my_leader.movement_left > 0,
				move( my_leader.loc, nearest_keep( my_leader.loc ) ),
				fallback()
			)
		),
	[set_var(debug_print('turn_initialized'), turn)] +
	initialize_weapon_specials_map(self) +
	create_recruits_map(self)
)

faiend
"
			[/team_formula]
		[/ai]
		[ai]
			villages_per_scout="8"
		[/ai]
	[/side]
	[side]
		allow_changes="yes"
		allow_player="yes"
		canrecruit="yes"
		colour="2"
		controller="network"
		current_player="Ion514"
		flag_rgb="magenta"
		fog="yes"
		gender="male"
		gold="100"
		id="Ion5142"
		image="units/human-loyalists/lieutenant.png"
		income="0"
		leader="Lieutenant,Swordsman,Pikeman,Javelineer,Shock Trooper,Longbowman,White Mage,Red Mage"
		mp_countdown="no"
		mp_countdown_action_bonus="13"
		mp_countdown_init_time="270"
		mp_countdown_reservoir_time="330"
		mp_countdown_turn_bonus="60"
		name="Ion514"
		random_leader="Lieutenant,Swordsman,Pikeman,Javelineer,Longbowman,Red Mage"
		recruit="Cavalryman,Horseman,Spearman,Fencer,Heavy Infantryman,Bowman,Mage,Merman Fighter"
		save_id="Ion5142"
		share_maps="no"
		share_view="yes"
		shroud="no"
		side="2"
		team_name="south"
		terrain_liked="Gg, Ww, Wo"
		type="Swordsman"
		user_team_name="wesnoth-multiplayerteamname^South"
		village_gold="2"
		[ai]
			recruitment_pattern="fighter,fighter,fighter,archer,mixed fighter,scout"
			villages_per_scout="8"
			[team_formula]
				rulebase="fai 'recruitment.fai'
		# ===== Some general functions used later ==== #

def sumarize_values( input_map )
	sum(
		values(input_map)
	);

def lowest_value( input_map )
	choose( input_map, -value ).value;

def highest_value( input_map )
	choose( input_map, value ).value;

def change_numbers_to_percents( input_map )
	map( input_map, 
		(value*100) / highest_value(input_map) 
	);

def add_number_to_values( input_map, number )
	map( input_map, 
		value + number 
	);

#make sure we have only positive values in a map #

def make_positive_only( input_map )
	if( lowest_value( input_map ) < 0, 
		add_number_to_values( 
			input_map, 
			abs(lowest_value(input_map))
		), 
		input_map 
	);

def sumarize_maps_values( map_A, map_B )
	map( map_A + map_B, 
		value + map_A[key]
	);

		#===== Evaluation how good unit is on a map ===== #

# ==1==  evaluate average defense #
#gives map where key is id of terrain, and value is number of hexes of that terrain on a gamemap#

def locations_map(ai*) 
	tomap( 
		map( 
			map.terrain, 
			id 
		) 
	);

#filters terrain map, min_percent it minimal % of map that terrain has to occupy to be considered in later evaluations# 

def filtered_locations_map(ai*, min_percent)
	filter( 
		locations_map(ai) , 
		value >  (map.w * map.h) / ( 100 / min_percent ) 
	);

#returns average defense of the unit #

def unit_average_defense(ai*, unit, terrain_min_percent )
	sum( 
		values( 
			map(
				filtered_locations_map(ai,terrain_min_percent), 
				defense_on( 
					unit, 
					find(map.terrain,id=key).loc
				) *
				value
			) 
		) 
	) / 
	sum(
		values(
			filtered_locations_map(
				ai,
				terrain_min_percent
			)
		)
	);

#returns map of units from units_list and their average defense (more -> better) #

def map_units_average_defense(ai*, units_list, terrain_min_percent) 
	tomap(
		map( 
			units_list, 
			id 
		), 
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	);

def units_average_defense(ai*, units_list, terrain_min_percent)
	sum(
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	) /
	size(
		units_list
	);


# ==2== TODO: evaluate unit effectivness based on movement points and movement cost#


		#===== Evaluation of game state - how good is ai doing ===== #

# ==1== based on unit cost and current amount of gold #
# returns number between 0 and 100 where: 0 we are losing, 100 we are winning #

def units_cost_gold_eval(ai*)
	min(
		[
			(
				(
					sum(
						map(
							allies, 'team', 
							sum(
								map(
									units_of_side[team], 
									cost
								)
							) + 
							teams[team].gold 
						)
					) * 
					100
				) / 
				sum(
					map(
						enemies, 'team', 
						sum(
							map(
								units_of_side[team], 
								cost
							)
						) + 
						max(
							[teams[team].gold, 0]
						) 
					)
				)
			) / 2,
			100
		]
	);

# ==2== based on village possession #

def count_allied_villages(ai*)
	sum(
		map(
			allies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

def count_enemy_villages(ai*)
	sum(
		map(
			enemies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

# multipled by 1000 to increase precision #

def village_evaluation(ai*)
	(
		50000 + 
		(
			count_allied_villages(ai) - 
			count_enemy_villages(ai)
		) * 
		(
			50000 /
			size(
				villages
			)
		)
	) /
	1000;

# ==3== combined 2 of the above #

def eval(ai*)
	( 
		units_cost_gold_eval(ai) + 
		village_evaluation(ai)
	) / 
	2;

		#===== Evaluation how effective my units are against the enemy ===== #

#==1==  basic evaluation #

# evaluate how much damage unit can inflict - how much damage unit can get#

def evaluate_attacker_against_opponents(ai*, unit, enemy_units)
	sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( unit, enemy_unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				) 
			)
		)
	);

def evaluate_defender_against_opponents(ai*, unit, enemy_units)
	-sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( enemy_unit, unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				)
			)
		)
	);

def units_hp_map(ai*, units)
	tomap( 
		map(
			units, 
			id
		), 
		map( 
			units, 
			hitpoints
		)
	);

#in case side's gold is more than 50, add units that side can recruit to the side's unit list#

def create_side_unit_list(ai*, side)
	if( 
		teams[side].gold > 50, 
		recruits_of_side[side], 
		[]
	) + 
	units_of_side[side];

def evaluate_my_recruits_as_attackers(ai*)
	tomap( 
		map(
			my_recruits, 
			id
		), 
		map(
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_attacker_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai, 
							enemy_side
						)
					)
				)
			)
		)
	);

def evaluate_my_recruits_as_defenders(ai*)
	tomap(
		map(
			my_recruits, 
			id
		),
		map( 
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_defender_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai,
							enemy_side
						)
					)
				)
			)
		)
	);


# === 2 ===  now consider abilities and weapon specials  #

def abilities_weights()
	['skirmisher' -> 15, 'ambush' -> 10, 'nightstalk' -> 20, 'regenerates' -> 20, 'healing' -> 15, 'curing' -> 10, 'leadership' -> 20, 'illumination' -> 15, 'teleport' -> 10, 'steadfast' -> 15 ];

def weapon_specials_weights()
	[ 'backstab' -> 20 ,'slow' -> 10 ,'berserk' -> 20 ,'stones' -> 60 ,'plague' -> 10 ,'marksman' -> 30 ,'magical' -> 40 ,'charge' -> 30 ,'drains' -> 30,  'firststrike' -> 10, 'poison' -> 25 ];

def apply_abilities_weights( units_map )
	map( 
		units_map, 
		value +
		(
			value * 
			max(
				map(
					get_unit_type( key ).abilities, 'ability',
					abilities_weights()[ability]
				)
			)
		) / 100
	);

def apply_weapon_specials_weights( units_map )
	map(
		units_map, 
		value +
		(
			value *
			max(
				map(
					get_unit_type( key ).attacks, 'attack',
					vars.weapon_specials[attack.special]
				)
			)
		) / 100
	);

# since undead units don't get random traits and are balanced with that, we need to lower their evaluation a bit to match fairly the living units #

def undead_malus( units_map )
	map( 
		units_map, 
		if(
			get_unit_type(key).undead,
			( value * 90 ) / 100,
			value 
		)
	);

# === 3 ===  pit 1 and 2 together  #

def evaluate_attackers(ai*)
	change_numbers_to_percents(
		apply_abilities_weights(
			apply_weapon_specials_weights(
				undead_malus( 
					make_positive_only(
						evaluate_my_recruits_as_attackers( ai )	
					)
				)
			)
		)
	);

def evaluate_defenders(ai*)
	map(
		map(
			change_numbers_to_percents(
				apply_abilities_weights(
					apply_weapon_specials_weights(
						undead_malus( 
							make_positive_only(
								evaluate_my_recruits_as_defenders( ai )	
							)
						)
					)
				)
			),
			value / 3
		), 
		value +
		map(
			change_numbers_to_percents(
				units_hp_map(
					ai,
					my_recruits
				)
			),
		value * 2 / 3
		)[key]
	);

	#=========== we have evaluation of game state and units, time to combine them: ==========#
		#=========	recruitment_list_builder	=========#

def rlb_apply_eval(eval, attackers_map, defenders_map, offset)
	map(
		sumarize_maps_values(
			map(
				attackers_map, 
				value * (eval+offset)
			),
			map(
				defenders_map,
				value * ( (100 - eval) - offset )
			)
		),
		value / 100
	);

def rlb_remove_lowest( input_map, percent)
	filter(
		input_map, 
		value > 
		(
			(
				percent * sumarize_values(input_map)
			) / 100
		)
	);

def rlb_first_step(eval, attackers_map, defenders_map, offset)
	rlb_remove_lowest(
		rlb_apply_eval(
			eval,
			attackers_map,
			defenders_map,
			offset
		),
		10
	);

def recruitment_list_builder(eval, attackers_map, defenders_map)
	map(
		rlb_first_step(
			eval,
			attackers_map,
			defenders_map,
			40
		),
		(
			(
				value * 100
			) / 
			sumarize_values(
				rlb_first_step(
					eval,
					attackers_map,
					defenders_map,
					40
				)
			)
		)
	);

		# ========== choose the unit to recruit now ========= #

def unit_chooser(ai*,unit_map) 
	choose(
		keys(unit_map), 'unit_type',
		unit_map[unit_type] - 
		(
			(
				100 * 
				size(
					filter(
						my_units, 
						type = unit_type
					)
				)
			) / 
			size(my_units)
		)
	);

def unit_map_cost_filter(ai*, unit_map)
	filter( unit_map,
		get_unit_type(key).cost < my_side.gold
	);

		# ==========	Main formula section 	========== #

def initialize_weapon_specials_map(ai*)
	if(vars.weapon_specials_init != turn,
		[
			set_var('weapon_specials_init', turn),
			set_var('weapon_specials',
				map(
					weapon_specials_weights(),
					if( key = 'magical',
						units_average_defense(ai, enemy_units, 10),
						if( key = 'marksman',
							units_average_defense(ai, enemy_units, 10) - 10,
							value
						)
					)
				)
			)
		],
		[]
	);

def create_recruits_map(ai*)
	if(vars.recruits_map_creator != turn,
		[
			set_var('recruits_map_creator', turn ),
			set_var('recruits_map',
				debug_print('final unit evaluation: ', recruitment_list_builder(
					debug_print('current AI evaluation (0-100): ', eval(ai)),
					debug_print('attackers evaluation: ',evaluate_attackers(ai)),
					debug_print('defenders evaluation: ',evaluate_defenders(ai))
				))
			)
		],
		[]
	);

def castle_space(ai*)
	filter( map( castle_locs( my_leader.loc ), 'location', if( unit_at( location ), 1, 0 ) ), self = 0  ).size;

if(vars.turn_initialized = turn,
		if( my_leader.loc = nearest_keep( my_leader.loc ),
			if( 
				get_unit_type(
					choose(
						vars.recruits_map,
						-get_unit_type(key).cost
					).key
				).cost <
				my_side.gold,
				if( castle_space(self),
					recruit(debug_print(
						unit_chooser(
							self,
							unit_map_cost_filter(
								self,
								vars.recruits_map
							)
						)
					)),
					fallback()
				),
				fallback() 
			),
			if( my_leader.movement_left > 0,
				move( my_leader.loc, nearest_keep( my_leader.loc ) ),
				fallback()
			)
		),
	[set_var(debug_print('turn_initialized'), turn)] +
	initialize_weapon_specials_map(self) +
	create_recruits_map(self)
)

faiend
"
			[/team_formula]
		[/ai]
		[ai]
			villages_per_scout="8"
		[/ai]
	[/side]
	[side]
		allow_changes="yes"
		allow_player="no"
		canrecruit="no"
		colour="5"
		controller="ai"
		flag_rgb="magenta"
		fog="yes"
		gender="male"
		gold="100"
		hidden="yes"
		id="ai3"
		image="units/orcs/warrior.png"
		income="0"
		leader="Orcish Warrior,Troll,Troll Rocklobber,Orcish Crossbowman,Orcish Slayer"
		mp_countdown="no"
		mp_countdown_action_bonus="13"
		mp_countdown_init_time="270"
		mp_countdown_reservoir_time="330"
		mp_countdown_turn_bonus="60"
		name=_ "Computer player"
		no_leader="yes"
		recruit="Orcish Grunt,Troll Whelp,Wolf Rider,Orcish Archer,Orcish Assassin,Naga Fighter,Goblin Spearman"
		save_id="ai3"
		share_maps="no"
		share_view="yes"
		shroud="no"
		side="3"
		team_name="statues"
		terrain_liked="Hh, Ha, Mm, Ss"
		type="Orcish Warrior"
		user_team_name="statues"
		village_gold="2"
		[ai]
			recruitment_pattern="fighter,fighter,fighter,mixed fighter,archer,scout"
			[team_formula]
				rulebase="fai 'recruitment.fai'
		# ===== Some general functions used later ==== #

def sumarize_values( input_map )
	sum(
		values(input_map)
	);

def lowest_value( input_map )
	choose( input_map, -value ).value;

def highest_value( input_map )
	choose( input_map, value ).value;

def change_numbers_to_percents( input_map )
	map( input_map, 
		(value*100) / highest_value(input_map) 
	);

def add_number_to_values( input_map, number )
	map( input_map, 
		value + number 
	);

#make sure we have only positive values in a map #

def make_positive_only( input_map )
	if( lowest_value( input_map ) < 0, 
		add_number_to_values( 
			input_map, 
			abs(lowest_value(input_map))
		), 
		input_map 
	);

def sumarize_maps_values( map_A, map_B )
	map( map_A + map_B, 
		value + map_A[key]
	);

		#===== Evaluation how good unit is on a map ===== #

# ==1==  evaluate average defense #
#gives map where key is id of terrain, and value is number of hexes of that terrain on a gamemap#

def locations_map(ai*) 
	tomap( 
		map( 
			map.terrain, 
			id 
		) 
	);

#filters terrain map, min_percent it minimal % of map that terrain has to occupy to be considered in later evaluations# 

def filtered_locations_map(ai*, min_percent)
	filter( 
		locations_map(ai) , 
		value >  (map.w * map.h) / ( 100 / min_percent ) 
	);

#returns average defense of the unit #

def unit_average_defense(ai*, unit, terrain_min_percent )
	sum( 
		values( 
			map(
				filtered_locations_map(ai,terrain_min_percent), 
				defense_on( 
					unit, 
					find(map.terrain,id=key).loc
				) *
				value
			) 
		) 
	) / 
	sum(
		values(
			filtered_locations_map(
				ai,
				terrain_min_percent
			)
		)
	);

#returns map of units from units_list and their average defense (more -> better) #

def map_units_average_defense(ai*, units_list, terrain_min_percent) 
	tomap(
		map( 
			units_list, 
			id 
		), 
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	);

def units_average_defense(ai*, units_list, terrain_min_percent)
	sum(
		map( 
			units_list, 'unit', 
			unit_average_defense(
				ai, 
				unit, 
				terrain_min_percent 
			) 
		) 
	) /
	size(
		units_list
	);


# ==2== TODO: evaluate unit effectivness based on movement points and movement cost#


		#===== Evaluation of game state - how good is ai doing ===== #

# ==1== based on unit cost and current amount of gold #
# returns number between 0 and 100 where: 0 we are losing, 100 we are winning #

def units_cost_gold_eval(ai*)
	min(
		[
			(
				(
					sum(
						map(
							allies, 'team', 
							sum(
								map(
									units_of_side[team], 
									cost
								)
							) + 
							teams[team].gold 
						)
					) * 
					100
				) / 
				sum(
					map(
						enemies, 'team', 
						sum(
							map(
								units_of_side[team], 
								cost
							)
						) + 
						max(
							[teams[team].gold, 0]
						) 
					)
				)
			) / 2,
			100
		]
	);

# ==2== based on village possession #

def count_allied_villages(ai*)
	sum(
		map(
			allies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

def count_enemy_villages(ai*)
	sum(
		map(
			enemies, 'side', 
			size(
				villages_of_side[side]
			)
		)
	);

# multipled by 1000 to increase precision #

def village_evaluation(ai*)
	(
		50000 + 
		(
			count_allied_villages(ai) - 
			count_enemy_villages(ai)
		) * 
		(
			50000 /
			size(
				villages
			)
		)
	) /
	1000;

# ==3== combined 2 of the above #

def eval(ai*)
	( 
		units_cost_gold_eval(ai) + 
		village_evaluation(ai)
	) / 
	2;

		#===== Evaluation how effective my units are against the enemy ===== #

#==1==  basic evaluation #

# evaluate how much damage unit can inflict - how much damage unit can get#

def evaluate_attacker_against_opponents(ai*, unit, enemy_units)
	sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( unit, enemy_unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				) 
			)
		)
	);

def evaluate_defender_against_opponents(ai*, unit, enemy_units)
	-sum( 
		map( 
			enemy_units, 'enemy_unit', 
			sum(
				map(
					[
						max_possible_damage_with_retaliation( enemy_unit, unit )
					],
					max(
						[
							self[0] - self[2],
							self[1] - self[3]
						]
					)
				)
			)
		)
	);

def units_hp_map(ai*, units)
	tomap( 
		map(
			units, 
			id
		), 
		map( 
			units, 
			hitpoints
		)
	);

#in case side's gold is more than 50, add units that side can recruit to the side's unit list#

def create_side_unit_list(ai*, side)
	if( 
		teams[side].gold > 50, 
		recruits_of_side[side], 
		[]
	) + 
	units_of_side[side];

def evaluate_my_recruits_as_attackers(ai*)
	tomap( 
		map(
			my_recruits, 
			id
		), 
		map(
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_attacker_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai, 
							enemy_side
						)
					)
				)
			)
		)
	);

def evaluate_my_recruits_as_defenders(ai*)
	tomap(
		map(
			my_recruits, 
			id
		),
		map( 
			my_recruits, 'my_unit',
			sum(
				map(
					enemies, 'enemy_side',
					evaluate_defender_against_opponents(
						ai,
						my_unit,
						create_side_unit_list(
							ai,
							enemy_side
						)
					)
				)
			)
		)
	);


# === 2 ===  now consider abilities and weapon specials  #

def abilities_weights()
	['skirmisher' -> 15, 'ambush' -> 10, 'nightstalk' -> 20, 'regenerates' -> 20, 'healing' -> 15, 'curing' -> 10, 'leadership' -> 20, 'illumination' -> 15, 'teleport' -> 10, 'steadfast' -> 15 ];

def weapon_specials_weights()
	[ 'backstab' -> 20 ,'slow' -> 10 ,'berserk' -> 20 ,'stones' -> 60 ,'plague' -> 10 ,'marksman' -> 30 ,'magical' -> 40 ,'charge' -> 30 ,'drains' -> 30,  'firststrike' -> 10, 'poison' -> 25 ];

def apply_abilities_weights( units_map )
	map( 
		units_map, 
		value +
		(
			value * 
			max(
				map(
					get_unit_type( key ).abilities, 'ability',
					abilities_weights()[ability]
				)
			)
		) / 100
	);

def apply_weapon_specials_weights( units_map )
	map(
		units_map, 
		value +
		(
			value *
			max(
				map(
					get_unit_type( key ).attacks, 'attack',
					vars.weapon_specials[attack.special]
				)
			)
		) / 100
	);

# since undead units don't get random traits and are balanced with that, we need to lower their evaluation a bit to match fairly the living units #

def undead_malus( units_map )
	map( 
		units_map, 
		if(
			get_unit_type(key).undead,
			( value * 90 ) / 100,
			value 
		)
	);

# === 3 ===  pit 1 and 2 together  #

def evaluate_attackers(ai*)
	change_numbers_to_percents(
		apply_abilities_weights(
			apply_weapon_specials_weights(
				undead_malus( 
					make_positive_only(
						evaluate_my_recruits_as_attackers( ai )	
					)
				)
			)
		)
	);

def evaluate_defenders(ai*)
	map(
		map(
			change_numbers_to_percents(
				apply_abilities_weights(
					apply_weapon_specials_weights(
						undead_malus( 
							make_positive_only(
								evaluate_my_recruits_as_defenders( ai )	
							)
						)
					)
				)
			),
			value / 3
		), 
		value +
		map(
			change_numbers_to_percents(
				units_hp_map(
					ai,
					my_recruits
				)
			),
		value * 2 / 3
		)[key]
	);

	#=========== we have evaluation of game state and units, time to combine them: ==========#
		#=========	recruitment_list_builder	=========#

def rlb_apply_eval(eval, attackers_map, defenders_map, offset)
	map(
		sumarize_maps_values(
			map(
				attackers_map, 
				value * (eval+offset)
			),
			map(
				defenders_map,
				value * ( (100 - eval) - offset )
			)
		),
		value / 100
	);

def rlb_remove_lowest( input_map, percent)
	filter(
		input_map, 
		value > 
		(
			(
				percent * sumarize_values(input_map)
			) / 100
		)
	);

def rlb_first_step(eval, attackers_map, defenders_map, offset)
	rlb_remove_lowest(
		rlb_apply_eval(
			eval,
			attackers_map,
			defenders_map,
			offset
		),
		10
	);

def recruitment_list_builder(eval, attackers_map, defenders_map)
	map(
		rlb_first_step(
			eval,
			attackers_map,
			defenders_map,
			40
		),
		(
			(
				value * 100
			) / 
			sumarize_values(
				rlb_first_step(
					eval,
					attackers_map,
					defenders_map,
					40
				)
			)
		)
	);

		# ========== choose the unit to recruit now ========= #

def unit_chooser(ai*,unit_map) 
	choose(
		keys(unit_map), 'unit_type',
		unit_map[unit_type] - 
		(
			(
				100 * 
				size(
					filter(
						my_units, 
						type = unit_type
					)
				)
			) / 
			size(my_units)
		)
	);

def unit_map_cost_filter(ai*, unit_map)
	filter( unit_map,
		get_unit_type(key).cost < my_side.gold
	);

		# ==========	Main formula section 	========== #

def initialize_weapon_specials_map(ai*)
	if(vars.weapon_specials_init != turn,
		[
			set_var('weapon_specials_init', turn),
			set_var('weapon_specials',
				map(
					weapon_specials_weights(),
					if( key = 'magical',
						units_average_defense(ai, enemy_units, 10),
						if( key = 'marksman',
							units_average_defense(ai, enemy_units, 10) - 10,
							value
						)
					)
				)
			)
		],
		[]
	);

def create_recruits_map(ai*)
	if(vars.recruits_map_creator != turn,
		[
			set_var('recruits_map_creator', turn ),
			set_var('recruits_map',
				debug_print('final unit evaluation: ', recruitment_list_builder(
					debug_print('current AI evaluation (0-100): ', eval(ai)),
					debug_print('attackers evaluation: ',evaluate_attackers(ai)),
					debug_print('defenders evaluation: ',evaluate_defenders(ai))
				))
			)
		],
		[]
	);

def castle_space(ai*)
	filter( map( castle_locs( my_leader.loc ), 'location', if( unit_at( location ), 1, 0 ) ), self = 0  ).size;

if(vars.turn_initialized = turn,
		if( my_leader.loc = nearest_keep( my_leader.loc ),
			if( 
				get_unit_type(
					choose(
						vars.recruits_map,
						-get_unit_type(key).cost
					).key
				).cost <
				my_side.gold,
				if( castle_space(self),
					recruit(debug_print(
						unit_chooser(
							self,
							unit_map_cost_filter(
								self,
								vars.recruits_map
							)
						)
					)),
					fallback()
				),
				fallback() 
			),
			if( my_leader.movement_left > 0,
				move( my_leader.loc, nearest_keep( my_leader.loc ) ),
				fallback()
			)
		),
	[set_var(debug_print('turn_initialized'), turn)] +
	initialize_weapon_specials_map(self) +
	create_recruits_map(self)
)

faiend
"
			[/team_formula]
		[/ai]
		[unit]
#textdomain wesnoth-multiplayer
			description=_ "The winds of the dark sky blew so cold,
The moon was high, the night was old,
Brave was the drake that dared forsake
His home to steal the Basilisk's gold.

On that dark night, the skies so churned,
He disregarded what he had learned,
Foolish but brave, to the Basilisk's cave,
He flew, and the fire within him burned.

Alas, that fire burns no more,
For the Basilisk, with one mighty roar,
Chilled him to the bone, and he turned to stone,
And so he stays forevermore.

The winds of the sky blow so cold,
The years pass by, the days are old,
Here stands that drake, who dared forsake
His home to steal the Basilisk's gold.
(inscribed by Flametrooper)"
			random_traits="no"
			type="Sky Drake"
			unrenamable="yes"
			x="27"
			y="14"
			[status]
				stoned="on"
			[/status]
			[modifications]
				[trait]
					id="remove_hp"
					[effect]
						apply_to="hitpoints"
						increase_total="-100%"
					[/effect]
					[effect]
						apply_to="movement"
						set="0"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			description=_ "Xikkrisx of Syrsszk was a powerful Saurian warrior, sent to this region by the Elders of the Rysssrylosszkk Clan (translation: ''The Hunts-Foes-In-Boiling-Rivers Clan''). The Elders were preparing to make war on a human outpost, and were in great need of the powerful magics of Oxsrrsk, a Saurian Mystic who had last been seen heading in the direction of Ruaskkolin Lake. Xikkrisx found the petrified body of Oxsrrsk, along with a carefully bound scroll that had apparently been dropped into a small crevice in the cave floor. He opened the scroll and read a brief passage from the middle of the text: ''After he was bound and cast from the Upper World, Chak'kso's enraged spirit sought release, and was able to exert a corrupting influence on certain regions of the Upper World, channeled through ''pathways of stone'' that extend from the surface into the depths of the Under Reaches. This rage altered the eggs of great lizards, shaping their bodies and spirits into implements of Chak'kso's hatred.'' Confused, Xikkrisx fixed his attention on the task at hand. Thinking that perhaps the Elders could find some way to restore Oxsrrsk, he began the long and strenuous task of hauling the statue back to the domain of the Rysssrylosszkk Clan. Exhausted, and not having traveled far from the lake, Xikkrisx set the statue down inside of a small cave, and lay down to rest. He was awoken by a bone-chilling roar."
			facing="sw"
			name=_ "Xikkrisx"
			random_traits="no"
			type="Saurian Flanker"
			unrenamable="yes"
			x="40"
			y="8"
			[status]
				stoned="on"
			[/status]
			[modifications]
				[trait]
					id="remove_hp"
					[effect]
						apply_to="hitpoints"
						increase_total="-100%"
					[/effect]
					[effect]
						apply_to="movement"
						set="0"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			description=_ "Oxsrrsk was a powerful Saurian Oracle, who had, in a raid against the rival Xraxss Clan, acquired (from the vaults of the now-dead Oracle Hesx-Rzzak) a most fascinating scroll. The scroll was entitled ''Ney'yks of the Granite Gaze,'' and told of a creature known as the ''Chak'kso Ney'yks,'' a name which, in an ancient saurian tongue, meant ''Eldest Child of Chak'kso.'' Chak'kso was believed to have been a powerful demigod of the Under Reaches, described as a ''great demon of the earth'' in the Elvish Histories. According to these histories, Chak'kso had once sought to transform all life on the planet to stone; so great was his hatred for creatures of flesh. He was ultimately defeated and bound by powerful magics, but in the centuries following his banishment (to a realm far below the surface of the world) a new breed of creature began appearing in the Histories, a breed with the ability to turn any being of flesh into stone. There was a period when these Basilisks (as they came to be known) wreaked havoc on the world of the living, turning thousands to stone. One by one, and at great cost, the Basilisks were defeated. All, it would seem, but one; the Basilisk known as ''The Ney'yks,'' or ''The Eldest Child,'' in the modern tongue. Supremely convinced of his ability to locate and bind this powerful creature into his service, Oxsrrsk set out on his journey..."
			facing="sw"
			name=_ "Oxsrrsk"
			random_traits="no"
			type="Saurian Oracle"
			unrenamable="yes"
			x="39"
			y="8"
			[status]
				stoned="on"
			[/status]
			[modifications]
				[trait]
					id="remove_hp"
					[effect]
						apply_to="hitpoints"
						increase_total="-100%"
					[/effect]
					[effect]
						apply_to="movement"
						set="0"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			description=_ "Slim of Stature, dexterous Hands
- - Seven Stones and Eleven
Left his Foes so slim a Chance
- - Seven Stones and Eleven
Marksman known as Dragonbane
'mongst the Statues here was slain
- - Seven Stones - and the Elven
(inscribed by Gauteamus)"
			random_traits="no"
			type="Elvish Marksman"
			unrenamable="yes"
			x="2"
			y="11"
			[status]
				stoned="on"
			[/status]
			[modifications]
				[trait]
					id="remove_hp"
					[effect]
						apply_to="hitpoints"
						increase_total="-100%"
					[/effect]
					[effect]
						apply_to="movement"
						set="0"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			description=_ "Blum Duk was renowned among his goblin clan for having tamed one of the Dire Wolves of the mountains, and he had the courage to match. His leadership and skills alone were what kept the area's goblins alive despite human and elvish menaces. Rumor had it that his wolf had slain fifty men and a hundred Elves.
Thus, when he heard of the awful monster that was inhabiting the area, it was only natural that he ride out alone to face it. All the other goblins expected him to slay the creature easily and drag back its carcass to feast on.
He was in for quite a shock. As soon as he saw the Basilisk, Blum Duk cowered in fright. He tried to wheel his wolf around to run away, but it wouldn't move. As the creature stalked towards him, he screamed his last words: Good Gog, dog, are yer legs made of stone?!?
(inscribed by Elvish Pillager)"
			name=_ "Blum Duk"
			random_traits="no"
			type="Direwolf Rider"
			unrenamable="yes"
			x="10"
			y="17"
			[status]
				stoned="on"
			[/status]
			[modifications]
				[trait]
					id="remove_hp"
					[effect]
						apply_to="hitpoints"
						increase_total="-100%"
					[/effect]
					[effect]
						apply_to="movement"
						set="0"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			description=_ "Rah Ihn Mar, Champion of the Burning Hills, made his way to the Ruaskkolin Lake region in pursuit of the Elvish Hero Terowydlithrol, known among Elves as ''The Dragonbane.'' It was said that Terowydlithrol had killed a Dragon of Fire that threatened an Elvish village, and initiated a ''counterattack'' in which some 37 Drakes, camping in a nearby ravine and believed to be in allegiance with the Dragon, were slaughtered. Knowing that these Drakes were innocent, Rah Ihn Mar came to Ruaskkolin Lake to hunt down and slay Terowydlithrol, who had been seen entering the region but a day ago. Burning for vengeance, Rah Ihn Mar began the hunt....."
			name=_ "Rah Ihn Mar"
			random_traits="no"
			type="Armageddon Drake"
			unrenamable="yes"
			x="11"
			y="14"
			[status]
				stoned="on"
			[/status]
			[modifications]
				[trait]
					id="remove_hp"
					[effect]
						apply_to="hitpoints"
						increase_total="-100%"
					[/effect]
					[effect]
						apply_to="movement"
						set="0"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			description=_ "He had lived there for ages upon ages, in the depths of the water, preying upon the various fish and frogs and merfolk that entered his domain. It was his lake, no other's, and though it was not large, he was its master. Then, the Basilisk came, and looked into the Serpent's eyes. And the Serpent had not died, but it was no longer alive. Thus the new lord of the lake had arrived.
(inscribed by Turin)"
			facing="sw"
			random_traits="no"
			type="Sea Serpent"
			unrenamable="yes"
			x="22"
			y="12"
			[status]
				stoned="on"
			[/status]
			[modifications]
				[trait]
					id="remove_hp"
					[effect]
						apply_to="hitpoints"
						increase_total="-100%"
					[/effect]
					[effect]
						apply_to="movement"
						set="0"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			description=_ "A brave hero of Wesnoth's Golden Age, this great rider and commander of men came to this evil place while on a raid against the orcs. Caught unaware by the foul creatures, many of his fellows were killed, but he fought valiantly, slaying many a foe. But alas! The foul Basilisk turned him to stone even as he slew the last orc. Now all that is left is a stark reminder of his once great bearing and strength.
(inscribed by Fynmiir)"
			facing="sw"
			random_traits="no"
			type="Grand Knight"
			unrenamable="yes"
			x="25"
			y="14"
			[status]
				stoned="on"
			[/status]
			[modifications]
				[trait]
					id="remove_hp"
					[effect]
						apply_to="hitpoints"
						increase_total="-100%"
					[/effect]
					[effect]
						apply_to="movement"
						set="0"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			description=_ "Bramwythl the Wose was always considered a slow, taciturn fellow, even by other Woses. More than any other Wose, he enjoyed simply standing alone in the sun, arms upraised, admiring the beauty of the empty sky. Once, even, he confided in a fellow that his greatest wish was to be able to bask forever in the sun's glory.
However, not long after, the local wose community heard of the approach of a horrible monster, powerful enough to easily destroy the few woses that lived in the area. They quickly moved off (quickly for Woses, anyway), but Bramwythl was left behind - in their haste, no one had remembered to find him and tell him of the danger.
He was taken quite unawares by the Basilisk, and turned to stone before he even recognized the beast. His petrified form still stands there today, warmed by the sun's rays, under an open sky. His greatest wish has been granted.
(inscribed by Elvish Pillager)"
			name=_ "Bramwythl"
			random_traits="no"
			type="Elder Wose"
			unrenamable="yes"
			x="32"
			y="6"
			[status]
				stoned="on"
			[/status]
			[modifications]
				[trait]
					id="remove_hp"
					[effect]
						apply_to="hitpoints"
						increase_total="-100%"
					[/effect]
					[effect]
						apply_to="movement"
						set="0"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			description=_ "General Talael Ryndoc came to this place to fight a duel with the Grand Marshal Aethec Corryn, but the two men never found one another. "
			facing="sw"
			name=_ "Talael Ryndoc"
			random_traits="no"
			type="Iron Mauler"
			unrenamable="yes"
			x="34"
			y="11"
			[status]
				stoned="on"
			[/status]
			[modifications]
				[trait]
					id="remove_hp"
					[effect]
						apply_to="hitpoints"
						increase_total="-100%"
					[/effect]
					[effect]
						apply_to="movement"
						set="0"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			description=_ "The last words spoken by Grand Marshal Aethec Corryn: ''Talael Ryndoc! I am through searching for you! I shall make my way back to Haldric's Hall, and inform the court that you were too much of a coward to attend our duel! Your disgrace shall be more agonizing than the death I'd have given you!''

Perhaps he should not have shouted quite so loudly.... "
			facing="sw"
			name=_ "Aethec Corryn"
			random_traits="no"
			type="Grand Marshal"
			unrenamable="yes"
			x="15"
			y="11"
			[status]
				stoned="on"
			[/status]
			[modifications]
				[trait]
					id="remove_hp"
					[effect]
						apply_to="hitpoints"
						increase_total="-100%"
					[/effect]
					[effect]
						apply_to="movement"
						set="0"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			description=_ "This brave warrior, known as Rilhon among the Naga, heard tell of a fabulous treasure that had been lost in these watery caves- a spear whose head was said to have been fashioned from the tooth of Chak'kso Ney'yks, an Elder Basilisk slain long ago by the Elvish hero, Eloralduil. According to the legend, the weapon rested somewhere on the bottom of this very lake (Ruaskkolin Lake, named for a well-known Sea Serpent who made it his home). Having prepared himself for battle with the Serpent, Rilhon met with two rather large surprises. The first was the petrified form of Ruaskkolin the Serpent. The second was the very-much-alive Chak'kso Ney'yks, who was, oddly enough, in possession of all of his teeth.
(inscribed by Paterson)"
			name=_ "Rilhon"
			random_traits="no"
			type="Naga Myrmidon"
			unrenamable="yes"
			x="20"
			y="12"
			[status]
				stoned="on"
			[/status]
			[modifications]
				[trait]
					id="remove_hp"
					[effect]
						apply_to="hitpoints"
						increase_total="-100%"
					[/effect]
					[effect]
						apply_to="movement"
						set="0"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			description=_ "Through waves and rocky channels
blue and white
she pulled and pushed the tides
and taught the fishes how to speak to planets
silver green
with magic
running from her spirit into skins of kelp and shells of snails
a twisting of her tail and hands
she sent her songs to run on pin-tipped legs about the sands
and now
and now the strangest pause
for years and years
she hasn't moved her eyes

(inscribed by MJQ)"
			facing="sw"
			random_traits="no"
			type="Mermaid Siren"
			unrenamable="yes"
			x="17"
			y="11"
			[status]
				stoned="on"
			[/status]
			[modifications]
				[trait]
					id="remove_hp"
					[effect]
						apply_to="hitpoints"
						increase_total="-100%"
					[/effect]
					[effect]
						apply_to="movement"
						set="0"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
	[/side]
[/replay_start]
[statistics]
	mid_scenario="yes"
	[scenario]
		scenario="2p - Caves of the Basilisk"
		[team]
			[recruits]
				Bowman="6"
				Cavalryman="1"
				Heavy Infantryman="1"
				Horseman="2"
				Mage="1"
				Merman Fighter="1"
				Spearman="9"
			[/recruits]
			[recalls]
			[/recalls]
			[advances]
			[/advances]
			[deaths]
				Bowman="5"
				Cavalryman="1"
				Heavy Infantryman="1"
				Horseman="2"
				Mage="1"
				Merman Fighter="1"
				Spearman="8"
				Swordsman="1"
			[/deaths]
			[killed]
				Drake Clasher="1"
				Drake Fighter="3"
				Saurian Augur="1"
			[/killed]
			[attacks]
				[sequence]
					s000="1"
					s001="1"
					s010="1"
					_num="40"
				[/sequence]
				[sequence]
					s010="1"
					s1="1"
					_num="50"
				[/sequence]
				[sequence]
					s00="1"
					s000="4"
					s010="1"
					s1="1"
					s101="1"
					s11="1"
					s110="1"
					s111="2"
					_num="60"
				[/sequence]
				[sequence]
					s000="1"
					s011="1"
					s101="3"
					s11="2"
					s110="2"
					s111="1"
					_num="70"
				[/sequence]
				[sequence]
					s11="1"
					_num="80"
				[/sequence]
			[/attacks]
			[defends]
				[sequence]
					s="18"
					_num="0"
				[/sequence]
				[sequence]
					s0="2"
					s001="1"
					s01="1"
					s1="4"
					s100="1"
					_num="40"
				[/sequence]
				[sequence]
					s10="1"
					s11="1"
					_num="50"
				[/sequence]
				[sequence]
					s="5"
					s0="2"
					s001="1"
					s01="1"
					s011="2"
					s1="6"
					s101="1"
					s11="2"
					s110="1"
					s1110="1"
					_num="60"
				[/sequence]
				[sequence]
					s="1"
					s0="1"
					s01="3"
					s1="2"
					s10="2"
					s11="3"
					s111="1"
					_num="70"
				[/sequence]
			[/defends]
			recruit_cost="326"
			recall_cost="0"
			damage_inflicted="631"
			damage_taken="767"
			expected_damage_inflicted="587501"
			expected_damage_taken="755903"
			turn_damage_inflicted="59"
			turn_damage_taken="93"
			turn_expected_damage_inflicted="48329"
			turn_expected_damage_taken="100340"
			save_id="Ion5142"
		[/team]
		[team]
			[recruits]
				Drake Burner="3"
				Drake Clasher="2"
				Drake Fighter="5"
				Drake Glider="2"
				Saurian Augur="4"
				Saurian Skirmisher="1"
			[/recruits]
			[recalls]
			[/recalls]
			[advances]
				Fire Drake="1"
				Saurian Oracle="2"
				Saurian Soothsayer="1"
				Sky Drake="2"
			[/advances]
			[deaths]
				Drake Clasher="1"
				Drake Fighter="3"
				Saurian Augur="1"
			[/deaths]
			[killed]
				Bowman="5"
				Cavalryman="1"
				Heavy Infantryman="1"
				Horseman="2"
				Mage="1"
				Merman Fighter="1"
				Spearman="8"
				Swordsman="1"
			[/killed]
			[attacks]
				[sequence]
					s000="1"
					s001="1"
					s1="1"
					s100="1"
					s1010="1"
					s1110="1"
					_num="40"
				[/sequence]
				[sequence]
					s00="1"
					s0000="2"
					s011="2"
					s1111="1"
					_num="50"
				[/sequence]
				[sequence]
					s001="1"
					s0010="1"
					s0011="1"
					s01="1"
					s010="1"
					s0100="2"
					s011="2"
					s0111="1"
					s1="3"
					s100="1"
					s101="4"
					s1010="1"
					s11="2"
					s110="2"
					s11010="1"
					s111="3"
					s1110="2"
					_num="60"
				[/sequence]
				[sequence]
					s010="1"
					s011="2"
					s1="4"
					s100="1"
					s101="6"
					s11="2"
					s110="2"
					s111="5"
					_num="70"
				[/sequence]
			[/attacks]
			[defends]
				[sequence]
					s="2"
					_num="0"
				[/sequence]
				[sequence]
					s00="1"
					s000="2"
					s0111="1"
					s10="1"
					s100="1"
					s11="1"
					_num="40"
				[/sequence]
				[sequence]
					s00="1"
					s011="1"
					s1010="1"
					_num="50"
				[/sequence]
				[sequence]
					s="1"
					s0="2"
					s010="3"
					s10="3"
					s1010="1"
					s11="3"
					s111="1"
					_num="60"
				[/sequence]
				[sequence]
					s011="1"
					s11="1"
					_num="70"
				[/sequence]
			[/defends]
			recruit_cost="297"
			recall_cost="0"
			damage_inflicted="767"
			damage_taken="631"
			expected_damage_inflicted="755903"
			expected_damage_taken="587501"
			turn_damage_inflicted="80"
			turn_damage_taken="35"
			turn_expected_damage_inflicted="82383"
			turn_expected_damage_taken="22625"
			save_id="Tesafilmchen1"
		[/team]
		[team]
			[recruits]
			[/recruits]
			[recalls]
			[/recalls]
			[advances]
			[/advances]
			[deaths]
			[/deaths]
			[killed]
			[/killed]
			[attacks]
			[/attacks]
			[defends]
			[/defends]
			recruit_cost="0"
			recall_cost="0"
			damage_inflicted="0"
			damage_taken="0"
			expected_damage_inflicted="0"
			expected_damage_taken="0"
			turn_damage_inflicted="0"
			turn_damage_taken="0"
			turn_expected_damage_inflicted="0"
			turn_expected_damage_taken="0"
			save_id="ai3"
		[/team]
	[/scenario]
[/statistics]
