label="2p - The Freelands Turn 21-vs Hilquias"
version="1.6"
completion="running"
campaign_type="multiplayer"
difficulty="NORMAL"
random_seed="7026"
random_calls="0"
next_underlying_unit_id="52"
end_text_duration="0"
[variables]
[/variables]
[replay]
	[command]
		[start]
		[/start]
	[/command]
	[command]
		[recruit]
			value="6"
			x="20"
			y="3"
		[/recruit]
		[random]
			value="7834"
		[/random]
		[random]
			value="18220"
		[/random]
		[random]
			value="28518"
		[/random]
		[random]
			value="32729"
		[/random]
		[random]
			value="9801"
		[/random]
		[random]
			value="4627"
		[/random]
		[random]
			value="15890"
		[/random]
		[random]
			value="1517"
		[/random]
		[random]
			value="15623"
		[/random]
		[random]
			value="21798"
		[/random]
		[random]
			value="22579"
		[/random]
		[random]
			value="8642"
		[/random]
		[random]
			value="28194"
		[/random]
		[random]
			value="27212"
		[/random]
		[random]
			value="31900"
			[results]
				checksum="J59kLNwuL-Q+0062sP>0637mC5373eQ6,a5n2j.dTe2hl89<fZ.a.g-4+XcWi.Xef>.1Xyja86>c+>fg4o.2cih1iXai6r,8m4,Z.v3Dnk4Yd84dfCd5sga,Y<,06m7r"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Ukraneean has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[recruit]
			value="2"
			x="18"
			y="4"
		[/recruit]
		[random]
			value="14118"
		[/random]
		[random]
			value="1209"
		[/random]
		[random]
			value="826"
		[/random]
		[random]
			value="30904"
		[/random]
		[random]
			value="4392"
		[/random]
		[random]
			value="14668"
		[/random]
		[random]
			value="6133"
		[/random]
		[random]
			value="13422"
		[/random]
		[random]
			value="15508"
		[/random]
		[random]
			value="13984"
		[/random]
		[random]
			value="20340"
		[/random]
		[random]
			value="29886"
		[/random]
		[random]
			value="26501"
		[/random]
		[random]
			value="4465"
		[/random]
		[random]
			value="20055"
			[results]
				checksum="<3l85mndU3eF>a,..P305kg7W0d6cpzj<c3>k7>a,+alX1ah,2Wi<0o.-bnee7bo56d2incd,4Z6occi44H-f-5057b>02aa.o6Z+40CN5c8b.<X,48D.7v393e4xt<3"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="4"
			x="17"
			y="5"
		[/recruit]
		[random]
			value="29714"
		[/random]
		[random]
			value="5442"
		[/random]
		[random]
			value="13209"
		[/random]
		[random]
			value="6668"
		[/random]
		[random]
			value="3259"
		[/random]
		[random]
			value="17221"
		[/random]
		[random]
			value="12755"
		[/random]
		[random]
			value="13783"
		[/random]
		[random]
			value="26676"
		[/random]
		[random]
			value="19854"
		[/random]
		[random]
			value="16667"
		[/random]
		[random]
			value="28882"
		[/random]
		[random]
			value="8966"
		[/random]
		[random]
			value="26387"
		[/random]
		[random]
			value="28387"
			[results]
				checksum="6hs5opl9mneud6314Hg106a+elObfd5dh>d-kgk5j40fd5c,laoh2>q4W68<jj1,,Bh1+4l10mji0YUg681h64jGjKk7ELbfXlO69>IPFNIDBGnBCSO3srDyLKztBBHx"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="2"
			x="18"
			y="3"
		[/recruit]
		[random]
			value="15102"
		[/random]
		[random]
			value="32350"
		[/random]
		[random]
			value="10693"
		[/random]
		[random]
			value="25003"
		[/random]
		[random]
			value="31639"
		[/random]
		[random]
			value="22826"
		[/random]
		[random]
			value="11744"
		[/random]
		[random]
			value="22811"
		[/random]
		[random]
			value="17985"
		[/random]
		[random]
			value="12670"
		[/random]
		[random]
			value="6702"
		[/random]
		[random]
			value="22938"
		[/random]
		[random]
			value="1233"
		[/random]
		[random]
			value="1262"
		[/random]
		[random]
			value="1213"
			[results]
				checksum="<3k85mndU3eF>a,..P305kg7W0d6cpzj<c3>k7>a,+alX1ah,2Wi<0o.-bnee7bo56d2incd,4Z6occi45H-f-5057b>02aa.o6Z+40CN5c8b.<X,47J.7v3b3e4xt<3"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="5"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="32763"
		[/random]
		[random]
			value="26752"
		[/random]
		[random]
			value="8242"
		[/random]
		[random]
			value="16265"
		[/random]
		[random]
			value="32683"
		[/random]
		[random]
			value="20608"
		[/random]
		[random]
			value="10049"
		[/random]
		[random]
			value="4206"
		[/random]
		[random]
			value="28940"
		[/random]
		[random]
			value="3444"
		[/random]
		[random]
			value="1384"
		[/random]
		[random]
			value="24118"
		[/random]
		[random]
			value="22844"
		[/random]
		[random]
			value="16780"
		[/random]
		[random]
			value="32608"
			[results]
				checksum="SU39RsRPnopbtoBBs5yPBdjCxIoyMyJsCAbPtOQpxQRNpnMsQGGGqEpPQwrEETo0BNqQDyBuEICFSQFuTGrqGVJbRBzNpHETGFOwJPvMPJFf8IBNyQOKRJUZDRgOWmID"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="2"
			x="20"
			y="4"
		[/recruit]
		[random]
			value="25845"
		[/random]
		[random]
			value="11389"
		[/random]
		[random]
			value="8440"
		[/random]
		[random]
			value="26238"
		[/random]
		[random]
			value="24698"
		[/random]
		[random]
			value="14478"
		[/random]
		[random]
			value="11564"
		[/random]
		[random]
			value="11250"
		[/random]
		[random]
			value="24626"
		[/random]
		[random]
			value="7783"
		[/random]
		[random]
			value="19672"
		[/random]
		[random]
			value="22664"
		[/random]
		[random]
			value="14814"
		[/random]
		[random]
			value="27740"
		[/random]
		[random]
			value="26194"
			[results]
				checksum="<3j85mndU3eF0a,..P305kg7W0d6cpzj<c3>k7>a,+alX1ah,2Wi<0o.-bnee7bo56d2incd,4Z6occi42H-f-5057b>02aa.o6Z+40CN5c8b.<X,47J.7v393e4xt<3"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="19,20,21,22"
			y="4,3,3,2"
		[/move]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="4"
			x="18"
			y="21"
		[/recruit]
		[random]
			value="27939"
		[/random]
		[random]
			value="2226"
		[/random]
		[random]
			value="31824"
		[/random]
		[random]
			value="23043"
		[/random]
		[random]
			value="13558"
		[/random]
		[random]
			value="12006"
		[/random]
		[random]
			value="11244"
		[/random]
		[random]
			value="4811"
		[/random]
		[random]
			value="10505"
		[/random]
		[random]
			value="6059"
		[/random]
		[random]
			value="16863"
		[/random]
		[random]
			value="616"
		[/random]
		[random]
			value="24338"
			[results]
				checksum="fEAwEAF+1Gub.aUZJ5kiOGDqZxM8i-LoLYEs-E3jSJv0zT>8cpf6b>5Im2-i0051mfOa-a-d4,d8b>dr3-aeWym.7BZSugG6.eC5RE539gmeoJZ4jM-lYWmgBNCho0u4"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="3"
			x="18"
			y="20"
		[/recruit]
		[random]
			value="8080"
		[/random]
		[random]
			value="2329"
		[/random]
		[random]
			value="25679"
		[/random]
		[random]
			value="21933"
		[/random]
		[random]
			value="22849"
		[/random]
		[random]
			value="25961"
		[/random]
		[random]
			value="25206"
		[/random]
		[random]
			value="5170"
		[/random]
		[random]
			value="7175"
		[/random]
		[random]
			value="9821"
		[/random]
		[random]
			value="30479"
		[/random]
		[random]
			value="30280"
		[/random]
		[random]
			value="9054"
			[results]
				checksum="wIq0h4Aje6ZNhfnNl+7b,Ha4jCJxd>Z4D>emIBh6hCW2BmtJ8j1v.9xmODNURxriEsBIuurvENcQBQBPqyPrRxP5tBQME,Ezpfu49w6JQVkN94JBwVAIsdMAIZHHpExA"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="2"
			x="19"
			y="20"
		[/recruit]
		[random]
			value="13822"
		[/random]
		[random]
			value="24487"
		[/random]
		[random]
			value="10076"
		[/random]
		[random]
			value="31646"
		[/random]
		[random]
			value="20581"
		[/random]
		[random]
			value="8793"
		[/random]
		[random]
			value="11470"
		[/random]
		[random]
			value="30958"
		[/random]
		[random]
			value="19650"
		[/random]
		[random]
			value="30875"
		[/random]
		[random]
			value="20285"
		[/random]
		[random]
			value="3136"
		[/random]
		[random]
			value="25645"
			[results]
				checksum="TuuzMJvu3JOmTCCoKGpBJPA6SCMFtLEzKIxOCmtqSOKJLCFwmIsr1QENmxPFHFw.RFKFnqypNLqM8mwoForIhF8xkkBsH9ih>N4ftxqADyQNdDsofqQwNFrCg8vPGzPi"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="3"
			x="20"
			y="21"
		[/recruit]
		[random]
			value="20652"
		[/random]
		[random]
			value="17839"
		[/random]
		[random]
			value="2897"
		[/random]
		[random]
			value="25817"
		[/random]
		[random]
			value="20392"
		[/random]
		[random]
			value="1273"
		[/random]
		[random]
			value="12286"
		[/random]
		[random]
			value="2421"
		[/random]
		[random]
			value="31531"
		[/random]
		[random]
			value="17070"
		[/random]
		[random]
			value="4453"
		[/random]
		[random]
			value="1005"
		[/random]
		[random]
			value="25852"
			[results]
				checksum="wIq0h4Aje6ZNhfnNl+7b,Ha4jCJxd>Z4D>emIBh6hCW2BmtJ8j1v.9xmODNURxriEsBIuurvENcQBQBPqyPrRxP5tBQME,Ezpfu49w6JQVkN94JBwVAIsdMAIZHHpExA"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="1"
			x="20"
			y="20"
		[/recruit]
		[random]
			value="22275"
		[/random]
		[random]
			value="30055"
		[/random]
		[random]
			value="15223"
		[/random]
		[random]
			value="4"
		[/random]
		[random]
			value="16087"
		[/random]
		[random]
			value="10972"
		[/random]
		[random]
			value="17278"
		[/random]
		[random]
			value="8438"
		[/random]
		[random]
			value="6691"
		[/random]
		[random]
			value="8907"
		[/random]
		[random]
			value="29046"
		[/random]
		[random]
			value="15362"
		[/random]
		[random]
			value="10089"
			[results]
				checksum="Dem>c1k,fFB3IPKDDy,IIVsrrz9qrFsKPmsAOVOPtQsRHOMGLquuPuNAtBx6AEqpsGOKxE8KFoBPRQNzSIM0NsInAEUrD<pd7wU07l,LsmkMRAyTOtHFLqpFUIIzsxsc"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="1"
			x="21"
			y="20"
		[/recruit]
		[random]
			value="18036"
		[/random]
		[random]
			value="8307"
		[/random]
		[random]
			value="3982"
		[/random]
		[random]
			value="16355"
		[/random]
		[random]
			value="5921"
		[/random]
		[random]
			value="29986"
		[/random]
		[random]
			value="6814"
		[/random]
		[random]
			value="27548"
		[/random]
		[random]
			value="29821"
		[/random]
		[random]
			value="26048"
		[/random]
		[random]
			value="12280"
		[/random]
		[random]
			value="29241"
		[/random]
		[random]
			value="6119"
			[results]
				checksum="Dem>c1k,fFB3IPKDDy,IIVsrrz9qrFsKPmsAOVOPtQsRHOMGLquuPuNAtBx6AEqpsGOKxE8KFoBPRQNzSIM0NsInAEUrD<pd7wU07l,LsmkMRAyTOtHFLqpFUIIzsxsc"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,18,17,16"
			y="21,21,22,22"
		[/move]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="20,21,22,23,24,25,26,27,28"
			y="3,3,2,3,3,4,4,5,5"
		[/move]
	[/command]
	[command]
		[move]
			x="18,17,16,15,14,13,12"
			y="3,3,3,3,2,3,2"
		[/move]
	[/command]
	[command]
		[move]
			x="17,16,15,14,13,12"
			y="5,5,6,5,6,5"
		[/move]
	[/command]
	[command]
		[move]
			x="18,18,18,18,18,18"
			y="4,5,6,7,8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="19,20,21,21,22"
			y="5,5,6,7,7"
		[/move]
	[/command]
	[command]
		[move]
			x="20,21,21,21,22,23"
			y="4,5,6,7,7,8"
		[/move]
	[/command]
	[command]
		[move]
			x="22,21,20,19"
			y="2,3,3,4"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Data has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Emily has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[recruit]
			value="5"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="24070"
		[/random]
		[random]
			value="13572"
		[/random]
		[random]
			value="1147"
		[/random]
		[random]
			value="15352"
		[/random]
		[random]
			value="31302"
		[/random]
		[random]
			value="19894"
		[/random]
		[random]
			value="12873"
		[/random]
		[random]
			value="2584"
		[/random]
		[random]
			value="19334"
		[/random]
		[random]
			value="24671"
		[/random]
		[random]
			value="15192"
		[/random]
		[random]
			value="12053"
		[/random]
		[random]
			value="4692"
		[/random]
		[random]
			value="2019"
		[/random]
		[random]
			value="31042"
			[results]
				checksum="SU39RsJPnopbtoBBt5yPBdjCxIoyMyJsCAbPtOQpxQRNpnMsQGGGqEpPQwrEETo0BNqQDyBuEICFSQFuTGrqGNJbRBzNpHETGFOwJPvMPJFf8IBNyQOKRJUZDRgO-mID"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Alcapter has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="16,17,18,19"
			y="22,22,21,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,17,16,15,14,13"
			y="21,21,21,21,21,21"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,17,17,17,16,15"
			y="20,20,19,18,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,19,19,19,19,20"
			y="20,19,18,17,16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,21,22,23,24,25"
			y="21,22,21,22,22,22"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,21,22,23,24,25,26"
			y="20,21,20,20,19,20,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,22,23,24,25,26,26,27"
			y="20,19,19,18,18,17,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,20"
			y="21,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="12,11,11,10,9,8"
			y="2,3,4,4,5,5"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Eskon has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="12,12,12,12,12"
			y="5,6,7,8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="12,11"
			y="9,9"
		[/move]
	[/command]
	[command]
		[move]
			x="18,19,20,21,22,23"
			y="9,10,9,9,9,10"
		[/move]
	[/command]
	[command]
		[move]
			x="23,24,25,26,27"
			y="8,8,9,9,10"
		[/move]
	[/command]
	[command]
		[move]
			x="22,23,24,24,25"
			y="7,8,8,9,10"
		[/move]
	[/command]
	[command]
		[move]
			x="28,29,30,30,30,31,32"
			y="5,6,6,7,8,9,9"
		[/move]
	[/command]
	[command]
		[move]
			x="19,20,21,21,22,23"
			y="5,5,6,7,7,8"
		[/move]
	[/command]
	[command]
		[move]
			x="19,18"
			y="4,4"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Xardas has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="27,27"
			y="10,11"
		[/move]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,12,11,10"
			y="21,20,20,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,14"
			y="17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,26"
			y="22,22"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,27,28,29,30"
			y="19,19,19,20,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="32,32,32,32"
			y="9,10,11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="25,25,26,26,26"
			y="10,11,11,12,13"
		[/move]
	[/command]
	[command]
		[move]
			x="23,24,24,25,25,26"
			y="8,8,9,10,11,11"
		[/move]
	[/command]
	[command]
		[move]
			x="23,24,25,26,26"
			y="10,10,11,11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="32,31,31,30"
			y="12,13,14,14"
		[/move]
	[/command]
	[command]
		[move]
			x="27,27,27,27,27"
			y="11,12,13,14,15"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="27"
				y="15"
			[/source]
			[destination]
				x="27"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="11758"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="21666"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="31933"
			[results]
				chance="50"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="23145"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="19958"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="26,27,27"
			y="12,13,14"
		[/move]
	[/command]
	[command]
		[move]
			x="11,11,11"
			y="9,10,11"
		[/move]
	[/command]
	[command]
		[move]
			x="11,11"
			y="11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="8,8,9,9,9,9,10"
			y="5,6,7,8,9,10,10"
		[/move]
	[/command]
	[command]
		[recruit]
			value="5"
			x="17"
			y="5"
		[/recruit]
		[random]
			value="2826"
		[/random]
		[random]
			value="11745"
		[/random]
		[random]
			value="28938"
		[/random]
		[random]
			value="27699"
		[/random]
		[random]
			value="5560"
		[/random]
		[random]
			value="19802"
		[/random]
		[random]
			value="14929"
		[/random]
		[random]
			value="26248"
		[/random]
		[random]
			value="15488"
		[/random]
		[random]
			value="20214"
		[/random]
		[random]
			value="11752"
		[/random]
		[random]
			value="5056"
		[/random]
		[random]
			value="18717"
		[/random]
		[random]
			value="26509"
		[/random]
		[random]
			value="14104"
			[results]
				checksum="SU39RsEPnopbtoBBt5yPBdjCxIoyMyJsCAbPtOQpxQRNpnMsQGGGqEpPQwrEETo0BNqQDyBuEICFSQFuTGrqGIJbRBzNpHETGFOwJPvMPJFf8IBNyQOKRJUZDRgO-mID"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="5"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="20930"
		[/random]
		[random]
			value="25721"
		[/random]
		[random]
			value="15552"
		[/random]
		[random]
			value="2907"
		[/random]
		[random]
			value="16168"
		[/random]
		[random]
			value="4887"
		[/random]
		[random]
			value="7863"
		[/random]
		[random]
			value="9538"
		[/random]
		[random]
			value="5710"
		[/random]
		[random]
			value="29266"
		[/random]
		[random]
			value="22846"
		[/random]
		[random]
			value="23101"
		[/random]
		[random]
			value="489"
		[/random]
		[random]
			value="26394"
		[/random]
		[random]
			value="20060"
			[results]
				checksum="SU39RsCPnopbtoBBs5yPBdjCxIoyMyJsCAbPtOQpxQRNpnMsQGGGqEpPQwrEETo0BNqQDyBuEICFSQFuTGrqGGJbRBzNpHETGFOwJPvMPJFf8IBNyQOKRJUZDRgO-mID"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="18,18,18,18"
			y="4,5,6,7"
		[/move]
	[/command]
	[command]
		[move]
			x="18,18,18"
			y="7,8,9"
		[/move]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="4"
			x="21"
			y="20"
		[/recruit]
		[random]
			value="5457"
		[/random]
		[random]
			value="30971"
		[/random]
		[random]
			value="13949"
		[/random]
		[random]
			value="14826"
		[/random]
		[random]
			value="23413"
		[/random]
		[random]
			value="5194"
		[/random]
		[random]
			value="28315"
		[/random]
		[random]
			value="31146"
		[/random]
		[random]
			value="20775"
		[/random]
		[random]
			value="19619"
		[/random]
		[random]
			value="20618"
		[/random]
		[random]
			value="11568"
		[/random]
		[random]
			value="15323"
			[results]
				checksum="fEAwEAF+1Gub.aUZJ5kiOGDqZxM8i-LoLYEs-E3jSJv0zT>8cpf6b>5Im2-i0051mfOa-a-d4,d8b>dr3-aeWym.7BZSugG6.eC5RE539gmeoJZ4jM-lYWmgBNCho0u4"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="6"
			x="19"
			y="20"
		[/recruit]
		[random]
			value="27159"
		[/random]
		[random]
			value="24264"
		[/random]
		[random]
			value="5330"
		[/random]
		[random]
			value="15184"
		[/random]
		[random]
			value="7990"
		[/random]
		[random]
			value="6612"
		[/random]
		[random]
			value="29116"
		[/random]
		[random]
			value="8873"
		[/random]
		[random]
			value="30240"
		[/random]
		[random]
			value="22645"
		[/random]
		[random]
			value="11516"
		[/random]
		[random]
			value="18372"
		[/random]
		[random]
			value="19843"
			[results]
				checksum="RqMsBKzD0FKjsFwUULNJZmGIxrMqRUrwAqFDQBsGIPzPLBOztLbGuuQUIGIP7KIRwurIsmHBB+FVoqJyy6J8xkkBsfg-8bR7eEHFHBVJRlsCL4wQFtHLK,fBFKhGav7k"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Miranda has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,21,22,23,24,25"
			y="20,20,19,19,18,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,26,26,26"
			y="22,21,20,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,26"
			y="16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="26"
				y="15"
			[/source]
			[destination]
				x="27"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="23643"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="4894"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="19117"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="31575"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="20228"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="30,29,29,28,28,27"
			y="19,19,18,17,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="27"
				y="16"
			[/source]
			[destination]
				x="27"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="9676"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="25493"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="28433"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="12357"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="20142"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,26,26"
			y="19,18,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,10"
			y="19,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,10"
			y="18,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="jogador has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="LastManStanding has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="30,30,30,30,30,30"
			y="14,15,16,17,18,19"
		[/move]
	[/command]
	[command]
		[move]
			x="27,27,27,27,27,27"
			y="15,14,13,12,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Zudak has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="26,26,26,25,25"
			y="11,12,13,14,15"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="25"
				y="15"
			[/source]
			[destination]
				x="26"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="11195"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="6302"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="14241"
			[results]
				chance="50"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="15799"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="16520"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="27,26"
			y="14,14"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="26"
				y="14"
			[/source]
			[destination]
				x="26"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="9509"
			[results]
				chance="50"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="11417"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="5774"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="19956"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="15570"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="26,27,27"
			y="13,14,15"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="27"
				y="15"
			[/source]
			[destination]
				x="26"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="4289"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="19091"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="23339"
			[results]
				chance="50"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1580"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="15045"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="JinChang has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="19,19,19,19,19"
			y="5,6,7,8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="17,16,15,14,13,13"
			y="5,5,6,6,7,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="mortal has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="18,18,18,18,18,18"
			y="9,8,7,6,5,4"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="tchotchke has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,20,21,22,23"
			y="20,20,20,19,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,22,23,24,25,26"
			y="20,20,21,21,22,22"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,28,29,29,29,28,27"
			y="16,16,16,15,14,13,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="27"
				y="14"
			[/source]
			[destination]
				x="26"
				y="14"
			[/destination]
		[/attack]
		[random]
			value="6906"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="27443"
			[results]
				chance="50"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="13743"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="29056"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="28523"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="26"
				y="15"
			[/source]
			[destination]
				x="26"
				y="14"
			[/destination]
		[/attack]
		[random]
			value="9424"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="21202"
			[results]
				chance="50"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="10964"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="8675"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="19079"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,25,26,27"
			y="18,17,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="27"
				y="16"
			[/source]
			[destination]
				x="27"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="23962"
			[results]
				chance="70"
				damage="16"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="29237"
			[results]
				chance="70"
				damage="16"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,27,28,28"
			y="17,17,16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="28"
				y="15"
			[/source]
			[destination]
				x="27"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="19665"
			[results]
				chance="70"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="24845"
			[results]
				chance="60"
				damage="12"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="3665"
			[results]
				chance="70"
				damage="7"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Wintermute has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="26"
				y="14"
			[/source]
			[destination]
				x="26"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="21164"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="705"
			[results]
				chance="60"
				damage="4"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="ron8711 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="25,24,24,25,25"
			y="15,15,16,17,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Regilis has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="27,26,25,25,24"
			y="10,9,9,8,7"
		[/move]
	[/command]
	[command]
		[move]
			x="19,20,21,22,23"
			y="9,9,9,8,8"
		[/move]
	[/command]
	[command]
		[recruit]
			value="2"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="25950"
		[/random]
		[random]
			value="21132"
		[/random]
		[random]
			value="28829"
		[/random]
		[random]
			value="19212"
		[/random]
		[random]
			value="11663"
		[/random]
		[random]
			value="16775"
		[/random]
		[random]
			value="24649"
		[/random]
		[random]
			value="3186"
		[/random]
		[random]
			value="25948"
		[/random]
		[random]
			value="7771"
		[/random]
		[random]
			value="21592"
		[/random]
		[random]
			value="19176"
		[/random]
		[random]
			value="11089"
		[/random]
		[random]
			value="21690"
		[/random]
		[random]
			value="29633"
			[results]
				checksum="<3n85mndU3eF0a,..P305kg7W0d6cpzj<c3>k7>a,+alX1ah,2Wi<0o.-bnee7bo56d2incd,4Z6occi46H-f-5057b>02aa.o6Z+40CN5c8b.<X,47J.7v3b3e4xt<3"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="2"
			x="20"
			y="4"
		[/recruit]
		[random]
			value="18737"
		[/random]
		[random]
			value="24923"
		[/random]
		[random]
			value="12314"
		[/random]
		[random]
			value="30873"
		[/random]
		[random]
			value="20888"
		[/random]
		[random]
			value="32026"
		[/random]
		[random]
			value="11588"
		[/random]
		[random]
			value="16933"
		[/random]
		[random]
			value="6934"
		[/random]
		[random]
			value="29299"
		[/random]
		[random]
			value="2813"
		[/random]
		[random]
			value="21995"
		[/random]
		[random]
			value="9773"
		[/random]
		[random]
			value="5682"
		[/random]
		[random]
			value="2035"
			[results]
				checksum="<3k85mndU3eF>a,..P305kg7W0d6cpzj<c3>k7>a,+alX1ah,2Wi<0o.-bnee7bo56d2incd,4Z6occi45H-f-5057b>02aa.o6Z+40CN5c8b.<X,47J.7v3b3e4xt<3"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="GhostIdentity has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="AJ has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="naboo has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="pkz has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="30,30,30,30,31,32,32,33"
			y="19,18,17,16,16,15,14,14"
		[/move]
	[/command]
	[command]
		[move]
			x="13,13,13,12,12,12"
			y="8,9,10,10,11,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Shawer has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="spacecb has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="11,11,11"
			y="12,13,14"
		[/move]
	[/command]
	[command]
		[move]
			x="11,12,13"
			y="14,13,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Sprite has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="10,11,12,12,13"
			y="10,11,11,12,13"
		[/move]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="tishbe has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,27,27,27,27,26,26,25"
			y="14,13,12,11,10,9,8,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="25"
				y="8"
			[/source]
			[destination]
				x="24"
				y="7"
			[/destination]
		[/attack]
		[random]
			value="30126"
			[results]
				chance="40"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="9121"
			[results]
				chance="50"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1266"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="14759"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="15624"
			[results]
				chance="40"
				damage="5"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,27,27,27,26,25"
			y="16,17,18,19,19,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="25"
				y="19"
			[/source]
			[destination]
				x="25"
				y="18"
			[/destination]
		[/attack]
		[random]
			value="15890"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="57"
			[results]
				chance="70"
				damage="16"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,26,26,26,26"
			y="22,21,20,19,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="26"
				y="18"
			[/source]
			[destination]
				x="25"
				y="18"
			[/destination]
		[/attack]
		[random]
			value="10009"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="2029"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="486"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,25,24,24"
			y="15,16,16,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="24"
				y="17"
			[/source]
			[destination]
				x="25"
				y="18"
			[/destination]
		[/attack]
		[random]
			value="4544"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="15219"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="21325"
			[results]
				chance="70"
				damage="4"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[choose]
			value="0"
		[/choose]
	[/command]
	[command]
		sent="yes"
		[move]
			x="23,24,25,26,27"
			y="19,18,18,17,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="28,28,28,29,29,30"
			y="15,16,17,18,19,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="20,21,22,23,23,24"
			y="4,5,5,6,7,7"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="24"
				y="7"
			[/source]
			[destination]
				x="25"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="23156"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="31474"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="11849"
			[results]
				chance="50"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="6497"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="24342"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Chronex has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="23,23,24,25"
			y="8,9,9,9"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="25"
				y="9"
			[/source]
			[destination]
				x="25"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="14494"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="426"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="14451"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="16154"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="8643"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="distrotubux2 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="33,32,31,30,29,28,28,28,28"
			y="14,13,13,12,12,11,10,9,8"
		[/move]
	[/command]
	[command]
		[move]
			x="19,20,21,22,23,24"
			y="5,4,4,3,3,3"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Chronex has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="12,12,13,14,15,16"
			y="12,13,14,14,15,14"
		[/move]
	[/command]
	[command]
		[recruit]
			value="5"
			x="20"
			y="4"
		[/recruit]
		[random]
			value="20145"
		[/random]
		[random]
			value="4520"
		[/random]
		[random]
			value="2635"
		[/random]
		[random]
			value="8256"
		[/random]
		[random]
			value="20858"
		[/random]
		[random]
			value="19568"
		[/random]
		[random]
			value="14287"
		[/random]
		[random]
			value="2136"
		[/random]
		[random]
			value="10362"
		[/random]
		[random]
			value="30162"
		[/random]
		[random]
			value="7109"
		[/random]
		[random]
			value="31336"
		[/random]
		[random]
			value="15802"
		[/random]
		[random]
			value="9218"
		[/random]
		[random]
			value="13979"
			[results]
				checksum="SU39RsCPnopbtoBBs5yPBdjCxIoyMyJsCAbPtOQpxQRNpnMsQGGGqEpPQwrEETo0BNqQDyBuEICFSQFuTGrqGGJbRBzNpHETGFOwJPvMPJFf8IBNyQOKRJUZDRgO-mID"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="BEQ has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="30,29,29,28,28,27"
			y="19,19,18,17,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,28,29,30"
			y="18,17,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,23,22,21,20,19,18,17"
			y="17,17,16,16,16,16,15,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="17"
				y="15"
			[/source]
			[destination]
				x="16"
				y="14"
			[/destination]
		[/attack]
		[random]
			value="31876"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="7914"
			[results]
				chance="50"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="20892"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Kriegsmesser has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Tiagostoso has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,25,24"
			y="18,18,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,24,23,22,21,20"
			y="19,19,20,20,20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="0"
			x="18"
			y="20"
		[/recruit]
		[random]
			value="15436"
		[/random]
		[random]
			value="17541"
		[/random]
		[random]
			value="6634"
		[/random]
		[random]
			value="9981"
		[/random]
		[random]
			value="4524"
		[/random]
		[random]
			value="11991"
		[/random]
		[random]
			value="18142"
		[/random]
		[random]
			value="23203"
		[/random]
		[random]
			value="19578"
		[/random]
		[random]
			value="28017"
		[/random]
		[random]
			value="27977"
		[/random]
		[random]
			value="13051"
		[/random]
		[random]
			value="2533"
		[/random]
		[random]
			value="26132"
		[/random]
		[random]
			value="25587"
			[results]
				checksum="xNa6Bryn.D--c-i+05ERoaOL-EyQovClJF7qE383X-fb-Zy1ji46+2f+9l+5<foc<nn6f23854.p5418om4H8bFWB0pjc+cZng<m8e6X68+vn>t55bKrqZdmOCaJmIaF"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="4"
			x="19"
			y="20"
		[/recruit]
		[random]
			value="25345"
		[/random]
		[random]
			value="11862"
		[/random]
		[random]
			value="22032"
		[/random]
		[random]
			value="19365"
		[/random]
		[random]
			value="18125"
		[/random]
		[random]
			value="6926"
		[/random]
		[random]
			value="206"
		[/random]
		[random]
			value="19697"
		[/random]
		[random]
			value="16786"
		[/random]
		[random]
			value="9478"
		[/random]
		[random]
			value="4435"
		[/random]
		[random]
			value="14427"
		[/random]
		[random]
			value="12200"
			[results]
				checksum="fEAwEAF+1Gub.aUZJ5kiOGDqZxM8i-LoLYEs-E3jSJv0zT>8cpf6b>5Im2-i0051mfOa-a-d4,d8b>dr3-aeWym.7BZSugG6.eC5RE539gmeoJZ4jM-lYWmgBNCho0u4"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="1"
			x="18"
			y="21"
		[/recruit]
		[random]
			value="5948"
		[/random]
		[random]
			value="4602"
		[/random]
		[random]
			value="23965"
		[/random]
		[random]
			value="779"
		[/random]
		[random]
			value="1522"
		[/random]
		[random]
			value="16155"
		[/random]
		[random]
			value="15282"
		[/random]
		[random]
			value="17577"
		[/random]
		[random]
			value="2239"
		[/random]
		[random]
			value="19970"
		[/random]
		[random]
			value="32343"
		[/random]
		[random]
			value="3818"
		[/random]
		[random]
			value="21167"
			[results]
				checksum="Dem>c1k,fFB3IPKDDy,IIVsrrz9qrFsKPmsAOVOPtQsRHOMGLquuPuNAtBx6AEqpsGOKxE8KFoBPRQNzSIM0NsInAEUrD<pd7wU07l,LsmkMRAyTOtHFLqpFUIIzsxsc"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="mond has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Turuk has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,26,27,28,29,30,30,31"
			y="8,7,7,6,7,7,8,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="24,25,26,27,27,27"
			y="3,4,4,5,6,7"
		[/move]
	[/command]
	[command]
		[move]
			x="24,25,26,27,28,29,30"
			y="7,7,7,8,7,8,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Xardas has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="30"
				y="8"
			[/source]
			[destination]
				x="31"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="11299"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="422"
			[results]
				chance="60"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1901"
			[results]
				chance="50"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="23845"
			[results]
				chance="60"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="9318"
			[results]
				chance="60"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="28,29,29,30,31,32,32"
			y="8,9,10,10,11,10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Dark has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="20,20,20,20,20"
			y="4,5,6,7,8"
		[/move]
	[/command]
	[command]
		[recruit]
			value="2"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="32593"
		[/random]
		[random]
			value="6988"
		[/random]
		[random]
			value="931"
		[/random]
		[random]
			value="30458"
		[/random]
		[random]
			value="13393"
		[/random]
		[random]
			value="8425"
		[/random]
		[random]
			value="27956"
		[/random]
		[random]
			value="4685"
		[/random]
		[random]
			value="1158"
		[/random]
		[random]
			value="19198"
		[/random]
		[random]
			value="6943"
		[/random]
		[random]
			value="3918"
		[/random]
		[random]
			value="22395"
		[/random]
		[random]
			value="22901"
		[/random]
		[random]
			value="10740"
			[results]
				checksum="<3l85mndU3eF>a,..P305kg7W0d6cpzj<c3>k7>a,+alX1ah,2Wi<0o.-bnee7bo56d2incd,4Z6occi44H-f-5057b>02aa.o6Z+40CN5c8b.<X,48D.7v393e4xt<3"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="2"
			x="20"
			y="4"
		[/recruit]
		[random]
			value="1801"
		[/random]
		[random]
			value="12623"
		[/random]
		[random]
			value="22430"
		[/random]
		[random]
			value="24701"
		[/random]
		[random]
			value="20715"
		[/random]
		[random]
			value="9013"
		[/random]
		[random]
			value="13196"
		[/random]
		[random]
			value="22295"
		[/random]
		[random]
			value="28720"
		[/random]
		[random]
			value="21860"
		[/random]
		[random]
			value="8508"
		[/random]
		[random]
			value="25736"
		[/random]
		[random]
			value="6813"
		[/random]
		[random]
			value="23331"
		[/random]
		[random]
			value="2353"
			[results]
				checksum="<3p85mndU3eF>a,..P305kg7W0d6cpzj<c3>k7>a,+alX1ah,2Wi<0o.-bnee7bo56d2incd,4Z6occi48H-f-5057b>02aa.o6Z+40CN5c8b.<X,48D.7v3b3e4xt<3"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="16,16,16,17,18,18"
			y="14,13,12,12,11,10"
		[/move]
	[/command]
	[command]
		[move]
			x="13,12,12,11"
			y="14,13,12,12"
		[/move]
	[/command]
	[command]
		[move]
			x="13,12,12,11"
			y="13,12,11,11"
		[/move]
	[/command]
	[command]
		[move]
			x="11,10"
			y="11,10"
		[/move]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Musshgragoosh has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Masqurin has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,18,18,18,18,18,18,18"
			y="21,20,19,18,17,16,15,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,20,20,21,22"
			y="15,14,13,13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,19,19,19,19,19"
			y="20,19,18,17,16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,19,19,19,19,19"
			y="20,20,19,18,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="17,16,15,14,13,13,13,12"
			y="15,14,14,14,14,13,12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="12"
				y="11"
			[/source]
			[destination]
				x="11"
				y="12"
			[/destination]
		[/attack]
		[random]
			value="17569"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="5896"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="11332"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="0"
			x="19"
			y="20"
		[/recruit]
		[random]
			value="12126"
		[/random]
		[random]
			value="5124"
		[/random]
		[random]
			value="11700"
		[/random]
		[random]
			value="28594"
		[/random]
		[random]
			value="2750"
		[/random]
		[random]
			value="11252"
		[/random]
		[random]
			value="28910"
		[/random]
		[random]
			value="26911"
		[/random]
		[random]
			value="10337"
		[/random]
		[random]
			value="15238"
		[/random]
		[random]
			value="30216"
		[/random]
		[random]
			value="30364"
		[/random]
		[random]
			value="196"
		[/random]
		[random]
			value="10768"
		[/random]
		[random]
			value="21649"
			[results]
				checksum="xNa6Bryn.D--c-i+05ERoaOL-EyQovClJF7qE383X-fb-Zy1ji46+2f+9l+5<foc<nn6f23854.p5418om4H8bFWB0pjc+cZng<m8e6X68+vn>t55bKrqZdmOCaJmIaF"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="BEQ has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="brainmonster has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="31"
				y="9"
			[/source]
			[destination]
				x="30"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="3884"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="584"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="17962"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="17276"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="27872"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="27,28,29,29,30"
			y="7,7,8,9,9"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="30"
				y="9"
			[/source]
			[destination]
				x="31"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="16413"
			[results]
				chance="50"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="20569"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="24603"
			[results]
				chance="50"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="4996"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="8687"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="30"
				y="8"
			[/source]
			[destination]
				x="31"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="24136"
			[results]
				chance="50"
				damage="2"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="25,26,27,27"
			y="9,9,10,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Data has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="32,32,32,33"
			y="9,10,11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="18,18"
			y="10,9"
		[/move]
	[/command]
	[command]
		[move]
			x="19,18,17,16,15,14,13"
			y="5,4,5,5,6,6,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="bot has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="20,21,22"
			y="8,9,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="AssassinT90 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="20,19,18,17,16,15,14"
			y="4,5,4,5,5,6,6"
		[/move]
	[/command]
	[command]
		[move]
			x="11,11,12,13,13"
			y="12,13,13,13,12"
		[/move]
	[/command]
	[command]
		[move]
			x="10,11"
			y="10,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Baker has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="11"
				y="11"
			[/source]
			[destination]
				x="12"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="148"
			[results]
				chance="50"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="7469"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="25242"
			[results]
				chance="50"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="16385"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="15208"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="12"
				y="11"
			[/source]
			[destination]
				x="11"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="11928"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="30076"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="30629"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="18068"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="32285"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="21317"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,17,16,15,14,13,13"
			y="14,15,14,14,14,14,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="22267"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="20244"
			[results]
				chance="50"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="18665"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="31994"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="32053"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="14,14,14,14,13"
			y="17,16,15,14,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,10,10,10,10,10"
			y="19,18,17,16,15,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,18,17"
			y="16,15,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,18,17,16"
			y="15,14,15,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="22,21,20,20,20"
			y="12,13,13,14,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,18,17,17,16,15"
			y="20,19,19,18,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="0"
			x="19"
			y="20"
		[/recruit]
		[random]
			value="7180"
		[/random]
		[random]
			value="2152"
		[/random]
		[random]
			value="10825"
		[/random]
		[random]
			value="4473"
		[/random]
		[random]
			value="12387"
		[/random]
		[random]
			value="25958"
		[/random]
		[random]
			value="9096"
		[/random]
		[random]
			value="23121"
		[/random]
		[random]
			value="2133"
		[/random]
		[random]
			value="21855"
		[/random]
		[random]
			value="15982"
		[/random]
		[random]
			value="21102"
		[/random]
		[random]
			value="10715"
		[/random]
		[random]
			value="9850"
		[/random]
		[random]
			value="12375"
			[results]
				checksum="xNa6Bryn.D--c-i+05ERoaOL-EyQovClJF7qE383X-fb-Zy1ji46+2f+9l+5<foc<nn6f23854.p5418om4H8bFWB0pjc+cZng<m8e6X68+vn>t55bKrqZdmOCaJmIaF"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="13,13,13,13,13"
			y="7,8,9,10,11"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="13"
				y="11"
			[/source]
			[destination]
				x="12"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="16276"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="16260"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="21335"
			[results]
				chance="50"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="32303"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="26417"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="14,13,13,13,13,12"
			y="6,7,8,9,10,10"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="12"
				y="10"
			[/source]
			[destination]
				x="12"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="28187"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="4868"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="24740"
			[results]
				chance="50"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="17508"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="25746"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="11"
				y="11"
			[/source]
			[destination]
				x="12"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="13904"
			[results]
				chance="50"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="2728"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="27657"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="2720"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="14455"
			[results]
				chance="60"
				damage="4"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="13"
				y="12"
			[/source]
			[destination]
				x="12"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="10780"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="2181"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="7459"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="13580"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="25293"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="17556"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="5"
			x="17"
			y="5"
		[/recruit]
		[random]
			value="13439"
		[/random]
		[random]
			value="5460"
		[/random]
		[random]
			value="31020"
		[/random]
		[random]
			value="6796"
		[/random]
		[random]
			value="28637"
		[/random]
		[random]
			value="8967"
		[/random]
		[random]
			value="4579"
		[/random]
		[random]
			value="1841"
		[/random]
		[random]
			value="4306"
		[/random]
		[random]
			value="27074"
		[/random]
		[random]
			value="9769"
		[/random]
		[random]
			value="24890"
		[/random]
		[random]
			value="19813"
		[/random]
		[random]
			value="9784"
		[/random]
		[random]
			value="9075"
			[results]
				checksum="SU39RsIPnopbtoBBt5yPBdjCxIoyMyJsCAbPtOQpxQRNpnMsQGGGqEpPQwrEETo0BNqQDyBuEICFSQFuTGrqGMJbRBzNpHETGFOwJPvMPJFf8IBNyQOKRJUZDRgOWmID"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="2"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="20370"
		[/random]
		[random]
			value="6159"
		[/random]
		[random]
			value="28437"
		[/random]
		[random]
			value="20604"
		[/random]
		[random]
			value="20751"
		[/random]
		[random]
			value="6258"
		[/random]
		[random]
			value="167"
		[/random]
		[random]
			value="32729"
		[/random]
		[random]
			value="16899"
		[/random]
		[random]
			value="18101"
		[/random]
		[random]
			value="30655"
		[/random]
		[random]
			value="1331"
		[/random]
		[random]
			value="8524"
		[/random]
		[random]
			value="19732"
		[/random]
		[random]
			value="8501"
			[results]
				checksum="<3c85mndU3eF0a,..P305kg7W0d6cpzj<c3>k7>a,+alX1ah,2Wi<0o.-bnee7bo56d2incd,4Z6occi4.H-f-5057b>02aa.o6Z+40CN5c8b.<X,48D.7v393e4xt<3"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="27,27,27"
			y="11,12,13"
		[/move]
	[/command]
	[command]
		[move]
			x="27,27"
			y="13,14"
		[/move]
	[/command]
	[command]
		[move]
			x="30,29,28,28,28"
			y="9,10,10,11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="27,27"
			y="14,15"
		[/move]
	[/command]
	[command]
		[move]
			x="28,27"
			y="12,12"
		[/move]
	[/command]
	[command]
		[move]
			x="30,29,29,28,27,26"
			y="8,9,10,10,11,11"
		[/move]
	[/command]
	[command]
		[move]
			x="26,26"
			y="11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="33,33,33,33"
			y="12,13,14,15"
		[/move]
	[/command]
	[command]
		[move]
			x="33,34,34,34,34,33"
			y="15,15,16,17,18,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="TheVilliN has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="22,22,22,23"
			y="9,10,11,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="TheVilliN has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="18,19,20,21,22"
			y="9,10,9,10,10"
		[/move]
	[/command]
	[command]
		[move]
			x="18,18,18,18,18,18"
			y="4,5,6,7,8,9"
		[/move]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,12,11,11,11"
			y="14,13,13,12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="11"
				y="11"
			[/source]
			[destination]
				x="12"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="26442"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="9366"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="30345"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="10618"
			[results]
				chance="60"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="18505"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,10,10,10,10,11"
			y="14,13,12,11,10,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="2"
			weapon="1"
			[source]
				x="11"
				y="10"
			[/source]
			[destination]
				x="12"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="26181"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="24775"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="23025"
			[results]
				chance="60"
				damage="6"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Van has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,12,11,11,11,11,12,13"
			y="13,13,13,12,11,10,9,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="13"
				y="10"
			[/source]
			[destination]
				x="13"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="13233"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="19780"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="14157"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="32363"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="16138"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Spree has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="12,11,11,11"
			y="11,11,10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="16,15,14,13"
			y="14,14,14,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,14,13,12,11,11"
			y="17,16,16,15,15,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,20,21,22,23,24"
			y="20,20,20,19,19,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="too has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="30,29"
			y="16,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="29,29,29,30"
			y="17,18,19,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,27"
			y="16,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,25,26,27"
			y="17,17,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="27"
				y="16"
			[/source]
			[destination]
				x="27"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="14364"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="6772"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="27568"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,27,27,26"
			y="17,18,19,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="4"
			x="21"
			y="20"
		[/recruit]
		[random]
			value="8459"
		[/random]
		[random]
			value="25670"
		[/random]
		[random]
			value="13891"
		[/random]
		[random]
			value="28272"
		[/random]
		[random]
			value="30700"
		[/random]
		[random]
			value="20511"
		[/random]
		[random]
			value="2433"
		[/random]
		[random]
			value="30620"
		[/random]
		[random]
			value="32247"
		[/random]
		[random]
			value="23183"
		[/random]
		[random]
			value="4283"
		[/random]
		[random]
			value="31121"
		[/random]
		[random]
			value="3953"
			[results]
				checksum="fEAwEAF+1Gub.aUZJ5kiOGDqZxM8i-LoLYEs-E3jSJv0zT>8cpf6b>5Im2-i0051mfOa-a-d4,d8b>dr3-aeWym.7BZSugG6.eC5RE539gmeoJZ4jM-lYWmgBNCho0u4"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,21,22,23,24,25"
			y="20,20,19,19,18,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="17,16,15,14,13,12"
			y="5,5,6,5,6,5"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Nicholas has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="BEQA has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Nicholas has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="27,26,25,25,26"
			y="15,14,15,16,16"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="26"
				y="16"
			[/source]
			[destination]
				x="27"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="25237"
			[results]
				chance="40"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="11169"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="20634"
			[results]
				chance="40"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="32106"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="33,32,31,30,29,29,29,28"
			y="19,18,19,18,18,17,16,15"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="28"
				y="15"
			[/source]
			[destination]
				x="27"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="24387"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="24241"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="17422"
			[results]
				chance="40"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="11292"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="207"
			[results]
				chance="40"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Quetz has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="26,26,26,27"
			y="12,13,14,15"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="27"
				y="15"
			[/source]
			[destination]
				x="27"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="12168"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="20621"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="28660"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="5154"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="8283"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="15564"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="27,27,27,26,26"
			y="12,13,14,14,15"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="26"
				y="15"
			[/source]
			[destination]
				x="27"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="6036"
			[results]
				chance="40"
				damage="3"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="23,22,22"
			y="12,12,13"
		[/move]
	[/command]
	[command]
		[move]
			x="22,22,22,21,21"
			y="10,11,12,13,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Zudak has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="AssassinT90 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="19,19,19,19,19,19"
			y="5,6,7,8,9,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="HideandSeek has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Xiode has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="breeze has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="18,18,18,18,18,18"
			y="9,8,7,6,5,4"
		[/move]
	[/command]
	[command]
		[recruit]
			value="2"
			x="17"
			y="5"
		[/recruit]
		[random]
			value="25280"
		[/random]
		[random]
			value="25673"
		[/random]
		[random]
			value="22342"
		[/random]
		[random]
			value="5876"
		[/random]
		[random]
			value="20394"
		[/random]
		[random]
			value="14643"
		[/random]
		[random]
			value="4300"
		[/random]
		[random]
			value="8155"
		[/random]
		[random]
			value="31181"
		[/random]
		[random]
			value="15492"
		[/random]
		[random]
			value="4326"
		[/random]
		[random]
			value="21404"
		[/random]
		[random]
			value="19350"
		[/random]
		[random]
			value="25671"
		[/random]
		[random]
			value="5515"
			[results]
				checksum="<3p85mndU3eF>a,..P305kg7W0d6cpzj<c3>k7>a,+alX1ah,2Wi<0o.-bnee7bo56d2incd,4Z6occi48H-f-5057b>02aa.o6Z+40CN5c8b.<X,48D.7v3b3e4xt<3"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="13,12,11"
			y="12,12,13"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="11"
				y="13"
			[/source]
			[destination]
				x="11"
				y="14"
			[/destination]
		[/attack]
		[random]
			value="9446"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="17506"
			[results]
				chance="40"
				damage="11"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="13,13,13"
			y="11,12,13"
		[/move]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="BEQA has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,22,23,24,25,26"
			y="20,19,19,18,18,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="26"
				y="17"
			[/source]
			[destination]
				x="26"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="26447"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="20251"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="10151"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,25"
			y="18,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="25"
				y="17"
			[/source]
			[destination]
				x="26"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="17459"
			[results]
				chance="70"
				damage="16"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="19938"
			[results]
				chance="70"
				damage="16"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,25,26,27,27"
			y="18,18,17,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="27"
				y="16"
			[/source]
			[destination]
				x="28"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="9317"
			[results]
				chance="70"
				damage="12"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="27012"
			[results]
				chance="70"
				damage="12"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="30,30,29,29,29"
			y="19,18,18,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="29"
				y="16"
			[/source]
			[destination]
				x="28"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="13371"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="22011"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="26880"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="20908"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="49"
			[results]
				chance="60"
				damage="7"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Rayskel has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,27,27,28,29,29"
			y="19,19,18,17,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="29"
				y="16"
			[/source]
			[destination]
				x="28"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="19551"
			[results]
				chance="60"
				damage="9"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="2"
			weapon="1"
			[source]
				x="13"
				y="14"
			[/source]
			[destination]
				x="13"
				y="13"
			[/destination]
		[/attack]
		[random]
			value="7318"
			[results]
				chance="40"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="12629"
			[results]
				chance="50"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="21514"
			[results]
				chance="40"
				damage="7"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="11"
				y="14"
			[/source]
			[destination]
				x="11"
				y="13"
			[/destination]
		[/attack]
		[random]
			value="146"
			[results]
				chance="70"
				damage="12"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="30784"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="deano has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,11,11"
			y="10,11,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="11"
				y="12"
			[/source]
			[destination]
				x="11"
				y="13"
			[/destination]
		[/attack]
		[random]
			value="12755"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="26894"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="16651"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,13,13,12"
			y="10,11,12,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="12"
				y="12"
			[/source]
			[destination]
				x="11"
				y="13"
			[/destination]
		[/attack]
		[random]
			value="20917"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="20243"
			[results]
				chance="50"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="19196"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="2328"
			[results]
				chance="50"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="5816"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,10,10,9,9,8"
			y="9,8,7,7,6,5"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,10,10"
			y="11,11,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="10"
				y="12"
			[/source]
			[destination]
				x="11"
				y="13"
			[/destination]
		[/attack]
		[random]
			value="17485"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="8310"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="23295"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="32667"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="25877"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="17,18,19,20"
			y="15,15,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Carving has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="11,10"
			y="13,13"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="10"
				y="13"
			[/source]
			[destination]
				x="11"
				y="14"
			[/destination]
		[/attack]
		[random]
			value="29968"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="4345"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="17,16,15,14,13,12"
			y="5,4,4,3,3,2"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Kirby has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="27,28,29,30,31,31,30"
			y="15,14,14,14,15,16,16"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="2"
			[source]
				x="30"
				y="16"
			[/source]
			[destination]
				x="29"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="2853"
			[results]
				chance="60"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="32041"
			[results]
				chance="60"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="26,26,27,28,29"
			y="15,14,14,14,15"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="2"
			[source]
				x="29"
				y="15"
			[/source]
			[destination]
				x="29"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="24702"
			[results]
				chance="60"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="21154"
			[results]
				chance="60"
				damage="10"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[choose]
			value="0"
		[/choose]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="jkh has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="21,20,19,18,18,19"
			y="14,13,14,14,15,16"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="19"
				y="16"
			[/source]
			[destination]
				x="20"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="1628"
			[results]
				chance="50"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="9094"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="22,21,20,19,19"
			y="13,13,13,14,15"
		[/move]
	[/command]
	[command]
		[move]
			x="19,19,19,20"
			y="10,11,12,12"
		[/move]
	[/command]
	[command]
		[recruit]
			value="2"
			x="17"
			y="5"
		[/recruit]
		[random]
			value="12342"
		[/random]
		[random]
			value="30098"
		[/random]
		[random]
			value="26901"
		[/random]
		[random]
			value="14457"
		[/random]
		[random]
			value="11886"
		[/random]
		[random]
			value="14942"
		[/random]
		[random]
			value="16021"
		[/random]
		[random]
			value="9611"
		[/random]
		[random]
			value="4809"
		[/random]
		[random]
			value="11741"
		[/random]
		[random]
			value="6311"
		[/random]
		[random]
			value="14057"
		[/random]
		[random]
			value="18479"
		[/random]
		[random]
			value="30825"
		[/random]
		[random]
			value="779"
			[results]
				checksum="<3p85mndU3eF>a,..P305kg7W0d6cpzj<c3>k7>a,+alX1ah,2Wi<0o.-bnee7bo56d2incd,4Z6occi48H-f-5057b>02aa.o6Z+40CN5c8b.<X,48D.7v3b3e4xt<3"
			[/results]
		[/random]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Coriolan_ has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,13,13,13,14"
			y="14,15,16,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="11"
				y="14"
			[/source]
			[destination]
				x="10"
				y="13"
			[/destination]
		[/attack]
		[random]
			value="19939"
			[results]
				chance="70"
				damage="12"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="8,8,8,8,8,8,8,8"
			y="5,6,7,8,9,10,11,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,11,11,11,12,13"
			y="12,13,14,15,15,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,10,10,11,11,12"
			y="12,13,14,15,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="12,12,12,12,12,13,13,14"
			y="12,13,14,15,16,17,18,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Fovne has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,28,29"
			y="16,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="2"
			weapon="0"
			[source]
				x="29"
				y="16"
			[/source]
			[destination]
				x="30"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="18497"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="18919"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="20882"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="15671"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,26,27,28,29"
			y="17,16,16,16,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="2"
			weapon="1"
			[source]
				x="29"
				y="17"
			[/source]
			[destination]
				x="30"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="19458"
			[results]
				chance="70"
				damage="16"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,26,27"
			y="17,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,20,19,18,18"
			y="16,17,18,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="18"
				y="16"
			[/source]
			[destination]
				x="19"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="18222"
			[results]
				chance="70"
				damage="12"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1520"
			[results]
				chance="70"
				damage="12"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="20"
				y="15"
			[/source]
			[destination]
				x="19"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="7637"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="4537"
			[results]
				chance="40"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="3638"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="18670"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="28575"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="greywood has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="hjl_hk has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="12,11,11,10,9,8"
			y="2,3,4,4,5,5"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="SomeRandom has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="12,12,12,12,11"
			y="5,6,7,8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="19,18,17,17"
			y="15,14,15,16"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="17"
				y="16"
			[/source]
			[destination]
				x="18"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="32408"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="30280"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="19,19"
			y="16,17"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="19"
				y="17"
			[/source]
			[destination]
				x="18"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="24514"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="29117"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="20,20,19,18,18"
			y="12,13,14,14,15"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="1"
			[source]
				x="18"
				y="15"
			[/source]
			[destination]
				x="18"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="3640"
			[results]
				chance="60"
				damage="5"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="17,17,18,18,18,18,18"
			y="5,6,6,7,8,9,10"
		[/move]
	[/command]
	[command]
		[recruit]
			value="5"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="8354"
		[/random]
		[random]
			value="22512"
		[/random]
		[random]
			value="31457"
		[/random]
		[random]
			value="7406"
		[/random]
		[random]
			value="9686"
		[/random]
		[random]
			value="20192"
		[/random]
		[random]
			value="5551"
		[/random]
		[random]
			value="5104"
		[/random]
		[random]
			value="6100"
		[/random]
		[random]
			value="27684"
		[/random]
		[random]
			value="31596"
		[/random]
		[random]
			value="25692"
		[/random]
		[random]
			value="29413"
		[/random]
		[random]
			value="560"
		[/random]
		[random]
			value="7886"
			[results]
				checksum="SU39RsGPnopbtoBBs5yPBdjCxIoyMyJsCAbPtOQpxQRNpnMsQGGGqEpPQwrEETo0BNqQDyBuEICFSQFuTGrqGKJbRBzNpHETGFOwJPvMPJFf8IBNyQOKRJUZDRgOWmID"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="18,18,18,18,18,18"
			y="4,5,6,7,8,9"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="1"
			[source]
				x="29"
				y="15"
			[/source]
			[destination]
				x="29"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="28198"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="4007"
			[results]
				chance="70"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="31695"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="11410"
			[results]
				chance="70"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="7963"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="29,28,28,27,27,26"
			y="16,16,17,18,19,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="29,28,27,26,25,24"
			y="17,17,18,18,19,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Levriat has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="14,15,16,17,18,19"
			y="17,18,17,18,18,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="19"
				y="18"
			[/source]
			[destination]
				x="19"
				y="17"
			[/destination]
		[/attack]
		[random]
			value="27819"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="5627"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="29806"
			[results]
				chance="70"
				damage="5"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,14,15,16"
			y="16,16,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="16"
				y="16"
			[/source]
			[destination]
				x="17"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="1997"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="30428"
			[results]
				chance="50"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="17319"
			[results]
				chance="50"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,20,19,18"
			y="15,14,14,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="18"
				y="14"
			[/source]
			[destination]
				x="18"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="15052"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="27687"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="16259"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="10355"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="31756"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,11,12,13,13,14"
			y="14,15,15,16,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="8,9,10,11,12"
			y="12,13,13,14,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="12,13"
			y="14,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,14,15"
			y="15,15,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="14,14,14,15,15,16"
			y="18,19,20,21,22,22"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="12,13,14,15,15"
			y="16,17,17,18,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,28,29"
			y="16,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="2"
			weapon="1"
			[source]
				x="29"
				y="16"
			[/source]
			[destination]
				x="29"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="505"
			[results]
				chance="60"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="9944"
			[results]
				chance="60"
				damage="12"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="31039"
			[results]
				chance="60"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="29691"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="23046"
			[results]
				chance="60"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="29,29,29,29,28,28"
			y="15,14,13,12,11,10"
		[/move]
	[/command]
	[command]
		[move]
			x="18,19,20"
			y="15,16,15"
		[/move]
	[/command]
	[command]
		[move]
			x="17,16"
			y="16,15"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="16"
				y="15"
			[/source]
			[destination]
				x="16"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="3957"
			[results]
				chance="60"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="12284"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="13685"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="18398"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="salomon has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="11,11,11"
			y="9,10,11"
		[/move]
	[/command]
	[command]
		[move]
			x="11,11"
			y="11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="8,8,9,9,9,9,10"
			y="5,6,7,8,9,10,10"
		[/move]
	[/command]
	[command]
		[move]
			x="19,19,19,19,19"
			y="5,6,7,8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="18,18,18,18,18,18"
			y="9,8,7,6,5,4"
		[/move]
	[/command]
	[command]
		[recruit]
			value="5"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="14640"
		[/random]
		[random]
			value="12463"
		[/random]
		[random]
			value="13949"
		[/random]
		[random]
			value="20834"
		[/random]
		[random]
			value="26676"
		[/random]
		[random]
			value="26608"
		[/random]
		[random]
			value="27668"
		[/random]
		[random]
			value="9685"
		[/random]
		[random]
			value="30075"
		[/random]
		[random]
			value="24959"
		[/random]
		[random]
			value="22400"
		[/random]
		[random]
			value="9858"
		[/random]
		[random]
			value="18651"
		[/random]
		[random]
			value="3171"
		[/random]
		[random]
			value="30718"
			[results]
				checksum="SU39RsJPnopbtoBBt5yPBdjCxIoyMyJsCAbPtOQpxQRNpnMsQGGGqEpPQwrEETo0BNqQDyBuEICFSQFuTGrqGNJbRBzNpHETGFOwJPvMPJFf8IBNyQOKRJUZDRgO-mID"
			[/results]
		[/random]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="29,29,29,29,29,28"
			y="16,15,14,13,12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="2"
			weapon="1"
			[source]
				x="28"
				y="11"
			[/source]
			[destination]
				x="28"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="4180"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="12438"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="15580"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="15222"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="29501"
			[results]
				chance="40"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,26,26,26,26,26"
			y="19,18,17,16,15,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="14,15,16,17,17"
			y="17,17,17,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="17"
				y="16"
			[/source]
			[destination]
				x="16"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="19502"
			[results]
				chance="70"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="5238"
			[results]
				chance="70"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,15"
			y="16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="16,15"
			y="16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="15"
				y="16"
			[/source]
			[destination]
				x="16"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="3919"
			[results]
				chance="40"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="4039"
			[results]
				chance="40"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="27961"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,18,17,16"
			y="18,17,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="16"
				y="16"
			[/source]
			[destination]
				x="16"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="18425"
			[results]
				chance="40"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="32395"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="11593"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="15"
				y="15"
			[/source]
			[destination]
				x="16"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="4646"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1260"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="16718"
			[results]
				chance="40"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="18089"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="165"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="8549"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,17"
			y="14,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="17"
				y="15"
			[/source]
			[destination]
				x="16"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="4737"
			[results]
				chance="40"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="23845"
			[results]
				chance="50"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="11832"
			[results]
				chance="40"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="24134"
			[results]
				chance="50"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="24601"
			[results]
				chance="40"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Rook69 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="16,16,16,16,16,15,14"
			y="22,21,20,19,18,18,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="14,15"
			y="17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,15,14"
			y="19,18,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,23,22,21,20"
			y="19,20,20,20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="0"
			x="19"
			y="20"
		[/recruit]
		[random]
			value="5035"
		[/random]
		[random]
			value="7721"
		[/random]
		[random]
			value="31464"
		[/random]
		[random]
			value="21169"
		[/random]
		[random]
			value="6456"
		[/random]
		[random]
			value="21554"
		[/random]
		[random]
			value="20229"
		[/random]
		[random]
			value="5366"
		[/random]
		[random]
			value="13017"
		[/random]
		[random]
			value="4407"
		[/random]
		[random]
			value="30838"
		[/random]
		[random]
			value="31841"
		[/random]
		[random]
			value="16794"
		[/random]
		[random]
			value="17708"
		[/random]
		[random]
			value="11826"
			[results]
				checksum="LhGI37qHcsJn9Niqer4mnRo6wD4zsHoKP1Hy+wP.,jg1d-5cL>71745hhbgk5n1,oc<nn6f23854.p3418om4H8bFWB0pjc+cZng<m8e6X68+vn>t55bKrqZdmOCaJmI"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="3"
			x="21"
			y="20"
		[/recruit]
		[random]
			value="3307"
		[/random]
		[random]
			value="848"
		[/random]
		[random]
			value="8775"
		[/random]
		[random]
			value="31645"
		[/random]
		[random]
			value="22237"
		[/random]
		[random]
			value="12678"
		[/random]
		[random]
			value="13763"
		[/random]
		[random]
			value="8209"
		[/random]
		[random]
			value="8456"
		[/random]
		[random]
			value="12204"
		[/random]
		[random]
			value="7062"
		[/random]
		[random]
			value="27396"
		[/random]
		[random]
			value="29482"
			[results]
				checksum="wIq0h4Aje6ZNhfnNl+7b,Ha4jCJxd>Z4D>emIBh6hCW2BmtJ8j1v.9xmODNURxriEsBIuurvENcQBQBPqyPrRxP5tBQME,Ezpfu49w6JQVkN94JBwVAIsdMAIZHHpExA"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="4"
			x="18"
			y="20"
		[/recruit]
		[random]
			value="21268"
		[/random]
		[random]
			value="8845"
		[/random]
		[random]
			value="2280"
		[/random]
		[random]
			value="11828"
		[/random]
		[random]
			value="28967"
		[/random]
		[random]
			value="7164"
		[/random]
		[random]
			value="23516"
		[/random]
		[random]
			value="18638"
		[/random]
		[random]
			value="29493"
		[/random]
		[random]
			value="31610"
		[/random]
		[random]
			value="31407"
		[/random]
		[random]
			value="27056"
		[/random]
		[random]
			value="30909"
			[results]
				checksum="fEAwEAF+1Gub.aUZJ5kiOGDqZxM8i-LoLYEs-E3jSJv0zT>8cpf6b>5Im2-i0051mfOa-a-d4,d8b>dr3-aeWym.7BZSugG6.eC5RE539gmeoJZ4jM-lYWmgBNCho0u4"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="1"
			x="19"
			y="21"
		[/recruit]
		[random]
			value="11625"
		[/random]
		[random]
			value="21538"
		[/random]
		[random]
			value="31374"
		[/random]
		[random]
			value="28083"
		[/random]
		[random]
			value="32378"
		[/random]
		[random]
			value="30001"
		[/random]
		[random]
			value="7892"
		[/random]
		[random]
			value="7620"
		[/random]
		[random]
			value="32216"
		[/random]
		[random]
			value="5538"
		[/random]
		[random]
			value="31271"
		[/random]
		[random]
			value="3358"
		[/random]
		[random]
			value="1557"
			[results]
				checksum="Dem>c1k,fFB3IPKDDy,IIVsrrz9qrFsKPmsAOVOPtQsRHOMGLquuPuNAtBx6AEqpsGOKxE8KFoBPRQNzSIM0NsInAEUrD<pd7wU07l,LsmkMRAyTOtHFLqpFUIIzsxsc"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,20"
			y="20,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="19,20,21,22,23"
			y="9,9,9,8,8"
		[/move]
	[/command]
	[command]
		[move]
			x="18,19,20,21,22,23,24"
			y="10,10,9,9,8,8,8"
		[/move]
	[/command]
	[command]
		[move]
			x="28,27,26,25,25,24"
			y="10,10,9,9,8,7"
		[/move]
	[/command]
	[command]
		[move]
			x="19,20,20,21,21,22"
			y="5,5,6,7,8,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="ps has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="16"
				y="15"
			[/source]
			[destination]
				x="17"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="10062"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="32206"
			[results]
				chance="40"
				damage="3"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="20,20,20,21,22,23"
			y="15,14,13,13,12,12"
		[/move]
	[/command]
	[command]
		[move]
			x="11,11,11,11"
			y="12,11,10,9"
		[/move]
	[/command]
	[command]
		[move]
			x="10,10,11,11,11"
			y="10,9,9,8,7"
		[/move]
	[/command]
	[command]
		[recruit]
			value="5"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="6696"
		[/random]
		[random]
			value="20533"
		[/random]
		[random]
			value="13247"
		[/random]
		[random]
			value="23740"
		[/random]
		[random]
			value="30947"
		[/random]
		[random]
			value="26952"
		[/random]
		[random]
			value="27388"
		[/random]
		[random]
			value="18663"
		[/random]
		[random]
			value="13058"
		[/random]
		[random]
			value="8780"
		[/random]
		[random]
			value="24589"
		[/random]
		[random]
			value="1688"
		[/random]
		[random]
			value="11135"
		[/random]
		[random]
			value="2913"
		[/random]
		[random]
			value="30567"
			[results]
				checksum="SU39RsIPnopbtoBBt5yPBdjCxIoyMyJsCAbPtOQpxQRNpnMsQGGGqEpPQwrEETo0BNqQDyBuEICFSQFuTGrqGMJbRBzNpHETGFOwJPvMPJFf8IBNyQOKRJUZDRgOWmID"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="5"
			x="17"
			y="5"
		[/recruit]
		[random]
			value="20581"
		[/random]
		[random]
			value="32138"
		[/random]
		[random]
			value="4798"
		[/random]
		[random]
			value="1381"
		[/random]
		[random]
			value="15896"
		[/random]
		[random]
			value="11196"
		[/random]
		[random]
			value="32394"
		[/random]
		[random]
			value="18973"
		[/random]
		[random]
			value="5601"
		[/random]
		[random]
			value="30671"
		[/random]
		[random]
			value="20549"
		[/random]
		[random]
			value="8789"
		[/random]
		[random]
			value="22339"
		[/random]
		[random]
			value="16078"
		[/random]
		[random]
			value="7709"
			[results]
				checksum="SU39RsCPnopbtoBBs5yPBdjCxIoyMyJsCAbPtOQpxQRNpnMsQGGGqEpPQwrEETo0BNqQDyBuEICFSQFuTGrqGGJbRBzNpHETGFOwJPvMPJFf8IBNyQOKRJUZDRgO-mID"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="18,18,18,18,18,18"
			y="4,5,6,7,8,9"
		[/move]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="28,28,28,28,28,27"
			y="11,12,13,14,15,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,26,25,25,24"
			y="14,15,16,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,19,19,19,19,19,19"
			y="20,19,18,17,16,15,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="17,18,19,20"
			y="15,14,15,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,21,20,19,19,19"
			y="20,19,18,18,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,18,18,18,18"
			y="20,19,18,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,19,19,19,19,19,19"
			y="21,20,19,18,17,16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,20"
			y="15,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="YAHG has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="17,18,19"
			y="16,15,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,14,13"
			y="15,14,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,12,11"
			y="14,14,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,14,13,12,11,10"
			y="16,15,15,14,15,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="16,15,14,13,12"
			y="16,16,15,15,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,15,15,14,13,13"
			y="17,16,15,14,14,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="adilson has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="14,14,14,13,12,12"
			y="17,16,15,15,14,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,18"
			y="15,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,20"
			y="19,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="17,16,15,14,13"
			y="5,5,6,6,7"
		[/move]
	[/command]
	[command]
		[move]
			x="19,18,17,16,15,14"
			y="5,4,5,5,6,6"
		[/move]
	[/command]
	[command]
		[move]
			x="24,25,26,27,28"
			y="7,7,6,6,5"
		[/move]
	[/command]
	[command]
		[move]
			x="23,23,22,22,21"
			y="12,11,10,9,9"
		[/move]
	[/command]
	[command]
		[move]
			x="18,18,18,18,18,18"
			y="9,8,7,6,5,4"
		[/move]
	[/command]
	[command]
		[move]
			x="22,21,20,19,18"
			y="8,9,9,10,9"
		[/move]
	[/command]
	[command]
		[move]
			x="24,23,22,21"
			y="8,8,8,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Yig has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="23,22,21,20"
			y="8,8,9,8"
		[/move]
	[/command]
	[command]
		[recruit]
			value="2"
			x="17"
			y="5"
		[/recruit]
		[random]
			value="21866"
		[/random]
		[random]
			value="18840"
		[/random]
		[random]
			value="29500"
		[/random]
		[random]
			value="5110"
		[/random]
		[random]
			value="2120"
		[/random]
		[random]
			value="22914"
		[/random]
		[random]
			value="1594"
		[/random]
		[random]
			value="24079"
		[/random]
		[random]
			value="16134"
		[/random]
		[random]
			value="7020"
		[/random]
		[random]
			value="7748"
		[/random]
		[random]
			value="19407"
		[/random]
		[random]
			value="26214"
		[/random]
		[random]
			value="7338"
		[/random]
		[random]
			value="22712"
			[results]
				checksum="<3n85mndU3eF0a,..P305kg7W0d6cpzj<c3>k7>a,+alX1ah,2Wi<0o.-bnee7bo56d2incd,4Z6occi46H-f-5057b>02aa.o6Z+40CN5c8b.<X,47J.7v3b3e4xt<3"
			[/results]
		[/random]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,10,10,10,10,10"
			y="14,13,12,11,10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="10"
				y="9"
			[/source]
			[destination]
				x="11"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="5377"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="18183"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="4883"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="12,12,12,12,11"
			y="13,12,11,10,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,13,12,11,10,9,9,10"
			y="13,12,11,11,10,10,9,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="10"
				y="8"
			[/source]
			[destination]
				x="11"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="18550"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="18211"
			[results]
				chance="50"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="30279"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="12393"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="24682"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,11,11,11,12,13,13,12"
			y="14,13,12,11,10,10,9,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="12"
				y="8"
			[/source]
			[destination]
				x="11"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="14163"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="28970"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="14733"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="27907"
			[results]
				chance="50"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="9599"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="22312"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="11"
				y="10"
			[/source]
			[destination]
				x="11"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="27410"
			[results]
				chance="60"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="28520"
			[results]
				chance="60"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="31290"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="16804"
			[results]
				chance="60"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="14330"
			[results]
				chance="60"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Amonkey has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="12,12,12,12,12,12"
			y="14,13,12,11,10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="12"
				y="9"
			[/source]
			[destination]
				x="11"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="31655"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="21708"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="10088"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,25,25,25,26,26"
			y="17,17,16,15,14,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="union19 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,21,21,22"
			y="14,14,13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Daniel_Snailx has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,20,20,20,20,21"
			y="16,15,14,13,12,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,20,20"
			y="14,13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,19,20,21"
			y="14,14,13,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,19,20,20,20"
			y="16,16,15,14,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="4"
			x="21"
			y="20"
		[/recruit]
		[random]
			value="4985"
		[/random]
		[random]
			value="18864"
		[/random]
		[random]
			value="6169"
		[/random]
		[random]
			value="31270"
		[/random]
		[random]
			value="19159"
		[/random]
		[random]
			value="6187"
		[/random]
		[random]
			value="17962"
		[/random]
		[random]
			value="15790"
		[/random]
		[random]
			value="18509"
		[/random]
		[random]
			value="13279"
		[/random]
		[random]
			value="29196"
		[/random]
		[random]
			value="2891"
		[/random]
		[random]
			value="233"
			[results]
				checksum="fEAwEAF+1Gub.aUZJ5kiOGDqZxM8i-LoLYEs-E3jSJv0zT>8cpf6b>5Im2-i0051mfOa-a-d4,d8b>dr3-aeWym.7BZSugG6.eC5RE539gmeoJZ4jM-lYWmgBNCho0u4"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="20,21,22"
			y="8,9,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Tyger_BR has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="28,27,26,25,24"
			y="5,6,6,7,7"
		[/move]
	[/command]
	[command]
		[move]
			x="21,22,22"
			y="9,8,7"
		[/move]
	[/command]
	[command]
		[move]
			x="17,16,15,14,13,13"
			y="5,5,6,6,7,8"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="13"
				y="8"
			[/source]
			[destination]
				x="12"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="6572"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="2059"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="5638"
			[results]
				chance="50"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="8403"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="32350"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="joshua has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="11,12"
			y="7,7"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="12"
				y="7"
			[/source]
			[destination]
				x="12"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="26932"
			[results]
				chance="50"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="11856"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="30315"
			[results]
				chance="50"
				damage="8"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="14,14,14,13"
			y="6,7,8,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="peter has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="13"
				y="9"
			[/source]
			[destination]
				x="12"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="11640"
			[results]
				chance="60"
				damage="12"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="13009"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="8794"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1315"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="13,13,12"
			y="7,8,8"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="12"
				y="8"
			[/source]
			[destination]
				x="12"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="10771"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1915"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="27275"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="27045"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="11"
				y="9"
			[/source]
			[destination]
				x="12"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="5404"
			[results]
				chance="60"
				damage="12"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="12287"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="13011"
			[results]
				chance="60"
				damage="12"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Peti has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[recruit]
			value="4"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="7137"
		[/random]
		[random]
			value="3192"
		[/random]
		[random]
			value="18654"
		[/random]
		[random]
			value="21789"
		[/random]
		[random]
			value="26685"
		[/random]
		[random]
			value="21176"
		[/random]
		[random]
			value="1379"
		[/random]
		[random]
			value="15869"
		[/random]
		[random]
			value="28052"
		[/random]
		[random]
			value="12560"
		[/random]
		[random]
			value="5254"
		[/random]
		[random]
			value="12882"
		[/random]
		[random]
			value="19096"
		[/random]
		[random]
			value="3640"
		[/random]
		[random]
			value="14766"
			[results]
				checksum="jfC5opl9mneud6314Hg106a+elObfd5dh>d-kgk5j40fd5c,laoh2>q4W68<jj1,,Bh1+4l10mji-+Ug681h64jGjKk7ELYl9YI95gAxGxnvPuSIVEH>yBMtLAwyHUER"
			[/results]
		[/random]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="10"
				y="9"
			[/source]
			[destination]
				x="11"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="21825"
			[results]
				chance="60"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="12091"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="26084"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="11"
				y="10"
			[/source]
			[destination]
				x="11"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="22470"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="32713"
			[results]
				chance="60"
				damage="12"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="2659"
			[results]
				chance="60"
				damage="7"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,11"
			y="8,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="11"
				y="9"
			[/source]
			[destination]
				x="12"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="3697"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="20038"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="22192"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,26,26,27,27"
			y="13,12,11,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,22,23,24,24,24"
			y="12,11,11,10,9,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="24"
				y="8"
			[/source]
			[destination]
				x="24"
				y="7"
			[/destination]
		[/attack]
		[random]
			value="16592"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="6887"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="19614"
			[results]
				chance="40"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="26076"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="11876"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="29449"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="22,22,23,24,24,25,25"
			y="12,11,11,10,9,9,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="25"
				y="8"
			[/source]
			[destination]
				x="24"
				y="7"
			[/destination]
		[/attack]
		[random]
			value="9960"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="5535"
			[results]
				chance="50"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="378"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="10596"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="3166"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="18406"
			[results]
				chance="50"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,19,19,19"
			y="12,12,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="19"
				y="10"
			[/source]
			[destination]
				x="18"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="9950"
			[results]
				chance="70"
				damage="12"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="12780"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,20,19,19,18"
			y="13,12,12,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="18"
				y="10"
			[/source]
			[destination]
				x="18"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="27656"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="30271"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="5336"
			[results]
				chance="50"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,21,22,23,23"
			y="13,12,11,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="23"
				y="10"
			[/source]
			[destination]
				x="22"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="22400"
			[results]
				chance="70"
				damage="12"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="10515"
			[results]
				chance="70"
				damage="12"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,20,20,21,21,22"
			y="15,14,13,13,12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,27"
			y="10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,27,27,27,27,27"
			y="16,15,14,13,12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,21,20,19,19,19"
			y="20,19,18,18,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="4"
			x="19"
			y="20"
		[/recruit]
		[random]
			value="1140"
		[/random]
		[random]
			value="21559"
		[/random]
		[random]
			value="28430"
		[/random]
		[random]
			value="9428"
		[/random]
		[random]
			value="17039"
		[/random]
		[random]
			value="30311"
		[/random]
		[random]
			value="5426"
		[/random]
		[random]
			value="9609"
		[/random]
		[random]
			value="6992"
		[/random]
		[random]
			value="16070"
		[/random]
		[random]
			value="6771"
		[/random]
		[random]
			value="30697"
		[/random]
		[random]
			value="1536"
			[results]
				checksum="fEAwEAF+1Gub.aUZJ5kiOGDqZxM8i-LoLYEs-E3jSJv0zT>8cpf6b>5Im2-i0051mfOa-a-d4,d8b>dr3-aeWym.7BZSugG6.eC5RE539gmeoJZ4jM-lYWmgBNCho0u4"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="18,18,19,20,20"
			y="9,8,8,8,9"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="20"
				y="9"
			[/source]
			[destination]
				x="19"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="23469"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="18327"
			[results]
				chance="60"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="19,19,19,18,18,18"
			y="5,6,7,7,8,9"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="18"
				y="9"
			[/source]
			[destination]
				x="19"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="18753"
			[results]
				chance="60"
				damage="12"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="28717"
			[results]
				chance="60"
				damage="12"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="laoye has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="K-man has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="12,13,13,13,12"
			y="7,8,9,10,10"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="12"
				y="10"
			[/source]
			[destination]
				x="11"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="32288"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="30722"
			[results]
				chance="60"
				damage="3"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[choose]
			value="0"
		[/choose]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="ParadiseCity has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="12,12,11,10,10"
			y="8,7,7,7,8"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="10"
				y="8"
			[/source]
			[destination]
				x="10"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="19601"
			[results]
				chance="60"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="10142"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="31262"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="9427"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="13,13,12,11,10"
			y="9,10,10,11,10"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="10"
				y="10"
			[/source]
			[destination]
				x="10"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="25059"
			[results]
				chance="60"
				damage="12"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="22785"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="15731"
			[results]
				chance="60"
				damage="12"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="13,13,12"
			y="8,9,9"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="12"
				y="9"
			[/source]
			[destination]
				x="11"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="2392"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="5335"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="28927"
			[results]
				chance="50"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="26203"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="31565"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="22,23"
			y="7,8"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="2"
			[source]
				x="23"
				y="8"
			[/source]
			[destination]
				x="24"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="18540"
			[results]
				chance="60"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="27900"
			[results]
				chance="60"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="21,22,23"
			y="8,8,9"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="2"
			[source]
				x="23"
				y="9"
			[/source]
			[destination]
				x="24"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="22225"
			[results]
				chance="60"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="21255"
			[results]
				chance="60"
				damage="10"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="hbobenicio has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="24"
				y="7"
			[/source]
			[destination]
				x="25"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="15119"
			[results]
				chance="50"
				damage="11"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="30225"
			[results]
				chance="40"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="19383"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="27358"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="9318"
			[results]
				chance="40"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="22,22,23,24"
			y="9,8,8,8"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="24"
				y="8"
			[/source]
			[destination]
				x="25"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="19267"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="17123"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="24075"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="16751"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="15457"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="4"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="31289"
		[/random]
		[random]
			value="2580"
		[/random]
		[random]
			value="17679"
		[/random]
		[random]
			value="1188"
		[/random]
		[random]
			value="9158"
		[/random]
		[random]
			value="24173"
		[/random]
		[random]
			value="4414"
		[/random]
		[random]
			value="4009"
		[/random]
		[random]
			value="21055"
		[/random]
		[random]
			value="2474"
		[/random]
		[random]
			value="31700"
		[/random]
		[random]
			value="23112"
		[/random]
		[random]
			value="25987"
		[/random]
		[random]
			value="16315"
		[/random]
		[random]
			value="11852"
			[results]
				checksum="6hs5opl9pneud6314Hg106a+elObfd5dh>d-kgk5j40fd5c,laoh2>q4W68<jj1,,Bh1+4l10mji0WUg681h64jGjKk7ELbfXlO69>IPFNIDBGnoCSO3srDyLKztBBJx"
			[/results]
		[/random]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Britishkid17 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="11"
				y="9"
			[/source]
			[destination]
				x="12"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="10156"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="13023"
			[results]
				chance="50"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="24403"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="14457"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="17186"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="22,22,22"
			y="11,10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="22"
				y="9"
			[/source]
			[destination]
				x="23"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="23191"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="5482"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="7231"
			[results]
				chance="50"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="4883"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="15860"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="23,24,25,25"
			y="10,10,10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="25"
				y="9"
			[/source]
			[destination]
				x="24"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="17320"
			[results]
				chance="70"
				damage="12"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,26,26,25"
			y="9,8,7,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="1"
			weapon="0"
			[source]
				x="25"
				y="7"
			[/source]
			[destination]
				x="24"
				y="7"
			[/destination]
		[/attack]
		[random]
			value="100"
			[results]
				chance="70"
				damage="12"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="18213"
			[results]
				chance="50"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="16390"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="12543"
			[results]
				chance="50"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="23165"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,27,26,25,24"
			y="11,10,9,9,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="2"
			weapon="1"
			[source]
				x="24"
				y="8"
			[/source]
			[destination]
				x="24"
				y="7"
			[/destination]
		[/attack]
		[random]
			value="24440"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="32261"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="20964"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="26636"
			[results]
				chance="60"
				damage="15"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="23309"
			[results]
				chance="40"
				damage="7"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,24"
			y="8,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="24"
				y="7"
			[/source]
			[destination]
				x="23"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="27888"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="14937"
			[results]
				chance="50"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="32627"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="13200"
			[results]
				chance="50"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="23005"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,18,17,17,16,15"
			y="10,11,12,13,13,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,20,20,20,20,21"
			y="16,15,14,13,12,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,19,19,19,19,19"
			y="20,19,18,17,16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="4"
			x="19"
			y="20"
		[/recruit]
		[random]
			value="8442"
		[/random]
		[random]
			value="2078"
		[/random]
		[random]
			value="10615"
		[/random]
		[random]
			value="23441"
		[/random]
		[random]
			value="29572"
		[/random]
		[random]
			value="3797"
		[/random]
		[random]
			value="2458"
		[/random]
		[random]
			value="4241"
		[/random]
		[random]
			value="15752"
		[/random]
		[random]
			value="14843"
		[/random]
		[random]
			value="8140"
		[/random]
		[random]
			value="27980"
		[/random]
		[random]
			value="5793"
			[results]
				checksum="fEAwEAF+1Gub.aUZJ5kiOGDqZxM8i-LoLYEs-E3jSJv0zT>8cpf6b>5Im2-i0051mfOa-a-d4,d8b>dr3-aeWym.7BZSugG6.eC5RE539gmeoJZ4jM-lYWmgBNCho0u4"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="3"
			x="18"
			y="20"
		[/recruit]
		[random]
			value="1150"
		[/random]
		[random]
			value="3610"
		[/random]
		[random]
			value="23081"
		[/random]
		[random]
			value="1218"
		[/random]
		[random]
			value="15448"
		[/random]
		[random]
			value="1126"
		[/random]
		[random]
			value="24831"
		[/random]
		[random]
			value="26966"
		[/random]
		[random]
			value="153"
		[/random]
		[random]
			value="18921"
		[/random]
		[random]
			value="8411"
		[/random]
		[random]
			value="8914"
		[/random]
		[random]
			value="27192"
			[results]
				checksum="wIq0h4Aje6ZNhfnNl+7b,Ha4jCJxd>Z4D>emIBh6hCW2BmtJ8j1v.9xmODNURxriEsBIuurvENcQBQBPqyPrRxP5tBQME,Ezpfu49w6JQVkN94JBwVAIsdMAIZHHpExA"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="12,11"
			y="10,10"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="11"
				y="10"
			[/source]
			[destination]
				x="11"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="11150"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="28326"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="18934"
			[results]
				chance="50"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="6425"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="15822"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="10"
				y="8"
			[/source]
			[destination]
				x="11"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="5524"
			[results]
				chance="50"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="15006"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="31458"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="30404"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="17860"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="too has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="10,9,9,9,10,11"
			y="10,10,9,8,7,8"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="11"
				y="8"
			[/source]
			[destination]
				x="11"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="25474"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="8662"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="2855"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="31897"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1800"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="12,13,13,13,13,12"
			y="9,9,8,7,6,5"
		[/move]
	[/command]
	[command]
		[move]
			x="23,23"
			y="8,7"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="23"
				y="7"
			[/source]
			[destination]
				x="24"
				y="7"
			[/destination]
		[/attack]
		[random]
			value="20358"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="16430"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="31449"
			[results]
				chance="50"
				damage="6"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="19,20,21,21,22,23"
			y="5,5,6,7,7,8"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="23"
				y="8"
			[/source]
			[destination]
				x="24"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="1805"
			[results]
				chance="60"
				damage="5"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="23,23,24"
			y="9,8,7"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="2"
			[source]
				x="24"
				y="7"
			[/source]
			[destination]
				x="25"
				y="7"
			[/destination]
		[/attack]
		[random]
			value="13201"
			[results]
				chance="50"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="31286"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="17842"
			[results]
				chance="50"
				damage="7"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="18,18"
			y="9,10"
		[/move]
	[/command]
	[command]
		[move]
			x="18,18"
			y="10,9"
		[/move]
	[/command]
	[command]
		[move]
			x="20,20,21,22,23,24"
			y="9,8,8,7,8,8"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="24"
				y="8"
			[/source]
			[destination]
				x="25"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="10635"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="5453"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="5"
			x="19"
			y="5"
		[/recruit]
		[random]
			value="4364"
		[/random]
		[random]
			value="23192"
		[/random]
		[random]
			value="12584"
		[/random]
		[random]
			value="20878"
		[/random]
		[random]
			value="2829"
		[/random]
		[random]
			value="14765"
		[/random]
		[random]
			value="23271"
		[/random]
		[random]
			value="29852"
		[/random]
		[random]
			value="24897"
		[/random]
		[random]
			value="6195"
		[/random]
		[random]
			value="15912"
		[/random]
		[random]
			value="26519"
		[/random]
		[random]
			value="26191"
		[/random]
		[random]
			value="21067"
		[/random]
		[random]
			value="2656"
			[results]
				checksum="SU39RsJPnopbtoBBt5yPBdjCxIoyMyJsCAbPtOQpxQRNpnMsQGGGqEpPQwrEETo0BNqQDyBuEICFSQFuTGrqGNJbRBzNpHETGFOwJPvMPJFf8IBNyQOKRJUZDRgO-mID"
			[/results]
		[/random]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,19,19,19,19,19"
			y="20,20,19,18,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,14,13,12,11"
			y="14,14,15,14,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,22,23,23,24"
			y="12,11,11,10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="24"
				y="9"
			[/source]
			[destination]
				x="24"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="32476"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="29158"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="14983"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="22,23"
			y="9,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="23"
				y="9"
			[/source]
			[destination]
				x="23"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="3491"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="19124"
			[results]
				chance="50"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="29777"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="7473"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="740"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,26,26,27,27,28"
			y="9,8,7,7,6,5"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,20,20,21,22"
			y="15,14,13,13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,19,19,19,19,19"
			y="20,19,18,17,16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="4"
			x="19"
			y="20"
		[/recruit]
		[random]
			value="4132"
		[/random]
		[random]
			value="26115"
		[/random]
		[random]
			value="20901"
		[/random]
		[random]
			value="20847"
		[/random]
		[random]
			value="10928"
		[/random]
		[random]
			value="29440"
		[/random]
		[random]
			value="17414"
		[/random]
		[random]
			value="8325"
		[/random]
		[random]
			value="29699"
		[/random]
		[random]
			value="30605"
		[/random]
		[random]
			value="2067"
		[/random]
		[random]
			value="1409"
		[/random]
		[random]
			value="16104"
			[results]
				checksum="fEAwEAF+1Gub.aUZJ5kiOGDqZxM8i-LoLYEs-E3jSJv0zT>8cpf6b>5Im2-i0051mfOa-a-d4,d8b>dr3-aeWym.7BZSugG6.eC5RE539gmeoJZ4jM-lYWmgBNCho0u4"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="11"
				y="9"
			[/source]
			[destination]
				x="11"
				y="10"
			[/destination]
		[/attack]
		[random]
			value="14706"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="14117"
			[results]
				chance="50"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="27373"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="4732"
			[results]
				chance="50"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="6361"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="10683"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="11"
				y="10"
			[/source]
			[destination]
				x="11"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="31919"
			[results]
				chance="50"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="719"
			[results]
				chance="60"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="25568"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="21164"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="24120"
			[results]
				chance="60"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="12,12,12,12"
			y="5,6,7,8"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="2"
			[source]
				x="12"
				y="8"
			[/source]
			[destination]
				x="11"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="12906"
			[results]
				chance="50"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="4847"
			[results]
				chance="60"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="29795"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="19748"
			[results]
				chance="60"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="28298"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="11"
				y="8"
			[/source]
			[destination]
				x="11"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="5521"
			[results]
				chance="50"
				damage="3"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="10,11"
			y="8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="23,24,25,26,27,28"
			y="8,7,7,7,7,6"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="28"
				y="6"
			[/source]
			[destination]
				x="28"
				y="5"
			[/destination]
		[/attack]
		[random]
			value="30836"
			[results]
				chance="40"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="20103"
			[results]
				chance="40"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="24,24,25,26,27"
			y="8,7,7,6,6"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="0"
			[source]
				x="27"
				y="6"
			[/source]
			[destination]
				x="28"
				y="5"
			[/destination]
		[/attack]
		[random]
			value="17509"
			[results]
				chance="40"
				damage="7"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Eskon has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="19,20,21,21,22,23"
			y="5,5,6,7,7,8"
		[/move]
	[/command]
	[command]
		[move]
			x="23,22,21,21,22"
			y="7,7,8,9,9"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="-1"
			weapon="2"
			[source]
				x="22"
				y="9"
			[/source]
			[destination]
				x="23"
				y="9"
			[/destination]
		[/attack]
		[random]
			value="20069"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="7892"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="windfish has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Mykell has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[move]
			x="23,24,25,26,26,26"
			y="9,9,10,10,11,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,25,26,26,26,26"
			y="9,10,10,11,12,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="22,21"
			y="12,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,20,20,20"
			y="13,13,14,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,18,17"
			y="15,15,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,18,17"
			y="16,15,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,19,19,19,20"
			y="20,19,18,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,11,12,13,13,14"
			y="14,15,15,16,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="1"
			x="19"
			y="20"
		[/recruit]
		[random]
			value="26163"
		[/random]
		[random]
			value="1981"
		[/random]
		[random]
			value="3065"
		[/random]
		[random]
			value="8749"
		[/random]
		[random]
			value="7821"
		[/random]
		[random]
			value="13667"
		[/random]
		[random]
			value="12843"
		[/random]
		[random]
			value="2150"
		[/random]
		[random]
			value="11946"
		[/random]
		[random]
			value="21746"
		[/random]
		[random]
			value="6928"
		[/random]
		[random]
			value="20805"
		[/random]
		[random]
			value="15021"
			[results]
				checksum="Dem>c1k,fFB3IPKDDy,IIVsrrz9qrFsKPmsAOVOPtQsRHOMGLquuPuNAtBx6AEqpsGOKxE8KFoBPRQNzSIM0NsInAEUrD<pd7wU07l,LsmkMRAyTOtHFLqpFUIIzsxsc"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[countdown_update]
			team="2"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		sent="yes"
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		[move]
			x="28,28"
			y="6,5"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Hilquias has left the game."
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Frankenstein takes control of side 2."
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Frankenstein droids side 2."
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Eskon has logged into the lobby"
		[/speak]
	[/command]
[/replay]
[snapshot]
	campaign_type="multiplayer"
	completion="running"
	current_tod="2"
#textdomain wesnoth-multiplayer
	description=_ "The Freelands, also known to the people of the far east as The Land of No Kings, lie in between the Wilderlands and the Kingdom of Carorath, separating a land of absolute law from a land of absolute savagery. The people of the Freelands have been battling would-be conquerors of their land for hundreds of years, repelling great beasts from their western borders, and Carorathian Imperialists from their eastern borders."
	difficulty="NORMAL"
	end_text_duration="0"
	experience_modifier="70"
	hash="AZpjPHK9RkU0>,MQ5rgweyP<JzghTihOJuI7sg1ofROR9BWAOxx4eNCrLCAawpGy1PNS9jQpzls8f-x>JH6Z+AjIQoLdwN-L<ur6gO9uHgd>jKtxiiu590Q8hM4gox7."
	id="multiplayer_The_Freelands"
	label="2p - The Freelands"
	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   , Mm^Xm       , _off^_usr   , Hh          , _off^_usr   , Gg^Fet      , _off^_usr   , Gs^Fp       , _off^_usr   , Mm          , _off^_usr   , Ww          , _off^_usr   , Ww          , _off^_usr   , Ggf         , _off^_usr   , Hh          , _off^_usr   , 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   , Mm^Xm       , Mm          , Mm^Xm       , Hh          , Gg^Ve       , Gs^Fp       , Hh          , Gg^Uf       , Gs^Fms      , Hh          , Wwf         , Wwf         , Ww          , Ww          , Ss^Vhs      , Gg          , Gs^Fp       , Gs^Fp       , Mm          , Hh^Uf       , Ggf         , Ss          , Gs^Fp       , _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         , Mm          , Hh          , Mm^Xm       , Mm          , Ggf         , Gg          , Gg          , Gg          , Ggf         , Rr          , Wwf         , Ch          , Wwf         , Ch          , Hh          , Gg          , Gg          , Gg          , Ss          , Gs^Fms      , Hh          , Gg          , Gg^Uf       , Gs^Fms      , Wwf         , Hh          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Gs^Fp       , Hh          , Wwf         , Gs^Fms      , Gs^Fp       , Gg^Uf       , Gg          , Gg          , Gg          , Gg          , Mm          , Rr          , Wwf         , Wwf         , Kh          , 1 Kh        , Ch          , Gg          , Gg          , Gg          , Ss          , Gg          , Gg          , Gg          , Hh          , Gg          , Wwf         , Wwf         , Gg^Fet      , Hh          , Mm          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Gg          , Gg          , Wwf         , Wwf         , Ss^Vhs      , Gg          , Gg          , Gg          , Gg^Vh       , Gs^Fp       , Wwf         , Wwf         , Gg          , Ch          , Rr          , Ch          , Rr          , Gg          , Gs^Fp       , Ss          , Mm          , Ss          , Ss          , Gg          , Ss^Vhs      , Gs^Fp       , Wwf         , Wwf         , Wwf         , Wwf         , Wwf         , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Wwf         , Wwf         , Hh          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Wwf         , Gg          , Gs^Fp       , Gg          , Gg          , Rr          , Rr          , Gg          , Ss          , Hh          , Gs^Fp       , Hh^Uf       , Gs^Fp       , Gg          , Wwf         , Wwf         , Gg          , Gg          , Ggf         , Wwf         , Mm^Xm       , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Wwf         , Gs^Fms      , Mm^Xm       , Gs^Fp       , Mm          , Ggf         , Wwf         , Wwf         , Wwf         , Wwf         , Gs^Fp       , Mm^Xm       , Mm^Xm       , Mm^Xm       , Hh          , Rr          , Gg          , Gg          , Gg          , Ggf         , Gg^Ve       , Hh          , Gg          , Wwf         , Wwf         , Wwf         , Gg          , Gg          , Hh          , Gs^Fms      , Mm^Xm       , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Wwf         , Mm          , Gg^Uf       , Mm^Xm       , Hh          , Wwf         , Gg          , Gg          , Gg          , Gg          , Mm          , Hh^Uf       , Hh^Uf       , Mm^Xm       , Hh          , Rr          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Wwf         , Wwf         , Gg          , Gg          , Gg          , Gg^Uf       , Mm^Xm       , Mm^Xm       , Mm          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Wwf         , Gs^Fp       , Gg          , Ggf         , Wwf         , Wwf         , Gg          , Gg^Ve       , Gg          , Gg          , Hh          , Mm^Xm       , Gs^Fp       , Gs^Fp       , Hh^Vhh      , Rr          , Hh          , Hh          , Mm          , Gg^Fet      , Gg          , Gg          , Wwf         , Wwf         , Gg          , Gg          , Gg          , Hh          , Mm          , Mm^Xm       , Mm          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Gs^Fms      , Wwf         , Wwf         , Wwf         , Hh          , Gg          , Gg          , Gg          , Gg          , Gg          , Gs^Fp       , Mm^Xm       , Mm^Xm       , Hh          , Gg          , Rr          , Rr          , Gs^Fp       , Hh          , Hh          , Wwf         , Wwf         , Wwf         , Chr         , Chr         , Hh          , Gg          , Ggf         , Hh          , Mm^Xm       , Mm^Xm       , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Hh          , Gg          , Wwf         , Mm          , Gs^Fp       , Gg          , Rr          , Gg          , Ggf         , Gg^Uf       , Mm^Xm       , Mm^Xm       , Mm          , Gs^Fp       , Gg          , Gg          , Wo          , Wo          , Wwf         , Wwf         , Mm^Xm       , Hh          , Gg          , Chw         , Wwf         , Gg^Fet      , Wwf         , Gg          , Gg          , Gs^Fp       , Gs^Fms      , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Wwf         , Wwf         , Wwf         , Hh          , Rr          , Rr          , Rr          , Gg          , Gg          , Gs^Fp       , Mm^Xm       , Mm^Xm       , Hh          , Gg          , Gg          , Ww          , Gg          , Gg          , Hh          , Rr          , Mm^Xm       , Mm          , Gg          , Rr          , Rr          , Wwf         , Rr          , Wwf         , Wwf         , Gg          , Wwf         , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Gg^Fet      , Gg          , Gg          , Wwf         , Wwf         , Wwf         , Wwf         , Rr          , Gg          , Mm          , Mm^Xm       , Rr          , Wwf         , Gg          , Wo          , Ww          , Gg          , Gg          , Mm          , Mm^Xm       , Mm^Xm       , Gs^Fms      , Gg          , Gg          , Rr          , Rr          , Gs^Fms      , Hh          , Wwf         , Wwf         , Hh          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Mm^Xm       , Gs^Fp       , Hh          , Gg          , Gg          , Gs^Fp       , Chr         , Chw         , Wwf         , Hh          , Wwf         , Wwf         , Hh          , Wo          , Rr          , Gg          , Gg          , Gs^Fp       , Mm^Xm       , Mm^Xm       , Gs^Fp       , Gg^Uf       , Gg          , Gg          , Gg          , Gg          , Hh          , Mm          , Wwf         , Gg          , Gs^Fp       , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Mm          , Mm^Xm       , Mm          , Ggf         , Gg          , Hh          , Gg          , Chr         , Wwf         , Wwf         , Gg          , Hh          , Mm          , Gg^Fet      , Hh          , Rr          , Hh^Vhh      , Hh          , Gs^Fp       , Mm^Xm       , Hh          , Ggf         , Gg          , Gg          , Gg          , Gg          , Wwf         , Wwf         , Gg          , Wwf         , Wwf         , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Mm          , Mm^Xm       , Mm^Xm       , Hh          , Ggf         , Gg          , Gg          , Wwf         , Wwf         , Gg          , Gg          , Gs^Fp       , Gg          , Hh          , Gg          , Rr          , Hh          , Gs^Fp       , Hh^Uf       , Mm^Xm       , Mm          , Gg          , Gg          , Gg^Ve       , Gg          , Wwf         , Hh          , Gg          , Gg^Uf       , Gg^Fet      , Wwf         , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Mm^Xm       , Mm^Xm       , Hh          , Gg^Uf       , Gg          , Gg          , Wwf         , Wwf         , Gg          , Gg          , Gg^Ve       , Gg          , Gg          , Gg          , Gg          , Rr          , Hh          , Mm^Xm       , Mm^Xm       , Hh^Uf       , Gs^Fp       , Gg          , Wwf         , Gg          , Wwf         , Wwf         , Mm          , Mm^Xm       , Mm^Xm       , Mm          , Wwf         , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Mm^Xm       , Gs^Fms      , Ggf         , Gg          , Gg          , Wwf         , Wwf         , Wwf         , Gs^Fms      , Hh          , Gs^Fp       , Ggf         , Ss          , Gg          , Rr          , Rr          , Gg          , Mm^Xm       , Gs^Fp       , Mm^Xm       , Wwf         , Wwf         , Gg          , Wwf         , Gg          , Gg          , Gg          , Gs^Fp       , Hh          , Gs^Fms      , Wwf         , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Wwf         , Wwf         , Wwf         , Gg          , Wwf         , Wwf         , Ss^Vhs      , Gg          , Ss          , Hh^Uf       , Mm          , Hh          , Gs^Fp       , Gg          , Rr          , Rr          , Rr          , Gg          , Gg          , Gg          , Wwf         , Gg          , Gg^Vh       , Gg          , Gg          , Gg          , Ss^Vhs      , Gg          , Wwf         , Wwf         , Gg          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Hh          , Wwf         , Gs^Fp       , Wwf         , Wwf         , Gs^Fp       , Hh          , Gg          , Gg          , Ss          , Ss          , Ss          , Gg          , Gg          , Ch          , Ch          , Kh          , Ch          , Wwf         , Wwf         , Mm          , Gs^Fms      , Gg          , Gg          , Gg          , Ggf         , Gs^Fp       , Wwf         , Wwf         , Gg          , Gs^Fp       , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Mm          , Hh          , Wwf         , Gs^Fms      , Gg          , Gg          , Gg          , Gs^Fp       , Gg          , Gg          , Gg          , Gg          , Gg          , Ch          , 2 Kh        , Ch          , Wwf         , Rr          , Rr          , Gg          , Gg          , Gg          , Gg          , Gs^Fp       , Gg^Uf       , Hh          , Gs^Fp       , Wwf         , 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   , Wwf         , Gs^Fp       , Gg^Uf       , Ggf         , Hh          , Mm          , Ss          , Gs^Fp       , Gg          , Ss^Vhs      , Hh          , Ww          , Wwf         , Wwf         , Wwf         , Hh          , Gg          , Ggf         , Gg          , Gg^Ve       , Ggf         , Mm^Xm       , 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   , Ss          , Mm          , Hh          , Gs^Fp       , Hh^Uf       , Ggf         , Ggf         , Ww          , Ww          , Ww          , Wwf         , Mm          , Gs^Fp       , Gs^Fp       , Gg^Uf       , Gs^Fp       , Gg^Fet      , Hh          , Hh          , 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   , _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   
"
	mp_countdown="yes"
	mp_countdown_action_bonus="20"
	mp_countdown_init_time="270"
	mp_countdown_reservoir_time="270"
	mp_countdown_turn_bonus="200"
	mp_fog="yes"
	mp_shroud="no"
	mp_use_map_settings="yes"
	mp_village_gold="2"
	name=_ "2p - The Freelands"
	next_underlying_unit_id="52"
#textdomain wesnoth
	objectives=_ "Victory:
@Defeat enemy leader(s)"
	observer="yes"
	playing_team="0"
	random_calls="0"
	random_seed="7026"
	random_start_time="no"
	snapshot="yes"
	turn_at="21"
	turns="-1"
	unit_wml_ids="Dark Adept,Dark Sorcerer,Ghost,Ghoul,Orcish Archer,Orcish Crossbowman,Orcish Grunt,Orcish Warrior,Skeleton,Skeleton Archer,Troll Whelp,Walking Corpse,Wolf Rider,Wraith,era_events"
	version="1.6"
	[side]
		action_bonus_count="1"
		aggression="0.5"
		allow_player="yes"
		caution="0.25"
		colour="1"
		controller="human"
		countdown_time="258797"
		current_player="Frankenstein"
		disallow_observers="no"
		fog="yes"
		global_recruitment_pattern="fighter,fighter,fighter,mixed fighter,archer,scout"
		gold="24"
		hidden="no"
		id="Frankenstein1"
		income="0"
		leader_value="3"
		name="Frankenstein"
		no_leader="yes"
		number_of_possible_recruits_to_force_recruit="3.1"
		objectives=_ "Victory:
@Defeat enemy leader(s)"
		objectives_changed="no"
		recruit="Goblin Spearman,Naga Fighter,Orcish Archer,Orcish Assassin,Orcish Grunt,Troll Whelp,Wolf Rider"
		recruitment_pattern="fighter,fighter,fighter,mixed fighter,archer,scout"
		save_id="Frankenstein1"
		share_maps="no"
		share_view="yes"
		shroud="no"
		side="1"
		start_gold="100"
		team_name="north"
#textdomain wesnoth-multiplayer
		user_team_name=_ "teamname^North"
		village_gold="2"
		village_value="1"
		villages_per_scout="8"
		[ai]
			recruitment_pattern="fighter,fighter,fighter,mixed fighter,archer,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]
		[village]
			x="8"
			y="5"
		[/village]
		[village]
			x="11"
			y="9"
		[/village]
		[village]
			x="12"
			y="2"
		[/village]
		[village]
			x="12"
			y="5"
		[/village]
		[village]
			x="18"
			y="9"
		[/village]
		[village]
			x="22"
			y="2"
		[/village]
		[village]
			x="24"
			y="7"
		[/village]
		[village]
			x="28"
			y="5"
		[/village]
		[unit]
			advances_to="Orcish Warlord"
			alignment="chaotic"
			allow_changes="yes"
			allow_player="yes"
			alpha="256"
			attacks_left="1"
			canrecruit="yes"
			colour="1"
			controller="human"
			cost="26"
			current_player="Frankenstein"
			die_sound="orc-die-1.ogg,orc-die-2.ogg,orc-die-3.ogg"
			experience="0"
			facing="n"
			flag_rgb="magenta"
			flying="no"
			fog="yes"
			gender="male"
			gold="100"
			goto_x="-999"
			goto_y="-999"
			hitpoints="58"
			id="Frankenstein1"
			image="units/orcs/warrior.png"
			income="0"
#textdomain wesnoth-units
			language_name=_ "Orcish Warrior"
			leader="Orcish Warrior,Troll,Troll Rocklobber,Orcish Crossbowman,Orcish Slayer"
			level="2"
			max_attacks="1"
			max_experience="42"
			max_hitpoints="58"
			max_moves="5"
			movement="5"
			movement_type="orcishfoot"
			moves="5"
			mp_countdown="yes"
			mp_countdown_action_bonus="20"
			mp_countdown_init_time="270"
			mp_countdown_reservoir_time="270"
			mp_countdown_turn_bonus="200"
			name="Frankenstein"
			profile="portraits/orcs/warlord4.png"
			race="orc"
			random_traits="no"
			recruit="Orcish Grunt,Troll Whelp,Wolf Rider,Orcish Archer,Orcish Assassin,Naga Fighter,Goblin Spearman"
			resting="yes"
			save_id="Frankenstein1"
			share_maps="no"
			share_view="yes"
			shroud="no"
			side="1"
			team_name="north"
			terrain_liked="Hh, Ha, Mm, Ss"
			type="Orcish Warrior"
			underlying_id="1"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			user_team_name="wesnoth-multiplayerteamname^North"
			village_gold="2"
			x="18"
			y="4"
			zoc="yes"
			[defense]
				castle="40"
				cave="60"
				deep_water="80"
				flat="60"
				forest="50"
				frozen="80"
				fungus="60"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="2"
				fungus="3"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="2"
				shallow_water="3"
				swamp_water="3"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="100"
				blade="100"
				cold="100"
				fire="100"
				impact="100"
				pierce="100"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="10"
				description=_ "greatsword"
				icon="attacks/greatsword-orcish.png"
				name="greatsword"
				number="3"
				range="melee"
				type="blade"
			[/attack]
			[modifications]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Orcish Crossbowman"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="14"
			die_sound="orc-small-die-1.ogg,orc-small-die-2.ogg"
			ellipse="misc/ellipse"
			experience="20"
			facing="ne"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="25"
			id="Orcish Archer-31"
			image="units/orcs/archer.png"
			language_name=_ "Orcish Archer"
			level="1"
			max_attacks="1"
			max_experience="21"
			max_hitpoints="38"
			max_moves="5"
			movement="5"
			movement_type="orcishfoot"
			moves="5"
			name="Punk"
			race="orc"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="1"
			type="Orcish Archer"
			undead_variation="archer"
			underlying_id="31"
			unrenamable="no"
			upkeep="full"
			usage="archer"
			x="22"
			y="9"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="bow"
					type="fire"
				[/filter_attack]
				[if]
					hits="yes"
					[missile_frame]
						begin="-150"
						end="0"
						image="projectiles/missile-fire-n.png"
						image_diagonal="projectiles/missile-fire-ne.png"
						offset="0~0.8"
					[/missile_frame]
					[missile_frame]
						begin="0"
						end="75"
						image="projectiles/fire-burst-small-1.png"
						image_diagonal="projectiles/fire-burst-small-1.png"
						offset="0.8"
					[/missile_frame]
					[missile_frame]
						begin="75"
						end="150"
						image="projectiles/fire-burst-small-2.png"
						image_diagonal="projectiles/fire-burst-small-2.png"
						offset="0.83"
					[/missile_frame]
					[missile_frame]
						begin="150"
						end="225"
						image="projectiles/fire-burst-small-3.png"
						image_diagonal="projectiles/fire-burst-small-3.png"
						offset="0.86"
					[/missile_frame]
					[missile_frame]
						begin="225"
						end="300"
						image="projectiles/fire-burst-small-4.png"
						image_diagonal="projectiles/fire-burst-small-4.png"
						offset="0.89"
					[/missile_frame]
					[missile_frame]
						begin="300"
						end="375"
						image="projectiles/fire-burst-small-5.png"
						image_diagonal="projectiles/fire-burst-small-5.png"
						offset="0.92"
					[/missile_frame]
					[missile_frame]
						begin="375"
						end="450"
						image="projectiles/fire-burst-small-6.png"
						image_diagonal="projectiles/fire-burst-small-6.png"
						offset="0.95"
					[/missile_frame]
					[missile_frame]
						begin="450"
						end="525"
						image="projectiles/fire-burst-small-7.png"
						image_diagonal="projectiles/fire-burst-small-7.png"
						offset="0.98"
					[/missile_frame]
					[missile_frame]
						begin="525"
						end="600"
						image="projectiles/fire-burst-small-8.png"
						image_diagonal="projectiles/fire-burst-small-8.png"
						offset="1.0"
					[/missile_frame]
					[frame]
						begin="-400"
						end="-350"
						image="units/orcs/archer-ranged-1.png"
						sound="bow-puny-fire.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[missile_frame]
						begin="-150"
						end="0"
						image="projectiles/missile-fire-n.png"
						image_diagonal="projectiles/missile-fire-ne.png"
					[/missile_frame]
					[frame]
						begin="-400"
						end="-350"
						image="units/orcs/archer-ranged-1.png"
						sound="bow-puny-fire-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-350"
					end="-300"
					image="units/orcs/archer-ranged-2.png"
				[/frame]
				[frame]
					begin="-300"
					end="-250"
					image="units/orcs/archer-ranged-3.png"
				[/frame]
				[frame]
					begin="-250"
					end="-100"
					image="units/orcs/archer-ranged-4.png"
				[/frame]
				[frame]
					begin="-100"
					end="-50"
					image="units/orcs/archer-ranged-5.png"
				[/frame]
				[frame]
					begin="-50"
					end="100"
					image="units/orcs/archer-ranged-6.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="bow"
					type="pierce"
				[/filter_attack]
				[missile_frame]
					begin="-150"
					end="0"
					image="projectiles/missile-n.png"
					image_diagonal="projectiles/missile-ne.png"
				[/missile_frame]
				[if]
					hits="yes"
					[frame]
						begin="-400"
						end="-350"
						image="units/orcs/archer-ranged-1.png"
						sound="bow-puny.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-400"
						end="-350"
						image="units/orcs/archer-ranged-1.png"
						sound="bow-puny-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-350"
					end="-300"
					image="units/orcs/archer-ranged-2.png"
				[/frame]
				[frame]
					begin="-300"
					end="-250"
					image="units/orcs/archer-ranged-3.png"
				[/frame]
				[frame]
					begin="-250"
					end="-100"
					image="units/orcs/archer-ranged-4.png"
				[/frame]
				[frame]
					begin="-100"
					end="-50"
					image="units/orcs/archer-ranged-5.png"
				[/frame]
				[frame]
					begin="-50"
					end="100"
					image="units/orcs/archer-ranged-6.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="dagger"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-175"
					image="units/orcs/archer-melee-01.png"
				[/frame]
				[frame]
					begin="-175"
					end="-150"
					image="units/orcs/archer-melee-02.png"
				[/frame]
				[frame]
					begin="-150"
					end="-125"
					image="units/orcs/archer-melee-03.png"
				[/frame]
				[frame]
					begin="-125"
					end="-100"
					image="units/orcs/archer-melee-04.png"
				[/frame]
				[frame]
					begin="-100"
					end="-75"
					image="units/orcs/archer-melee-05.png"
				[/frame]
				[if]
					hits="no"
					[frame]
						begin="-75"
						end="-50"
						image="units/orcs/archer-melee-06.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-75"
						end="-50"
						image="units/orcs/archer-melee-06.png"
						sound="dagger-swish.wav"
					[/frame]
				[/else]
				[frame]
					begin="-50"
					end="-25"
					image="units/orcs/archer-melee-07.png"
				[/frame]
				[frame]
					begin="-25"
					end="0"
					image="units/orcs/archer-melee-08.png"
				[/frame]
				[frame]
					begin="0"
					end="25"
					image="units/orcs/archer-melee-09.png"
				[/frame]
				[frame]
					begin="25"
					end="50"
					image="units/orcs/archer-melee-10.png"
				[/frame]
				[frame]
					begin="50"
					end="75"
					image="units/orcs/archer-melee-11.png"
				[/frame]
				[frame]
					begin="75"
					end="100"
					image="units/orcs/archer-melee-12.png"
				[/frame]
				[frame]
					begin="100"
					end="125"
					image="units/orcs/archer-melee-13.png"
				[/frame]
				[frame]
					begin="125"
					end="150"
					image="units/orcs/archer-melee-14.png"
				[/frame]
				[frame]
					begin="150"
					end="175"
					image="units/orcs/archer-melee-15.png"
				[/frame]
				[frame]
					begin="175"
					end="200"
					image="units/orcs/archer-melee-16.png"
				[/frame]
				[frame]
					begin="200"
					end="225"
					image="units/orcs/archer-melee-17.png"
				[/frame]
			[/attack_anim]
			[death]
				[frame]
					begin="0"
					end="55"
					image="units/orcs/archer-death-1.png"
				[/frame]
				[frame]
					begin="55"
					end="110"
					image="units/orcs/archer-death-2.png"
				[/frame]
				[frame]
					begin="110"
					end="165"
					image="units/orcs/archer-death-3.png"
				[/frame]
				[frame]
					begin="165"
					end="220"
					image="units/orcs/archer-death-4.png"
				[/frame]
				[frame]
					begin="220"
					end="275"
					image="units/orcs/archer-death-5.png"
				[/frame]
				[frame]
					begin="275"
					end="330"
					image="units/orcs/archer-death-6.png"
				[/frame]
				[frame]
					begin="330"
					end="385"
					image="units/orcs/archer-death-7.png"
				[/frame]
				[frame]
					begin="385"
					end="440"
					image="units/orcs/archer-death-8.png"
				[/frame]
				[frame]
					begin="440"
					end="500"
					image="units/orcs/archer-death-9.png"
				[/frame]
			[/death]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/orcs/archer.png"
				[/frame]
				[frame]
					duration="100"
					image="units/orcs/archer-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/orcs/archer-defend.png"
						sound="orc-small-hit-1.ogg,orc-small-hit-2.ogg,orc-small-hit-3.ogg,orc-small-hit-4.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/orcs/archer-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/orcs/archer.png"
				[/frame]
			[/defend]
			[idle_anim]
				[filter]
					[not]
						[filter_wml]
							[status]
								poisoned="yes"
							[/status]
						[/filter_wml]
					[/not]
				[/filter]
				[filter]
					[filter_adjacent]
						count="0"
						is_enemy="yes"
					[/filter_adjacent]
				[/filter]
				[frame]
					begin="0"
					end="100"
					image="units/orcs/archer-idle-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/orcs/archer-idle-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/orcs/archer-idle-3.png"
				[/frame]
				[frame]
					begin="300"
					end="500"
					image="units/orcs/archer-idle-6.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/orcs/archer-idle-4.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/orcs/archer-idle-3.png"
				[/frame]
				[frame]
					begin="700"
					end="900"
					image="units/orcs/archer-idle-6.png"
				[/frame]
				[frame]
					begin="900"
					end="1000"
					image="units/orcs/archer-idle-4.png"
				[/frame]
				[frame]
					begin="1000"
					end="1100"
					image="units/orcs/archer-idle-5.png"
				[/frame]
				[frame]
					begin="1100"
					end="1300"
					image="units/orcs/archer-idle-6.png"
				[/frame]
				[frame]
					begin="1300"
					end="1400"
					image="units/orcs/archer-idle-2.png"
				[/frame]
				[frame]
					begin="1400"
					end="1500"
					image="units/orcs/archer-idle-1.png"
				[/frame]
			[/idle_anim]
			[defense]
				castle="40"
				cave="60"
				deep_water="80"
				flat="60"
				forest="50"
				frozen="80"
				fungus="60"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="2"
				fungus="3"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="2"
				shallow_water="3"
				swamp_water="3"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="100"
				blade="100"
				cold="100"
				fire="100"
				impact="100"
				pierce="100"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="4"
				description=_ "dagger"
				icon="attacks/dagger-orcish.png"
				name="dagger"
				number="2"
				range="melee"
				type="blade"
			[/attack]
			[attack]
				damage="5"
				description=_ "bow"
				icon="attacks/bow-orcish.png"
				name="bow"
				number="3"
				range="ranged"
				type="pierce"
			[/attack]
			[attack]
				damage="7"
				description=_ "bow"
				icon="attacks/bow-orcish.png"
				name="bow"
				number="2"
				range="ranged"
				type="fire"
			[/attack]
			[modifications]
				[trait]
#textdomain wesnoth
					female_name=_ "female^strong"
					id="strong"
					male_name=_ "strong"
					name=_ "strong"
					[effect]
						apply_to="attack"
						increase_damage="1"
						range="melee"
					[/effect]
					[effect]
						apply_to="hitpoints"
						increase_total="1"
					[/effect]
				[/trait]
				[trait]
					female_name=_ "female^resilient"
					id="resilient"
					male_name=_ "resilient"
					name=_ "resilient"
					[effect]
						apply_to="hitpoints"
						increase_total="4"
					[/effect]
					[effect]
						apply_to="hitpoints"
						increase_total="1"
						times="per level"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Orcish Slurbow"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="26"
			die_sound="orc-die-1.ogg,orc-die-2.ogg,orc-die-3.ogg"
			ellipse="misc/ellipse"
			experience="6"
			facing="n"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="30"
			id="Orcish Archer-33"
			image="units/orcs/xbowman.png"
#textdomain wesnoth-units
			language_name=_ "Orcish Crossbowman"
			level="2"
			max_attacks="1"
			max_experience="56"
			max_hitpoints="47"
			max_moves="6"
			movement="5"
			movement_type="orcishfoot"
			moves="6"
			name="Gunak"
			race="orc"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="1"
			type="Orcish Crossbowman"
			undead_variation="archer"
			underlying_id="33"
			unrenamable="no"
			upkeep="full"
			usage="archer"
			x="11"
			y="10"
			zoc="yes"
			[defense]
				castle="40"
				cave="60"
				deep_water="80"
				flat="60"
				forest="50"
				frozen="80"
				fungus="60"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="2"
				fungus="3"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="2"
				shallow_water="3"
				swamp_water="3"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="100"
				blade="100"
				cold="100"
				fire="100"
				impact="100"
				pierce="100"
			[/resistance]
			[attack_anim]
				[filter_attack]
					name="crossbow"
					type="fire"
				[/filter_attack]
				[if]
					hits="yes"
					[missile_frame]
						begin="-150"
						end="0"
						image="projectiles/missile-fire-n.png"
						image_diagonal="projectiles/missile-fire-ne.png"
						offset="0~0.8"
					[/missile_frame]
					[missile_frame]
						begin="0"
						end="75"
						image="projectiles/fire-burst-small-1.png"
						image_diagonal="projectiles/fire-burst-small-1.png"
						offset="0.8"
					[/missile_frame]
					[missile_frame]
						begin="75"
						end="150"
						image="projectiles/fire-burst-small-2.png"
						image_diagonal="projectiles/fire-burst-small-2.png"
						offset="0.83"
					[/missile_frame]
					[missile_frame]
						begin="150"
						end="225"
						image="projectiles/fire-burst-small-3.png"
						image_diagonal="projectiles/fire-burst-small-3.png"
						offset="0.86"
					[/missile_frame]
					[missile_frame]
						begin="225"
						end="300"
						image="projectiles/fire-burst-small-4.png"
						image_diagonal="projectiles/fire-burst-small-4.png"
						offset="0.89"
					[/missile_frame]
					[missile_frame]
						begin="300"
						end="375"
						image="projectiles/fire-burst-small-5.png"
						image_diagonal="projectiles/fire-burst-small-5.png"
						offset="0.92"
					[/missile_frame]
					[missile_frame]
						begin="375"
						end="450"
						image="projectiles/fire-burst-small-6.png"
						image_diagonal="projectiles/fire-burst-small-6.png"
						offset="0.95"
					[/missile_frame]
					[missile_frame]
						begin="450"
						end="525"
						image="projectiles/fire-burst-small-7.png"
						image_diagonal="projectiles/fire-burst-small-7.png"
						offset="0.98"
					[/missile_frame]
					[missile_frame]
						begin="525"
						end="600"
						image="projectiles/fire-burst-small-8.png"
						image_diagonal="projectiles/fire-burst-small-8.png"
						offset="1.0"
					[/missile_frame]
					[frame]
						begin="-300"
						end="-100"
						image="units/orcs/xbowman-ranged-1.png"
						sound="crossbow-fire.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[missile_frame]
						begin="-150"
						end="0"
						image="projectiles/missile-fire-n.png"
						image_diagonal="projectiles/missile-fire-ne.png"
					[/missile_frame]
					[frame]
						begin="-300"
						end="-100"
						image="units/orcs/xbowman-ranged-1.png"
						sound="crossbow-fire-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-100"
					end="0"
					image="units/orcs/xbowman-ranged-2.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="crossbow"
					type="pierce"
				[/filter_attack]
				[missile_frame]
					begin="-150"
					end="0"
					image="projectiles/missile-n.png"
					image_diagonal="projectiles/missile-ne.png"
				[/missile_frame]
				[if]
					hits="yes"
					[frame]
						begin="-300"
						end="-150"
						image="units/orcs/xbowman-ranged-1.png"
						sound="crossbow.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-300"
						end="-150"
						image="units/orcs/xbowman-ranged-1.png"
						sound="crossbow-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-150"
					end="0"
					image="units/orcs/xbowman-ranged-2.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="short sword"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-100"
					image="units/orcs/xbowman-sword.png"
				[/frame]
				[if]
					hits="no"
					[frame]
						begin="-100"
						end="100"
						image="units/orcs/xbowman-sword-1.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-100"
						end="100"
						image="units/orcs/xbowman-sword-1.png"
						sound="sword-1.ogg"
					[/frame]
				[/else]
				[frame]
					begin="100"
					end="200"
					image="units/orcs/xbowman-sword.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[filter_attack]
					range="melee"
				[/filter_attack]
				[frame]
					duration="1"
					image="units/orcs/xbowman-sword.png"
				[/frame]
				[frame]
					duration="100"
					image="units/orcs/xbowman-sword-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/orcs/xbowman-sword-defend.png"
						sound="orc-hit-1.ogg,orc-hit-2.ogg,orc-hit-3.ogg,orc-hit-4.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/orcs/xbowman-sword-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/orcs/xbowman-sword.png"
				[/frame]
			[/defend]
			[defend]
				start_time="-126"
				[filter_attack]
					range="ranged"
				[/filter_attack]
				[frame]
					duration="1"
					image="units/orcs/xbowman.png"
				[/frame]
				[frame]
					duration="100"
					image="units/orcs/xbowman-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/orcs/xbowman-defend.png"
						sound="orc-hit-1.ogg,orc-hit-2.ogg,orc-hit-3.ogg,orc-hit-4.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/orcs/xbowman-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/orcs/xbowman.png"
				[/frame]
			[/defend]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="4"
				description=_ "short sword"
				icon="attacks/sword-orcish.png"
				name="short sword"
				number="3"
				range="melee"
				type="blade"
			[/attack]
			[attack]
				damage="8"
				description=_ "crossbow"
				icon="attacks/crossbow-orcish.png"
				name="crossbow"
				number="3"
				range="ranged"
				type="pierce"
			[/attack]
			[attack]
				damage="10"
				description=_ "crossbow"
				icon="attacks/crossbow-orcish.png"
				name="crossbow"
				number="2"
				range="ranged"
				type="fire"
			[/attack]
			[modifications]
				[trait]
#textdomain wesnoth
					female_name=_ "female^resilient"
					id="resilient"
					male_name=_ "resilient"
					name=_ "resilient"
					[effect]
						apply_to="hitpoints"
						increase_total="4"
					[/effect]
					[effect]
						apply_to="hitpoints"
						increase_total="1"
						times="per level"
					[/effect]
				[/trait]
				[trait]
					female_name=_ "female^quick"
					id="quick"
					male_name=_ "quick"
					name=_ "quick"
					[effect]
						apply_to="movement"
						increase="1"
					[/effect]
					[effect]
						apply_to="hitpoints"
						increase_total="-5%"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Orcish Crossbowman"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="14"
			die_sound="orc-small-die-1.ogg,orc-small-die-2.ogg"
			ellipse="misc/ellipse"
			experience="17"
			facing="ne"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="32"
			id="Orcish Archer-34"
			image="units/orcs/archer.png"
#textdomain wesnoth-units
			language_name=_ "Orcish Archer"
			level="1"
			max_attacks="1"
			max_experience="21"
			max_hitpoints="35"
			max_moves="6"
			movement="5"
			movement_type="orcishfoot"
			moves="6"
			name="Grirbag"
			race="orc"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="1"
			type="Orcish Archer"
			undead_variation="archer"
			underlying_id="34"
			unrenamable="no"
			upkeep="full"
			usage="archer"
			x="24"
			y="7"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="bow"
					type="fire"
				[/filter_attack]
				[if]
					hits="yes"
					[missile_frame]
						begin="-150"
						end="0"
						image="projectiles/missile-fire-n.png"
						image_diagonal="projectiles/missile-fire-ne.png"
						offset="0~0.8"
					[/missile_frame]
					[missile_frame]
						begin="0"
						end="75"
						image="projectiles/fire-burst-small-1.png"
						image_diagonal="projectiles/fire-burst-small-1.png"
						offset="0.8"
					[/missile_frame]
					[missile_frame]
						begin="75"
						end="150"
						image="projectiles/fire-burst-small-2.png"
						image_diagonal="projectiles/fire-burst-small-2.png"
						offset="0.83"
					[/missile_frame]
					[missile_frame]
						begin="150"
						end="225"
						image="projectiles/fire-burst-small-3.png"
						image_diagonal="projectiles/fire-burst-small-3.png"
						offset="0.86"
					[/missile_frame]
					[missile_frame]
						begin="225"
						end="300"
						image="projectiles/fire-burst-small-4.png"
						image_diagonal="projectiles/fire-burst-small-4.png"
						offset="0.89"
					[/missile_frame]
					[missile_frame]
						begin="300"
						end="375"
						image="projectiles/fire-burst-small-5.png"
						image_diagonal="projectiles/fire-burst-small-5.png"
						offset="0.92"
					[/missile_frame]
					[missile_frame]
						begin="375"
						end="450"
						image="projectiles/fire-burst-small-6.png"
						image_diagonal="projectiles/fire-burst-small-6.png"
						offset="0.95"
					[/missile_frame]
					[missile_frame]
						begin="450"
						end="525"
						image="projectiles/fire-burst-small-7.png"
						image_diagonal="projectiles/fire-burst-small-7.png"
						offset="0.98"
					[/missile_frame]
					[missile_frame]
						begin="525"
						end="600"
						image="projectiles/fire-burst-small-8.png"
						image_diagonal="projectiles/fire-burst-small-8.png"
						offset="1.0"
					[/missile_frame]
					[frame]
						begin="-400"
						end="-350"
						image="units/orcs/archer-ranged-1.png"
						sound="bow-puny-fire.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[missile_frame]
						begin="-150"
						end="0"
						image="projectiles/missile-fire-n.png"
						image_diagonal="projectiles/missile-fire-ne.png"
					[/missile_frame]
					[frame]
						begin="-400"
						end="-350"
						image="units/orcs/archer-ranged-1.png"
						sound="bow-puny-fire-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-350"
					end="-300"
					image="units/orcs/archer-ranged-2.png"
				[/frame]
				[frame]
					begin="-300"
					end="-250"
					image="units/orcs/archer-ranged-3.png"
				[/frame]
				[frame]
					begin="-250"
					end="-100"
					image="units/orcs/archer-ranged-4.png"
				[/frame]
				[frame]
					begin="-100"
					end="-50"
					image="units/orcs/archer-ranged-5.png"
				[/frame]
				[frame]
					begin="-50"
					end="100"
					image="units/orcs/archer-ranged-6.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="bow"
					type="pierce"
				[/filter_attack]
				[missile_frame]
					begin="-150"
					end="0"
					image="projectiles/missile-n.png"
					image_diagonal="projectiles/missile-ne.png"
				[/missile_frame]
				[if]
					hits="yes"
					[frame]
						begin="-400"
						end="-350"
						image="units/orcs/archer-ranged-1.png"
						sound="bow-puny.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-400"
						end="-350"
						image="units/orcs/archer-ranged-1.png"
						sound="bow-puny-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-350"
					end="-300"
					image="units/orcs/archer-ranged-2.png"
				[/frame]
				[frame]
					begin="-300"
					end="-250"
					image="units/orcs/archer-ranged-3.png"
				[/frame]
				[frame]
					begin="-250"
					end="-100"
					image="units/orcs/archer-ranged-4.png"
				[/frame]
				[frame]
					begin="-100"
					end="-50"
					image="units/orcs/archer-ranged-5.png"
				[/frame]
				[frame]
					begin="-50"
					end="100"
					image="units/orcs/archer-ranged-6.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="dagger"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-175"
					image="units/orcs/archer-melee-01.png"
				[/frame]
				[frame]
					begin="-175"
					end="-150"
					image="units/orcs/archer-melee-02.png"
				[/frame]
				[frame]
					begin="-150"
					end="-125"
					image="units/orcs/archer-melee-03.png"
				[/frame]
				[frame]
					begin="-125"
					end="-100"
					image="units/orcs/archer-melee-04.png"
				[/frame]
				[frame]
					begin="-100"
					end="-75"
					image="units/orcs/archer-melee-05.png"
				[/frame]
				[if]
					hits="no"
					[frame]
						begin="-75"
						end="-50"
						image="units/orcs/archer-melee-06.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-75"
						end="-50"
						image="units/orcs/archer-melee-06.png"
						sound="dagger-swish.wav"
					[/frame]
				[/else]
				[frame]
					begin="-50"
					end="-25"
					image="units/orcs/archer-melee-07.png"
				[/frame]
				[frame]
					begin="-25"
					end="0"
					image="units/orcs/archer-melee-08.png"
				[/frame]
				[frame]
					begin="0"
					end="25"
					image="units/orcs/archer-melee-09.png"
				[/frame]
				[frame]
					begin="25"
					end="50"
					image="units/orcs/archer-melee-10.png"
				[/frame]
				[frame]
					begin="50"
					end="75"
					image="units/orcs/archer-melee-11.png"
				[/frame]
				[frame]
					begin="75"
					end="100"
					image="units/orcs/archer-melee-12.png"
				[/frame]
				[frame]
					begin="100"
					end="125"
					image="units/orcs/archer-melee-13.png"
				[/frame]
				[frame]
					begin="125"
					end="150"
					image="units/orcs/archer-melee-14.png"
				[/frame]
				[frame]
					begin="150"
					end="175"
					image="units/orcs/archer-melee-15.png"
				[/frame]
				[frame]
					begin="175"
					end="200"
					image="units/orcs/archer-melee-16.png"
				[/frame]
				[frame]
					begin="200"
					end="225"
					image="units/orcs/archer-melee-17.png"
				[/frame]
			[/attack_anim]
			[death]
				[frame]
					begin="0"
					end="55"
					image="units/orcs/archer-death-1.png"
				[/frame]
				[frame]
					begin="55"
					end="110"
					image="units/orcs/archer-death-2.png"
				[/frame]
				[frame]
					begin="110"
					end="165"
					image="units/orcs/archer-death-3.png"
				[/frame]
				[frame]
					begin="165"
					end="220"
					image="units/orcs/archer-death-4.png"
				[/frame]
				[frame]
					begin="220"
					end="275"
					image="units/orcs/archer-death-5.png"
				[/frame]
				[frame]
					begin="275"
					end="330"
					image="units/orcs/archer-death-6.png"
				[/frame]
				[frame]
					begin="330"
					end="385"
					image="units/orcs/archer-death-7.png"
				[/frame]
				[frame]
					begin="385"
					end="440"
					image="units/orcs/archer-death-8.png"
				[/frame]
				[frame]
					begin="440"
					end="500"
					image="units/orcs/archer-death-9.png"
				[/frame]
			[/death]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/orcs/archer.png"
				[/frame]
				[frame]
					duration="100"
					image="units/orcs/archer-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/orcs/archer-defend.png"
						sound="orc-small-hit-1.ogg,orc-small-hit-2.ogg,orc-small-hit-3.ogg,orc-small-hit-4.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/orcs/archer-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/orcs/archer.png"
				[/frame]
			[/defend]
			[idle_anim]
				[filter]
					[not]
						[filter_wml]
							[status]
								poisoned="yes"
							[/status]
						[/filter_wml]
					[/not]
				[/filter]
				[filter]
					[filter_adjacent]
						count="0"
						is_enemy="yes"
					[/filter_adjacent]
				[/filter]
				[frame]
					begin="0"
					end="100"
					image="units/orcs/archer-idle-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/orcs/archer-idle-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/orcs/archer-idle-3.png"
				[/frame]
				[frame]
					begin="300"
					end="500"
					image="units/orcs/archer-idle-6.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/orcs/archer-idle-4.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/orcs/archer-idle-3.png"
				[/frame]
				[frame]
					begin="700"
					end="900"
					image="units/orcs/archer-idle-6.png"
				[/frame]
				[frame]
					begin="900"
					end="1000"
					image="units/orcs/archer-idle-4.png"
				[/frame]
				[frame]
					begin="1000"
					end="1100"
					image="units/orcs/archer-idle-5.png"
				[/frame]
				[frame]
					begin="1100"
					end="1300"
					image="units/orcs/archer-idle-6.png"
				[/frame]
				[frame]
					begin="1300"
					end="1400"
					image="units/orcs/archer-idle-2.png"
				[/frame]
				[frame]
					begin="1400"
					end="1500"
					image="units/orcs/archer-idle-1.png"
				[/frame]
			[/idle_anim]
			[defense]
				castle="40"
				cave="60"
				deep_water="80"
				flat="60"
				forest="50"
				frozen="80"
				fungus="60"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="2"
				fungus="3"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="2"
				shallow_water="3"
				swamp_water="3"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="100"
				blade="100"
				cold="100"
				fire="100"
				impact="100"
				pierce="100"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="3"
				description=_ "dagger"
				icon="attacks/dagger-orcish.png"
				name="dagger"
				number="2"
				range="melee"
				type="blade"
			[/attack]
			[attack]
				damage="5"
				description=_ "bow"
				icon="attacks/bow-orcish.png"
				name="bow"
				number="3"
				range="ranged"
				type="pierce"
			[/attack]
			[attack]
				damage="7"
				description=_ "bow"
				icon="attacks/bow-orcish.png"
				name="bow"
				number="2"
				range="ranged"
				type="fire"
			[/attack]
			[modifications]
				[trait]
#textdomain wesnoth
					female_name=_ "female^quick"
					id="quick"
					male_name=_ "quick"
					name=_ "quick"
					[effect]
						apply_to="movement"
						increase="1"
					[/effect]
					[effect]
						apply_to="hitpoints"
						increase_total="-5%"
					[/effect]
				[/trait]
				[trait]
					female_name=_ "female^resilient"
					id="resilient"
					male_name=_ "resilient"
					name=_ "resilient"
					[effect]
						apply_to="hitpoints"
						increase_total="4"
					[/effect]
					[effect]
						apply_to="hitpoints"
						increase_total="1"
						times="per level"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Troll,Troll Rocklobber"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="13"
			die_sound="troll-die-1.ogg,troll-die-2.ogg,troll-die-3.ogg"
			ellipse="misc/ellipse"
			experience="13"
			facing="ne"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="40"
			id="Troll Whelp-36"
			image="units/trolls/whelp.png"
#textdomain wesnoth-units
			language_name=_ "Troll Whelp"
			level="1"
			max_attacks="1"
			max_experience="25"
			max_hitpoints="40"
			max_moves="5"
			movement="4"
			movement_type="largefoot"
			moves="5"
			name="Üh"
			profile="portraits/trolls/whelp.png"
			race="troll"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="1"
			type="Troll Whelp"
			undead_variation="troll"
			underlying_id="36"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			x="27"
			y="6"
			zoc="yes"
			[attack_anim]
				start_time="-250"
				[filter_attack]
					name="fist"
				[/filter_attack]
				[frame]
					duration="100"
					image="units/trolls/whelp-attack-1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						duration="125"
						image="units/trolls/whelp-attack-2.png"
						sound="fist.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						duration="125"
						image="units/trolls/whelp-attack-2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					duration="100"
					image="units/trolls/whelp-attack-3.png"
				[/frame]
				[frame]
					duration="75"
					image="units/trolls/whelp-attack-1.png"
				[/frame]
				[frame]
					duration="50"
					image="units/trolls/whelp.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/trolls/whelp-defend-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/trolls/whelp-defend.png"
						sound="troll-hit-1.ogg,troll-hit-2.ogg,troll-hit-3.ogg,troll-hit-4.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/trolls/whelp-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/trolls/whelp-defend-2.png"
				[/frame]
			[/defend]
			[idle_anim]
				start_time="0"
				[filter]
					[not]
						[filter_wml]
							[status]
								poisoned="yes"
							[/status]
						[/filter_wml]
					[/not]
				[/filter]
				[filter]
					[filter_adjacent]
						count="0"
						is_enemy="yes"
					[/filter_adjacent]
				[/filter]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-4.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-5.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-6.png"
				[/frame]
				[frame]
					duration="150"
					image="units/trolls/whelp-idle-7.png"
				[/frame]
				[frame]
					duration="175"
					image="units/trolls/whelp-idle-6.png"
				[/frame]
				[frame]
					duration="150"
					image="units/trolls/whelp-idle-7.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-6.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-5.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-4.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-1.png"
				[/frame]
			[/idle_anim]
			[portrait]
				image="portraits/trolls/transparent/whelp.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/trolls/transparent/whelp.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="60"
				cave="60"
				deep_water="80"
				flat="70"
				forest="60"
				frozen="80"
				fungus="50"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="80"
				unwalkable="80"
				village="60"
			[/defense]
			[movement_costs]
				castle="1"
				cave="1"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="2"
				fungus="2"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="2"
				shallow_water="2"
				swamp_water="2"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="110"
				blade="80"
				cold="100"
				fire="100"
				impact="100"
				pierce="80"
			[/resistance]
			[abilities]
				[regenerate]
					affect_self="yes"
#textdomain wesnoth
					description=_ "Regenerates:
The unit will heal itself 8 HP per turn. If it is poisoned, it will remove the poison instead of healing."
					female_name=_ "female^regenerates"
					id="regenerates"
					name=_ "regenerates"
					poison="cured"
					value="8"
				[/regenerate]
			[/abilities]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="7"
#textdomain wesnoth-units
				description=_ "fist"
				icon="attacks/fist-troll.png"
				name="fist"
				number="2"
				range="melee"
				type="impact"
			[/attack]
			[modifications]
				[trait]
#textdomain wesnoth
					description=_ "Fights normally during unfavorable times of day/night"
					female_name=_ "female^fearless"
					id="fearless"
					male_name=_ "fearless"
					name=_ "fearless"
				[/trait]
				[trait]
					female_name=_ "female^quick"
					id="quick"
					male_name=_ "quick"
					name=_ "quick"
					[effect]
						apply_to="movement"
						increase="1"
					[/effect]
					[effect]
						apply_to="hitpoints"
						increase_total="-5%"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Troll,Troll Rocklobber"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="13"
			die_sound="troll-die-1.ogg,troll-die-2.ogg,troll-die-3.ogg"
			ellipse="misc/ellipse"
			experience="18"
			facing="s"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="41"
			id="Troll Whelp-41"
			image="units/trolls/whelp.png"
#textdomain wesnoth-units
			language_name=_ "Troll Whelp"
			level="1"
			max_attacks="1"
			max_experience="25"
			max_hitpoints="41"
			max_moves="5"
			movement="4"
			movement_type="largefoot"
			moves="5"
			name="Agh"
			profile="portraits/trolls/whelp.png"
			race="troll"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="1"
			type="Troll Whelp"
			undead_variation="troll"
			underlying_id="41"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			x="11"
			y="8"
			zoc="yes"
			[attack_anim]
				start_time="-250"
				[filter_attack]
					name="fist"
				[/filter_attack]
				[frame]
					duration="100"
					image="units/trolls/whelp-attack-1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						duration="125"
						image="units/trolls/whelp-attack-2.png"
						sound="fist.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						duration="125"
						image="units/trolls/whelp-attack-2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					duration="100"
					image="units/trolls/whelp-attack-3.png"
				[/frame]
				[frame]
					duration="75"
					image="units/trolls/whelp-attack-1.png"
				[/frame]
				[frame]
					duration="50"
					image="units/trolls/whelp.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/trolls/whelp-defend-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/trolls/whelp-defend.png"
						sound="troll-hit-1.ogg,troll-hit-2.ogg,troll-hit-3.ogg,troll-hit-4.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/trolls/whelp-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/trolls/whelp-defend-2.png"
				[/frame]
			[/defend]
			[idle_anim]
				start_time="0"
				[filter]
					[not]
						[filter_wml]
							[status]
								poisoned="yes"
							[/status]
						[/filter_wml]
					[/not]
				[/filter]
				[filter]
					[filter_adjacent]
						count="0"
						is_enemy="yes"
					[/filter_adjacent]
				[/filter]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-4.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-5.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-6.png"
				[/frame]
				[frame]
					duration="150"
					image="units/trolls/whelp-idle-7.png"
				[/frame]
				[frame]
					duration="175"
					image="units/trolls/whelp-idle-6.png"
				[/frame]
				[frame]
					duration="150"
					image="units/trolls/whelp-idle-7.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-6.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-5.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-4.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-1.png"
				[/frame]
			[/idle_anim]
			[portrait]
				image="portraits/trolls/transparent/whelp.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/trolls/transparent/whelp.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="60"
				cave="60"
				deep_water="80"
				flat="70"
				forest="60"
				frozen="80"
				fungus="50"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="80"
				unwalkable="80"
				village="60"
			[/defense]
			[movement_costs]
				castle="1"
				cave="1"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="2"
				fungus="2"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="2"
				shallow_water="2"
				swamp_water="2"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="110"
				blade="80"
				cold="100"
				fire="100"
				impact="100"
				pierce="80"
			[/resistance]
			[abilities]
				[regenerate]
					affect_self="yes"
#textdomain wesnoth
					description=_ "Regenerates:
The unit will heal itself 8 HP per turn. If it is poisoned, it will remove the poison instead of healing."
					female_name=_ "female^regenerates"
					id="regenerates"
					name=_ "regenerates"
					poison="cured"
					value="8"
				[/regenerate]
			[/abilities]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="8"
#textdomain wesnoth-units
				description=_ "fist"
				icon="attacks/fist-troll.png"
				name="fist"
				number="2"
				range="melee"
				type="impact"
			[/attack]
			[modifications]
				[trait]
#textdomain wesnoth
					female_name=_ "female^quick"
					id="quick"
					male_name=_ "quick"
					name=_ "quick"
					[effect]
						apply_to="movement"
						increase="1"
					[/effect]
					[effect]
						apply_to="hitpoints"
						increase_total="-5%"
					[/effect]
				[/trait]
				[trait]
					female_name=_ "female^strong"
					id="strong"
					male_name=_ "strong"
					name=_ "strong"
					[effect]
						apply_to="attack"
						increase_damage="1"
						range="melee"
					[/effect]
					[effect]
						apply_to="hitpoints"
						increase_total="1"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Troll,Troll Rocklobber"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="13"
			die_sound="troll-die-1.ogg,troll-die-2.ogg,troll-die-3.ogg"
			ellipse="misc/ellipse"
			experience="4"
			facing="se"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="47"
			id="Troll Whelp-42"
			image="units/trolls/whelp.png"
#textdomain wesnoth-units
			language_name=_ "Troll Whelp"
			level="1"
			max_attacks="1"
			max_experience="25"
			max_hitpoints="47"
			max_moves="4"
			movement="4"
			movement_type="largefoot"
			moves="4"
			name="Brag"
			profile="portraits/trolls/whelp.png"
			race="troll"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="1"
			type="Troll Whelp"
			undead_variation="troll"
			underlying_id="42"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			x="11"
			y="9"
			zoc="yes"
			[attack_anim]
				start_time="-250"
				[filter_attack]
					name="fist"
				[/filter_attack]
				[frame]
					duration="100"
					image="units/trolls/whelp-attack-1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						duration="125"
						image="units/trolls/whelp-attack-2.png"
						sound="fist.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						duration="125"
						image="units/trolls/whelp-attack-2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					duration="100"
					image="units/trolls/whelp-attack-3.png"
				[/frame]
				[frame]
					duration="75"
					image="units/trolls/whelp-attack-1.png"
				[/frame]
				[frame]
					duration="50"
					image="units/trolls/whelp.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/trolls/whelp-defend-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/trolls/whelp-defend.png"
						sound="troll-hit-1.ogg,troll-hit-2.ogg,troll-hit-3.ogg,troll-hit-4.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/trolls/whelp-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/trolls/whelp-defend-2.png"
				[/frame]
			[/defend]
			[idle_anim]
				start_time="0"
				[filter]
					[not]
						[filter_wml]
							[status]
								poisoned="yes"
							[/status]
						[/filter_wml]
					[/not]
				[/filter]
				[filter]
					[filter_adjacent]
						count="0"
						is_enemy="yes"
					[/filter_adjacent]
				[/filter]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-4.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-5.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-6.png"
				[/frame]
				[frame]
					duration="150"
					image="units/trolls/whelp-idle-7.png"
				[/frame]
				[frame]
					duration="175"
					image="units/trolls/whelp-idle-6.png"
				[/frame]
				[frame]
					duration="150"
					image="units/trolls/whelp-idle-7.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-6.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-5.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-4.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-1.png"
				[/frame]
			[/idle_anim]
			[portrait]
				image="portraits/trolls/transparent/whelp.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/trolls/transparent/whelp.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="60"
				cave="60"
				deep_water="80"
				flat="70"
				forest="60"
				frozen="80"
				fungus="50"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="80"
				unwalkable="80"
				village="60"
			[/defense]
			[movement_costs]
				castle="1"
				cave="1"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="2"
				fungus="2"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="2"
				shallow_water="2"
				swamp_water="2"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="110"
				blade="80"
				cold="100"
				fire="100"
				impact="100"
				pierce="80"
			[/resistance]
			[abilities]
				[regenerate]
					affect_self="yes"
#textdomain wesnoth
					description=_ "Regenerates:
The unit will heal itself 8 HP per turn. If it is poisoned, it will remove the poison instead of healing."
					female_name=_ "female^regenerates"
					id="regenerates"
					name=_ "regenerates"
					poison="cured"
					value="8"
				[/regenerate]
			[/abilities]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="7"
#textdomain wesnoth-units
				description=_ "fist"
				icon="attacks/fist-troll.png"
				name="fist"
				number="2"
				range="melee"
				type="impact"
			[/attack]
			[modifications]
				[trait]
#textdomain wesnoth
					female_name=_ "female^resilient"
					id="resilient"
					male_name=_ "resilient"
					name=_ "resilient"
					[effect]
						apply_to="hitpoints"
						increase_total="4"
					[/effect]
					[effect]
						apply_to="hitpoints"
						increase_total="1"
						times="per level"
					[/effect]
				[/trait]
				[trait]
					description=_ "Fights normally during unfavorable times of day/night"
					female_name=_ "female^fearless"
					id="fearless"
					male_name=_ "fearless"
					name=_ "fearless"
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Orcish Crossbowman"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="14"
			die_sound="orc-small-die-1.ogg,orc-small-die-2.ogg"
			ellipse="misc/ellipse"
			experience="5"
			facing="sw"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="8"
			id="Orcish Archer-43"
			image="units/orcs/archer.png"
#textdomain wesnoth-units
			language_name=_ "Orcish Archer"
			level="1"
			max_attacks="1"
			max_experience="17"
			max_hitpoints="37"
			max_moves="5"
			movement="5"
			movement_type="orcishfoot"
			moves="5"
			name="Vrag"
			race="orc"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="1"
			type="Orcish Archer"
			undead_variation="archer"
			underlying_id="43"
			unrenamable="no"
			upkeep="full"
			usage="archer"
			x="12"
			y="8"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="bow"
					type="fire"
				[/filter_attack]
				[if]
					hits="yes"
					[missile_frame]
						begin="-150"
						end="0"
						image="projectiles/missile-fire-n.png"
						image_diagonal="projectiles/missile-fire-ne.png"
						offset="0~0.8"
					[/missile_frame]
					[missile_frame]
						begin="0"
						end="75"
						image="projectiles/fire-burst-small-1.png"
						image_diagonal="projectiles/fire-burst-small-1.png"
						offset="0.8"
					[/missile_frame]
					[missile_frame]
						begin="75"
						end="150"
						image="projectiles/fire-burst-small-2.png"
						image_diagonal="projectiles/fire-burst-small-2.png"
						offset="0.83"
					[/missile_frame]
					[missile_frame]
						begin="150"
						end="225"
						image="projectiles/fire-burst-small-3.png"
						image_diagonal="projectiles/fire-burst-small-3.png"
						offset="0.86"
					[/missile_frame]
					[missile_frame]
						begin="225"
						end="300"
						image="projectiles/fire-burst-small-4.png"
						image_diagonal="projectiles/fire-burst-small-4.png"
						offset="0.89"
					[/missile_frame]
					[missile_frame]
						begin="300"
						end="375"
						image="projectiles/fire-burst-small-5.png"
						image_diagonal="projectiles/fire-burst-small-5.png"
						offset="0.92"
					[/missile_frame]
					[missile_frame]
						begin="375"
						end="450"
						image="projectiles/fire-burst-small-6.png"
						image_diagonal="projectiles/fire-burst-small-6.png"
						offset="0.95"
					[/missile_frame]
					[missile_frame]
						begin="450"
						end="525"
						image="projectiles/fire-burst-small-7.png"
						image_diagonal="projectiles/fire-burst-small-7.png"
						offset="0.98"
					[/missile_frame]
					[missile_frame]
						begin="525"
						end="600"
						image="projectiles/fire-burst-small-8.png"
						image_diagonal="projectiles/fire-burst-small-8.png"
						offset="1.0"
					[/missile_frame]
					[frame]
						begin="-400"
						end="-350"
						image="units/orcs/archer-ranged-1.png"
						sound="bow-puny-fire.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[missile_frame]
						begin="-150"
						end="0"
						image="projectiles/missile-fire-n.png"
						image_diagonal="projectiles/missile-fire-ne.png"
					[/missile_frame]
					[frame]
						begin="-400"
						end="-350"
						image="units/orcs/archer-ranged-1.png"
						sound="bow-puny-fire-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-350"
					end="-300"
					image="units/orcs/archer-ranged-2.png"
				[/frame]
				[frame]
					begin="-300"
					end="-250"
					image="units/orcs/archer-ranged-3.png"
				[/frame]
				[frame]
					begin="-250"
					end="-100"
					image="units/orcs/archer-ranged-4.png"
				[/frame]
				[frame]
					begin="-100"
					end="-50"
					image="units/orcs/archer-ranged-5.png"
				[/frame]
				[frame]
					begin="-50"
					end="100"
					image="units/orcs/archer-ranged-6.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="bow"
					type="pierce"
				[/filter_attack]
				[missile_frame]
					begin="-150"
					end="0"
					image="projectiles/missile-n.png"
					image_diagonal="projectiles/missile-ne.png"
				[/missile_frame]
				[if]
					hits="yes"
					[frame]
						begin="-400"
						end="-350"
						image="units/orcs/archer-ranged-1.png"
						sound="bow-puny.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-400"
						end="-350"
						image="units/orcs/archer-ranged-1.png"
						sound="bow-puny-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-350"
					end="-300"
					image="units/orcs/archer-ranged-2.png"
				[/frame]
				[frame]
					begin="-300"
					end="-250"
					image="units/orcs/archer-ranged-3.png"
				[/frame]
				[frame]
					begin="-250"
					end="-100"
					image="units/orcs/archer-ranged-4.png"
				[/frame]
				[frame]
					begin="-100"
					end="-50"
					image="units/orcs/archer-ranged-5.png"
				[/frame]
				[frame]
					begin="-50"
					end="100"
					image="units/orcs/archer-ranged-6.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="dagger"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-175"
					image="units/orcs/archer-melee-01.png"
				[/frame]
				[frame]
					begin="-175"
					end="-150"
					image="units/orcs/archer-melee-02.png"
				[/frame]
				[frame]
					begin="-150"
					end="-125"
					image="units/orcs/archer-melee-03.png"
				[/frame]
				[frame]
					begin="-125"
					end="-100"
					image="units/orcs/archer-melee-04.png"
				[/frame]
				[frame]
					begin="-100"
					end="-75"
					image="units/orcs/archer-melee-05.png"
				[/frame]
				[if]
					hits="no"
					[frame]
						begin="-75"
						end="-50"
						image="units/orcs/archer-melee-06.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-75"
						end="-50"
						image="units/orcs/archer-melee-06.png"
						sound="dagger-swish.wav"
					[/frame]
				[/else]
				[frame]
					begin="-50"
					end="-25"
					image="units/orcs/archer-melee-07.png"
				[/frame]
				[frame]
					begin="-25"
					end="0"
					image="units/orcs/archer-melee-08.png"
				[/frame]
				[frame]
					begin="0"
					end="25"
					image="units/orcs/archer-melee-09.png"
				[/frame]
				[frame]
					begin="25"
					end="50"
					image="units/orcs/archer-melee-10.png"
				[/frame]
				[frame]
					begin="50"
					end="75"
					image="units/orcs/archer-melee-11.png"
				[/frame]
				[frame]
					begin="75"
					end="100"
					image="units/orcs/archer-melee-12.png"
				[/frame]
				[frame]
					begin="100"
					end="125"
					image="units/orcs/archer-melee-13.png"
				[/frame]
				[frame]
					begin="125"
					end="150"
					image="units/orcs/archer-melee-14.png"
				[/frame]
				[frame]
					begin="150"
					end="175"
					image="units/orcs/archer-melee-15.png"
				[/frame]
				[frame]
					begin="175"
					end="200"
					image="units/orcs/archer-melee-16.png"
				[/frame]
				[frame]
					begin="200"
					end="225"
					image="units/orcs/archer-melee-17.png"
				[/frame]
			[/attack_anim]
			[death]
				[frame]
					begin="0"
					end="55"
					image="units/orcs/archer-death-1.png"
				[/frame]
				[frame]
					begin="55"
					end="110"
					image="units/orcs/archer-death-2.png"
				[/frame]
				[frame]
					begin="110"
					end="165"
					image="units/orcs/archer-death-3.png"
				[/frame]
				[frame]
					begin="165"
					end="220"
					image="units/orcs/archer-death-4.png"
				[/frame]
				[frame]
					begin="220"
					end="275"
					image="units/orcs/archer-death-5.png"
				[/frame]
				[frame]
					begin="275"
					end="330"
					image="units/orcs/archer-death-6.png"
				[/frame]
				[frame]
					begin="330"
					end="385"
					image="units/orcs/archer-death-7.png"
				[/frame]
				[frame]
					begin="385"
					end="440"
					image="units/orcs/archer-death-8.png"
				[/frame]
				[frame]
					begin="440"
					end="500"
					image="units/orcs/archer-death-9.png"
				[/frame]
			[/death]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/orcs/archer.png"
				[/frame]
				[frame]
					duration="100"
					image="units/orcs/archer-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/orcs/archer-defend.png"
						sound="orc-small-hit-1.ogg,orc-small-hit-2.ogg,orc-small-hit-3.ogg,orc-small-hit-4.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/orcs/archer-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/orcs/archer.png"
				[/frame]
			[/defend]
			[idle_anim]
				[filter]
					[not]
						[filter_wml]
							[status]
								poisoned="yes"
							[/status]
						[/filter_wml]
					[/not]
				[/filter]
				[filter]
					[filter_adjacent]
						count="0"
						is_enemy="yes"
					[/filter_adjacent]
				[/filter]
				[frame]
					begin="0"
					end="100"
					image="units/orcs/archer-idle-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/orcs/archer-idle-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/orcs/archer-idle-3.png"
				[/frame]
				[frame]
					begin="300"
					end="500"
					image="units/orcs/archer-idle-6.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/orcs/archer-idle-4.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/orcs/archer-idle-3.png"
				[/frame]
				[frame]
					begin="700"
					end="900"
					image="units/orcs/archer-idle-6.png"
				[/frame]
				[frame]
					begin="900"
					end="1000"
					image="units/orcs/archer-idle-4.png"
				[/frame]
				[frame]
					begin="1000"
					end="1100"
					image="units/orcs/archer-idle-5.png"
				[/frame]
				[frame]
					begin="1100"
					end="1300"
					image="units/orcs/archer-idle-6.png"
				[/frame]
				[frame]
					begin="1300"
					end="1400"
					image="units/orcs/archer-idle-2.png"
				[/frame]
				[frame]
					begin="1400"
					end="1500"
					image="units/orcs/archer-idle-1.png"
				[/frame]
			[/idle_anim]
			[defense]
				castle="40"
				cave="60"
				deep_water="80"
				flat="60"
				forest="50"
				frozen="80"
				fungus="60"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="2"
				fungus="3"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="2"
				shallow_water="3"
				swamp_water="3"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="100"
				blade="100"
				cold="100"
				fire="100"
				impact="100"
				pierce="100"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="3"
				description=_ "dagger"
				icon="attacks/dagger-orcish.png"
				name="dagger"
				number="2"
				range="melee"
				type="blade"
			[/attack]
			[attack]
				damage="5"
				description=_ "bow"
				icon="attacks/bow-orcish.png"
				name="bow"
				number="3"
				range="ranged"
				type="pierce"
			[/attack]
			[attack]
				damage="7"
				description=_ "bow"
				icon="attacks/bow-orcish.png"
				name="bow"
				number="2"
				range="ranged"
				type="fire"
			[/attack]
			[modifications]
				[trait]
#textdomain wesnoth
					female_name=_ "female^intelligent"
					id="intelligent"
					male_name=_ "intelligent"
					name=_ "intelligent"
					[effect]
						apply_to="max_experience"
						increase="-20%"
					[/effect]
				[/trait]
				[trait]
					female_name=_ "female^resilient"
					id="resilient"
					male_name=_ "resilient"
					name=_ "resilient"
					[effect]
						apply_to="hitpoints"
						increase_total="4"
					[/effect]
					[effect]
						apply_to="hitpoints"
						increase_total="1"
						times="per level"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Orcish Warrior"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="12"
			die_sound="orc-die-1.ogg,orc-die-2.ogg,orc-die-3.ogg"
			ellipse="misc/ellipse"
			experience="8"
			facing="n"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="37"
			id="Orcish Grunt-45"
			image="units/orcs/grunt.png"
#textdomain wesnoth-units
			language_name=_ "Orcish Grunt"
			level="1"
			max_attacks="1"
			max_experience="29"
			max_hitpoints="37"
			max_moves="6"
			movement="5"
			movement_type="orcishfoot"
			moves="6"
			name="Pink"
			profile="portraits/orcs/warlord5.png"
			race="orc"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="1"
			type="Orcish Grunt"
			underlying_id="45"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			x="18"
			y="9"
			zoc="yes"
			[attack_anim]
				offset="0.0~0.15:100,0.15~0.35:100,0.35~0.45:75,0.45~0.5:100,0.5:20,0.5~0.4:30,0.4~0.2:75,0.2~0.0:75"
				start_time="-300"
				[filter_attack]
					name="sword"
				[/filter_attack]
				[frame]
					duration="50"
					image="units/orcs/grunt.png"
				[/frame]
				[frame]
					duration="50"
					image="units/orcs/grunt-defend-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/orcs/grunt-attack-1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						duration="75"
						image="units/orcs/grunt-attack-2.png"
						sound="sword-1.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						duration="75"
						image="units/orcs/grunt-attack-2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					duration="100"
					image="units/orcs/grunt-attack-3.png"
				[/frame]
				[frame]
					duration="20"
					image="units/orcs/grunt-attack-4.png"
				[/frame]
				[frame]
					duration="30"
					image="units/orcs/grunt-attack-4.png"
				[/frame]
				[frame]
					duration="75"
					image="units/orcs/grunt-attack-5.png"
				[/frame]
				[frame]
					duration="75"
					image="units/orcs/grunt.png"
				[/frame]
			[/attack_anim]
			[death]
				start_time="0"
				[frame]
					duration="120"
					image="units/orcs/grunt-die-1.png"
				[/frame]
				[frame]
					duration="120"
					image="units/orcs/grunt-die-2.png"
				[/frame]
				[frame]
					duration="120"
					image="units/orcs/grunt-die-3.png"
				[/frame]
				[frame]
					duration="120"
					image="units/orcs/grunt-die-4.png"
				[/frame]
				[frame]
					duration="120"
					image="units/orcs/grunt-die-5.png"
				[/frame]
				[frame]
					duration="120"
					image="units/orcs/grunt-die-6.png"
				[/frame]
				[frame]
					duration="120"
					image="units/orcs/grunt-die-7.png"
				[/frame]
				[frame]
					duration="120"
					image="units/orcs/grunt-die-8.png"
				[/frame]
			[/death]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/orcs/grunt-defend-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/orcs/grunt-defend-2.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/orcs/grunt-defend-2.png"
						sound="orc-hit-1.ogg,orc-hit-2.ogg,orc-hit-3.ogg,orc-hit-4.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/orcs/grunt-defend-2.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/orcs/grunt-defend-1.png"
				[/frame]
			[/defend]
			[defense]
				castle="40"
				cave="60"
				deep_water="80"
				flat="60"
				forest="50"
				frozen="80"
				fungus="60"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="2"
				fungus="3"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="2"
				shallow_water="3"
				swamp_water="3"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="100"
				blade="100"
				cold="100"
				fire="100"
				impact="100"
				pierce="100"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="10"
				description=_ "sword"
				icon="attacks/sword-orcish.png"
				name="sword"
				number="2"
				range="melee"
				type="blade"
			[/attack]
			[modifications]
				[trait]
#textdomain wesnoth
					female_name=_ "female^strong"
					id="strong"
					male_name=_ "strong"
					name=_ "strong"
					[effect]
						apply_to="attack"
						increase_damage="1"
						range="melee"
					[/effect]
					[effect]
						apply_to="hitpoints"
						increase_total="1"
					[/effect]
				[/trait]
				[trait]
					female_name=_ "female^quick"
					id="quick"
					male_name=_ "quick"
					name=_ "quick"
					[effect]
						apply_to="movement"
						increase="1"
					[/effect]
					[effect]
						apply_to="hitpoints"
						increase_total="-5%"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Orcish Warrior"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="12"
			die_sound="orc-die-1.ogg,orc-die-2.ogg,orc-die-3.ogg"
			ellipse="misc/ellipse"
			experience="10"
			facing="n"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="23"
			id="Orcish Grunt-47"
			image="units/orcs/grunt.png"
#textdomain wesnoth-units
			language_name=_ "Orcish Grunt"
			level="1"
			max_attacks="1"
			max_experience="24"
			max_hitpoints="43"
			max_moves="5"
			movement="5"
			movement_type="orcishfoot"
			moves="0"
			name="Vigdush"
			profile="portraits/orcs/warlord5.png"
			race="orc"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="1"
			type="Orcish Grunt"
			underlying_id="47"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			x="28"
			y="5"
			zoc="yes"
			[attack_anim]
				offset="0.0~0.15:100,0.15~0.35:100,0.35~0.45:75,0.45~0.5:100,0.5:20,0.5~0.4:30,0.4~0.2:75,0.2~0.0:75"
				start_time="-300"
				[filter_attack]
					name="sword"
				[/filter_attack]
				[frame]
					duration="50"
					image="units/orcs/grunt.png"
				[/frame]
				[frame]
					duration="50"
					image="units/orcs/grunt-defend-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/orcs/grunt-attack-1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						duration="75"
						image="units/orcs/grunt-attack-2.png"
						sound="sword-1.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						duration="75"
						image="units/orcs/grunt-attack-2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					duration="100"
					image="units/orcs/grunt-attack-3.png"
				[/frame]
				[frame]
					duration="20"
					image="units/orcs/grunt-attack-4.png"
				[/frame]
				[frame]
					duration="30"
					image="units/orcs/grunt-attack-4.png"
				[/frame]
				[frame]
					duration="75"
					image="units/orcs/grunt-attack-5.png"
				[/frame]
				[frame]
					duration="75"
					image="units/orcs/grunt.png"
				[/frame]
			[/attack_anim]
			[death]
				start_time="0"
				[frame]
					duration="120"
					image="units/orcs/grunt-die-1.png"
				[/frame]
				[frame]
					duration="120"
					image="units/orcs/grunt-die-2.png"
				[/frame]
				[frame]
					duration="120"
					image="units/orcs/grunt-die-3.png"
				[/frame]
				[frame]
					duration="120"
					image="units/orcs/grunt-die-4.png"
				[/frame]
				[frame]
					duration="120"
					image="units/orcs/grunt-die-5.png"
				[/frame]
				[frame]
					duration="120"
					image="units/orcs/grunt-die-6.png"
				[/frame]
				[frame]
					duration="120"
					image="units/orcs/grunt-die-7.png"
				[/frame]
				[frame]
					duration="120"
					image="units/orcs/grunt-die-8.png"
				[/frame]
			[/death]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/orcs/grunt-defend-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/orcs/grunt-defend-2.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/orcs/grunt-defend-2.png"
						sound="orc-hit-1.ogg,orc-hit-2.ogg,orc-hit-3.ogg,orc-hit-4.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/orcs/grunt-defend-2.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/orcs/grunt-defend-1.png"
				[/frame]
			[/defend]
			[defense]
				castle="40"
				cave="60"
				deep_water="80"
				flat="60"
				forest="50"
				frozen="80"
				fungus="60"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="2"
				fungus="3"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="2"
				shallow_water="3"
				swamp_water="3"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="100"
				blade="100"
				cold="100"
				fire="100"
				impact="100"
				pierce="100"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
				poisoned="yes"
			[/status]
			[attack]
				damage="9"
				description=_ "sword"
				icon="attacks/sword-orcish.png"
				name="sword"
				number="2"
				range="melee"
				type="blade"
			[/attack]
			[modifications]
				[trait]
#textdomain wesnoth
					female_name=_ "female^resilient"
					id="resilient"
					male_name=_ "resilient"
					name=_ "resilient"
					[effect]
						apply_to="hitpoints"
						increase_total="4"
					[/effect]
					[effect]
						apply_to="hitpoints"
						increase_total="1"
						times="per level"
					[/effect]
				[/trait]
				[trait]
					female_name=_ "female^intelligent"
					id="intelligent"
					male_name=_ "intelligent"
					name=_ "intelligent"
					[effect]
						apply_to="max_experience"
						increase="-20%"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Troll,Troll Rocklobber"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="13"
			die_sound="troll-die-1.ogg,troll-die-2.ogg,troll-die-3.ogg"
			ellipse="misc/ellipse"
			experience="0"
			facing="se"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="40"
			id="Troll Whelp-50"
			image="units/trolls/whelp.png"
#textdomain wesnoth-units
			language_name=_ "Troll Whelp"
			level="1"
			max_attacks="1"
			max_experience="25"
			max_hitpoints="40"
			max_moves="5"
			movement="4"
			movement_type="largefoot"
			moves="5"
			name="Ugg"
			profile="portraits/trolls/whelp.png"
			race="troll"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="1"
			type="Troll Whelp"
			undead_variation="troll"
			underlying_id="50"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			x="23"
			y="8"
			zoc="yes"
			[attack_anim]
				start_time="-250"
				[filter_attack]
					name="fist"
				[/filter_attack]
				[frame]
					duration="100"
					image="units/trolls/whelp-attack-1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						duration="125"
						image="units/trolls/whelp-attack-2.png"
						sound="fist.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						duration="125"
						image="units/trolls/whelp-attack-2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					duration="100"
					image="units/trolls/whelp-attack-3.png"
				[/frame]
				[frame]
					duration="75"
					image="units/trolls/whelp-attack-1.png"
				[/frame]
				[frame]
					duration="50"
					image="units/trolls/whelp.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/trolls/whelp-defend-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/trolls/whelp-defend.png"
						sound="troll-hit-1.ogg,troll-hit-2.ogg,troll-hit-3.ogg,troll-hit-4.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/trolls/whelp-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/trolls/whelp-defend-2.png"
				[/frame]
			[/defend]
			[idle_anim]
				start_time="0"
				[filter]
					[not]
						[filter_wml]
							[status]
								poisoned="yes"
							[/status]
						[/filter_wml]
					[/not]
				[/filter]
				[filter]
					[filter_adjacent]
						count="0"
						is_enemy="yes"
					[/filter_adjacent]
				[/filter]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-4.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-5.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-6.png"
				[/frame]
				[frame]
					duration="150"
					image="units/trolls/whelp-idle-7.png"
				[/frame]
				[frame]
					duration="175"
					image="units/trolls/whelp-idle-6.png"
				[/frame]
				[frame]
					duration="150"
					image="units/trolls/whelp-idle-7.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-6.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-5.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-4.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/trolls/whelp-idle-1.png"
				[/frame]
			[/idle_anim]
			[portrait]
				image="portraits/trolls/transparent/whelp.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/trolls/transparent/whelp.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="60"
				cave="60"
				deep_water="80"
				flat="70"
				forest="60"
				frozen="80"
				fungus="50"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="80"
				unwalkable="80"
				village="60"
			[/defense]
			[movement_costs]
				castle="1"
				cave="1"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="2"
				fungus="2"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="2"
				shallow_water="2"
				swamp_water="2"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="110"
				blade="80"
				cold="100"
				fire="100"
				impact="100"
				pierce="80"
			[/resistance]
			[abilities]
				[regenerate]
					affect_self="yes"
#textdomain wesnoth
					description=_ "Regenerates:
The unit will heal itself 8 HP per turn. If it is poisoned, it will remove the poison instead of healing."
					female_name=_ "female^regenerates"
					id="regenerates"
					name=_ "regenerates"
					poison="cured"
					value="8"
				[/regenerate]
			[/abilities]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="7"
#textdomain wesnoth-units
				description=_ "fist"
				icon="attacks/fist-troll.png"
				name="fist"
				number="2"
				range="melee"
				type="impact"
			[/attack]
			[modifications]
				[trait]
#textdomain wesnoth
					description=_ "Fights normally during unfavorable times of day/night"
					female_name=_ "female^fearless"
					id="fearless"
					male_name=_ "fearless"
					name=_ "fearless"
				[/trait]
				[trait]
					female_name=_ "female^quick"
					id="quick"
					male_name=_ "quick"
					name=_ "quick"
					[effect]
						apply_to="movement"
						increase="1"
					[/effect]
					[effect]
						apply_to="hitpoints"
						increase_total="-5%"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
	[/side]
	[side]
		action_bonus_count="15"
		aggression="0.5"
		allow_player="yes"
		caution="0.25"
		colour="2"
		controller="human_ai"
		countdown_time="270000"
		current_player="Frankenstein"
		disallow_observers="no"
		fog="yes"
		global_recruitment_pattern="fighter,fighter,archer,fighter,scout,archer"
		gold="7"
		hidden="no"
		id="Hilquias2"
		income="0"
		leader_value="3"
		name="Hilquias"
		no_leader="yes"
		number_of_possible_recruits_to_force_recruit="3.1"
		objectives=_ "Victory:
@Defeat enemy leader(s)"
		objectives_changed="yes"
		recruit="Dark Adept,Ghost,Ghoul,Skeleton,Skeleton Archer,Vampire Bat,Walking Corpse"
		recruitment_pattern="fighter,fighter,archer,fighter,scout,archer"
		save_id="Hilquias2"
		share_maps="no"
		share_view="yes"
		shroud="no"
		side="2"
		start_gold="100"
		team_name="south"
#textdomain wesnoth-multiplayer
		user_team_name=_ "teamname^South"
		village_gold="2"
		village_value="1"
		villages_per_scout="8"
		[ai]
			recruitment_pattern="fighter,fighter,archer,fighter,scout,archer"
			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]
		[village]
			x="10"
			y="19"
		[/village]
		[village]
			x="14"
			y="17"
		[/village]
		[village]
			x="16"
			y="22"
		[/village]
		[village]
			x="20"
			y="15"
		[/village]
		[village]
			x="26"
			y="19"
		[/village]
		[village]
			x="26"
			y="22"
		[/village]
		[village]
			x="27"
			y="16"
		[/village]
		[village]
			x="30"
			y="19"
		[/village]
		[unit]
			advances_to="Lich,Necromancer"
			alignment="chaotic"
			allow_changes="yes"
			allow_player="yes"
			alpha="256"
			attacks_left="1"
			canrecruit="yes"
			colour="2"
			controller="network"
			cost="32"
			current_player="Hilquias"
			die_sound="human-die-1.ogg,human-die-2.ogg,human-die-3.ogg"
			experience="18"
			facing="s"
			flag_rgb="magenta"
			flying="no"
			fog="yes"
			gender="male"
			gold="100"
			goto_x="-999"
			goto_y="-999"
			hitpoints="48"
			id="Hilquias2"
			image="units/undead-necromancers/dark-sorcerer.png"
			income="0"
#textdomain wesnoth-units
			language_name=_ "Dark Sorcerer"
			leader="Dark Sorcerer,Revenant,Deathblade,Bone Shooter,Necrophage"
			level="2"
			max_attacks="1"
			max_experience="63"
			max_hitpoints="48"
			max_moves="5"
			movement="5"
			movement_type="smallfoot"
			moves="5"
			mp_countdown="yes"
			mp_countdown_action_bonus="20"
			mp_countdown_init_time="270"
			mp_countdown_reservoir_time="270"
			mp_countdown_turn_bonus="200"
			name="Frankenstein"
			profile="portraits/humans/necromancer.png"
			race="human"
			random_leader="Dark Sorcerer,Revenant,Deathblade,Bone Shooter"
			random_traits="no"
			recruit="Skeleton,Skeleton Archer,Walking Corpse,Ghost,Vampire Bat,Dark Adept,Ghoul"
			resting="yes"
			save_id="Hilquias2"
			share_maps="no"
			share_view="yes"
			shroud="no"
			side="2"
			team_name="south"
			terrain_liked="Ss, Hh, Ha, Ww"
			type="Dark Sorcerer"
			underlying_id="2"
			unrenamable="no"
			upkeep="full"
			usage="mixed fighter"
			user_team_name="wesnoth-multiplayerteamname^South"
			village_gold="2"
			x="20"
			y="20"
			zoc="yes"
			[defense]
				castle="40"
				cave="60"
				deep_water="80"
				flat="60"
				forest="50"
				frozen="80"
				fungus="50"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="80"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="3"
				fungus="2"
				hills="2"
				impassable="99"
				mountains="3"
				reef="2"
				sand="2"
				shallow_water="3"
				swamp_water="3"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="80"
				blade="100"
				cold="100"
				fire="100"
				impact="100"
				pierce="100"
			[/resistance]
			[portrait]
				image="portraits/humans/transparent/necromancer.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/humans/transparent/necromancer.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="4"
				description=_ "staff"
				icon="attacks/staff-necromantic.png"
				name="staff"
				number="3"
				range="melee"
				type="impact"
			[/attack]
			[attack]
				damage="13"
				description=_ "chill wave"
				icon="attacks/iceball.png"
				name="chill wave"
				number="2"
				range="ranged"
				type="cold"
				[specials]
					[chance_to_hit]
						cumulative="no"
#textdomain wesnoth
						description=_ "Magical:
This attack always has a 70% chance to hit regardless of the defensive ability of the unit being attacked."
						id="magical"
						name=_ "magical"
						value="70"
					[/chance_to_hit]
				[/specials]
			[/attack]
			[attack]
				damage="9"
#textdomain wesnoth-units
				description=_ "shadow wave"
				icon="attacks/dark-missile.png"
				name="shadow wave"
				number="2"
				range="ranged"
				type="arcane"
				[specials]
					[chance_to_hit]
						cumulative="no"
#textdomain wesnoth
						description=_ "Magical:
This attack always has a 70% chance to hit regardless of the defensive ability of the unit being attacked."
						id="magical"
						name=_ "magical"
						value="70"
					[/chance_to_hit]
				[/specials]
			[/attack]
			[modifications]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Necrophage"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="16"
			die_sound="ghoul-hit.wav"
			ellipse="misc/ellipse"
			experience="14"
			facing="s"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="24"
			id="Ghoul-11"
			image="units/undead/ghoul.png"
#textdomain wesnoth-units
			language_name=_ "Ghoul"
			level="1"
			max_attacks="1"
			max_experience="25"
			max_hitpoints="33"
			max_moves="5"
			movement="5"
			movement_type="gruefoot"
			moves="0"
			profile="portraits/undead/ghoul.png"
			race="undead"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="2"
			type="Ghoul"
			underlying_id="11"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			x="26"
			y="12"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="claws"
				[/filter_attack]
				[frame]
					begin="-250"
					end="-200"
					image="units/undead/ghoul.png"
				[/frame]
				[frame]
					begin="-200"
					end="-125"
					image="units/undead/ghoul-attack-1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-125"
						end="-50"
						image="units/undead/ghoul-attack-2.png"
						sound="claws.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-125"
						end="-50"
						image="units/undead/ghoul-attack-2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[if]
					hits="hit"
					poisoned_sound_start_time="-100"
					[filter_second]
						[not]
							[filter_wml]
								[status]
									poisoned="yes"
								[/status]
							[/filter_wml]
						[/not]
					[/filter_second]
					[poisoned_sound_frame]
						duration="100"
						sound="poison.ogg"
					[/poisoned_sound_frame]
				[/if]
				[frame]
					begin="-50"
					end="50"
					image="units/undead/ghoul-attack-3.png"
				[/frame]
				[frame]
					begin="50"
					end="125"
					image="units/undead/ghoul-attack-4.png"
				[/frame]
				[frame]
					begin="125"
					end="200"
					image="units/undead/ghoul.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/undead/ghoul-defend-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead/ghoul-defend-2.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/undead/ghoul-defend-2.png"
						sound="ghoul-hit.wav"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/undead/ghoul-defend-2.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/undead/ghoul-defend-1.png"
				[/frame]
			[/defend]
			[trait]
				availability="musthave"
#textdomain wesnoth
				description=_ "Fights normally during unfavorable times of day/night"
				female_name=_ "female^fearless"
				id="fearless"
				male_name=_ "fearless"
			[/trait]
			[defense]
				castle="40"
				cave="60"
				deep_water="90"
				flat="60"
				forest="50"
				frozen="70"
				fungus="40"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="2"
				fungus="2"
				hills="2"
				impassable="99"
				mountains="3"
				reef="2"
				sand="2"
				shallow_water="3"
				swamp_water="2"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="80"
				blade="90"
				cold="60"
				fire="90"
				impact="100"
				pierce="70"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
				not_living="yes"
			[/status]
			[attack]
				damage="4"
#textdomain wesnoth-units
				description=_ "claws"
				icon="attacks/claws-undead.png"
				name="claws"
				number="3"
				range="melee"
				type="blade"
				[specials]
					[poison]
#textdomain wesnoth
						description=_ "Poison:
This attack poisons living targets. Poisoned units lose 8 HP every turn until they are cured or are reduced to 1 HP. Poison can not, of itself, kill a unit."
						id="poison"
						name=_ "poison"
					[/poison]
				[/specials]
			[/attack]
			[modifications]
				[trait]
					availability="musthave"
					description=_ "Immune to drain, poison and plague"
					female_name=_ "female^undead"
					id="undead"
					male_name=_ "undead"
					name=_ "undead"
					[effect]
						add="not_living"
						apply_to="status"
					[/effect]
				[/trait]
				[trait]
					availability="musthave"
					description=_ "Fights normally during unfavorable times of day/night"
					female_name=_ "female^fearless"
					id="fearless"
					male_name=_ "fearless"
					name=_ "fearless"
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Bone Shooter"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="14"
			die_sound="skeleton-die-1.ogg,skeleton-die-2.ogg"
			ellipse="misc/ellipse"
			experience="1"
			facing="se"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="31"
			id="Skeleton Archer-39"
			image="units/undead-skeletal/archer.png"
#textdomain wesnoth-units
			language_name=_ "Skeleton Archer"
			level="1"
			max_attacks="1"
			max_experience="25"
			max_hitpoints="31"
			max_moves="5"
			movement="5"
			movement_type="undeadfoot"
			moves="0"
			race="undead"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="2"
			type="Skeleton Archer"
			underlying_id="39"
			unrenamable="no"
			upkeep="full"
			usage="archer"
			x="14"
			y="17"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="bow"
				[/filter_attack]
				[missile_frame]
					begin="-150"
					end="0"
					image="projectiles/missile-n.png"
					image_diagonal="projectiles/missile-ne.png"
				[/missile_frame]
				[if]
					hits="yes"
					[frame]
						begin="-400"
						end="-250"
						image="units/undead-skeletal/archer-attack1.png"
						sound="bow.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-400"
						end="-250"
						image="units/undead-skeletal/archer-attack1.png"
						sound="bow-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-250"
					end="-100"
					image="units/undead-skeletal/archer-attack2.png"
				[/frame]
				[frame]
					begin="-100"
					end="0"
					image="units/undead-skeletal/archer.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="fist"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-100"
					image="units/undead-skeletal/archer.png"
				[/frame]
				[if]
					hits="no"
					[frame]
						begin="-100"
						end="100"
						image="units/undead-skeletal/archer-attack.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-100"
						end="100"
						image="units/undead-skeletal/archer-attack.png"
						sound="fist.ogg"
					[/frame]
				[/else]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer.png"
				[/frame]
			[/attack_anim]
			[death]
				[frame]
					begin="0"
					end="100"
					image="units/undead-skeletal/archer-die2-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-die2-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-die2-3.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-die2-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-die2-5.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/undead-skeletal/archer-die2-6.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/undead-skeletal/archer-die2-7.png"
				[/frame]
			[/death]
			[death]
				[frame]
					begin="0"
					end="100"
					image="units/undead-skeletal/archer-die-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-die-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-die-3.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-die-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-die-5.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/undead-skeletal/archer-die-6.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/undead-skeletal/archer-die-7.png"
				[/frame]
				[frame]
					begin="700"
					end="800"
					image="units/undead-skeletal/archer-die-8.png"
				[/frame]
				[frame]
					begin="800"
					end="900"
					image="units/undead-skeletal/archer-die-9.png"
				[/frame]
				[frame]
					begin="900"
					end="1000"
					image="units/undead-skeletal/archer-die-10.png"
				[/frame]
				[frame]
					begin="1000"
					end="1100"
					image="units/undead-skeletal/archer-die-11.png"
				[/frame]
				[frame]
					begin="1100"
					end="1200"
					image="units/undead-skeletal/archer-die-12.png"
				[/frame]
				[frame]
					begin="1200"
					end="1300"
					image="units/undead-skeletal/archer-die-13.png"
				[/frame]
			[/death]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/undead-skeletal/archer.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead-skeletal/archer-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/undead-skeletal/archer-defend.png"
						sound="skeleton-hit-1.ogg,skeleton-hit-2.ogg,skeleton-hit-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/undead-skeletal/archer-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/undead-skeletal/archer.png"
				[/frame]
			[/defend]
			[idle_anim]
				[filter]
					[not]
						[filter_wml]
							[status]
								poisoned="yes"
							[/status]
						[/filter_wml]
					[/not]
				[/filter]
				[filter]
					[filter_adjacent]
						count="0"
						is_enemy="yes"
					[/filter_adjacent]
				[/filter]
				[frame]
					begin="0"
					end="100"
					image="units/undead-skeletal/archer-idle-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-idle-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-idle-3.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-idle-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-idle-5.png"
				[/frame]
				[frame]
					begin="500"
					end="700"
					image="units/undead-skeletal/archer-idle-6.png"
				[/frame]
				[frame]
					begin="700"
					end="800"
					image="units/undead-skeletal/archer-idle-7.png"
				[/frame]
				[frame]
					begin="800"
					end="900"
					image="units/undead-skeletal/archer-idle-8.png"
				[/frame]
				[frame]
					begin="900"
					end="1000"
					image="units/undead-skeletal/archer-idle-9.png"
				[/frame]
				[frame]
					begin="1000"
					end="1100"
					image="units/undead-skeletal/archer-idle-10.png"
				[/frame]
				[frame]
					begin="1100"
					end="1200"
					image="units/undead-skeletal/archer-idle-11.png"
				[/frame]
				[frame]
					begin="1200"
					end="1400"
					image="units/undead-skeletal/archer-idle-12.png"
				[/frame]
				[frame]
					begin="1400"
					end="1500"
					image="units/undead-skeletal/archer-idle-13.png"
				[/frame]
				[frame]
					begin="1500"
					end="1600"
					image="units/undead-skeletal/archer-idle-14.png"
				[/frame]
			[/idle_anim]
			[recruit_anim]
				[frame]
					alpha="0~1:300"
					begin="-200"
					end="100"
					image="units/undead-skeletal/archer-die2-7.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-die2-6.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-die2-5.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-die2-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-die2-3.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/undead-skeletal/archer-die2-2.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/undead-skeletal/archer-die2-1.png"
				[/frame]
			[/recruit_anim]
			[defense]
				castle="40"
				cave="60"
				deep_water="90"
				flat="60"
				forest="50"
				frozen="70"
				fungus="40"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="3"
				flat="1"
				forest="2"
				frozen="2"
				fungus="2"
				hills="2"
				impassable="99"
				mountains="3"
				reef="2"
				sand="2"
				shallow_water="2"
				swamp_water="2"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="150"
				blade="60"
				cold="40"
				fire="120"
				impact="120"
				pierce="40"
			[/resistance]
			[abilities]
				[hides]
					affect_self="yes"
#textdomain wesnoth
					description=_ "Submerge:
This unit can hide in deep water, and remain undetected by its enemies.

Enemy units cannot see this unit while it is in deep water, except if they have units next to it. Any enemy unit that first discovers this unit immediately loses all its remaining movement."
					description_inactive=_ "Submerge:
This unit can hide in deep water, and remain undetected by its enemies.

Enemy units cannot see this unit while it is in deep water, except if they have units next to it. Any enemy unit that first discovers this unit immediately loses all its remaining movement."
					female_name=_ "female^submerge"
					female_name_inactive=_ "female^submerge"
					id="submerge"
					name=_ "submerge"
					name_inactive=_ "submerge"
					[filter_self]
						[filter_location]
							terrain="Wo"
						[/filter_location]
					[/filter_self]
				[/hides]
			[/abilities]
			[variables]
			[/variables]
			[status]
				hidden="yes"
				not_living="yes"
			[/status]
			[attack]
				damage="3"
#textdomain wesnoth-units
				description=_ "fist"
				icon="attacks/fist-skeletal.png"
				name="fist"
				number="2"
				range="melee"
				type="impact"
			[/attack]
			[attack]
				damage="6"
				description=_ "bow"
				icon="attacks/bow-orcish.png"
				name="bow"
				number="3"
				range="ranged"
				type="pierce"
			[/attack]
			[modifications]
				[trait]
					availability="musthave"
#textdomain wesnoth
					description=_ "Immune to drain, poison and plague"
					female_name=_ "female^undead"
					id="undead"
					male_name=_ "undead"
					name=_ "undead"
					[effect]
						add="not_living"
						apply_to="status"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Bone Shooter"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="14"
			die_sound="skeleton-die-1.ogg,skeleton-die-2.ogg"
			ellipse="misc/ellipse"
			experience="1"
			facing="s"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="31"
			id="Skeleton Archer-44"
			image="units/undead-skeletal/archer.png"
#textdomain wesnoth-units
			language_name=_ "Skeleton Archer"
			level="1"
			max_attacks="1"
			max_experience="25"
			max_hitpoints="31"
			max_moves="5"
			movement="5"
			movement_type="undeadfoot"
			moves="0"
			race="undead"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="2"
			type="Skeleton Archer"
			underlying_id="44"
			unrenamable="no"
			upkeep="full"
			usage="archer"
			x="26"
			y="13"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="bow"
				[/filter_attack]
				[missile_frame]
					begin="-150"
					end="0"
					image="projectiles/missile-n.png"
					image_diagonal="projectiles/missile-ne.png"
				[/missile_frame]
				[if]
					hits="yes"
					[frame]
						begin="-400"
						end="-250"
						image="units/undead-skeletal/archer-attack1.png"
						sound="bow.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-400"
						end="-250"
						image="units/undead-skeletal/archer-attack1.png"
						sound="bow-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-250"
					end="-100"
					image="units/undead-skeletal/archer-attack2.png"
				[/frame]
				[frame]
					begin="-100"
					end="0"
					image="units/undead-skeletal/archer.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="fist"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-100"
					image="units/undead-skeletal/archer.png"
				[/frame]
				[if]
					hits="no"
					[frame]
						begin="-100"
						end="100"
						image="units/undead-skeletal/archer-attack.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-100"
						end="100"
						image="units/undead-skeletal/archer-attack.png"
						sound="fist.ogg"
					[/frame]
				[/else]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer.png"
				[/frame]
			[/attack_anim]
			[death]
				[frame]
					begin="0"
					end="100"
					image="units/undead-skeletal/archer-die2-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-die2-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-die2-3.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-die2-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-die2-5.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/undead-skeletal/archer-die2-6.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/undead-skeletal/archer-die2-7.png"
				[/frame]
			[/death]
			[death]
				[frame]
					begin="0"
					end="100"
					image="units/undead-skeletal/archer-die-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-die-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-die-3.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-die-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-die-5.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/undead-skeletal/archer-die-6.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/undead-skeletal/archer-die-7.png"
				[/frame]
				[frame]
					begin="700"
					end="800"
					image="units/undead-skeletal/archer-die-8.png"
				[/frame]
				[frame]
					begin="800"
					end="900"
					image="units/undead-skeletal/archer-die-9.png"
				[/frame]
				[frame]
					begin="900"
					end="1000"
					image="units/undead-skeletal/archer-die-10.png"
				[/frame]
				[frame]
					begin="1000"
					end="1100"
					image="units/undead-skeletal/archer-die-11.png"
				[/frame]
				[frame]
					begin="1100"
					end="1200"
					image="units/undead-skeletal/archer-die-12.png"
				[/frame]
				[frame]
					begin="1200"
					end="1300"
					image="units/undead-skeletal/archer-die-13.png"
				[/frame]
			[/death]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/undead-skeletal/archer.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead-skeletal/archer-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/undead-skeletal/archer-defend.png"
						sound="skeleton-hit-1.ogg,skeleton-hit-2.ogg,skeleton-hit-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/undead-skeletal/archer-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/undead-skeletal/archer.png"
				[/frame]
			[/defend]
			[idle_anim]
				[filter]
					[not]
						[filter_wml]
							[status]
								poisoned="yes"
							[/status]
						[/filter_wml]
					[/not]
				[/filter]
				[filter]
					[filter_adjacent]
						count="0"
						is_enemy="yes"
					[/filter_adjacent]
				[/filter]
				[frame]
					begin="0"
					end="100"
					image="units/undead-skeletal/archer-idle-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-idle-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-idle-3.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-idle-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-idle-5.png"
				[/frame]
				[frame]
					begin="500"
					end="700"
					image="units/undead-skeletal/archer-idle-6.png"
				[/frame]
				[frame]
					begin="700"
					end="800"
					image="units/undead-skeletal/archer-idle-7.png"
				[/frame]
				[frame]
					begin="800"
					end="900"
					image="units/undead-skeletal/archer-idle-8.png"
				[/frame]
				[frame]
					begin="900"
					end="1000"
					image="units/undead-skeletal/archer-idle-9.png"
				[/frame]
				[frame]
					begin="1000"
					end="1100"
					image="units/undead-skeletal/archer-idle-10.png"
				[/frame]
				[frame]
					begin="1100"
					end="1200"
					image="units/undead-skeletal/archer-idle-11.png"
				[/frame]
				[frame]
					begin="1200"
					end="1400"
					image="units/undead-skeletal/archer-idle-12.png"
				[/frame]
				[frame]
					begin="1400"
					end="1500"
					image="units/undead-skeletal/archer-idle-13.png"
				[/frame]
				[frame]
					begin="1500"
					end="1600"
					image="units/undead-skeletal/archer-idle-14.png"
				[/frame]
			[/idle_anim]
			[recruit_anim]
				[frame]
					alpha="0~1:300"
					begin="-200"
					end="100"
					image="units/undead-skeletal/archer-die2-7.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-die2-6.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-die2-5.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-die2-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-die2-3.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/undead-skeletal/archer-die2-2.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/undead-skeletal/archer-die2-1.png"
				[/frame]
			[/recruit_anim]
			[defense]
				castle="40"
				cave="60"
				deep_water="90"
				flat="60"
				forest="50"
				frozen="70"
				fungus="40"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="3"
				flat="1"
				forest="2"
				frozen="2"
				fungus="2"
				hills="2"
				impassable="99"
				mountains="3"
				reef="2"
				sand="2"
				shallow_water="2"
				swamp_water="2"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="150"
				blade="60"
				cold="40"
				fire="120"
				impact="120"
				pierce="40"
			[/resistance]
			[abilities]
				[hides]
					affect_self="yes"
#textdomain wesnoth
					description=_ "Submerge:
This unit can hide in deep water, and remain undetected by its enemies.

Enemy units cannot see this unit while it is in deep water, except if they have units next to it. Any enemy unit that first discovers this unit immediately loses all its remaining movement."
					description_inactive=_ "Submerge:
This unit can hide in deep water, and remain undetected by its enemies.

Enemy units cannot see this unit while it is in deep water, except if they have units next to it. Any enemy unit that first discovers this unit immediately loses all its remaining movement."
					female_name=_ "female^submerge"
					female_name_inactive=_ "female^submerge"
					id="submerge"
					name=_ "submerge"
					name_inactive=_ "submerge"
					[filter_self]
						[filter_location]
							terrain="Wo"
						[/filter_location]
					[/filter_self]
				[/hides]
			[/abilities]
			[variables]
			[/variables]
			[status]
				hidden="yes"
				not_living="yes"
			[/status]
			[attack]
				damage="3"
#textdomain wesnoth-units
				description=_ "fist"
				icon="attacks/fist-skeletal.png"
				name="fist"
				number="2"
				range="melee"
				type="impact"
			[/attack]
			[attack]
				damage="6"
				description=_ "bow"
				icon="attacks/bow-orcish.png"
				name="bow"
				number="3"
				range="ranged"
				type="pierce"
			[/attack]
			[modifications]
				[trait]
					availability="musthave"
#textdomain wesnoth
					description=_ "Immune to drain, poison and plague"
					female_name=_ "female^undead"
					id="undead"
					male_name=_ "undead"
					name=_ "undead"
					[effect]
						add="not_living"
						apply_to="status"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Bone Shooter"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="14"
			die_sound="skeleton-die-1.ogg,skeleton-die-2.ogg"
			ellipse="misc/ellipse"
			experience="0"
			facing="s"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="31"
			id="Skeleton Archer-46"
			image="units/undead-skeletal/archer.png"
#textdomain wesnoth-units
			language_name=_ "Skeleton Archer"
			level="1"
			max_attacks="1"
			max_experience="25"
			max_hitpoints="31"
			max_moves="5"
			movement="5"
			movement_type="undeadfoot"
			moves="1"
			race="undead"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="2"
			type="Skeleton Archer"
			underlying_id="46"
			unrenamable="no"
			upkeep="full"
			usage="archer"
			x="20"
			y="15"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="bow"
				[/filter_attack]
				[missile_frame]
					begin="-150"
					end="0"
					image="projectiles/missile-n.png"
					image_diagonal="projectiles/missile-ne.png"
				[/missile_frame]
				[if]
					hits="yes"
					[frame]
						begin="-400"
						end="-250"
						image="units/undead-skeletal/archer-attack1.png"
						sound="bow.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-400"
						end="-250"
						image="units/undead-skeletal/archer-attack1.png"
						sound="bow-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-250"
					end="-100"
					image="units/undead-skeletal/archer-attack2.png"
				[/frame]
				[frame]
					begin="-100"
					end="0"
					image="units/undead-skeletal/archer.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="fist"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-100"
					image="units/undead-skeletal/archer.png"
				[/frame]
				[if]
					hits="no"
					[frame]
						begin="-100"
						end="100"
						image="units/undead-skeletal/archer-attack.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-100"
						end="100"
						image="units/undead-skeletal/archer-attack.png"
						sound="fist.ogg"
					[/frame]
				[/else]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer.png"
				[/frame]
			[/attack_anim]
			[death]
				[frame]
					begin="0"
					end="100"
					image="units/undead-skeletal/archer-die2-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-die2-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-die2-3.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-die2-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-die2-5.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/undead-skeletal/archer-die2-6.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/undead-skeletal/archer-die2-7.png"
				[/frame]
			[/death]
			[death]
				[frame]
					begin="0"
					end="100"
					image="units/undead-skeletal/archer-die-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-die-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-die-3.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-die-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-die-5.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/undead-skeletal/archer-die-6.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/undead-skeletal/archer-die-7.png"
				[/frame]
				[frame]
					begin="700"
					end="800"
					image="units/undead-skeletal/archer-die-8.png"
				[/frame]
				[frame]
					begin="800"
					end="900"
					image="units/undead-skeletal/archer-die-9.png"
				[/frame]
				[frame]
					begin="900"
					end="1000"
					image="units/undead-skeletal/archer-die-10.png"
				[/frame]
				[frame]
					begin="1000"
					end="1100"
					image="units/undead-skeletal/archer-die-11.png"
				[/frame]
				[frame]
					begin="1100"
					end="1200"
					image="units/undead-skeletal/archer-die-12.png"
				[/frame]
				[frame]
					begin="1200"
					end="1300"
					image="units/undead-skeletal/archer-die-13.png"
				[/frame]
			[/death]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/undead-skeletal/archer.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead-skeletal/archer-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/undead-skeletal/archer-defend.png"
						sound="skeleton-hit-1.ogg,skeleton-hit-2.ogg,skeleton-hit-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/undead-skeletal/archer-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/undead-skeletal/archer.png"
				[/frame]
			[/defend]
			[idle_anim]
				[filter]
					[not]
						[filter_wml]
							[status]
								poisoned="yes"
							[/status]
						[/filter_wml]
					[/not]
				[/filter]
				[filter]
					[filter_adjacent]
						count="0"
						is_enemy="yes"
					[/filter_adjacent]
				[/filter]
				[frame]
					begin="0"
					end="100"
					image="units/undead-skeletal/archer-idle-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-idle-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-idle-3.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-idle-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-idle-5.png"
				[/frame]
				[frame]
					begin="500"
					end="700"
					image="units/undead-skeletal/archer-idle-6.png"
				[/frame]
				[frame]
					begin="700"
					end="800"
					image="units/undead-skeletal/archer-idle-7.png"
				[/frame]
				[frame]
					begin="800"
					end="900"
					image="units/undead-skeletal/archer-idle-8.png"
				[/frame]
				[frame]
					begin="900"
					end="1000"
					image="units/undead-skeletal/archer-idle-9.png"
				[/frame]
				[frame]
					begin="1000"
					end="1100"
					image="units/undead-skeletal/archer-idle-10.png"
				[/frame]
				[frame]
					begin="1100"
					end="1200"
					image="units/undead-skeletal/archer-idle-11.png"
				[/frame]
				[frame]
					begin="1200"
					end="1400"
					image="units/undead-skeletal/archer-idle-12.png"
				[/frame]
				[frame]
					begin="1400"
					end="1500"
					image="units/undead-skeletal/archer-idle-13.png"
				[/frame]
				[frame]
					begin="1500"
					end="1600"
					image="units/undead-skeletal/archer-idle-14.png"
				[/frame]
			[/idle_anim]
			[recruit_anim]
				[frame]
					alpha="0~1:300"
					begin="-200"
					end="100"
					image="units/undead-skeletal/archer-die2-7.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-die2-6.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-die2-5.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-die2-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-die2-3.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/undead-skeletal/archer-die2-2.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/undead-skeletal/archer-die2-1.png"
				[/frame]
			[/recruit_anim]
			[defense]
				castle="40"
				cave="60"
				deep_water="90"
				flat="60"
				forest="50"
				frozen="70"
				fungus="40"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="3"
				flat="1"
				forest="2"
				frozen="2"
				fungus="2"
				hills="2"
				impassable="99"
				mountains="3"
				reef="2"
				sand="2"
				shallow_water="2"
				swamp_water="2"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="150"
				blade="60"
				cold="40"
				fire="120"
				impact="120"
				pierce="40"
			[/resistance]
			[abilities]
				[hides]
					affect_self="yes"
#textdomain wesnoth
					description=_ "Submerge:
This unit can hide in deep water, and remain undetected by its enemies.

Enemy units cannot see this unit while it is in deep water, except if they have units next to it. Any enemy unit that first discovers this unit immediately loses all its remaining movement."
					description_inactive=_ "Submerge:
This unit can hide in deep water, and remain undetected by its enemies.

Enemy units cannot see this unit while it is in deep water, except if they have units next to it. Any enemy unit that first discovers this unit immediately loses all its remaining movement."
					female_name=_ "female^submerge"
					female_name_inactive=_ "female^submerge"
					id="submerge"
					name=_ "submerge"
					name_inactive=_ "submerge"
					[filter_self]
						[filter_location]
							terrain="Wo"
						[/filter_location]
					[/filter_self]
				[/hides]
			[/abilities]
			[variables]
			[/variables]
			[status]
				hidden="yes"
				not_living="yes"
			[/status]
			[attack]
				damage="3"
#textdomain wesnoth-units
				description=_ "fist"
				icon="attacks/fist-skeletal.png"
				name="fist"
				number="2"
				range="melee"
				type="impact"
			[/attack]
			[attack]
				damage="6"
				description=_ "bow"
				icon="attacks/bow-orcish.png"
				name="bow"
				number="3"
				range="ranged"
				type="pierce"
			[/attack]
			[modifications]
				[trait]
					availability="musthave"
#textdomain wesnoth
					description=_ "Immune to drain, poison and plague"
					female_name=_ "female^undead"
					id="undead"
					male_name=_ "undead"
					name=_ "undead"
					[effect]
						add="not_living"
						apply_to="status"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Bone Shooter"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="14"
			die_sound="skeleton-die-1.ogg,skeleton-die-2.ogg"
			ellipse="misc/ellipse"
			experience="0"
			facing="sw"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="31"
			id="Skeleton Archer-48"
			image="units/undead-skeletal/archer.png"
#textdomain wesnoth-units
			language_name=_ "Skeleton Archer"
			level="1"
			max_attacks="1"
			max_experience="25"
			max_hitpoints="31"
			max_moves="5"
			movement="5"
			movement_type="undeadfoot"
			moves="1"
			race="undead"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="2"
			type="Skeleton Archer"
			underlying_id="48"
			unrenamable="no"
			upkeep="full"
			usage="archer"
			x="17"
			y="16"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="bow"
				[/filter_attack]
				[missile_frame]
					begin="-150"
					end="0"
					image="projectiles/missile-n.png"
					image_diagonal="projectiles/missile-ne.png"
				[/missile_frame]
				[if]
					hits="yes"
					[frame]
						begin="-400"
						end="-250"
						image="units/undead-skeletal/archer-attack1.png"
						sound="bow.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-400"
						end="-250"
						image="units/undead-skeletal/archer-attack1.png"
						sound="bow-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-250"
					end="-100"
					image="units/undead-skeletal/archer-attack2.png"
				[/frame]
				[frame]
					begin="-100"
					end="0"
					image="units/undead-skeletal/archer.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="fist"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-100"
					image="units/undead-skeletal/archer.png"
				[/frame]
				[if]
					hits="no"
					[frame]
						begin="-100"
						end="100"
						image="units/undead-skeletal/archer-attack.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-100"
						end="100"
						image="units/undead-skeletal/archer-attack.png"
						sound="fist.ogg"
					[/frame]
				[/else]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer.png"
				[/frame]
			[/attack_anim]
			[death]
				[frame]
					begin="0"
					end="100"
					image="units/undead-skeletal/archer-die2-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-die2-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-die2-3.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-die2-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-die2-5.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/undead-skeletal/archer-die2-6.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/undead-skeletal/archer-die2-7.png"
				[/frame]
			[/death]
			[death]
				[frame]
					begin="0"
					end="100"
					image="units/undead-skeletal/archer-die-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-die-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-die-3.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-die-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-die-5.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/undead-skeletal/archer-die-6.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/undead-skeletal/archer-die-7.png"
				[/frame]
				[frame]
					begin="700"
					end="800"
					image="units/undead-skeletal/archer-die-8.png"
				[/frame]
				[frame]
					begin="800"
					end="900"
					image="units/undead-skeletal/archer-die-9.png"
				[/frame]
				[frame]
					begin="900"
					end="1000"
					image="units/undead-skeletal/archer-die-10.png"
				[/frame]
				[frame]
					begin="1000"
					end="1100"
					image="units/undead-skeletal/archer-die-11.png"
				[/frame]
				[frame]
					begin="1100"
					end="1200"
					image="units/undead-skeletal/archer-die-12.png"
				[/frame]
				[frame]
					begin="1200"
					end="1300"
					image="units/undead-skeletal/archer-die-13.png"
				[/frame]
			[/death]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/undead-skeletal/archer.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead-skeletal/archer-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/undead-skeletal/archer-defend.png"
						sound="skeleton-hit-1.ogg,skeleton-hit-2.ogg,skeleton-hit-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/undead-skeletal/archer-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/undead-skeletal/archer.png"
				[/frame]
			[/defend]
			[idle_anim]
				[filter]
					[not]
						[filter_wml]
							[status]
								poisoned="yes"
							[/status]
						[/filter_wml]
					[/not]
				[/filter]
				[filter]
					[filter_adjacent]
						count="0"
						is_enemy="yes"
					[/filter_adjacent]
				[/filter]
				[frame]
					begin="0"
					end="100"
					image="units/undead-skeletal/archer-idle-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-idle-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-idle-3.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-idle-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-idle-5.png"
				[/frame]
				[frame]
					begin="500"
					end="700"
					image="units/undead-skeletal/archer-idle-6.png"
				[/frame]
				[frame]
					begin="700"
					end="800"
					image="units/undead-skeletal/archer-idle-7.png"
				[/frame]
				[frame]
					begin="800"
					end="900"
					image="units/undead-skeletal/archer-idle-8.png"
				[/frame]
				[frame]
					begin="900"
					end="1000"
					image="units/undead-skeletal/archer-idle-9.png"
				[/frame]
				[frame]
					begin="1000"
					end="1100"
					image="units/undead-skeletal/archer-idle-10.png"
				[/frame]
				[frame]
					begin="1100"
					end="1200"
					image="units/undead-skeletal/archer-idle-11.png"
				[/frame]
				[frame]
					begin="1200"
					end="1400"
					image="units/undead-skeletal/archer-idle-12.png"
				[/frame]
				[frame]
					begin="1400"
					end="1500"
					image="units/undead-skeletal/archer-idle-13.png"
				[/frame]
				[frame]
					begin="1500"
					end="1600"
					image="units/undead-skeletal/archer-idle-14.png"
				[/frame]
			[/idle_anim]
			[recruit_anim]
				[frame]
					alpha="0~1:300"
					begin="-200"
					end="100"
					image="units/undead-skeletal/archer-die2-7.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-die2-6.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-die2-5.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-die2-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-die2-3.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/undead-skeletal/archer-die2-2.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/undead-skeletal/archer-die2-1.png"
				[/frame]
			[/recruit_anim]
			[defense]
				castle="40"
				cave="60"
				deep_water="90"
				flat="60"
				forest="50"
				frozen="70"
				fungus="40"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="3"
				flat="1"
				forest="2"
				frozen="2"
				fungus="2"
				hills="2"
				impassable="99"
				mountains="3"
				reef="2"
				sand="2"
				shallow_water="2"
				swamp_water="2"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="150"
				blade="60"
				cold="40"
				fire="120"
				impact="120"
				pierce="40"
			[/resistance]
			[abilities]
				[hides]
					affect_self="yes"
#textdomain wesnoth
					description=_ "Submerge:
This unit can hide in deep water, and remain undetected by its enemies.

Enemy units cannot see this unit while it is in deep water, except if they have units next to it. Any enemy unit that first discovers this unit immediately loses all its remaining movement."
					description_inactive=_ "Submerge:
This unit can hide in deep water, and remain undetected by its enemies.

Enemy units cannot see this unit while it is in deep water, except if they have units next to it. Any enemy unit that first discovers this unit immediately loses all its remaining movement."
					female_name=_ "female^submerge"
					female_name_inactive=_ "female^submerge"
					id="submerge"
					name=_ "submerge"
					name_inactive=_ "submerge"
					[filter_self]
						[filter_location]
							terrain="Wo"
						[/filter_location]
					[/filter_self]
				[/hides]
			[/abilities]
			[variables]
			[/variables]
			[status]
				hidden="yes"
				not_living="yes"
			[/status]
			[attack]
				damage="3"
#textdomain wesnoth-units
				description=_ "fist"
				icon="attacks/fist-skeletal.png"
				name="fist"
				number="2"
				range="melee"
				type="impact"
			[/attack]
			[attack]
				damage="6"
				description=_ "bow"
				icon="attacks/bow-orcish.png"
				name="bow"
				number="3"
				range="ranged"
				type="pierce"
			[/attack]
			[modifications]
				[trait]
					availability="musthave"
#textdomain wesnoth
					description=_ "Immune to drain, poison and plague"
					female_name=_ "female^undead"
					id="undead"
					male_name=_ "undead"
					name=_ "undead"
					[effect]
						add="not_living"
						apply_to="status"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Revenant,Deathblade"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="15"
			die_sound="skeleton-die-1.ogg,skeleton-die-2.ogg"
			ellipse="misc/ellipse"
			experience="0"
			facing="nw"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="34"
			id="Skeleton-49"
			image="units/undead-skeletal/skeleton.png"
#textdomain wesnoth-units
			language_name=_ "Skeleton"
			level="1"
			max_attacks="1"
			max_experience="25"
			max_hitpoints="34"
			max_moves="5"
			movement="5"
			movement_type="undeadfoot"
			moves="1"
			race="undead"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="2"
			type="Skeleton"
			underlying_id="49"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			x="17"
			y="15"
			zoc="yes"
			[attack_anim]
				offset="0.0~0.3,0.3~0.45,0.45~0.3,0.3~0.0"
				start_time="-250"
				[filter_attack]
					name="axe"
				[/filter_attack]
				[frame]
					duration="150"
					image="units/undead-skeletal/skeleton-attack-1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						duration="100"
						image="units/undead-skeletal/skeleton-attack-2.png"
						sound="axe.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						duration="100"
						image="units/undead-skeletal/skeleton-attack-2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					duration="100"
					image="units/undead-skeletal/skeleton-attack-3.png"
				[/frame]
				[frame]
					duration="90"
					image="units/undead-skeletal/skeleton-attack-4.png"
				[/frame]
				[frame]
					duration="80"
					image="units/undead-skeletal/skeleton-attack-5.png"
				[/frame]
			[/attack_anim]
			[death]
				[frame]
					begin="0"
					end="100"
					image="units/undead-skeletal/skeleton-dying-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/skeleton-dying-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/skeleton-dying-3.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/skeleton-dying-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/skeleton-dying-5.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/undead-skeletal/skeleton-dying-6.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/undead-skeletal/skeleton-dying-7.png"
				[/frame]
			[/death]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/undead-skeletal/skeleton-defend-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead-skeletal/skeleton-defend-2.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/undead-skeletal/skeleton-defend-2.png"
						sound="skeleton-hit-1.ogg,skeleton-hit-2.ogg,skeleton-hit-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/undead-skeletal/skeleton-defend-2.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/undead-skeletal/skeleton-defend-1.png"
				[/frame]
			[/defend]
			[idle_anim]
				start_time="0"
				[filter]
					[not]
						[filter_wml]
							[status]
								poisoned="yes"
							[/status]
						[/filter_wml]
					[/not]
				[/filter]
				[filter]
					[filter_adjacent]
						count="0"
						is_enemy="yes"
					[/filter_adjacent]
				[/filter]
				[frame]
					duration="100"
					image="units/undead-skeletal/skeleton-idle-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead-skeletal/skeleton-idle-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead-skeletal/skeleton-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead-skeletal/skeleton-idle-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead-skeletal/skeleton-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead-skeletal/skeleton-idle-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead-skeletal/skeleton-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead-skeletal/skeleton-idle-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead-skeletal/skeleton-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead-skeletal/skeleton-idle-2.png"
				[/frame]
			[/idle_anim]
			[recruit_anim]
				[frame]
					alpha="0~1:300"
					begin="-200"
					end="100"
					image="units/undead-skeletal/skeleton-dying-7.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/skeleton-dying-6.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/skeleton-dying-5.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/skeleton-dying-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/skeleton-dying-3.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/undead-skeletal/skeleton-dying-2.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/undead-skeletal/skeleton-dying-1.png"
				[/frame]
			[/recruit_anim]
			[defense]
				castle="40"
				cave="60"
				deep_water="90"
				flat="60"
				forest="50"
				frozen="70"
				fungus="40"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="3"
				flat="1"
				forest="2"
				frozen="2"
				fungus="2"
				hills="2"
				impassable="99"
				mountains="3"
				reef="2"
				sand="2"
				shallow_water="2"
				swamp_water="2"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="150"
				blade="60"
				cold="40"
				fire="120"
				impact="120"
				pierce="40"
			[/resistance]
			[abilities]
				[hides]
					affect_self="yes"
#textdomain wesnoth
					description=_ "Submerge:
This unit can hide in deep water, and remain undetected by its enemies.

Enemy units cannot see this unit while it is in deep water, except if they have units next to it. Any enemy unit that first discovers this unit immediately loses all its remaining movement."
					description_inactive=_ "Submerge:
This unit can hide in deep water, and remain undetected by its enemies.

Enemy units cannot see this unit while it is in deep water, except if they have units next to it. Any enemy unit that first discovers this unit immediately loses all its remaining movement."
					female_name=_ "female^submerge"
					female_name_inactive=_ "female^submerge"
					id="submerge"
					name=_ "submerge"
					name_inactive=_ "submerge"
					[filter_self]
						[filter_location]
							terrain="Wo"
						[/filter_location]
					[/filter_self]
				[/hides]
			[/abilities]
			[variables]
			[/variables]
			[status]
				hidden="yes"
				not_living="yes"
			[/status]
			[attack]
				damage="7"
#textdomain wesnoth-units
				description=_ "axe"
				icon="attacks/axe-undead.png"
				name="axe"
				number="3"
				range="melee"
				type="blade"
			[/attack]
			[modifications]
				[trait]
					availability="musthave"
#textdomain wesnoth
					description=_ "Immune to drain, poison and plague"
					female_name=_ "female^undead"
					id="undead"
					male_name=_ "undead"
					name=_ "undead"
					[effect]
						add="not_living"
						apply_to="status"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Bone Shooter"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="14"
			die_sound="skeleton-die-1.ogg,skeleton-die-2.ogg"
			ellipse="misc/ellipse"
			experience="0"
			facing="ne"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="31"
			id="Skeleton Archer-51"
			image="units/undead-skeletal/archer.png"
#textdomain wesnoth-units
			language_name=_ "Skeleton Archer"
			level="1"
			max_attacks="1"
			max_experience="25"
			max_hitpoints="31"
			max_moves="5"
			movement="5"
			movement_type="undeadfoot"
			moves="0"
			race="undead"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="2"
			type="Skeleton Archer"
			underlying_id="51"
			unrenamable="no"
			upkeep="full"
			usage="archer"
			x="20"
			y="16"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="bow"
				[/filter_attack]
				[missile_frame]
					begin="-150"
					end="0"
					image="projectiles/missile-n.png"
					image_diagonal="projectiles/missile-ne.png"
				[/missile_frame]
				[if]
					hits="yes"
					[frame]
						begin="-400"
						end="-250"
						image="units/undead-skeletal/archer-attack1.png"
						sound="bow.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-400"
						end="-250"
						image="units/undead-skeletal/archer-attack1.png"
						sound="bow-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-250"
					end="-100"
					image="units/undead-skeletal/archer-attack2.png"
				[/frame]
				[frame]
					begin="-100"
					end="0"
					image="units/undead-skeletal/archer.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="fist"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-100"
					image="units/undead-skeletal/archer.png"
				[/frame]
				[if]
					hits="no"
					[frame]
						begin="-100"
						end="100"
						image="units/undead-skeletal/archer-attack.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-100"
						end="100"
						image="units/undead-skeletal/archer-attack.png"
						sound="fist.ogg"
					[/frame]
				[/else]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer.png"
				[/frame]
			[/attack_anim]
			[death]
				[frame]
					begin="0"
					end="100"
					image="units/undead-skeletal/archer-die2-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-die2-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-die2-3.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-die2-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-die2-5.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/undead-skeletal/archer-die2-6.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/undead-skeletal/archer-die2-7.png"
				[/frame]
			[/death]
			[death]
				[frame]
					begin="0"
					end="100"
					image="units/undead-skeletal/archer-die-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-die-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-die-3.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-die-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-die-5.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/undead-skeletal/archer-die-6.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/undead-skeletal/archer-die-7.png"
				[/frame]
				[frame]
					begin="700"
					end="800"
					image="units/undead-skeletal/archer-die-8.png"
				[/frame]
				[frame]
					begin="800"
					end="900"
					image="units/undead-skeletal/archer-die-9.png"
				[/frame]
				[frame]
					begin="900"
					end="1000"
					image="units/undead-skeletal/archer-die-10.png"
				[/frame]
				[frame]
					begin="1000"
					end="1100"
					image="units/undead-skeletal/archer-die-11.png"
				[/frame]
				[frame]
					begin="1100"
					end="1200"
					image="units/undead-skeletal/archer-die-12.png"
				[/frame]
				[frame]
					begin="1200"
					end="1300"
					image="units/undead-skeletal/archer-die-13.png"
				[/frame]
			[/death]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/undead-skeletal/archer.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead-skeletal/archer-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/undead-skeletal/archer-defend.png"
						sound="skeleton-hit-1.ogg,skeleton-hit-2.ogg,skeleton-hit-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/undead-skeletal/archer-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/undead-skeletal/archer.png"
				[/frame]
			[/defend]
			[idle_anim]
				[filter]
					[not]
						[filter_wml]
							[status]
								poisoned="yes"
							[/status]
						[/filter_wml]
					[/not]
				[/filter]
				[filter]
					[filter_adjacent]
						count="0"
						is_enemy="yes"
					[/filter_adjacent]
				[/filter]
				[frame]
					begin="0"
					end="100"
					image="units/undead-skeletal/archer-idle-1.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-idle-2.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-idle-3.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-idle-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-idle-5.png"
				[/frame]
				[frame]
					begin="500"
					end="700"
					image="units/undead-skeletal/archer-idle-6.png"
				[/frame]
				[frame]
					begin="700"
					end="800"
					image="units/undead-skeletal/archer-idle-7.png"
				[/frame]
				[frame]
					begin="800"
					end="900"
					image="units/undead-skeletal/archer-idle-8.png"
				[/frame]
				[frame]
					begin="900"
					end="1000"
					image="units/undead-skeletal/archer-idle-9.png"
				[/frame]
				[frame]
					begin="1000"
					end="1100"
					image="units/undead-skeletal/archer-idle-10.png"
				[/frame]
				[frame]
					begin="1100"
					end="1200"
					image="units/undead-skeletal/archer-idle-11.png"
				[/frame]
				[frame]
					begin="1200"
					end="1400"
					image="units/undead-skeletal/archer-idle-12.png"
				[/frame]
				[frame]
					begin="1400"
					end="1500"
					image="units/undead-skeletal/archer-idle-13.png"
				[/frame]
				[frame]
					begin="1500"
					end="1600"
					image="units/undead-skeletal/archer-idle-14.png"
				[/frame]
			[/idle_anim]
			[recruit_anim]
				[frame]
					alpha="0~1:300"
					begin="-200"
					end="100"
					image="units/undead-skeletal/archer-die2-7.png"
				[/frame]
				[frame]
					begin="100"
					end="200"
					image="units/undead-skeletal/archer-die2-6.png"
				[/frame]
				[frame]
					begin="200"
					end="300"
					image="units/undead-skeletal/archer-die2-5.png"
				[/frame]
				[frame]
					begin="300"
					end="400"
					image="units/undead-skeletal/archer-die2-4.png"
				[/frame]
				[frame]
					begin="400"
					end="500"
					image="units/undead-skeletal/archer-die2-3.png"
				[/frame]
				[frame]
					begin="500"
					end="600"
					image="units/undead-skeletal/archer-die2-2.png"
				[/frame]
				[frame]
					begin="600"
					end="700"
					image="units/undead-skeletal/archer-die2-1.png"
				[/frame]
			[/recruit_anim]
			[defense]
				castle="40"
				cave="60"
				deep_water="90"
				flat="60"
				forest="50"
				frozen="70"
				fungus="40"
				hills="50"
				impassable="60"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="3"
				flat="1"
				forest="2"
				frozen="2"
				fungus="2"
				hills="2"
				impassable="99"
				mountains="3"
				reef="2"
				sand="2"
				shallow_water="2"
				swamp_water="2"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="150"
				blade="60"
				cold="40"
				fire="120"
				impact="120"
				pierce="40"
			[/resistance]
			[abilities]
				[hides]
					affect_self="yes"
#textdomain wesnoth
					description=_ "Submerge:
This unit can hide in deep water, and remain undetected by its enemies.

Enemy units cannot see this unit while it is in deep water, except if they have units next to it. Any enemy unit that first discovers this unit immediately loses all its remaining movement."
					description_inactive=_ "Submerge:
This unit can hide in deep water, and remain undetected by its enemies.

Enemy units cannot see this unit while it is in deep water, except if they have units next to it. Any enemy unit that first discovers this unit immediately loses all its remaining movement."
					female_name=_ "female^submerge"
					female_name_inactive=_ "female^submerge"
					id="submerge"
					name=_ "submerge"
					name_inactive=_ "submerge"
					[filter_self]
						[filter_location]
							terrain="Wo"
						[/filter_location]
					[/filter_self]
				[/hides]
			[/abilities]
			[variables]
			[/variables]
			[status]
				hidden="yes"
				not_living="yes"
			[/status]
			[attack]
				damage="3"
#textdomain wesnoth-units
				description=_ "fist"
				icon="attacks/fist-skeletal.png"
				name="fist"
				number="2"
				range="melee"
				type="impact"
			[/attack]
			[attack]
				damage="6"
				description=_ "bow"
				icon="attacks/bow-orcish.png"
				name="bow"
				number="3"
				range="ranged"
				type="pierce"
			[/attack]
			[modifications]
				[trait]
					availability="musthave"
#textdomain wesnoth
					description=_ "Immune to drain, poison and plague"
					female_name=_ "female^undead"
					id="undead"
					male_name=_ "undead"
					name=_ "undead"
					[effect]
						add="not_living"
						apply_to="status"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Wraith,Shadow"
			alignment="chaotic"
			alpha="256"
			attacks_left="0"
			cost="20"
			die_sound="wail-long.wav"
			ellipse="misc/ellipse"
			experience="0"
			facing="se"
			flag_rgb="magenta"
			flies="true"
			flying="yes"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="18"
			id="Ghost-52"
			image="units/undead/ghost-s-2.png"
#textdomain wesnoth-units
			language_name=_ "Ghost"
			level="1"
			max_attacks="1"
			max_experience="21"
			max_hitpoints="18"
			max_moves="7"
			movement="7"
			movement_type="undeadspirit"
			moves="0"
			race="undead"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="2"
			type="Ghost"
			underlying_id="52"
			unrenamable="no"
			upkeep="full"
			usage="scout"
			x="19"
			y="20"
			zoc="yes"
			[attack_anim]
				start_time="-200"
				[filter_attack]
					name="wail"
				[/filter_attack]
				[if]
					direction="n,ne,nw"
					[missile_frame]
						begin="-300"
						end="-230"
						image="projectiles/wailprojectile-n-1.png"
						image_diagonal="projectiles/wailprojectile-ne-1.png"
					[/missile_frame]
					[missile_frame]
						begin="-230"
						end="-160"
						image="projectiles/wailprojectile-n-2.png"
						image_diagonal="projectiles/wailprojectile-ne-2.png"
					[/missile_frame]
					[missile_frame]
						begin="-160"
						end="0"
						image="projectiles/wailprojectile-n-3.png"
						image_diagonal="projectiles/wailprojectile-ne-3.png"
					[/missile_frame]
					[missile_frame]
						begin="0"
						end="40"
						image="projectiles/wailprojectile-n-4.png"
						image_diagonal="projectiles/wailprojectile-ne-4.png"
					[/missile_frame]
					[missile_frame]
						begin="40"
						end="80"
						image="projectiles/wailprojectile-n-5.png"
						image_diagonal="projectiles/wailprojectile-ne-5.png"
					[/missile_frame]
					[missile_frame]
						begin="80"
						end="120"
						image="projectiles/wailprojectile-n-6.png"
						image_diagonal="projectiles/wailprojectile-ne-6.png"
					[/missile_frame]
				[/if]
				[else]
					direction="s,se,sw"
					[missile_frame]
						begin="-300"
						end="-230"
						image="projectiles/wailprojectile-s-1.png"
						image_diagonal="projectiles/wailprojectile-se-1.png"
					[/missile_frame]
					[missile_frame]
						begin="-230"
						end="-160"
						image="projectiles/wailprojectile-s-2.png"
						image_diagonal="projectiles/wailprojectile-se-2.png"
					[/missile_frame]
					[missile_frame]
						begin="-160"
						end="0"
						image="projectiles/wailprojectile-s-3.png"
						image_diagonal="projectiles/wailprojectile-se-3.png"
					[/missile_frame]
					[missile_frame]
						begin="0"
						end="40"
						image="projectiles/wailprojectile-s-4.png"
						image_diagonal="projectiles/wailprojectile-se-4.png"
					[/missile_frame]
					[missile_frame]
						begin="40"
						end="80"
						image="projectiles/wailprojectile-s-5.png"
						image_diagonal="projectiles/wailprojectile-se-5.png"
					[/missile_frame]
					[missile_frame]
						begin="80"
						end="120"
						image="projectiles/wailprojectile-s-6.png"
						image_diagonal="projectiles/wailprojectile-se-6.png"
					[/missile_frame]
				[/else]
				[if]
					direction="s,se,sw"
					[frame]
						duration="25"
						image="units/undead/ghost-s-2.png"
					[/frame]
					[frame]
						duration="75"
						image="units/undead/ghost-s-attack-1.png"
					[/frame]
					[frame]
						duration="150"
						image="units/undead/ghost-s-attack-2.png"
						sound="wail-sml.wav"
					[/frame]
					[frame]
						duration="75"
						image="units/undead/ghost-s-attack-1.png"
					[/frame]
					[frame]
						duration="25"
						image="units/undead/ghost-s-2.png"
					[/frame]
				[/if]
				[else]
					direction="n,ne,nw"
					[frame]
						duration="25"
						image="units/undead/ghost-n-2.png"
					[/frame]
					[frame]
						duration="75"
						image="units/undead/ghost-n-attack-1.png"
					[/frame]
					[frame]
						duration="150"
						image="units/undead/ghost-n-attack-2.png"
						sound="wail-sml.wav"
					[/frame]
					[frame]
						duration="75"
						image="units/undead/ghost-n-attack-1.png"
					[/frame]
					[frame]
						duration="25"
						image="units/undead/ghost-n-2.png"
					[/frame]
				[/else]
			[/attack_anim]
			[attack_anim]
				alpha="0.8~0.0:425,0.0~0.8:225"
				direction="s,se,sw"
				offset="0.0~1.0:425,0.0:225"
				start_time="-500"
				[filter_attack]
					name="touch"
				[/filter_attack]
				[frame]
					duration="25"
					image="units/undead/ghost-s-2.png"
				[/frame]
				[frame]
					duration="175"
					image="units/undead/ghost-s-attack-1.png"
				[/frame]
				[frame]
					duration="175"
					image="units/undead/ghost-s-attack-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead/ghost-s-attack-3.png"
					sound="wail-sml.wav"
				[/frame]
				[frame]
					duration="75"
					image="units/undead/ghost-s-attack-2.png"
				[/frame]
				[frame]
					duration="75"
					image="units/undead/ghost-s-attack-1.png"
				[/frame]
				[frame]
					duration="25"
					image="units/undead/ghost-s-2.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				alpha="0.8~0.0:425,0.0~0.8:225"
				direction="n,ne,nw"
				offset="0.0~1.0:425,0.0:225"
				start_time="-500"
				[filter_attack]
					name="touch"
				[/filter_attack]
				[frame]
					duration="25"
					image="units/undead/ghost-n-2.png"
				[/frame]
				[frame]
					duration="175"
					image="units/undead/ghost-n-attack-1.png"
				[/frame]
				[frame]
					duration="175"
					image="units/undead/ghost-n-attack-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/undead/ghost-n-attack-3.png"
					sound="wail-sml.wav"
				[/frame]
				[frame]
					duration="75"
					image="units/undead/ghost-n-attack-2.png"
				[/frame]
				[frame]
					duration="75"
					image="units/undead/ghost-n-attack-1.png"
				[/frame]
				[frame]
					duration="25"
					image="units/undead/ghost-n-2.png"
				[/frame]
			[/attack_anim]
			[defend]
				direction="s,se,sw"
				start_time="-126"
				[if]
					alpha="0.8~0.5:126,0.5~0.8:126"
					hits="hit,kill"
					offset="0.0~-0.05:126,-0.05~0.0:126"
					[frame]
						duration="1"
						image="units/undead/ghost-s-2.png"
					[/frame]
					[frame]
						duration="100"
						image="units/undead/ghost-s-attack-1.png"
					[/frame]
					[frame]
						duration="150"
						image="units/undead/ghost-s-attack-1.png"
						sound="wail-sml.wav"
					[/frame]
					[frame]
						duration="1"
						image="units/undead/ghost-s-2.png"
					[/frame]
				[/if]
				[else]
					alpha="0.8~0.25:126,0.25~0.8:126"
					hits="miss"
					offset="0.0~-0.1:126,-0.1~0.0:126"
					[frame]
						duration="1"
						image="units/undead/ghost-s-2.png"
					[/frame]
					[frame]
						duration="100"
						image="units/undead/ghost-s-attack-1.png"
					[/frame]
					[frame]
						duration="150"
						image="units/undead/ghost-s-attack-1.png"
					[/frame]
					[frame]
						duration="1"
						image="units/undead/ghost-s-2.png"
					[/frame]
				[/else]
			[/defend]
			[defend]
				direction="n,ne,nw"
				start_time="-126"
				[if]
					alpha="0.8~0.5:126,0.5~0.8:126"
					hits="hit,kill"
					offset="0.0~-0.05:126,-0.05~0.0:126"
					[frame]
						duration="1"
						image="units/undead/ghost-n-2.png"
					[/frame]
					[frame]
						duration="100"
						image="units/undead/ghost-n-attack-1.png"
					[/frame]
					[frame]
						duration="150"
						image="units/undead/ghost-n-attack-1.png"
						sound="wail-sml.wav"
					[/frame]
					[frame]
						duration="1"
						image="units/undead/ghost-n-2.png"
					[/frame]
				[/if]
				[else]
					alpha="0.8~0.25:126,0.25~0.8:126"
					hits="miss"
					offset="0.0~-0.1:126,-0.1~0.0:126"
					[frame]
						duration="1"
						image="units/undead/ghost-n-2.png"
					[/frame]
					[frame]
						duration="100"
						image="units/undead/ghost-n-attack-1.png"
					[/frame]
					[frame]
						duration="150"
						image="units/undead/ghost-n-attack-1.png"
					[/frame]
					[frame]
						duration="1"
						image="units/undead/ghost-n-2.png"
					[/frame]
				[/else]
			[/defend]
			[standing_anim]
				alpha="0.8~0.4:1400,0.4~0.6:600,0.6~0.4:600,0.4~0.8:1400"
				direction="s,se,sw"
				start_time="0"
				[frame]
					duration="250"
					image="units/undead/ghost-s-2.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-s-1.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-s-2.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-s-3.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-s-2.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-s-1.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-s-2.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-s-3.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-s-2.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-s-1.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-s-2.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-s-3.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-s-2.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-s-1.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-s-2.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-s-3.png"
				[/frame]
			[/standing_anim]
			[standing_anim]
				alpha="0.8~0.4:1400,0.4~0.6:600,0.6~0.4:600,0.4~0.8:1400"
				direction="n,ne,nw"
				start_time="0"
				[frame]
					duration="250"
					image="units/undead/ghost-n-2.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-n-1.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-n-2.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-n-3.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-n-2.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-n-1.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-n-2.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-n-3.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-n-2.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-n-1.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-n-2.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-n-3.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-n-2.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-n-1.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-n-2.png"
				[/frame]
				[frame]
					duration="250"
					image="units/undead/ghost-n-3.png"
				[/frame]
			[/standing_anim]
			[defense]
				castle="50"
				cave="50"
				deep_water="50"
				flat="50"
				forest="50"
				frozen="50"
				fungus="50"
				hills="50"
				impassable="50"
				mountains="50"
				reef="50"
				sand="50"
				shallow_water="50"
				swamp_water="50"
				unwalkable="50"
				village="50"
			[/defense]
			[movement_costs]
				castle="1"
				cave="1"
				deep_water="2"
				flat="1"
				forest="1"
				frozen="1"
				fungus="1"
				hills="1"
				impassable="99"
				mountains="1"
				reef="2"
				sand="1"
				shallow_water="2"
				swamp_water="1"
				unwalkable="1"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="110"
				blade="50"
				cold="30"
				fire="90"
				impact="50"
				pierce="50"
			[/resistance]
			[variables]
			[/variables]
			[status]
				not_living="yes"
			[/status]
			[attack]
				damage="4"
				description=_ "touch"
				icon="attacks/touch-undead.png"
				name="touch"
				number="3"
				range="melee"
				type="arcane"
				[specials]
					[drains]
#textdomain wesnoth
						description=_ "Drain:
This unit drains health from living units, healing itself for half the amount of damage it deals (rounded down)."
						id="drains"
						name=_ "drains"
					[/drains]
				[/specials]
			[/attack]
			[attack]
				damage="3"
#textdomain wesnoth-units
				description=_ "wail"
				name="wail"
				number="3"
				range="ranged"
				type="cold"
			[/attack]
			[modifications]
				[trait]
					availability="musthave"
#textdomain wesnoth
					description=_ "Immune to drain, poison and plague"
					female_name=_ "female^undead"
					id="undead"
					male_name=_ "undead"
					name=_ "undead"
					[effect]
						add="not_living"
						apply_to="status"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
	[/side]
	[time]
		blue="0"
		green="-20"
		id="dawn"
		image="misc/schedule-dawn.png"
		lawful_bonus="0"
		name=_ "Dawn"
		red="-20"
	[/time]
	[time]
		blue="0"
		green="0"
		id="morning"
		image="misc/schedule-morning.png"
		lawful_bonus="25"
		name=_ "Morning"
		red="0"
	[/time]
	[time]
		blue="0"
		green="0"
		id="afternoon"
		image="misc/schedule-afternoon.png"
		lawful_bonus="25"
		name=_ "Afternoon"
		red="0"
	[/time]
	[time]
		blue="-20"
		green="-20"
		id="dusk"
		image="misc/schedule-dusk.png"
		lawful_bonus="0"
		name=_ "Dusk"
		red="0"
	[/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_after="0"
		ms_before="12000"
		name="knolls.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="wanderer.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="battle.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="transience.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="revelation.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="loyalists.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="the_king_is_dead.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="knalgan_theme.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="the_city_falls.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="nunc_dimittis.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="breaking_the_chains.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="elvish-theme.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="legends_of_the_north.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="traveling_minstrels.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="underground.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="vengeful.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="frantic.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="the_dangerous_symphony.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="heroes_rite.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="suspense.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="the_deep_path.ogg"
	[/music]
	[music]
		append="yes"
		ms_after="0"
		ms_before="12000"
		name="siege_of_laurelmor.ogg"
	[/music]
	[variables]
		damage_inflicted="7"
		side_number="1"
		turn_number="21"
	[/variables]
	[player]
		can_recruit="Goblin Spearman,Naga Fighter,Orcish Archer,Orcish Assassin,Orcish Grunt,Troll Whelp,Wolf Rider"
		gold="-1"
		gold_add="no"
		save_id="Frankenstein1"
	[/player]
	[player]
		can_recruit="Dark Adept,Ghost,Ghoul,Skeleton,Skeleton Archer,Vampire Bat,Walking Corpse"
		gold="-1"
		gold_add="no"
		save_id="Hilquias2"
	[/player]
[/snapshot]
[replay_start]
	current_tod="0"
#textdomain wesnoth-multiplayer
	description=_ "The Freelands, also known to the people of the far east as The Land of No Kings, lie in between the Wilderlands and the Kingdom of Carorath, separating a land of absolute law from a land of absolute savagery. The people of the Freelands have been battling would-be conquerors of their land for hundreds of years, repelling great beasts from their western borders, and Carorathian Imperialists from their eastern borders."
	experience_modifier="70"
	hash="AZpjPHK9RkU0>,MQ5rgweyP<JzghTihOJuI7sg1ofROR9BWAOxx4eNCrLCAawpGy1PNS9jQpzls8f-x>JH6Z+AjIQoLdwN-L<ur6gO9uHgd>jKtxiiu590Q8hM4gox7."
	id="multiplayer_The_Freelands"
	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   , Mm^Xm       , _off^_usr   , Hh          , _off^_usr   , Gg^Fet      , _off^_usr   , Gs^Fp       , _off^_usr   , Mm          , _off^_usr   , Ww          , _off^_usr   , Ww          , _off^_usr   , Ggf         , _off^_usr   , Hh          , _off^_usr   , 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   , Mm^Xm       , Mm          , Mm^Xm       , Hh          , Gg^Ve       , Gs^Fp       , Hh          , Gg^Uf       , Gs^Fms      , Hh          , Wwf         , Wwf         , Ww          , Ww          , Ss^Vhs      , Gg          , Gs^Fp       , Gs^Fp       , Mm          , Hh^Uf       , Ggf         , Ss          , Gs^Fp       , _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         , Mm          , Hh          , Mm^Xm       , Mm          , Ggf         , Gg          , Gg          , Gg          , Ggf         , Rr          , Wwf         , Ch          , Wwf         , Ch          , Hh          , Gg          , Gg          , Gg          , Ss          , Gs^Fms      , Hh          , Gg          , Gg^Uf       , Gs^Fms      , Wwf         , Hh          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Gs^Fp       , Hh          , Wwf         , Gs^Fms      , Gs^Fp       , Gg^Uf       , Gg          , Gg          , Gg          , Gg          , Mm          , Rr          , Wwf         , Wwf         , Kh          , 1 Kh        , Ch          , Gg          , Gg          , Gg          , Ss          , Gg          , Gg          , Gg          , Hh          , Gg          , Wwf         , Wwf         , Gg^Fet      , Hh          , Mm          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Gg          , Gg          , Wwf         , Wwf         , Ss^Vhs      , Gg          , Gg          , Gg          , Gg^Vh       , Gs^Fp       , Wwf         , Wwf         , Gg          , Ch          , Rr          , Ch          , Rr          , Gg          , Gs^Fp       , Ss          , Mm          , Ss          , Ss          , Gg          , Ss^Vhs      , Gs^Fp       , Wwf         , Wwf         , Wwf         , Wwf         , Wwf         , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Wwf         , Wwf         , Hh          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Wwf         , Gg          , Gs^Fp       , Gg          , Gg          , Rr          , Rr          , Gg          , Ss          , Hh          , Gs^Fp       , Hh^Uf       , Gs^Fp       , Gg          , Wwf         , Wwf         , Gg          , Gg          , Ggf         , Wwf         , Mm^Xm       , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Wwf         , Gs^Fms      , Mm^Xm       , Gs^Fp       , Mm          , Ggf         , Wwf         , Wwf         , Wwf         , Wwf         , Gs^Fp       , Mm^Xm       , Mm^Xm       , Mm^Xm       , Hh          , Rr          , Gg          , Gg          , Gg          , Ggf         , Gg^Ve       , Hh          , Gg          , Wwf         , Wwf         , Wwf         , Gg          , Gg          , Hh          , Gs^Fms      , Mm^Xm       , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Wwf         , Mm          , Gg^Uf       , Mm^Xm       , Hh          , Wwf         , Gg          , Gg          , Gg          , Gg          , Mm          , Hh^Uf       , Hh^Uf       , Mm^Xm       , Hh          , Rr          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Wwf         , Wwf         , Gg          , Gg          , Gg          , Gg^Uf       , Mm^Xm       , Mm^Xm       , Mm          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Wwf         , Gs^Fp       , Gg          , Ggf         , Wwf         , Wwf         , Gg          , Gg^Ve       , Gg          , Gg          , Hh          , Mm^Xm       , Gs^Fp       , Gs^Fp       , Hh^Vhh      , Rr          , Hh          , Hh          , Mm          , Gg^Fet      , Gg          , Gg          , Wwf         , Wwf         , Gg          , Gg          , Gg          , Hh          , Mm          , Mm^Xm       , Mm          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Gs^Fms      , Wwf         , Wwf         , Wwf         , Hh          , Gg          , Gg          , Gg          , Gg          , Gg          , Gs^Fp       , Mm^Xm       , Mm^Xm       , Hh          , Gg          , Rr          , Rr          , Gs^Fp       , Hh          , Hh          , Wwf         , Wwf         , Wwf         , Chr         , Chr         , Hh          , Gg          , Ggf         , Hh          , Mm^Xm       , Mm^Xm       , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Hh          , Gg          , Wwf         , Mm          , Gs^Fp       , Gg          , Rr          , Gg          , Ggf         , Gg^Uf       , Mm^Xm       , Mm^Xm       , Mm          , Gs^Fp       , Gg          , Gg          , Wo          , Wo          , Wwf         , Wwf         , Mm^Xm       , Hh          , Gg          , Chw         , Wwf         , Gg^Fet      , Wwf         , Gg          , Gg          , Gs^Fp       , Gs^Fms      , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Wwf         , Wwf         , Wwf         , Hh          , Rr          , Rr          , Rr          , Gg          , Gg          , Gs^Fp       , Mm^Xm       , Mm^Xm       , Hh          , Gg          , Gg          , Ww          , Gg          , Gg          , Hh          , Rr          , Mm^Xm       , Mm          , Gg          , Rr          , Rr          , Wwf         , Rr          , Wwf         , Wwf         , Gg          , Wwf         , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Gg^Fet      , Gg          , Gg          , Wwf         , Wwf         , Wwf         , Wwf         , Rr          , Gg          , Mm          , Mm^Xm       , Rr          , Wwf         , Gg          , Wo          , Ww          , Gg          , Gg          , Mm          , Mm^Xm       , Mm^Xm       , Gs^Fms      , Gg          , Gg          , Rr          , Rr          , Gs^Fms      , Hh          , Wwf         , Wwf         , Hh          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Mm^Xm       , Gs^Fp       , Hh          , Gg          , Gg          , Gs^Fp       , Chr         , Chw         , Wwf         , Hh          , Wwf         , Wwf         , Hh          , Wo          , Rr          , Gg          , Gg          , Gs^Fp       , Mm^Xm       , Mm^Xm       , Gs^Fp       , Gg^Uf       , Gg          , Gg          , Gg          , Gg          , Hh          , Mm          , Wwf         , Gg          , Gs^Fp       , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Mm          , Mm^Xm       , Mm          , Ggf         , Gg          , Hh          , Gg          , Chr         , Wwf         , Wwf         , Gg          , Hh          , Mm          , Gg^Fet      , Hh          , Rr          , Hh^Vhh      , Hh          , Gs^Fp       , Mm^Xm       , Hh          , Ggf         , Gg          , Gg          , Gg          , Gg          , Wwf         , Wwf         , Gg          , Wwf         , Wwf         , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Mm          , Mm^Xm       , Mm^Xm       , Hh          , Ggf         , Gg          , Gg          , Wwf         , Wwf         , Gg          , Gg          , Gs^Fp       , Gg          , Hh          , Gg          , Rr          , Hh          , Gs^Fp       , Hh^Uf       , Mm^Xm       , Mm          , Gg          , Gg          , Gg^Ve       , Gg          , Wwf         , Hh          , Gg          , Gg^Uf       , Gg^Fet      , Wwf         , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Mm^Xm       , Mm^Xm       , Hh          , Gg^Uf       , Gg          , Gg          , Wwf         , Wwf         , Gg          , Gg          , Gg^Ve       , Gg          , Gg          , Gg          , Gg          , Rr          , Hh          , Mm^Xm       , Mm^Xm       , Hh^Uf       , Gs^Fp       , Gg          , Wwf         , Gg          , Wwf         , Wwf         , Mm          , Mm^Xm       , Mm^Xm       , Mm          , Wwf         , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Mm^Xm       , Gs^Fms      , Ggf         , Gg          , Gg          , Wwf         , Wwf         , Wwf         , Gs^Fms      , Hh          , Gs^Fp       , Ggf         , Ss          , Gg          , Rr          , Rr          , Gg          , Mm^Xm       , Gs^Fp       , Mm^Xm       , Wwf         , Wwf         , Gg          , Wwf         , Gg          , Gg          , Gg          , Gs^Fp       , Hh          , Gs^Fms      , Wwf         , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Wwf         , Wwf         , Wwf         , Gg          , Wwf         , Wwf         , Ss^Vhs      , Gg          , Ss          , Hh^Uf       , Mm          , Hh          , Gs^Fp       , Gg          , Rr          , Rr          , Rr          , Gg          , Gg          , Gg          , Wwf         , Gg          , Gg^Vh       , Gg          , Gg          , Gg          , Ss^Vhs      , Gg          , Wwf         , Wwf         , Gg          , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Hh          , Wwf         , Gs^Fp       , Wwf         , Wwf         , Gs^Fp       , Hh          , Gg          , Gg          , Ss          , Ss          , Ss          , Gg          , Gg          , Ch          , Ch          , Kh          , Ch          , Wwf         , Wwf         , Mm          , Gs^Fms      , Gg          , Gg          , Gg          , Ggf         , Gs^Fp       , Wwf         , Wwf         , Gg          , Gs^Fp       , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   
_off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , _off^_usr   , Mm          , Hh          , Wwf         , Gs^Fms      , Gg          , Gg          , Gg          , Gs^Fp       , Gg          , Gg          , Gg          , Gg          , Gg          , Ch          , 2 Kh        , Ch          , Wwf         , Rr          , Rr          , Gg          , Gg          , Gg          , Gg          , Gs^Fp       , Gg^Uf       , Hh          , Gs^Fp       , Wwf         , 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   , Wwf         , Gs^Fp       , Gg^Uf       , Ggf         , Hh          , Mm          , Ss          , Gs^Fp       , Gg          , Ss^Vhs      , Hh          , Ww          , Wwf         , Wwf         , Wwf         , Hh          , Gg          , Ggf         , Gg          , Gg^Ve       , Ggf         , Mm^Xm       , 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   , Ss          , Mm          , Hh          , Gs^Fp       , Hh^Uf       , Ggf         , Ggf         , Ww          , Ww          , Ww          , Wwf         , Mm          , Gs^Fp       , Gs^Fp       , Gg^Uf       , Gs^Fp       , Gg^Fet      , Hh          , Hh          , 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   , _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   
"
	mp_countdown="yes"
	mp_countdown_action_bonus="20"
	mp_countdown_init_time="270"
	mp_countdown_reservoir_time="270"
	mp_countdown_turn_bonus="200"
	mp_fog="yes"
	mp_shroud="no"
	mp_use_map_settings="yes"
	mp_village_gold="2"
	name=_ "2p - The Freelands"
	next_underlying_unit_id="0"
#textdomain wesnoth
	objectives=_ "Victory:
@Defeat enemy leader(s)"
	observer="yes"
	random_seed="7026"
	random_start_time="no"
	scenario="Ladder Frankenstein's game"
	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="Frankenstein"
		flag_rgb="magenta"
		fog="yes"
		gender="male"
		gold="100"
		id="Frankenstein1"
		image="units/orcs/warrior.png"
		income="0"
		leader="Orcish Warrior,Troll,Troll Rocklobber,Orcish Crossbowman,Orcish Slayer"
		mp_countdown="yes"
		mp_countdown_action_bonus="20"
		mp_countdown_init_time="270"
		mp_countdown_reservoir_time="270"
		mp_countdown_turn_bonus="200"
		name="Frankenstein"
		recruit="Orcish Grunt,Troll Whelp,Wolf Rider,Orcish Archer,Orcish Assassin,Naga Fighter,Goblin Spearman"
		save_id="Frankenstein1"
		share_maps="no"
		share_view="yes"
		shroud="no"
		side="1"
		team_name="north"
		terrain_liked="Hh, Ha, Mm, Ss"
		type="Orcish Warrior"
		user_team_name="wesnoth-multiplayerteamname^North"
		village_gold="2"
		[ai]
			recruitment_pattern="fighter,fighter,fighter,mixed fighter,archer,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="Hilquias"
		flag_rgb="magenta"
		fog="yes"
		gender="male"
		gold="100"
		id="Hilquias2"
		image="units/undead-necromancers/dark-sorcerer.png"
		income="0"
		leader="Dark Sorcerer,Revenant,Deathblade,Bone Shooter,Necrophage"
		mp_countdown="yes"
		mp_countdown_action_bonus="20"
		mp_countdown_init_time="270"
		mp_countdown_reservoir_time="270"
		mp_countdown_turn_bonus="200"
		name="Hilquias"
		random_leader="Dark Sorcerer,Revenant,Deathblade,Bone Shooter"
		recruit="Skeleton,Skeleton Archer,Walking Corpse,Ghost,Vampire Bat,Dark Adept,Ghoul"
		save_id="Hilquias2"
		share_maps="no"
		share_view="yes"
		shroud="no"
		side="2"
		team_name="south"
		terrain_liked="Ss, Hh, Ha, Ww"
		type="Dark Sorcerer"
		user_team_name="wesnoth-multiplayerteamname^South"
		village_gold="2"
		[ai]
			recruitment_pattern="fighter,fighter,archer,fighter,scout,archer"
			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]
[/replay_start]
[statistics]
	mid_scenario="yes"
	[scenario]
		scenario="2p - The Freelands"
		[team]
			[recruits]
				Orcish Archer="11"
				Orcish Grunt="3"
				Troll Whelp="11"
				Wolf Rider="1"
			[/recruits]
			[recalls]
			[/recalls]
			[advances]
				Orcish Crossbowman="2"
			[/advances]
			[deaths]
				Orcish Archer="6"
				Orcish Crossbowman="1"
				Orcish Grunt="1"
				Troll Whelp="7"
				Wolf Rider="1"
			[/deaths]
			[killed]
				Dark Adept="4"
				Ghost="3"
				Skeleton="3"
				Skeleton Archer="4"
				Walking Corpse="1"
				Wraith="1"
			[/killed]
			[attacks]
				[sequence]
					s00="1"
					s000="1"
					s01="1"
					s011="1"
					s1="2"
					s11="2"
					_num="40"
				[/sequence]
				[sequence]
					s0="2"
					s00="5"
					s01="11"
					s1="2"
					s10="7"
					s11="4"
					_num="50"
				[/sequence]
				[sequence]
					s00="1"
					s000="1"
					s01="2"
					s1="2"
					s10="4"
					s11="9"
					_num="60"
				[/sequence]
			[/attacks]
			[defends]
				[sequence]
					s="28"
					_num="0"
				[/sequence]
				[sequence]
					s00="1"
					s10="1"
					_num="40"
				[/sequence]
				[sequence]
					s00="6"
					s01="1"
					s1="1"
					s10="7"
					s101="1"
					s11="3"
					s110="2"
					_num="50"
				[/sequence]
				[sequence]
					s="2"
					s0="1"
					s001="1"
					s01="3"
					s1="2"
					s10="3"
					s11="2"
					s111="1"
					_num="60"
				[/sequence]
			[/defends]
			recruit_cost="350"
			recall_cost="0"
			damage_inflicted="607"
			damage_taken="856"
			expected_damage_inflicted="495869"
			expected_damage_taken="803815"
			turn_damage_inflicted="0"
			turn_damage_taken="0"
			turn_expected_damage_inflicted="0"
			turn_expected_damage_taken="0"
			save_id="Frankenstein1"
		[/team]
		[team]
			[recruits]
				Dark Adept="4"
				Ghost="5"
				Ghoul="1"
				Skeleton="4"
				Skeleton Archer="9"
				Walking Corpse="1"
			[/recruits]
			[recalls]
			[/recalls]
			[advances]
				Wraith="1"
			[/advances]
			[deaths]
				Dark Adept="4"
				Ghost="3"
				Skeleton="3"
				Skeleton Archer="4"
				Walking Corpse="1"
				Wraith="1"
			[/deaths]
			[killed]
				Orcish Archer="6"
				Orcish Crossbowman="1"
				Orcish Grunt="1"
				Troll Whelp="7"
				Wolf Rider="1"
			[/killed]
			[attacks]
				[sequence]
					s000="1"
					s001="2"
					s010="1"
					s0100="1"
					s100="1"
					s101="1"
					s11="1"
					s110="1"
					s111="1"
					_num="40"
				[/sequence]
				[sequence]
					s000="2"
					s001="1"
					s010="2"
					s011="1"
					_num="50"
				[/sequence]
				[sequence]
					s00="1"
					s000="3"
					s001="2"
					s01="2"
					s0101="1"
					s011="2"
					s1="1"
					s100="4"
					s101="3"
					s110="2"
					s1101="1"
					s111="5"
					_num="60"
				[/sequence]
				[sequence]
					s00="1"
					s01="1"
					s010="2"
					s1="3"
					s10="3"
					s101="1"
					s11="7"
					s110="2"
					s111="3"
					_num="70"
				[/sequence]
			[/attacks]
			[defends]
				[sequence]
					s="16"
					_num="0"
				[/sequence]
				[sequence]
					s00="1"
					s000="1"
					s1="1"
					s101="1"
					_num="40"
				[/sequence]
				[sequence]
					s0000="1"
					_num="50"
				[/sequence]
				[sequence]
					s="3"
					s0="1"
					s000="1"
					s001="1"
					s011="3"
					s1="3"
					s10="1"
					s101="1"
					s110="4"
					s111="4"
					_num="60"
				[/sequence]
				[sequence]
					s="2"
					s0="2"
					s001="1"
					s101="2"
					s11="5"
					s111="3"
					_num="70"
				[/sequence]
			[/defends]
			recruit_cost="374"
			recall_cost="0"
			damage_inflicted="856"
			damage_taken="607"
			expected_damage_inflicted="803815"
			expected_damage_taken="495869"
			turn_damage_inflicted="0"
			turn_damage_taken="0"
			turn_expected_damage_inflicted="0"
			turn_expected_damage_taken="0"
			save_id="Hilquias2"
		[/team]
	[/scenario]
[/statistics]
