label="2p - Weldyn Channel Turn 16_Gautemus"
version="1.6"
completion="running"
campaign_type="multiplayer"
difficulty="NORMAL"
random_seed="1777746388"
random_calls="0"
next_underlying_unit_id="34"
end_text_duration="0"
[variables]
[/variables]
[replay]
	[command]
		[start]
		[/start]
	[/command]
	[command]
		[recruit]
			value="2"
			x="17"
			y="4"
		[/recruit]
		[random]
			value="795242668"
		[/random]
		[random]
			value="1982675262"
		[/random]
		[random]
			value="935459901"
		[/random]
		[random]
			value="1976815768"
		[/random]
		[random]
			value="1841172667"
		[/random]
		[random]
			value="399703221"
		[/random]
		[random]
			value="1758650962"
		[/random]
		[random]
			value="1338880111"
		[/random]
		[random]
			value="761709816"
		[/random]
		[random]
			value="1537473861"
		[/random]
		[random]
			value="927636456"
		[/random]
		[random]
			value="1690242004"
		[/random]
		[random]
			value="1005292635"
		[/random]
		[random]
			value="1585609220"
		[/random]
		[random]
			value="973542515"
			[results]
				checksum="dyxuTOJUoJO8HNrG4rKqKKyCcwwqoNtRxBzMHwQmPyQBpPAuOCIG6zNHsCQFqzuGzwKqqyuyKqqQ5RBJTuEm3frBwnBwBICTrpKGHCIsunwtfvIWc<MGO<7LH5>f.208"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="specialk has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Latexi has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="ShadowAlchemist has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="mnewton1 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="cashim has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[recruit]
			value="1"
			x="16"
			y="3"
		[/recruit]
		[random]
			value="822372551"
		[/random]
		[random]
			value="1123817797"
		[/random]
		[random]
			value="535643923"
		[/random]
		[random]
			value="651704672"
		[/random]
		[random]
			value="817506816"
		[/random]
		[random]
			value="935347144"
		[/random]
		[random]
			value="262871986"
		[/random]
		[random]
			value="8903279"
		[/random]
		[random]
			value="1697056960"
		[/random]
		[random]
			value="1800345848"
		[/random]
		[random]
			value="936539735"
		[/random]
		[random]
			value="1239815317"
		[/random]
		[random]
			value="658154835"
		[/random]
		[random]
			value="374665307"
		[/random]
		[random]
			value="65874184"
			[results]
				checksum="KzLvyin74-,vpeaEvE02ij,1f-H<ltHpHl.4.Zv+KOuxJJEBpQwGOLzIDBBrtvLGpNIMjJxOsDGJKEAIFmsFKnyPOyzu3tJHxVzEnyVqOuyLwrBF>8AJxGsqutBis5-V"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="4"
			x="15"
			y="4"
		[/recruit]
		[random]
			value="1071826141"
		[/random]
		[random]
			value="1005917179"
		[/random]
		[random]
			value="1466858728"
		[/random]
		[random]
			value="1700765830"
		[/random]
		[random]
			value="1033047062"
		[/random]
		[random]
			value="608001263"
		[/random]
		[random]
			value="1300949852"
		[/random]
		[random]
			value="1855419613"
		[/random]
		[random]
			value="1731819060"
		[/random]
		[random]
			value="1836593775"
		[/random]
		[random]
			value="359640637"
		[/random]
		[random]
			value="401842228"
		[/random]
		[random]
			value="624457271"
		[/random]
		[random]
			value="622512624"
		[/random]
		[random]
			value="410745508"
			[results]
				checksum="4zf1OSv,C7F>rbJjGs8AZ92.m<LzFBEHnuR73QRpoMa2r4.k-cpOaw87,.Y8Z.5ndaB-kwWvSlbAfbufC3iaj7hobd->Zhepk<>2fa5>ai01-b1+6Z+40CN5c8b.>X,4"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="1"
			x="13"
			y="4"
		[/recruit]
		[random]
			value="1262677323"
		[/random]
		[random]
			value="1915877"
		[/random]
		[random]
			value="2089216204"
		[/random]
		[random]
			value="1597711819"
		[/random]
		[random]
			value="1012059531"
		[/random]
		[random]
			value="838437756"
		[/random]
		[random]
			value="2105316098"
		[/random]
		[random]
			value="605331255"
		[/random]
		[random]
			value="1910263897"
		[/random]
		[random]
			value="963749629"
		[/random]
		[random]
			value="2072189983"
		[/random]
		[random]
			value="1463546080"
		[/random]
		[random]
			value="1996796691"
		[/random]
		[random]
			value="532707598"
		[/random]
		[random]
			value="617012284"
			[results]
				checksum="KzLvyin74-,speaEvE02ij,1f-H<ltHpHl.4.Zv+KOuxJJEBpQwGOLzIDBBrtvLGpNIMjJxOsDGJKEAIFmsFKnyPOywu3tJHxVzEnyVqOuyLwrBF>8AJxGsqutBjv5-V"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="mazayka has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Equinox has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="michi has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Boucman has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="poteha has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[recruit]
			value="5"
			x="14"
			y="3"
		[/recruit]
		[random]
			value="267234148"
		[/random]
		[random]
			value="1501001425"
		[/random]
		[random]
			value="1195230481"
		[/random]
		[random]
			value="641871338"
		[/random]
		[random]
			value="676033398"
		[/random]
		[random]
			value="2072837802"
		[/random]
		[random]
			value="1980258157"
		[/random]
		[random]
			value="1923255354"
		[/random]
		[random]
			value="119023906"
		[/random]
		[random]
			value="1020474371"
		[/random]
		[random]
			value="1555701260"
		[/random]
		[random]
			value="929705943"
		[/random]
		[random]
			value="1765423242"
		[/random]
		[random]
			value="1305190176"
		[/random]
		[random]
			value="2046510390"
			[results]
				checksum="afk10b5br.kQp.+wk<Ab-239eel1N5llg71o3Xl17<1,5g7Z-k6kZlaGnZ68p4>gn6n3e1iafnb5+9fn4>73a+>+.57mc,6d1edjnNmi-f,a8gbj+B.awWJe+,PQ3hpQ"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="15,14,13,13,13"
			y="3,3,4,5,6"
		[/move]
	[/command]
	[command]
		sent="yes"
		undo="no"
		[speak]
			id="Gauteamus"
			message="good luck, and have fun"
			side="2"
		[/speak]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="0"
			x="17"
			y="19"
		[/recruit]
		[random]
			value="12154"
		[/random]
		[random]
			value="13654"
		[/random]
		[random]
			value="14568"
		[/random]
		[random]
			value="1072"
		[/random]
		[random]
			value="8209"
		[/random]
		[random]
			value="5164"
		[/random]
		[random]
			value="24019"
		[/random]
		[random]
			value="22377"
		[/random]
		[random]
			value="19895"
		[/random]
		[random]
			value="19847"
		[/random]
		[random]
			value="16924"
		[/random]
		[random]
			value="29632"
		[/random]
		[random]
			value="11866"
		[/random]
		[random]
			value="22254"
		[/random]
		[random]
			value="16190"
			[results]
				checksum="lxj+sAh20PB1UmsQ56tLoxNPdOFGJz.MMAvVvoQO,ECJMwDzBrzrTwAoECqSJHEvSS3IzTALqvFArEKTmSKvvPnFtw-JnBRSqBwbD3xFMMEJCCHO+YDPPnPywBn8EE25"
			[/results]
		[/random]
	[/command]
	[command]
		undo="no"
		[speak]
			id="KnightKunibert"
			message="u2 :-)"
			side="1"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Brennan22 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="2"
			x="16"
			y="19"
		[/recruit]
		[random]
			value="32334"
		[/random]
		[random]
			value="23310"
		[/random]
		[random]
			value="22841"
		[/random]
		[random]
			value="22181"
		[/random]
		[random]
			value="5896"
		[/random]
		[random]
			value="2711"
		[/random]
		[random]
			value="13745"
		[/random]
		[random]
			value="30527"
		[/random]
		[random]
			value="11638"
		[/random]
		[random]
			value="4059"
		[/random]
		[random]
			value="14460"
		[/random]
		[random]
			value="29276"
		[/random]
		[random]
			value="32740"
		[/random]
		[random]
			value="25222"
		[/random]
		[random]
			value="8929"
			[results]
				checksum="5OmKwDKUXxq,TxsyxcPSqynxyiENEnLUmPIBJLzMORyvQtLtMsz3uNvNwJSpuLuGnUrzCuxIPMnkISuGzPSPQusvFwzsUDAquYfrOmRzwFyqJ9DMfDvHFKdeVs241d4."
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Eos has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="0"
			x="13"
			y="19"
		[/recruit]
		[random]
			value="22226"
		[/random]
		[random]
			value="4634"
		[/random]
		[random]
			value="9023"
		[/random]
		[random]
			value="22598"
		[/random]
		[random]
			value="11132"
		[/random]
		[random]
			value="6122"
		[/random]
		[random]
			value="10655"
		[/random]
		[random]
			value="5107"
		[/random]
		[random]
			value="18761"
		[/random]
		[random]
			value="5189"
		[/random]
		[random]
			value="23178"
		[/random]
		[random]
			value="6524"
		[/random]
		[random]
			value="20761"
		[/random]
		[random]
			value="4053"
		[/random]
		[random]
			value="6677"
			[results]
				checksum="oxj+sAh20PB0LmsQ56tLoxMPdOFGJz.MMAvVvoQO,ECJMwDzBrzrTwAoECqSJHEvSS3IzTALqvFArEKTmSKvvPnFtw+OnBRSqBwbD3xFMMEJCCHO+YDPPnPywBn8FA25"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Vampire_Princess has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Glorfindel has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="FedOr has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="unterwiel has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="1"
			x="14"
			y="19"
		[/recruit]
		[random]
			value="21873"
		[/random]
		[random]
			value="15192"
		[/random]
		[random]
			value="25022"
		[/random]
		[random]
			value="12656"
		[/random]
		[random]
			value="22556"
		[/random]
		[random]
			value="18307"
		[/random]
		[random]
			value="8441"
		[/random]
		[random]
			value="26561"
		[/random]
		[random]
			value="31582"
		[/random]
		[random]
			value="9308"
		[/random]
		[random]
			value="27344"
		[/random]
		[random]
			value="19550"
		[/random]
		[random]
			value="23909"
		[/random]
		[random]
			value="19437"
		[/random]
		[random]
			value="4972"
			[results]
				checksum="ACIByNSVYmLXPemyRXKFwqFrLmVQqEv0TwtBGgNMvJHtOMFtHrtKmNzMnuxEPDq6BPSLFIOJqR+ProSyETFwFyA9zumVnpCouMKPBb5OJGPbmz3o>.fjcflW4p97m5p7"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="0"
			x="15"
			y="19"
		[/recruit]
		[random]
			value="844"
		[/random]
		[random]
			value="12687"
		[/random]
		[random]
			value="27491"
		[/random]
		[random]
			value="3258"
		[/random]
		[random]
			value="9777"
		[/random]
		[random]
			value="25484"
		[/random]
		[random]
			value="18348"
		[/random]
		[random]
			value="23145"
		[/random]
		[random]
			value="27084"
		[/random]
		[random]
			value="5635"
		[/random]
		[random]
			value="11948"
		[/random]
		[random]
			value="18292"
		[/random]
		[random]
			value="25794"
		[/random]
		[random]
			value="26134"
		[/random]
		[random]
			value="26066"
			[results]
				checksum="lxj+sAh20PB1UmsQ56tLoxNPdOFGJz.MMAvVvoQO,ECJMwDzBrzrTwAoECqSJHEvSS3IzTALqvFArEKTmSKvvPnFtw-JnBRSqBwbD3xFMMEJCCHO+YDPPnPywBn8EE25"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,14,13,13,12,11,11"
			y="20,19,19,18,17,17,16"
		[/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="13,12,11,10,9,8,7"
			y="4,3,3,2,2,2,2"
		[/move]
	[/command]
	[command]
		[move]
			x="16,17,18,19,20,21,22"
			y="3,4,4,5,5,5,5"
		[/move]
	[/command]
	[command]
		[move]
			x="15,16,17,18,18,19"
			y="4,4,5,5,6,7"
		[/move]
	[/command]
	[command]
		[move]
			x="14,15,16,17,18,19,20,21"
			y="3,4,3,4,4,5,5,6"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="DarkWarrior has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="17,18,19,19,20,21,22"
			y="4,4,5,6,6,7,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Redwaza has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Sandermatt has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="13,13,13"
			y="6,5,4"
		[/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="Mentat has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,12,11,10,9,8,7,6"
			y="19,18,18,17,17,16,16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="14,15,16,16,17"
			y="19,19,18,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="17,18,19,20,21"
			y="19,19,20,19,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="16,17,18,19,20"
			y="19,19,18,18,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,21,22,23"
			y="17,17,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="23,24"
			y="16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,10,9,8"
			y="16,16,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,14,13,12,11,10,9"
			y="19,19,19,18,18,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Donnie 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]
		sent="yes"
		undo="no"
		[speak]
			id="Valenwood"
			message="hi players, don't mind me :)"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="grubsteak has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="21,22,22,23,24,24"
			y="6,5,4,4,3,2"
		[/move]
	[/command]
	[command]
		[move]
			x="19,20,21,22,23,24"
			y="7,6,6,6,7,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Hektor has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="22,22,22,22,22"
			y="5,6,7,8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="22,21"
			y="9,10"
		[/move]
	[/command]
	[command]
		[move]
			x="22,22,23,23,24"
			y="7,8,9,10,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Battlesmile has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="24,24,24"
			y="10,11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="7,7,7,7,7,7,6"
			y="2,3,4,5,6,7,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="yates015 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="13,14,15"
			y="4,3,4"
		[/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="Prevert has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="bigmusel has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="rb2 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="17,18,19,20,21,21"
			y="17,17,18,17,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,23"
			y="15,16"
		[/move]
	[/command]
	[command]
		undo="no"
		[speak]
			id="KnightKunibert"
			message="Hi :-)"
			side="1"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,21,22,22,23,24,24"
			y="20,19,18,17,17,16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="8,9,10,11,12,13"
			y="17,18,18,19,18,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Papouch has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,8,8,7,7,6"
			y="17,17,18,19,20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="6,7"
			y="15,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="7,8,8,9"
			y="15,14,13,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,8,7"
			y="13,13,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="1"
			x="17"
			y="19"
		[/recruit]
		[random]
			value="15879"
		[/random]
		[random]
			value="32677"
		[/random]
		[random]
			value="19819"
		[/random]
		[random]
			value="11363"
		[/random]
		[random]
			value="30225"
		[/random]
		[random]
			value="26360"
		[/random]
		[random]
			value="25950"
		[/random]
		[random]
			value="1549"
		[/random]
		[random]
			value="25292"
		[/random]
		[random]
			value="6367"
		[/random]
		[random]
			value="14242"
		[/random]
		[random]
			value="26256"
		[/random]
		[random]
			value="3474"
		[/random]
		[random]
			value="15577"
		[/random]
		[random]
			value="17168"
			[results]
				checksum="ACIByNSVYmLXPemyRXKFwqFrLmVQqEv0TwtBGgNMvJHtOMFtHrtKmNzMnuxEPDq6BPSLFIOJqR+ProSyETFwFyA9zumVnpCouMKPBb5OJGPbmz3o>.fjcflW4p97m5p7"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="5"
			x="15"
			y="19"
		[/recruit]
		[random]
			value="20923"
		[/random]
		[random]
			value="15304"
		[/random]
		[random]
			value="29804"
		[/random]
		[random]
			value="25038"
		[/random]
		[random]
			value="8364"
		[/random]
		[random]
			value="10291"
		[/random]
		[random]
			value="31144"
		[/random]
		[random]
			value="28639"
		[/random]
		[random]
			value="9578"
		[/random]
		[random]
			value="29798"
		[/random]
		[random]
			value="20485"
		[/random]
		[random]
			value="23840"
		[/random]
		[random]
			value="10457"
		[/random]
		[random]
			value="13252"
		[/random]
		[random]
			value="13099"
			[results]
				checksum="tjfpy96<OvHAptMKQ0oOBBSqwDYSGUuIaHzsLFtQzOWOCBvyFBUsQPVHTIwPFmPFBqCnEs<sBULDPTGRPzPuVKDJsNyMIp,RFNPGrGqf<xPrTryODoP.K+zDJqnmswJI"
			[/results]
		[/random]
	[/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="D4N has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="6,7"
			y="7,8"
		[/move]
	[/command]
	[command]
		[move]
			x="7,7"
			y="8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="7,7"
			y="9,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="mruk has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="7,7,7,6"
			y="10,9,8,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Dragonheart has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="21,22,22,23"
			y="10,9,8,8"
		[/move]
	[/command]
	[command]
		[move]
			x="24,24,25,25,26"
			y="12,11,11,10,9"
		[/move]
	[/command]
	[command]
		[move]
			x="24,25,26,27"
			y="7,8,8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="24,24,25,25,26,27,27,27"
			y="2,3,4,5,5,6,7,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Leizar has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Superlocky 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"
		[speak]
			id="server"
			message="War has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Mamlock has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="17,16,15,14,13,12"
			y="19,19,19,18,18,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="6,7,8,9,10,11"
			y="20,20,19,19,19,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="7,8,9"
			y="14,13,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,9,9"
			y="13,12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Pudels_Kern has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,9,9"
			y="11,12,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="denver has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,15,15,14,14,13,13"
			y="19,18,17,16,15,15,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Dragonheart has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="3"
			x="17"
			y="19"
		[/recruit]
		[random]
			value="25117"
		[/random]
		[random]
			value="28582"
		[/random]
		[random]
			value="26863"
		[/random]
		[random]
			value="22108"
		[/random]
		[random]
			value="1391"
		[/random]
		[random]
			value="18579"
		[/random]
		[random]
			value="10937"
		[/random]
		[random]
			value="27522"
		[/random]
		[random]
			value="30120"
		[/random]
		[random]
			value="11047"
		[/random]
		[random]
			value="8839"
		[/random]
		[random]
			value="31170"
		[/random]
		[random]
			value="27951"
		[/random]
		[random]
			value="21495"
		[/random]
		[random]
			value="5924"
			[results]
				checksum="rQV6GBwD,UJ+7fMAQJ+xOoaC2U6DfS5lmb>+9w26zYBFaluj9yjnQ1omih>hik67n,e0IoZ07o9kcp0Ad568,m9n<X,+m-08797o60sxBFgnkEzrk-i.-tciji+H>s3M"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Tebo_el_Rebelde 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="6,7"
			y="7,8"
		[/move]
	[/command]
	[command]
		[move]
			x="7,7"
			y="8,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="pennywise has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="7,7"
			y="9,10"
		[/move]
	[/command]
	[command]
		[move]
			x="7,7,7,6"
			y="10,9,8,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Pipo has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="26,26"
			y="9,10"
		[/move]
	[/command]
	[command]
		[move]
			x="26,26"
			y="10,11"
		[/move]
	[/command]
	[command]
		[move]
			x="26,25"
			y="11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="25,25,25,26"
			y="12,11,10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Ahuramazda has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="giocatore 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="11,10,9,8,8,7,7"
			y="19,18,18,17,16,16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="12,11,10,9,8,7"
			y="17,17,16,17,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,14,15"
			y="19,19,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="0"
			x="13"
			y="19"
		[/recruit]
		[random]
			value="12057"
		[/random]
		[random]
			value="31933"
		[/random]
		[random]
			value="23530"
		[/random]
		[random]
			value="19332"
		[/random]
		[random]
			value="25860"
		[/random]
		[random]
			value="28806"
		[/random]
		[random]
			value="21293"
		[/random]
		[random]
			value="13348"
		[/random]
		[random]
			value="27942"
		[/random]
		[random]
			value="2655"
		[/random]
		[random]
			value="1580"
		[/random]
		[random]
			value="21452"
		[/random]
		[random]
			value="13702"
		[/random]
		[random]
			value="18299"
		[/random]
		[random]
			value="26460"
			[results]
				checksum="DB3s-,zQn1M2yLIrtl,yvEJs+TqLAH7qSCNCNSvmIJ>KNGxwmIQwSVVvQLyBGFwuCzBR9PMVRCroPzMEKTmSKvvPnFtw+QnBRSqBwbD3xFMMEJCCHO+YDPPnPywBn8FA"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="17,16,15,14,13,12,11"
			y="19,19,19,18,18,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,13,13,13,14"
			y="14,13,12,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="14,13,13"
			y="10,11,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="cashim has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,9,9"
			y="13,12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="untierwiel has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,9,9"
			y="11,12,13"
		[/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="Soliton has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="15,15"
			y="4,3"
		[/move]
	[/command]
	[command]
		[recruit]
			value="3"
			x="15"
			y="4"
		[/recruit]
		[random]
			value="1042181969"
		[/random]
		[random]
			value="745193898"
		[/random]
		[random]
			value="20834512"
		[/random]
		[random]
			value="699219659"
		[/random]
		[random]
			value="945968398"
		[/random]
		[random]
			value="1405487452"
		[/random]
		[random]
			value="981182509"
		[/random]
		[random]
			value="1032767021"
		[/random]
		[random]
			value="1435686762"
		[/random]
		[random]
			value="1141411195"
		[/random]
		[random]
			value="975229678"
		[/random]
		[random]
			value="1169870326"
		[/random]
		[random]
			value="2146300950"
		[/random]
		[random]
			value="1206649207"
		[/random]
		[random]
			value="214355921"
			[results]
				checksum="80N696kdt17Q-aGPQ75eF4RIQSHu+GNvRCnIqFywJTCHmxqx1EwQVOxDmGODNOzCNSPAGPJnfzEDPJCs,8AqDwqDqPxMAuFRQxPzFwD4sc7wU,890qvi7pTKGPwx3xSB"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="26,26"
			y="9,10"
		[/move]
	[/command]
	[command]
		[move]
			x="26,26"
			y="10,11"
		[/move]
	[/command]
	[command]
		[move]
			x="26,26,26"
			y="11,10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="sllol has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="6,7"
			y="7,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="dervish_rider has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="7,7"
			y="8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="7,7"
			y="9,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="untierwiel has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="7,7,7,6"
			y="10,9,8,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="elf20 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="15,14,13,12,11"
			y="3,3,4,4,5"
		[/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="Tonix has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,13,13"
			y="12,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,13"
			y="10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,14"
			y="9,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="zett has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="14,14"
			y="8,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="7,7,7"
			y="15,16,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="7,7,7,7,7"
			y="17,16,15,14,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="7,6,6,6,6"
			y="16,15,14,13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,9,9"
			y="13,12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,8"
			y="11,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,10,9,8,7,7,7"
			y="17,16,17,16,16,15,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,12,11,10,9,8,7"
			y="19,18,18,17,17,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="1"
			x="17"
			y="19"
		[/recruit]
		[random]
			value="14020"
		[/random]
		[random]
			value="1666"
		[/random]
		[random]
			value="14408"
		[/random]
		[random]
			value="13674"
		[/random]
		[random]
			value="26198"
		[/random]
		[random]
			value="31625"
		[/random]
		[random]
			value="8511"
		[/random]
		[random]
			value="10398"
		[/random]
		[random]
			value="28589"
		[/random]
		[random]
			value="28401"
		[/random]
		[random]
			value="28672"
		[/random]
		[random]
			value="15279"
		[/random]
		[random]
			value="18878"
		[/random]
		[random]
			value="29482"
		[/random]
		[random]
			value="18252"
			[results]
				checksum="ACIByNSVYmLXPemyRXKFwqFrLmVQqEv0TwtBGgNMvJHtOMFtHrtKmNzMnuxEPDq6BPSLFIOJqR+ProSyETFwFyA9zumVnpCouMKPBb5OJGPbmz3o>.fjcflW4p97m5p7"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,16,17,18,19,20,21"
			y="20,19,19,18,18,17,17"
		[/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="daniel has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="23,22,21,20,19"
			y="8,7,7,6,7"
		[/move]
	[/command]
	[command]
		[move]
			x="26,25"
			y="9,10"
		[/move]
	[/command]
	[command]
		[move]
			x="25,24"
			y="10,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="mathieu has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="24,24,24,24"
			y="10,9,8,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Pjan has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="steven1 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="27,26,25,24,23,22,21"
			y="9,8,8,7,7,6,6"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Borg_cz has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="27,26,25,24,23,22,21,20"
			y="8,7,8,7,7,6,6,5"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Katastrosha has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="georgi has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="6,7,8,9"
			y="7,7,6,7"
		[/move]
	[/command]
	[command]
		[move]
			x="15,14,14,13"
			y="4,4,5,6"
		[/move]
	[/command]
	[command]
		[move]
			x="11,12,13"
			y="5,4,4"
		[/move]
	[/command]
	[command]
		[recruit]
			value="2"
			x="14"
			y="3"
		[/recruit]
		[random]
			value="1869341430"
		[/random]
		[random]
			value="1516961138"
		[/random]
		[random]
			value="1132232747"
		[/random]
		[random]
			value="1703624304"
		[/random]
		[random]
			value="406979612"
		[/random]
		[random]
			value="2005923465"
		[/random]
		[random]
			value="1410737404"
		[/random]
		[random]
			value="277020090"
		[/random]
		[random]
			value="255489943"
		[/random]
		[random]
			value="1455298204"
		[/random]
		[random]
			value="423163287"
		[/random]
		[random]
			value="1973195548"
		[/random]
		[random]
			value="1088446998"
		[/random]
		[random]
			value="20663403"
		[/random]
		[random]
			value="1428478264"
			[results]
				checksum="dyxuTOIUoJO8HNrG4rKqKKyCcwwqoNtRxBzMHwQmPyQBpPAuOCIG6zNHsCQFqzuGzwKqqyuyKqqT5RBJTuEm3frBwnBwBICTrpKGHCIsunwtfvIWc-MGO<7LH5>f<208"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="firas has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="13,12,11"
			y="4,4,5"
		[/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="NewSchool87 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="darkblood has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="7,8,8"
			y="14,13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="8,9,9"
			y="11,12,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="14,14,13"
			y="9,10,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,13"
			y="11,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,21,21,22"
			y="16,15,14,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="17,18,19,20,21,21"
			y="19,18,18,17,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,20,19,18,17,16,15"
			y="17,17,18,18,19,19,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="steven2 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="csarmi has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="23,23"
			y="16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="23,23"
			y="15,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="23,23,23"
			y="14,13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="23,23"
			y="12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="tdepuy has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Mither has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="23,24,25,26,27,27"
			y="11,11,12,11,12,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="stella has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Masteriusz has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="mos has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,24,25"
			y="15,14,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="1"
			x="17"
			y="19"
		[/recruit]
		[random]
			value="6830"
		[/random]
		[random]
			value="6331"
		[/random]
		[random]
			value="6120"
		[/random]
		[random]
			value="8978"
		[/random]
		[random]
			value="18805"
		[/random]
		[random]
			value="6362"
		[/random]
		[random]
			value="21617"
		[/random]
		[random]
			value="4104"
		[/random]
		[random]
			value="3875"
		[/random]
		[random]
			value="17759"
		[/random]
		[random]
			value="27760"
		[/random]
		[random]
			value="11422"
		[/random]
		[random]
			value="21472"
		[/random]
		[random]
			value="20197"
		[/random]
		[random]
			value="21222"
			[results]
				checksum="ACIByNSVYyLXPemyRXKFwqFrLmVQqEv0TwtBGgNMvJHtOMFtHrtKmNzMnuxEPDq6BPSLFIOJqR+ProSyETFwFyA9vumVnpCouMKPBb5TJGPbmz3o>.fjcflW4p97m5p7"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="jk has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Magical_Noob has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="7,6,6,6,5,5"
			y="16,15,14,13,13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Killer595 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="7,7,7,7"
			y="13,12,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="6,6,5,4"
			y="12,11,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="7,6"
			y="10,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,8,7,6,5"
			y="13,12,12,11,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="6,6"
			y="10,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="5,6"
			y="12,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="8,7,6,5"
			y="12,12,12,12"
		[/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="13,13"
			y="6,7"
		[/move]
	[/command]
	[command]
		[move]
			x="13,12"
			y="7,7"
		[/move]
	[/command]
	[command]
		[move]
			x="12,11"
			y="7,8"
		[/move]
	[/command]
	[command]
		[move]
			x="11,10"
			y="8,8"
		[/move]
	[/command]
	[command]
		[move]
			x="10,9"
			y="8,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="pako has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="pako has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="lepercaun_guy has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="9,10,10,11"
			y="9,8,7,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="zakopunu has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="14,13,13,13,12,11,10"
			y="3,4,5,6,6,7,7"
		[/move]
	[/command]
	[command]
		[move]
			x="11,12,13"
			y="5,4,4"
		[/move]
	[/command]
	[command]
		[move]
			x="21,22"
			y="6,5"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="njv has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="20,21,22,23"
			y="5,5,5,5"
		[/move]
	[/command]
	[command]
		[recruit]
			value="4"
			x="17"
			y="4"
		[/recruit]
		[random]
			value="981636409"
		[/random]
		[random]
			value="881018576"
		[/random]
		[random]
			value="1880628590"
		[/random]
		[random]
			value="621195023"
		[/random]
		[random]
			value="971256352"
		[/random]
		[random]
			value="838852076"
		[/random]
		[random]
			value="2138811275"
		[/random]
		[random]
			value="678875233"
		[/random]
		[random]
			value="1390532292"
		[/random]
		[random]
			value="1952069483"
		[/random]
		[random]
			value="351229197"
		[/random]
		[random]
			value="210201092"
		[/random]
		[random]
			value="830324063"
		[/random]
		[random]
			value="872345085"
		[/random]
		[random]
			value="859009538"
			[results]
				checksum="3Cf1OSw,C7F>rbJjDs8AZ92.m<KzFBEHnuR73QRpoMa2r4.k-cpOaw87,.Y8Z.5ndaB-kwWvSlbAfbufC3iaj7hobd->Zhesk<>2fa5>ai01-b1+6Z+40CN5c8b.>X,4"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="5"
			x="16"
			y="3"
		[/recruit]
		[random]
			value="1376523607"
		[/random]
		[random]
			value="421582344"
		[/random]
		[random]
			value="1000208857"
		[/random]
		[random]
			value="1727752805"
		[/random]
		[random]
			value="631783436"
		[/random]
		[random]
			value="1830532920"
		[/random]
		[random]
			value="452614242"
		[/random]
		[random]
			value="1490792974"
		[/random]
		[random]
			value="1248216220"
		[/random]
		[random]
			value="1402076494"
		[/random]
		[random]
			value="1350301733"
		[/random]
		[random]
			value="1671273810"
		[/random]
		[random]
			value="1763562061"
		[/random]
		[random]
			value="1400841818"
		[/random]
		[random]
			value="1789697115"
			[results]
				checksum="bfk10b5br.lQp.+wk<Ab-239eel1N5llg71o3Xl17<1,5g7Z-k6kZlaGnZ68p4>gn6n3e1iafnb5+9fm4>73a+>+.57mc,6d1edjnNmi-f,a8gbj.r.awWJe+,PQ3hpQ"
			[/results]
		[/random]
	[/command]
	[command]
		[recruit]
			value="4"
			x="14"
			y="3"
		[/recruit]
		[random]
			value="1108126596"
		[/random]
		[random]
			value="2131705670"
		[/random]
		[random]
			value="930492529"
		[/random]
		[random]
			value="1560740838"
		[/random]
		[random]
			value="1475014996"
		[/random]
		[random]
			value="31225101"
		[/random]
		[random]
			value="815333684"
		[/random]
		[random]
			value="677833082"
		[/random]
		[random]
			value="1702498912"
		[/random]
		[random]
			value="431412097"
		[/random]
		[random]
			value="2078674900"
		[/random]
		[random]
			value="1344712379"
		[/random]
		[random]
			value="183495094"
		[/random]
		[random]
			value="1223368342"
		[/random]
		[random]
			value="224133859"
			[results]
				checksum="4zf1OSw,C7F>rbJjIs8AZ92.m<KzFBEHnuR73QRpoMa2r4.k-cpOaw87,.Y8Z.5ndaB-kwWvSlbAfbufC3iaj7hobd->Zhenk<>2fa5>ai01-b1+6Z+40CN5c8b.>X,4"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="isutruk has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="cashim has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[recruit]
			value="5"
			x="15"
			y="4"
		[/recruit]
		[random]
			value="1200136642"
		[/random]
		[random]
			value="877010839"
		[/random]
		[random]
			value="1339358636"
		[/random]
		[random]
			value="527667991"
		[/random]
		[random]
			value="908235941"
		[/random]
		[random]
			value="7208672"
		[/random]
		[random]
			value="1205501073"
		[/random]
		[random]
			value="463251205"
		[/random]
		[random]
			value="438620770"
		[/random]
		[random]
			value="1136692325"
		[/random]
		[random]
			value="1807963584"
		[/random]
		[random]
			value="622115864"
		[/random]
		[random]
			value="212577019"
		[/random]
		[random]
			value="2032097443"
		[/random]
		[random]
			value="615846254"
			[results]
				checksum="hfk10b5br.lQp.+wk<Ab-239eel1N5llg71o3Xl17<1,5g7Z-k6kZlaGnZ68p4>gn6n3e1iafnb5+9es4>73a+>+.57mc,6d1edjnNmi-f,a8gbj.r.awWGe+,PQ3hpR"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="13,12,12,11"
			y="4,4,5,6"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="AD_42 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"
		[speak]
			id="server"
			message="Asymeja has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="17,16,15,14,13,12"
			y="19,19,19,18,18,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="5,4,3,3"
			y="11,11,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="6,7,8,9"
			y="11,12,12,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="6,5,4"
			y="12,13,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="5,4,3"
			y="12,11,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,27"
			y="13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,27,27"
			y="12,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,26"
			y="10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="freddy has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,26,26,27,27"
			y="9,10,11,12,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="IronLord has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Theos has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="vinicius has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Hirgwath has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="clue has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="jefferson has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="cashim has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Jin has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="maike has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="harry1 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="mb has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Kuto has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="stilian has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="b-cuad has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Alex has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Lord_Andrew has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="frozen has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="altrocks has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="bigmusel has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="steven has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="SOS has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="ankheg has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="kingace has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="22,23,24"
			y="13,13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,24,23,22"
			y="14,13,14,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,22,23,24,25"
			y="16,15,15,14,14"
		[/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,24"
			y="7,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		undo="no"
		[speak]
			id="Gauteamus"
			message="ehh"
			side="2"
		[/speak]
	[/command]
	[command]
		[move]
			x="24,24"
			y="8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="24,24"
			y="9,10"
		[/move]
	[/command]
	[command]
		[move]
			x="24,24,24,24"
			y="10,9,8,7"
		[/move]
	[/command]
	[command]
		[move]
			x="11,10,10"
			y="7,7,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		undo="no"
		[speak]
			id="Gauteamus"
			message="I forgot to end turn :("
			side="2"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Magical_Noob has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="10,10"
			y="8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="10,9"
			y="9,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Arkad has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="9,9,10,10,11"
			y="10,9,8,7,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="LadyRaven has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="10,9,8,7"
			y="7,7,6,7"
		[/move]
	[/command]
	[command]
		[move]
			x="9,8,7,6,5,4,3"
			y="7,7,8,7,7,6,6"
		[/move]
	[/command]
	[command]
		[move]
			x="7,6,5,4"
			y="7,6,6,5"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Santiago has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="noname has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Santiago has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="15,14,13,12,11,10,10"
			y="4,4,5,5,6,6,7"
		[/move]
	[/command]
	[command]
		[move]
			x="16,15,14,13,12,11,10"
			y="3,4,3,4,4,5,5"
		[/move]
	[/command]
	[command]
		[move]
			x="17,16,15,14,13,12,11,10"
			y="4,3,4,4,5,5,6,6"
		[/move]
	[/command]
	[command]
		[move]
			x="14,13,12,11,11,10,9"
			y="3,4,4,5,6,6,7"
		[/move]
	[/command]
	[command]
		[move]
			x="11,12,12,13"
			y="6,5,4,4"
		[/move]
	[/command]
	[command]
		[recruit]
			value="4"
			x="14"
			y="3"
		[/recruit]
		[random]
			value="752051358"
		[/random]
		[random]
			value="930548005"
		[/random]
		[random]
			value="1046401052"
		[/random]
		[random]
			value="1195043639"
		[/random]
		[random]
			value="254947014"
		[/random]
		[random]
			value="980054599"
		[/random]
		[random]
			value="799515487"
		[/random]
		[random]
			value="1685999708"
		[/random]
		[random]
			value="817332633"
		[/random]
		[random]
			value="1030024976"
		[/random]
		[random]
			value="1844163187"
		[/random]
		[random]
			value="40641696"
		[/random]
		[random]
			value="643751084"
		[/random]
		[random]
			value="980406749"
		[/random]
		[random]
			value="1127099052"
			[results]
				checksum="3Cf1OSv,C7F>rbJjHs8AZ92.m<KzFBEHnuR73QRpoMa2r4.k-cpOaw87,.Y8Z.5ndaB-kwWvSlbAfbufC3iaj7hobd->Zheok<>2fa5>ai01-b1+6Z+40CN5c8b.>X,4"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="maike has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="13,12,11"
			y="4,4,5"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Horun 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"
		[speak]
			id="server"
			message="kowi110 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="12,11,10,9,8,7"
			y="17,17,16,17,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,27"
			y="13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,27,27,26"
			y="12,11,10,9"
		[/move]
	[/command]
	[command]
		undo="no"
		[speak]
			id="KnightKunibert"
			message="but not to move ..."
			side="1"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,23,22,22,21"
			y="12,12,11,10,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,27"
			y="9,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="fighter has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="22,23,23,24,25,25,26"
			y="13,13,12,11,11,10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,25,25,25,26"
			y="14,13,12,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,13,13"
			y="12,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="dethtoll has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,13"
			y="10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Dynamyz has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Tree has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,14,15,16"
			y="9,8,8,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="cashim has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Atys has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="sllol has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="cheng has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,27"
			y="10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="mauno69 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Ruika has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="0"
			x="17"
			y="19"
		[/recruit]
		[random]
			value="832"
		[/random]
		[random]
			value="9036"
		[/random]
		[random]
			value="12579"
		[/random]
		[random]
			value="7002"
		[/random]
		[random]
			value="18543"
		[/random]
		[random]
			value="18740"
		[/random]
		[random]
			value="3398"
		[/random]
		[random]
			value="4766"
		[/random]
		[random]
			value="24545"
		[/random]
		[random]
			value="10849"
		[/random]
		[random]
			value="5494"
		[/random]
		[random]
			value="4141"
		[/random]
		[random]
			value="22805"
		[/random]
		[random]
			value="19559"
		[/random]
		[random]
			value="23744"
			[results]
				checksum="oxj+sAh20PB0NmsQ56tLoxNPdOFGJz.MMAvVvoQO,ECJMwDzBrzrTwAoECqSJHEvSS3IzTALqvFArEKTmSKvvPnFtw+QnBRSqBwbD3xFMMEJCCHO+YDPPnPywBn8FA25"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Pentarctagon has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,16,17,17,17,17,18"
			y="20,19,19,18,17,16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="4,5,6,7"
			y="13,13,12,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="4,4,4,4"
			y="10,11,12,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="3,3,4,5"
			y="10,11,11,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="3,4,4,5,6,7"
			y="11,11,12,13,13,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="5,5,6"
			y="12,13,13"
		[/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="Androgeos has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Erlend has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="23,24,24,25"
			y="5,5,6,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="luciendu85 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="wh has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="22,23,24"
			y="5,6,6"
		[/move]
	[/command]
	[command]
		sent="yes"
		undo="no"
		[speak]
			id="Gauteamus"
			message="what do you mean?"
			side="2"
		[/speak]
	[/command]
	[command]
		[move]
			x="19,20,21,22"
			y="7,6,7,7"
		[/move]
	[/command]
	[command]
		[move]
			x="14,15,16,17,18,18,19"
			y="3,4,4,5,5,6,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="pipt has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="10,10,10,10,10,10"
			y="5,6,7,8,9,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="denver has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="10,9"
			y="10,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Tibus has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="4,4,4,4,4,5,6"
			y="5,6,7,8,9,10,10"
		[/move]
	[/command]
	[command]
		[move]
			x="10,9,8,7,6,5"
			y="7,8,8,9,9,10"
		[/move]
	[/command]
	[command]
		[move]
			x="9,8,7,7,6"
			y="7,7,8,9,9"
		[/move]
	[/command]
	[command]
		[move]
			x="10,10,10,10,9"
			y="6,7,8,9,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Maquiavelo has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Logan156 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="3,3,4,5,5"
			y="6,7,7,8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="11,10,10,9"
			y="7,7,8,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Tree has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="GOThiC has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="11,12,13"
			y="5,4,4"
		[/move]
	[/command]
	[command]
		[recruit]
			value="5"
			x="17"
			y="4"
		[/recruit]
		[random]
			value="1094513793"
		[/random]
		[random]
			value="203437521"
		[/random]
		[random]
			value="917983666"
		[/random]
		[random]
			value="1783256215"
		[/random]
		[random]
			value="845546043"
		[/random]
		[random]
			value="168994632"
		[/random]
		[random]
			value="822015675"
		[/random]
		[random]
			value="1160991613"
		[/random]
		[random]
			value="1701106377"
		[/random]
		[random]
			value="214880055"
		[/random]
		[random]
			value="39211873"
		[/random]
		[random]
			value="479242674"
		[/random]
		[random]
			value="144625705"
		[/random]
		[random]
			value="739081958"
		[/random]
		[random]
			value="746241116"
			[results]
				checksum="hfk10b5br.lQp.+wk<Ab-239eel1N5llg71o3Xl17<1,5g7Z-k6kZlaGnZ68p4>gn6n3e1iafnb5+9es4>73a+>+.57mc,6d1edjnNmi-f,a8gbj.r.awWGe+,PQ3hpR"
			[/results]
		[/random]
	[/command]
	[command]
		[countdown_update]
			team="1"
			value="270000"
		[/countdown_update]
	[/command]
	[command]
		[end_turn]
		[/end_turn]
	[/command]
	[command]
		undo="no"
		[speak]
			id="KnightKunibert"
			message="i hope you didn't forget a move"
			side="1"
		[/speak]
	[/command]
	[command]
		sent="yes"
		undo="no"
		[speak]
			id="Gauteamus"
			message="nono"
			side="2"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="nanjupaca1 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="cashim has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,25,24"
			y="9,9,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="24"
				y="8"
			[/source]
			[destination]
				x="24"
				y="7"
			[/destination]
		[/attack]
		[random]
			value="32446"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="27178"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="20982"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="5258"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="18366"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="13987"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="21477"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,22,23,24,25,25"
			y="10,9,9,9,9,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="25"
				y="8"
			[/source]
			[destination]
				x="25"
				y="7"
			[/destination]
		[/attack]
		[random]
			value="18165"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="14392"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="28341"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="15603"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="5863"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="7358"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="30708"
			[results]
				chance="40"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="13411"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,26,26,26"
			y="10,9,8,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="26"
				y="7"
			[/source]
			[destination]
				x="25"
				y="7"
			[/destination]
		[/attack]
		[random]
			value="15243"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="27006"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="23509"
			[results]
				chance="40"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="29832"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="29963"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="3901"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="18101"
			[results]
				chance="40"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="20909"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,27,27,26"
			y="9,8,7,6"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="26"
				y="6"
			[/source]
			[destination]
				x="25"
				y="7"
			[/destination]
		[/attack]
		[random]
			value="5296"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1387"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="6687"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="30313"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="16,17,18,19,20,21,22"
			y="8,8,8,9,9,9,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="17,17,17,17,18,19,19"
			y="19,18,17,16,15,15,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Euthanatos93 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="4,5,5,6"
			y="13,14,15,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="7,8"
			y="16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="6,6,6,5"
			y="13,14,15,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="7,7,6,6"
			y="14,15,15,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,9,9,9"
			y="13,14,15,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="7,7,7,7,7,8"
			y="13,14,15,16,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="18,17,17,17,17,16,15"
			y="15,16,17,18,19,19,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="1"
			x="13"
			y="19"
		[/recruit]
		[random]
			value="24633"
		[/random]
		[random]
			value="13796"
		[/random]
		[random]
			value="3977"
		[/random]
		[random]
			value="1372"
		[/random]
		[random]
			value="9104"
		[/random]
		[random]
			value="29213"
		[/random]
		[random]
			value="21093"
		[/random]
		[random]
			value="14194"
		[/random]
		[random]
			value="31120"
		[/random]
		[random]
			value="5785"
		[/random]
		[random]
			value="12227"
		[/random]
		[random]
			value="1062"
		[/random]
		[random]
			value="5446"
		[/random]
		[random]
			value="11582"
		[/random]
		[random]
			value="24766"
			[results]
				checksum="ACIByNSVYyLXPemyRXKFwqFrLmVQqEv0TwtBGgNMvJHtOMFtHrtKmNzMnuxEPDq6BPSLFIOJqR+ProSyETFwFyA9vumVnpCouMKPBb5TJGPbmz3o>.fjcflW4p97m5p7"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="spelare 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]
		sent="yes"
		[speak]
			id="server"
			message="dumbledore has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Bellis has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Topace has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="edgar has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="22,23"
			y="7,8"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="1"
			[source]
				x="23"
				y="8"
			[/source]
			[destination]
				x="24"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="1931183408"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1536605311"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1941445038"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="2057429265"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1595643067"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1028318963"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Naruton has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Umberto has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="terry has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="nanjupaca1 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Naruton has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="papi has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="24"
				y="7"
			[/source]
			[destination]
				x="24"
				y="8"
			[/destination]
		[/attack]
		[random]
			value="1329753416"
			[results]
				chance="60"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1803049145"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="538992265"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1958919924"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="191458406"
			[results]
				chance="60"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Someirhle has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="24,23"
			y="6,6"
		[/move]
	[/command]
	[command]
		[move]
			x="25,24"
			y="7,6"
		[/move]
	[/command]
	[command]
		[move]
			x="19,20,21,22,23,24,25"
			y="7,6,6,5,6,6,7"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="25"
				y="7"
			[/source]
			[destination]
				x="26"
				y="7"
			[/destination]
		[/attack]
		[random]
			value="1163710124"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="613436838"
			[results]
				chance="40"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1127456182"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="2037498073"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="2029242549"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="950420850"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="love has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="palloco has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="23,24,25,26"
			y="6,5,5,5"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="26"
				y="5"
			[/source]
			[destination]
				x="26"
				y="6"
			[/destination]
		[/attack]
		[random]
			value="1553062963"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="629897067"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1186980709"
			[results]
				chance="70"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="505894671"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="44783183"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="17,17,18,18,19"
			y="4,5,5,6,7"
		[/move]
	[/command]
	[command]
		[move]
			x="24,24,24,24,24"
			y="6,5,4,3,2"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="shodoo has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="morkyyy has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Reynik has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="13,14,15,16,17,18"
			y="4,3,4,3,4,4"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="geg_Ma3gau has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="fresher has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Lisohlavek has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Dragonheart has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="zipoz has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="9,9,9"
			y="11,12,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="reReDrUm has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="5,6,6,7"
			y="10,10,11,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Dauntless has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="9,9,9"
			y="10,11,12"
		[/move]
	[/command]
	[command]
		[move]
			x="6,6,7"
			y="9,10,11"
		[/move]
	[/command]
	[command]
		[move]
			x="9,9,9"
			y="9,10,11"
		[/move]
	[/command]
	[command]
		[move]
			x="5,5,6,7,8"
			y="9,10,10,11,11"
		[/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="razinger has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="vinicius has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="SOS has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="22,23,24,25,26"
			y="9,10,10,11,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,20,21,22,23,24"
			y="14,13,14,13,13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,25,26,26,27,27,27"
			y="8,9,9,10,11,12,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Creon1 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,27,27,27,27,27,27,27,27"
			y="6,7,8,9,10,11,12,13,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Katastrosha has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,25,26,26,27,27"
			y="8,9,9,10,11,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,26,26,27,27,28"
			y="7,8,9,10,11,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="13,13,12,11,11"
			y="19,18,17,17,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="whoever has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="1"
			x="17"
			y="19"
		[/recruit]
		[random]
			value="18423"
		[/random]
		[random]
			value="18742"
		[/random]
		[random]
			value="29062"
		[/random]
		[random]
			value="22748"
		[/random]
		[random]
			value="5307"
		[/random]
		[random]
			value="4971"
		[/random]
		[random]
			value="10405"
		[/random]
		[random]
			value="31877"
		[/random]
		[random]
			value="12266"
		[/random]
		[random]
			value="2975"
		[/random]
		[random]
			value="19973"
		[/random]
		[random]
			value="8374"
		[/random]
		[random]
			value="19366"
		[/random]
		[random]
			value="20415"
		[/random]
		[random]
			value="10988"
			[results]
				checksum="ACIByNSVYsLXPemyRXKCwqFrLmVQqEv0TwtBGgNMvJHtOMFtHrtKmNzMnuxEPDq6BPSLFIOJqR+ProSyETFwFyA9FumVnpCouMKPBb5OJGPbmz3o>.fjcflW4pf7m5p7"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="tdepuy has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="james has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,14,13,12,11,10,9"
			y="20,19,19,18,18,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="8,8,7"
			y="17,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,27"
			y="11,11"
		[/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,28,29,29"
			y="7,8,8,9,9,10,11"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="29"
				y="11"
			[/source]
			[destination]
				x="28"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="549502313"
			[results]
				chance="60"
				damage="2"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="NOFX has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="siluetas has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="25,26,26,27,28,28"
			y="7,7,8,9,9,10"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="28"
				y="10"
			[/source]
			[destination]
				x="27"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="2130123441"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1155644887"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1968613279"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="548892474"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="2138478802"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="889607851"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="26,27,27,27,27,27"
			y="5,6,7,8,9,10"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="27"
				y="10"
			[/source]
			[destination]
				x="27"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="1601808203"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1192314627"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="841424158"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1421064306"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="177771010"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="610730147"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Undertaker has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="23,24,25,26,26"
			y="8,8,9,9,10"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="1"
			[source]
				x="26"
				y="10"
			[/source]
			[destination]
				x="27"
				y="11"
			[/destination]
		[/attack]
		[random]
			value="1643913874"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="295218242"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1518428701"
			[results]
				chance="40"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="394019294"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1398583501"
			[results]
				chance="40"
				damage="5"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="19,20,21,22,23"
			y="7,7,8,8,9"
		[/move]
	[/command]
	[command]
		[move]
			x="24,24,24,24,24,24"
			y="2,3,4,5,6,7"
		[/move]
	[/command]
	[command]
		[move]
			x="18,17,16,15,14,13"
			y="4,4,3,4,3,4"
		[/move]
	[/command]
	[command]
		[recruit]
			value="2"
			x="17"
			y="4"
		[/recruit]
		[random]
			value="1422748317"
		[/random]
		[random]
			value="184203898"
		[/random]
		[random]
			value="1836770928"
		[/random]
		[random]
			value="1333731325"
		[/random]
		[random]
			value="1510480881"
		[/random]
		[random]
			value="996594210"
		[/random]
		[random]
			value="964096727"
		[/random]
		[random]
			value="1852073142"
		[/random]
		[random]
			value="978346194"
		[/random]
		[random]
			value="896490475"
		[/random]
		[random]
			value="175943050"
		[/random]
		[random]
			value="1615613454"
		[/random]
		[random]
			value="1792434938"
		[/random]
		[random]
			value="786392157"
		[/random]
		[random]
			value="260224407"
			[results]
				checksum="dyxuTOIUoJO8HNrG4rKqKKyCcwwqoNtRxBzMHwQmPyQBpPAuOCIG6zNHsCQFqzuGzwKqqyuyKqpN5RBJTuEm3frBwnBwBICTrpKGHCIsunwtfvIWc<MGO<7LH5>c8208"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Br4inz has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="7,8,9,10,10,10,10"
			y="12,11,11,10,9,8,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="shine_ has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="9,9,9,9,9,9"
			y="12,11,10,9,8,7"
		[/move]
	[/command]
	[command]
		[move]
			x="9,9,9,9,9,9"
			y="13,12,11,10,9,8"
		[/move]
	[/command]
	[command]
		[move]
			x="8,7,6,6,6,6"
			y="11,11,10,9,8,7"
		[/move]
	[/command]
	[command]
		[move]
			x="7,7,7,7,7"
			y="11,10,9,8,7"
		[/move]
	[/command]
	[command]
		[move]
			x="6,7,8,8,8"
			y="10,10,9,8,7"
		[/move]
	[/command]
	[command]
		[move]
			x="9,10"
			y="11,11"
		[/move]
	[/command]
	[command]
		[move]
			x="10,11"
			y="11,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="bottlerocket has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="11,12"
			y="12,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Gwledig has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="12,13"
			y="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="Nath has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Pohoa has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,24,24,24"
			y="12,13,14,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,26,26,26,26,25,24,23,22,21"
			y="14,14,15,16,17,18,18,19,19,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Hoagie has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,27,26,26,26,26"
			y="13,14,14,15,16,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="17,18,19,20,21,22,23"
			y="19,18,18,17,17,16,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="27,27,27,26"
			y="12,13,14,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,10,11,12,13,14,15"
			y="17,17,18,18,19,19,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="6,6,6"
			y="15,14,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="6,6"
			y="13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="8,8,8,9"
			y="15,14,13,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="red_death193 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,8,7,6,5,4"
			y="16,15,15,14,14,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="6,5,4"
			y="12,12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="6,5,5,5,4,4"
			y="16,16,15,14,13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Kamiljoner has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="4,3"
			y="12,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="7,6,6,5,4,4"
			y="16,15,14,14,13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="5,5,5,4,3,3,3"
			y="16,15,14,13,13,12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="11,10,9,9"
			y="16,15,15,14"
		[/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="matthieu has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="26,26,26,27,27"
			y="10,11,12,13,14"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="1"
			[source]
				x="27"
				y="14"
			[/source]
			[destination]
				x="26"
				y="14"
			[/destination]
		[/attack]
		[random]
			value="1311764177"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="2143545049"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1748478039"
			[results]
				chance="40"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1791268432"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1489091267"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1525225106"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1226318164"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1034936969"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="28,28,27,27,26"
			y="10,11,12,13,13"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="26"
				y="13"
			[/source]
			[destination]
				x="26"
				y="14"
			[/destination]
		[/attack]
		[random]
			value="1572803293"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="570168146"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="47593620"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1178127811"
			[results]
				chance="40"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="185766395"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="2089658269"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="m0n573r has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Esor has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="27,27,26,25,25,25"
			y="10,11,11,12,13,14"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="25"
				y="14"
			[/source]
			[destination]
				x="26"
				y="14"
			[/destination]
		[/attack]
		[random]
			value="715689871"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1456899930"
			[results]
				chance="40"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="669472132"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="65754893"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="210476161"
			[results]
				chance="70"
				damage="5"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="29,28,28,27,27,26"
			y="11,11,12,13,14,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="dud has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Santiago has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="23,23,23,23,24,24,24"
			y="9,10,11,12,12,13,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Hoagie has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="24"
				y="14"
			[/source]
			[destination]
				x="24"
				y="15"
			[/destination]
		[/attack]
		[random]
			value="1081156353"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="829645900"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="401420383"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="369842894"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1197282267"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="360918389"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="24,24,24,24,24,24,24"
			y="7,8,9,10,11,12,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Pohoa has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Tree has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Santiago has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="6,5,5,4"
			y="7,7,6,5"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="zoggop has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="tadpol has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="8,8,7,6,6,5"
			y="7,6,6,5,4,4"
		[/move]
	[/command]
	[command]
		[move]
			x="7,8,9,10"
			y="7,6,6,6"
		[/move]
	[/command]
	[command]
		[move]
			x="9,10,10"
			y="7,6,5"
		[/move]
	[/command]
	[command]
		[move]
			x="9,9"
			y="8,7"
		[/move]
	[/command]
	[command]
		[move]
			x="17,16,15,14,13,12,11,10"
			y="4,3,4,3,4,4,5,4"
		[/move]
	[/command]
	[command]
		[move]
			x="13,12,11"
			y="4,4,5"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="a5u has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="13,13,14,15,16"
			y="13,14,14,14,14"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Lamarc 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="9,9"
			y="13,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,9"
			y="12,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,10"
			y="11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,9,9,8,8,8"
			y="14,13,12,11,10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="4,3,3,3"
			y="11,11,10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="3,4"
			y="9,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="3,3,3"
			y="11,10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="4,5,5,5,6"
			y="13,13,12,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="montoto has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="4,4,5,5"
			y="12,11,11,10"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="3,3,3,4"
			y="12,11,10,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="1"
			x="17"
			y="19"
		[/recruit]
		[random]
			value="2553"
		[/random]
		[random]
			value="18418"
		[/random]
		[random]
			value="24105"
		[/random]
		[random]
			value="13072"
		[/random]
		[random]
			value="5605"
		[/random]
		[random]
			value="4149"
		[/random]
		[random]
			value="8843"
		[/random]
		[random]
			value="27308"
		[/random]
		[random]
			value="19470"
		[/random]
		[random]
			value="5387"
		[/random]
		[random]
			value="25429"
		[/random]
		[random]
			value="27295"
		[/random]
		[random]
			value="29818"
		[/random]
		[random]
			value="21808"
		[/random]
		[random]
			value="24555"
			[results]
				checksum="ACIByNSVYyLXPemyRXKFwqFrLmVQqEv0TwtBGgNMvJHtOMFtHrtKmNzMnuxEPDq6BPSLFIOJqR+ProSyETFwFyA9vumVnpCouMKPBb5tJGPbmz3o>.fjcflW4pf7m5p7"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="matthieu has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="26,25,24,23,22"
			y="17,18,18,19,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,21"
			y="20,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="22,21"
			y="19,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="21,20,19,18,17"
			y="19,18,18,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="24,24,24,24,25"
			y="15,16,17,18,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="23,24,25"
			y="16,16,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Hoagie has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="CAMPEON-WESNOTH has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="AndyDaPsycho has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,26"
			y="17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="15,16,17,18,19"
			y="20,19,19,18,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="19,20"
			y="18,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,20"
			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="Belidus has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Someirhle has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Redbolt666 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Entropy has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="16,15,14,13,12,11"
			y="14,15,15,16,15,16"
		[/move]
	[/command]
	[command]
		[move]
			x="24,24,24,24,23,23,22"
			y="14,15,16,17,18,19,19"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="22"
				y="19"
			[/source]
			[destination]
				x="21"
				y="20"
			[/destination]
		[/attack]
		[random]
			value="17572852"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="781022827"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="511577309"
			[results]
				chance="40"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="183901591"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="647092036"
			[results]
				chance="40"
				damage="3"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="rob has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="24,24,24"
			y="13,14,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="asd has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="jake has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="26,26,26,26"
			y="13,14,15,16"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="26"
				y="16"
			[/source]
			[destination]
				x="26"
				y="17"
			[/destination]
		[/attack]
		[random]
			value="401951475"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="268765858"
			[results]
				chance="60"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1525032696"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1977008985"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1791943203"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="186992354"
			[results]
				chance="60"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="27,27,27,28,28,27"
			y="14,15,16,16,17,18"
		[/move]
	[/command]
	[command]
		[move]
			x="25,25,26,27,27"
			y="14,15,15,16,17"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="27"
				y="17"
			[/source]
			[destination]
				x="26"
				y="17"
			[/destination]
		[/attack]
		[random]
			value="267369529"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1733329617"
			[results]
				chance="40"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="167236188"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1036279056"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1481622319"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="192377115"
			[results]
				chance="40"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="1"
			[source]
				x="27"
				y="18"
			[/source]
			[destination]
				x="26"
				y="17"
			[/destination]
		[/attack]
		[random]
			value="1631918778"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="377169246"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="68800218"
			[results]
				chance="40"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="105826124"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1033756561"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1429455956"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1682643485"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="540445010"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Someirhle has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="lord_orik9 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Pohoa has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="26,26,25,25"
			y="14,15,16,17"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="25"
				y="17"
			[/source]
			[destination]
				x="26"
				y="17"
			[/destination]
		[/attack]
		[random]
			value="558904706"
			[results]
				chance="40"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="702152463"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="8516735"
			[results]
				chance="40"
				damage="10"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="11,12,13"
			y="5,4,4"
		[/move]
	[/command]
	[command]
		[recruit]
			value="1"
			x="14"
			y="3"
		[/recruit]
		[random]
			value="208062489"
		[/random]
		[random]
			value="370006332"
		[/random]
		[random]
			value="1390249535"
		[/random]
		[random]
			value="1754554115"
		[/random]
		[random]
			value="1027796957"
		[/random]
		[random]
			value="938886686"
		[/random]
		[random]
			value="655007318"
		[/random]
		[random]
			value="953434387"
		[/random]
		[random]
			value="1929126539"
		[/random]
		[random]
			value="2036511530"
		[/random]
		[random]
			value="849071086"
		[/random]
		[random]
			value="2077957597"
		[/random]
		[random]
			value="1564330871"
		[/random]
		[random]
			value="13587354"
		[/random]
		[random]
			value="475704261"
			[results]
				checksum="KFLvyin74-,xpeaEvE02ik,1f-H<ltHpHl.4.Zv+KOuxJJEBpQwGOLzIDBBrtvLGpNIMjJxOsDGJKEAIFmsFKnyPOyBu3tJHxVzEnyVqOuyLwrBF>8AJxGsqutBjv5-V"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Jazz has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Maquiavelo has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="TURBO has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="4,5,6,7,8"
			y="5,5,4,4,3"
		[/move]
	[/command]
	[command]
		[move]
			x="5,6,7"
			y="4,3,3"
		[/move]
	[/command]
	[command]
		[move]
			x="10,11"
			y="5,6"
		[/move]
	[/command]
	[command]
		[move]
			x="13,12,11"
			y="4,4,5"
		[/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="KSK7 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="17,16,16,15,14,13,13,13,12"
			y="17,17,18,19,18,18,17,16,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="12"
				y="15"
			[/source]
			[destination]
				x="11"
				y="16"
			[/destination]
		[/attack]
		[random]
			value="16424"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="95"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="18440"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="23463"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="25750"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Cairath has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="17,16,15,14,13,12"
			y="19,19,19,18,18,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="6,6,7,8,9,9,9"
			y="10,11,12,12,13,14,15"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Valenwood has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,19,18,17"
			y="19,19,19,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[recruit]
			value="1"
			x="16"
			y="19"
		[/recruit]
		[random]
			value="17621"
		[/random]
		[random]
			value="24151"
		[/random]
		[random]
			value="1072"
		[/random]
		[random]
			value="19197"
		[/random]
		[random]
			value="24378"
		[/random]
		[random]
			value="29569"
		[/random]
		[random]
			value="25315"
		[/random]
		[random]
			value="29323"
		[/random]
		[random]
			value="17114"
		[/random]
		[random]
			value="18958"
		[/random]
		[random]
			value="10812"
		[/random]
		[random]
			value="19907"
		[/random]
		[random]
			value="26284"
		[/random]
		[random]
			value="25187"
		[/random]
		[random]
			value="26906"
			[results]
				checksum="ACIByNSVYyLXPemyRXKFwqFrLmVQqEv0TwtBGgNMvJHtOMFtHrtKmNzMnuxEPDq6BPSLFIOJqR+ProSyETFwFyA9vumVnpCouMKPBb5TJGPbmz3o>.fjcflW4p97m5p7"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="25,26"
			y="19,18"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="-1"
			weapon="1"
			[source]
				x="26"
				y="18"
			[/source]
			[destination]
				x="27"
				y="18"
			[/destination]
		[/attack]
		[random]
			value="8311"
			[results]
				chance="60"
				damage="6"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1650"
			[results]
				chance="60"
				damage="6"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="jk has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Heike has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="3,4,4,4,4"
			y="9,8,7,6,5"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="4,5"
			y="8,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="5,6"
			y="8,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="8,8,7"
			y="9,8,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="10,10,9,8"
			y="10,9,9,9"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="4,5,6"
			y="9,9,8"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="5,5,4"
			y="10,9,8"
		[/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="Marckraft has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="rob has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Delvar has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="BdP has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="24,25,25,26"
			y="15,16,17,17"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="26"
				y="17"
			[/source]
			[destination]
				x="26"
				y="18"
			[/destination]
		[/attack]
		[random]
			value="1010335299"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="985973796"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1662356764"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="570193364"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1592614281"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1422430877"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="voodoochile has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="26,25,24,24,25"
			y="16,17,17,18,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Mawar has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="25"
				y="19"
			[/source]
			[destination]
				x="26"
				y="18"
			[/destination]
		[/attack]
		[random]
			value="1149743640"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1444973193"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1237568901"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="909463569"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1541005559"
			[results]
				chance="70"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1190439977"
			[results]
				chance="40"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="504251326"
			[results]
				chance="40"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="25,25"
			y="17,18"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="25"
				y="18"
			[/source]
			[destination]
				x="26"
				y="18"
			[/destination]
		[/attack]
		[random]
			value="1900303466"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1946975154"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1409711227"
			[results]
				chance="50"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="207402079"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1243098218"
			[results]
				chance="50"
				damage="10"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="d has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="mysticX_th_unknown has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Pudels_Kern has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="27,27,26"
			y="17,18,18"
		[/move]
	[/command]
	[command]
		[move]
			x="22,21"
			y="19,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Burger has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Turambar has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="11,10,9,8,8,8,7,6"
			y="16,16,17,17,18,19,20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Pharatorn has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Dark_Bowman has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="LunaLoony has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="8,7,6,5,4,3,3"
			y="3,4,3,3,3,4,5"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="1"
			[source]
				x="3"
				y="5"
			[/source]
			[destination]
				x="4"
				y="5"
			[/destination]
		[/attack]
		[random]
			value="1868781236"
			[results]
				chance="30"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1189305466"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="2021928943"
			[results]
				chance="30"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1617904505"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1704244466"
			[results]
				chance="30"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="862638864"
			[results]
				chance="30"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="7,6,5,4,3,2,2,3"
			y="3,3,4,3,4,4,5,6"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="ht has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="3"
				y="6"
			[/source]
			[destination]
				x="4"
				y="5"
			[/destination]
		[/attack]
		[random]
			value="225163806"
			[results]
				chance="30"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="307229560"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="2043865211"
			[results]
				chance="30"
				damage="9"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="116827664"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1786109967"
			[results]
				chance="30"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Redfish has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="10,9,8,7,6,5,4"
			y="4,5,4,4,4,4,4"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="4"
				y="4"
			[/source]
			[destination]
				x="4"
				y="5"
			[/destination]
		[/attack]
		[random]
			value="1137720836"
			[results]
				chance="30"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="628306760"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="784838607"
			[results]
				chance="30"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1246207035"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="396517793"
			[results]
				chance="30"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="10,9,8,7,6,5"
			y="7,7,6,6,5,5"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="5"
				y="5"
			[/source]
			[destination]
				x="4"
				y="5"
			[/destination]
		[/attack]
		[random]
			value="281390912"
			[results]
				chance="30"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1240938846"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1573307886"
			[results]
				chance="30"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="418728693"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="377896858"
			[results]
				chance="30"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1063582030"
			[results]
				chance="30"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="9,8,7,6,5"
			y="7,6,6,6,6"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="5"
				y="6"
			[/source]
			[destination]
				x="4"
				y="5"
			[/destination]
		[/attack]
		[random]
			value="829426900"
			[results]
				chance="30"
				damage="4"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="10,9,8,7,6,5,4"
			y="6,6,5,6,5,6,5"
		[/move]
	[/command]
	[command]
		[move]
			x="11,10,9,8,7,6,5"
			y="6,6,6,5,5,4,4"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Cairath has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="14,13,12,11,10,9"
			y="3,4,3,3,3,3"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="player4 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="zakopunu has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="11,11"
			y="5,4"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="shine_ has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="11,11"
			y="4,3"
		[/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="shine_ has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="17,18,19,20"
			y="19,19,20,20"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="20"
				y="20"
			[/source]
			[destination]
				x="21"
				y="20"
			[/destination]
		[/attack]
		[random]
			value="27271"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="7073"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="25072"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="25914"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="19347"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="11316"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="walard has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="16,17,18,19,20"
			y="19,19,19,20,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="20"
				y="19"
			[/source]
			[destination]
				x="21"
				y="20"
			[/destination]
		[/attack]
		[random]
			value="32221"
			[results]
				chance="50"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="2580"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="12375"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="22332"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="16224"
			[results]
				chance="50"
				damage="5"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[move]
			x="12,11,11,10,9,8,7,6"
			y="15,16,17,17,18,18,19,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="6"
				y="19"
			[/source]
			[destination]
				x="6"
				y="20"
			[/destination]
		[/attack]
		[random]
			value="18743"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="12673"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="24687"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="15157"
			[results]
				chance="60"
				damage="4"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="25674"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="idiota has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="altman has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="stanooo has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[move]
			x="12,11,10,9,8"
			y="17,17,17,17,17"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="9,10,11"
			y="15,15,16"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="6,6,6,7,7,7"
			y="7,8,9,10,11,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="8,8,8,8,9"
			y="9,10,11,12,13"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="7,7,7,7,6,5"
			y="8,9,10,11,11,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="4,3,3,3,3,4"
			y="8,9,10,11,12,12"
		[/move]
	[/command]
	[command]
		sent="yes"
		[move]
			x="6,6,6,6,6"
			y="8,9,10,11,12"
		[/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="yoyobuae has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Isgrimnur has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="sjrs456 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="9,9,9,9,9"
			y="3,4,5,6,7"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="genrand has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Senshi has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Pohoa has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="4,4,4,5,5,5,6,7"
			y="5,6,7,8,9,10,10,11"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="toasty has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="7"
				y="11"
			[/source]
			[destination]
				x="7"
				y="12"
			[/destination]
		[/attack]
		[random]
			value="575011415"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="846128947"
			[results]
				chance="60"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="153070584"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1115296526"
			[results]
				chance="60"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1282807246"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="480860327"
			[results]
				chance="60"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="3,3,3,4,4,5,6,6"
			y="6,7,8,8,9,10,10,11"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="6"
				y="11"
			[/source]
			[destination]
				x="7"
				y="12"
			[/destination]
		[/attack]
		[random]
			value="66438728"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="834452024"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="891106367"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1077106093"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1482768323"
			[results]
				chance="60"
				damage="7"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1086198594"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1868799009"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="5,5,5,5,5,5,5"
			y="5,6,7,8,9,10,11"
		[/move]
	[/command]
	[command]
		[move]
			x="4,4,4,4,4,4,4"
			y="4,5,6,7,8,9,10"
		[/move]
	[/command]
	[command]
		[move]
			x="5,5,5,5,6,7,8"
			y="6,7,8,9,9,10,10"
		[/move]
	[/command]
	[command]
		[move]
			x="5,5,5,5,5,5,5,6"
			y="4,5,6,7,8,9,10,10"
		[/move]
	[/command]
	[command]
		[move]
			x="3,3,4,5,6"
			y="5,6,6,7,7"
		[/move]
	[/command]
	[command]
		[move]
			x="11,12,13"
			y="3,3,4"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Quetzalcoatl has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[recruit]
			value="4"
			x="14"
			y="3"
		[/recruit]
		[random]
			value="1859418158"
		[/random]
		[random]
			value="204485256"
		[/random]
		[random]
			value="14186163"
		[/random]
		[random]
			value="39623782"
		[/random]
		[random]
			value="1545583288"
		[/random]
		[random]
			value="355581224"
		[/random]
		[random]
			value="887281047"
		[/random]
		[random]
			value="1845422994"
		[/random]
		[random]
			value="552801443"
		[/random]
		[random]
			value="1402570750"
		[/random]
		[random]
			value="2118991331"
		[/random]
		[random]
			value="851145348"
		[/random]
		[random]
			value="585916267"
		[/random]
		[random]
			value="774421221"
		[/random]
		[random]
			value="897548059"
			[results]
				checksum="4zf1OSw,C7F>rbJjIs8AZ92.m<KzFBEHnuR73QRpoMa2r4.k-cpOaw87,.Y8Z.5ndaB-kwWvSlbAfbufC3iaj7hobd->Zhenk<>2fa5>ai01-b1+6Z+40CN5c8b.>X,4"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Battlesmile has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="gruu has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="25,24,23,22,21"
			y="19,19,19,18,19"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="21"
				y="19"
			[/source]
			[destination]
				x="20"
				y="19"
			[/destination]
		[/attack]
		[random]
			value="879688809"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="2001989352"
			[results]
				chance="60"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="615628725"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1224947213"
			[results]
				chance="60"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1391068477"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1899651990"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Haldrik_CZ has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="26,25,24,23,22,21,20,19"
			y="17,17,17,18,18,18,18,19"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="19"
				y="19"
			[/source]
			[destination]
				x="20"
				y="19"
			[/destination]
		[/attack]
		[random]
			value="1865722483"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1467936359"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="972924172"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="496426526"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1163921907"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1710238611"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1315627610"
			[results]
				chance="60"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1640633379"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Ghoul has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="26,25,24,23,22,21"
			y="18,19,19,20,20,20"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="21"
				y="20"
			[/source]
			[destination]
				x="20"
				y="19"
			[/destination]
		[/attack]
		[random]
			value="105692187"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1266617987"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1496245094"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="490252197"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="787878518"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="1913220949"
			[results]
				chance="50"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		[move]
			x="25,24,23,22,21,20"
			y="18,18,19,18,18,18"
		[/move]
	[/command]
	[command]
		[attack]
			defender_weapon="0"
			weapon="0"
			[source]
				x="20"
				y="18"
			[/source]
			[destination]
				x="20"
				y="19"
			[/destination]
		[/attack]
		[random]
			value="1556880193"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1520495654"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="36191921"
			[results]
				chance="60"
				damage="8"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="858132659"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="2139031575"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1111184185"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="604473423"
			[results]
				chance="70"
				damage="5"
				dies="no"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Lyco has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Svetozar has logged into the lobby"
		[/speak]
	[/command]
	[command]
		[move]
			x="6,7,8,9,10,11,12,13"
			y="20,21,20,20,20,21,21,22"
		[/move]
	[/command]
	[command]
		[move]
			x="13,12,11,10"
			y="4,4,5,5"
		[/move]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="gonz0 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"
		undo="no"
		[speak]
			id="Gauteamus"
			message="hmm, good game"
			side="2"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Janitor has logged into the lobby"
		[/speak]
	[/command]
	[command]
		undo="no"
		[speak]
			id="KnightKunibert"
			message="are you sure ?"
			side="1"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="20"
				y="19"
			[/source]
			[destination]
				x="21"
				y="20"
			[/destination]
		[/attack]
		[random]
			value="5158"
			[results]
				chance="50"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="25793"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="26225"
			[results]
				chance="50"
				damage="2"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="13452"
			[results]
				chance="70"
				damage="5"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[choose]
			value="1"
		[/choose]
	[/command]
	[command]
		sent="yes"
		[move]
			x="20,20"
			y="20,19"
		[/move]
	[/command]
	[command]
		sent="yes"
		[attack]
			defender_weapon="1"
			weapon="1"
			[source]
				x="20"
				y="19"
			[/source]
			[destination]
				x="20"
				y="18"
			[/destination]
		[/attack]
		[random]
			value="3807"
			[results]
				chance="70"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="10069"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="32624"
			[results]
				chance="70"
				damage="10"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="12929"
			[results]
				chance="60"
				damage="3"
				dies="no"
				hits="yes"
			[/results]
		[/random]
		[random]
			value="19097"
			[results]
				chance="70"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="1364"
			[results]
				chance="60"
				damage="0"
				dies="no"
				hits="no"
			[/results]
		[/random]
		[random]
			value="15728"
			[results]
				chance="70"
				damage="10"
				dies="yes"
				hits="yes"
			[/results]
		[/random]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Papouch1 has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="werul has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		undo="no"
		[speak]
			id="Gauteamus"
			message="yes"
			side="2"
		[/speak]
	[/command]
	[command]
		sent="yes"
		undo="no"
		[speak]
			id="Gauteamus"
			message="I surrender"
			side="2"
		[/speak]
	[/command]
	[command]
		undo="no"
		[speak]
			id="KnightKunibert"
			message="ok gg :-)"
			side="1"
		[/speak]
	[/command]
	[command]
		undo="no"
		[speak]
			id="KnightKunibert"
			message="thx"
			side="1"
		[/speak]
	[/command]
	[command]
		sent="yes"
		undo="no"
		[speak]
			id="Gauteamus"
			message="thanks for the game >/("
			side="2"
		[/speak]
	[/command]
	[command]
		sent="yes"
		undo="no"
		[speak]
			id="Gauteamus"
			message="oh dear"
			side="2"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Shelly has logged into the lobby"
		[/speak]
	[/command]
	[command]
		undo="no"
		[speak]
			id="KnightKunibert"
			message="don't worry ... :-)"
			side="1"
		[/speak]
	[/command]
	[command]
		sent="yes"
		undo="no"
		[speak]
			id="Gauteamus"
			message="hehe, that was meant to be a smiley"
			side="2"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="locastor has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Saidin has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="brulemeilleur has logged into the lobby"
		[/speak]
	[/command]
	[command]
		undo="no"
		[speak]
			id="KnightKunibert"
			message="cua :-)"
			side="1"
		[/speak]
	[/command]
	[command]
		sent="yes"
		[speak]
			id="server"
			message="Siegthesen has logged into the lobby"
		[/speak]
	[/command]
	[command]
		sent="yes"
		undo="no"
		[speak]
			id="Gauteamus"
			message="I have a norwegian keyboard on american settings"
			side="2"
		[/speak]
	[/command]
	[command]
		sent="yes"
		undo="no"
		[speak]
			id="Gauteamus"
			message="cu"
			side="2"
		[/speak]
	[/command]
[/replay]
[snapshot]
	campaign_type="multiplayer"
	completion="running"
	current_tod="3"
#textdomain wesnoth-multiplayer
	description=_ "This vital supply route has played a key role in many of Wesnoth's greatest battles."
	difficulty="NORMAL"
	end_text_duration="0"
	experience_modifier="70"
	hash="ni><w8>Ksy9E6lpej<-R7zqNgF0HH1GU14mLcPs+Y0>x<lui3JMr96tqaCJ+gLs7vdDsR,OV+p41UARdwDMp8w8hABAeHRqXh0zHL5LEGp<BJU2ovj4yzohfX.yffdE0"
	id="multiplayer_Weldyn_Channel"
	label="2p - Weldyn Channel"
	map_data="border_size=1
usage=map

Ss          , Hh          , Rp          , Ss          , Gs^Fp       , Hh          , Rp          , Rp          , Hh          , Ss          , Ss          , Gg          , Hh          , Hh          , Gs^Fms      , Ss          , Gg          , Hh          , Ww          , Ww          , Wo          , Wo          , Ww          , Wwf         , Hh          , Hh          , Hh          , Hh          , Ss          , Hh          , Hh          
Gg          , Gg^Fet      , Rp          , Mm          , Gs^Fp       , Ss          , Rp          , Gs^Fp       , Gg^Fet      , Gs^Fms      , Mm          , Gs^Fp       , Gg          , Gs^Fds      , Hh          , Gs^Fp       , Hh          , Gg          , Ww          , Wo          , Wo          , Ww          , Gs^Fp       , Gg^Fet      , Gs^Fms      , Mm          , Ss          , Mm          , Hh          , Gs^Fp       , Ss          
Gg          , Gg          , Gg          , Rp          , Rp          , Rp          , Gg          , Gg^Ve       , Gg          , Hh          , Gg          , Gg          , Re          , Gg          , Re          , Ch          , Mm          , Ww          , Wo          , Wo          , Ww          , Ww          , Mm          , Ss          , Ss^Vhs      , Hh          , Gs^Fp       , Hh          , Gs^Fms      , Gg^Fet      , Gg          
Gs^Fms      , Gg          , Gg          , Gg          , Rp          , Gg          , Gg          , Gg          , Re          , Mm          , Re          , Re          , Re          , Re          , Ch          , 1 Kh        , Ch          , Ww          , Ww          , Ww          , Gs^Fp       , Hh          , Hh          , Gs^Fp       , Gg          , Gg          , Gg          , Gg          , Gg          , Hh          , Gg          
Hh          , Gs^Fp       , Rp          , Rp          , Re^Uf       , Gs^Fds      , Re          , Re          , Gg          , Re          , Gg          , Gg          , Gg          , Kh          , Gg          , Ch          , Wwf         , Kh          , Ww^Bw\      , Gg          , Gg          , Gg          , Gg          , Gg          , Re          , Re^Uf       , Mm          , Gg          , Gg          , Gg          , Gg          
Hh          , Hh          , Rp          , Mm          , Gs^Fp       , Re          , Re          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Ww          , Ww          , Wwf         , Gg          , Gg          , Gg          , Gg          , Gg^Vh       , Gg          , Re          , Ss          , Hh          , Gs^Fp       , Re          , Gg          , Gg          
Gs^Fp       , Rp          , Mm          , Hh          , Re          , Re          , Gg          , Gg          , Gg          , Gg          , Gg^Uf       , Hh          , Hh          , Gg^Ve       , Ww          , Ww          , Ww          , Gg          , Ss          , Gs^Fp       , Gg          , Gg          , Gg          , Gg          , Gg          , Re          , Re          , Re^Uf       , Re          , Gg          , Gg          
Rp          , Rp          , Re          , Re          , Gg          , Gg          , Gg^Vh       , Gg          , Gg          , Gs^Fds      , Hh          , Mm          , Gg          , Gs^Fp       , Ww          , Wo          , Ww          , Gg          , Gs^Fp       , Ss^Vhs      , Ww          , Mm          , Hh          , Gg          , Gg^Ve       , Gs^Fms      , Gg          , Re          , Gg          , Gg          , Gg          
Gs^Fp       , Re          , Re          , Gg          , Gs^Fp       , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Ww          , Ww          , Wo          , Wo          , Wo          , Ww          , Ww          , Ww          , Ww          , Wwf         , Rp          , Gg          , Gg          , Gg          , Gg          , Gg          , Mm          , Gg^Uf       , Hh          
Gg          , Re          , Re          , Hh          , Ss          , Ggf^Uf      , Gg          , Gg          , Gs^Fms      , Ggf         , Gg          , Gg          , Ww          , Ww          , Wo          , Wo          , Mm^Xm       , Wo          , Wo          , Wo          , Ww          , Wwf         , Wwf         , Rp          , Rp          , Gg          , Gs^Fp       , Hh          , Gg^Fet      , Hh          , Gg          
Wwf         , Gg          , Gg          , Gs^Fms      , Mm          , Hh          , Hh          , Gg          , Gg          , Mm          , Hh          , Ww          , Ww          , Wo          , Wo          , Hh          , Mm^Xm       , Wo          , Wo          , Wo          , Ww          , Gs^Fp       , Rp          , Wwf         , Wwf         , Gg          , Rp          , Rp          , Rp          , Gg          , Gg          
Rp          , Wwf         , Wwf         , Gg          , Wwf         , Wwf         , Wwf         , Rp          , Gg          , Hh          , Ww          , Ww          , Wo          , Ww          , Wwr         , Mm^Xm       , Wwr         , Wo          , Wo          , Ww          , Ww          , Gg          , Gg          , Rp          , Wwf         , Rp          , Wwf         , Wwf         , Wwf         , Rp          , Rp          
Gg          , Rp          , Rp          , Wwf         , Rp          , Rp          , Wwf         , Rp          , Rp          , Gg          , Ww          , Ww          , Wo          , Wo          , Mm^Xm       , Mm^Xm       , Wo          , Ww          , Ww          , Ww          , Hh          , Hh          , Gg          , Rp          , Hh          , Wwf         , Mm          , Gg          , Gg          , Wwf         , Wwf         
Gs^Fds      , Gg          , Gg^Fet      , Rp          , Gs^Fms      , Gg          , Rp          , Wwf         , Wwf         , Gs^Fp       , Ww          , Wo          , Wo          , Wo          , Mm^Xm       , Hh          , Wo          , Wo          , Ww          , Ww          , Gg          , Mm          , Gs^Fms      , Gg          , Gg          , Hh          , Ss          , Gs^Fp       , Re          , Gg          , Gg          
Hh          , Hh          , Mm          , Hh          , Gg          , Gg          , Gg          , Rp          , Rp          , Wwf         , Ww          , Wo          , Ww          , Wo          , Wo          , Wo          , Wo          , Ww          , Ww          , Gg          , Gg          , Ggf         , Gg          , Gg          , Gg          , Ggf^Uf      , Gg^Fet      , Hh          , Re          , Re          , Gs^Fp       
Gs^Fds      , Ggf^Uf      , Gg          , Gg          , Gg          , Gg          , Gg^Ve       , Gg          , Hh          , Wwf         , Ww          , Ww          , Gs^Fp       , Ww          , Ww          , Wo          , Ww          , Ww          , Gg          , Gg          , Hh          , Gg          , Gg          , Gg          , Gg^Vh       , Gg          , Gg          , Gg          , Re          , Re          , Rp          
Gg          , Gg          , Re          , Re          , Re          , Gs^Fms      , Gg          , Gg          , Gg          , Mm          , Gg          , Ss^Vhs      , Ss          , Gg          , Ww          , Wo          , Ww          , Gs^Fp       , Hh          , Mm          , Ggf^Uf      , Gs^Fp       , Gg          , Gg          , Gg          , Gg          , Re          , Re          , Mm          , Rp          , Gs^Fp       
Gg          , Gg          , Re          , Re^Uf       , Hh          , Re          , Re          , Gg          , Gg^Vh       , Gg          , Gg          , Gs^Fp       , Gg          , Gg          , Ww          , Ww          , Gg          , Gg^Ve       , Gg          , Hh          , Gg          , Gg          , Gg          , Gg          , Ggf         , Re          , Gs^Fds      , Hh          , Rp          , Rp          , Hh          
Gg          , Gg          , Gg          , Gs^Fp       , Mm          , Ss          , Re          , Gg          , Gg          , Gg          , Gg          , Gg          , Ww^Bw\      , Wwf         , Wwf         , Ww          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Re          , Re          , Re^Uf       , Mm          , Rp          , Hh          , Hh          
Gg          , Gg          , Gg          , Gg          , Gg          , Re^Uf       , Gg          , Gg          , Hh          , Gg          , Gs^Fp       , Gg          , Ww          , Kh          , Ch          , Ch          , Ch          , Kh          , Gg          , Gg          , Re          , Re          , Re          , Re          , Gg          , Gs^Fp       , Rp          , Rp          , Gg          , Gs^Fms      , Gg          
Gs^Fds      , Gg          , Gs^Fp       , Gg          , Gs^Fp       , Gg          , Ss^Vhs      , Gs^Fp       , Mm          , Hh          , Ww          , Ww          , Wo          , Ww          , Mm          , 2 Kh        , Re          , Re          , Re          , Re          , Gg          , Gg^Ve       , Gg          , Gg          , Gg          , Gg          , Rp          , Gg          , Gg          , Gg          , Gg          
Ss          , Gg^Fet      , Ss          , Hh          , Mm          , Hh          , Gs^Fms      , Ss          , Gs^Fp       , Ww          , Wo          , Wo          , Ww          , Ww          , Hh          , Ch          , Gs^Fds      , Gg          , Gs^Fms      , Mm          , Gg^Fet      , Hh          , Mm          , Hh          , Rp          , Rp          , Gs^Fp       , Rp          , Rp          , Gg          , Gg          
Hh          , Hh          , Gs^Fms      , Gs^Fp       , Hh          , Ss          , Mm          , Gg^Fet      , Ww          , Ww          , Wo          , Wo          , Ww          , Hh          , Gs^Fp       , Gg^Fet      , Gs^Fms      , Hh          , Mm          , Hh          , Gs^Fp       , Ss          , Hh          , Gs^Fp       , Rp          , Ss          , Ss          , Hh          , Mm          , Rp          , Gg          
Hh          , Gs^Fms      , Hh          , Ss          , Hh          , Hh          , Wwf         , Ww          , Wo          , Wo          , Ww          , Ww          , Hh          , Gg          , Hh          , Hh          , Ss          , Hh          , Hh          , Gs^Fms      , Ss          , Hh          , Rp          , Rp          , Gg          , Hh          , Hh          , Gs^Fp       , Ss          , Rp          , Hh          
"
	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 - Weldyn Channel"
	next_underlying_unit_id="34"
#textdomain wesnoth
	objectives=_ "Victory:
@Defeat enemy leader(s)"
	observer="yes"
	playing_team="1"
	random_calls="0"
	random_seed="1777746388"
	random_start_time="no"
	snapshot="yes"
	turn_at="16"
	turns="-1"
	unit_wml_ids="Drake Clasher,Drake Fighter,Drake Gladiator,Drake Glider,Elvish Archer,Elvish Fighter,Elvish Marksman,Elvish Scout,Elvish Shaman,Merman Hunter,Saurian Augur,Saurian Skirmisher,Saurian Soothsayer,era_events"
	version="1.6"
	[side]
		action_bonus_count="0"
		aggression="0.5"
		allow_player="yes"
		caution="0.25"
		colour="1"
		controller="human"
		countdown_time="270000"
		current_player="KnightKunibert"
		disallow_observers="no"
		fog="yes"
		global_recruitment_pattern="fighter,fighter,archer,healer,scout,scout"
		gold="14"
		hidden="no"
		id="KnightKunibert1"
		income="0"
		leader_value="3"
		name="KnightKunibert"
		no_leader="yes"
		number_of_possible_recruits_to_force_recruit="3.1"
		objectives=_ "Victory:
@Defeat enemy leader(s)"
		objectives_changed="no"
		recruit="Drake Burner,Drake Clasher,Drake Fighter,Drake Glider,Saurian Augur,Saurian Skirmisher"
		recruitment_pattern="fighter,fighter,archer,healer,scout,scout"
		save_id="KnightKunibert1"
		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,archer,healer,scout,scout"
			villages_per_scout="8"
			[team_formula]
				rulebase="fai 'recruitment.fai'
		# ===== Some general functions used later ==== #

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

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

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

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

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

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

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

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

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

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

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

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

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

#returns average defense of the unit #

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

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

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

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


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


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

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

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

# ==2== based on village possession #

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

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

# multipled by 1000 to increase precision #

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

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

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

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

#==1==  basic evaluation #

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

faiend
"
			[/team_formula]
		[/ai]
		[ai]
			villages_per_scout="8"
		[/ai]
		[village]
			x="6"
			y="7"
		[/village]
		[village]
			x="6"
			y="20"
		[/village]
		[village]
			x="7"
			y="2"
		[/village]
		[village]
			x="13"
			y="6"
		[/village]
		[village]
			x="19"
			y="7"
		[/village]
		[village]
			x="21"
			y="20"
		[/village]
		[village]
			x="22"
			y="5"
		[/village]
		[village]
			x="24"
			y="2"
		[/village]
		[village]
			x="24"
			y="7"
		[/village]
		[village]
			x="24"
			y="15"
		[/village]
		[unit]
			advances_to="Drake Enforcer"
			alignment="lawful"
			allow_changes="yes"
			allow_player="yes"
			alpha="256"
			attacks_left="1"
			canrecruit="yes"
			colour="1"
			controller="human"
			cost="31"
			current_player="KnightKunibert"
			die_sound="drake-die.ogg"
			experience="0"
			facing="sw"
			flying="no"
			fog="yes"
			gender="male"
			gold="100"
			goto_x="-999"
			goto_y="-999"
			hitpoints="66"
			id="KnightKunibert1"
			image="units/drakes/gladiator.png"
			income="0"
#textdomain wesnoth-units
			language_name=_ "Drake Gladiator"
			leader="Drake Flare,Fire Drake,Drake Slasher,Drake Gladiator,Drake Warrior,Saurian Oracle,Saurian Soothsayer"
			level="2"
			max_attacks="1"
			max_experience="67"
			max_hitpoints="66"
			max_moves="5"
			movement="5"
			movement_type="drakefoot"
			moves="0"
			mp_countdown="yes"
			mp_countdown_action_bonus="20"
			mp_countdown_init_time="270"
			mp_countdown_reservoir_time="270"
			mp_countdown_turn_bonus="200"
			name="KnightKunibert"
			profile="portraits/drakes/clasher.png"
			race="drake"
			random_leader="Drake Flare,Fire Drake,Drake Slasher,Drake Gladiator,Drake Warrior"
			random_traits="no"
			recruit="Drake Burner,Drake Clasher,Drake Glider,Drake Fighter,Saurian Skirmisher,Saurian Augur"
			resting="no"
			save_id="KnightKunibert1"
			share_maps="no"
			share_view="yes"
			shroud="no"
			side="1"
			team_name="north"
			terrain_liked="Hh, Ha, Ds, Ss"
			type="Drake Gladiator"
			undead_variation="drake"
			underlying_id="1"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			user_team_name="wesnoth-multiplayerteamname^North"
			village_gold="2"
			x="10"
			y="5"
			zoc="yes"
			[defense]
				castle="60"
				cave="70"
				deep_water="90"
				flat="70"
				forest="60"
				frozen="80"
				fungus="60"
				hills="60"
				impassable="70"
				mountains="60"
				reef="70"
				sand="60"
				shallow_water="80"
				swamp_water="80"
				unwalkable="80"
				village="60"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="3"
				fungus="2"
				hills="1"
				impassable="99"
				mountains="1"
				reef="2"
				sand="1"
				shallow_water="3"
				swamp_water="3"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="130"
				blade="80"
				cold="150"
				fire="50"
				impact="70"
				pierce="100"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="8"
				description=_ "sword"
				icon="attacks/scimitar.png"
				name="sword"
				number="4"
				range="melee"
				type="blade"
			[/attack]
			[attack]
				damage="6"
				description=_ "spear"
				icon="attacks/spear.png"
				name="spear"
				number="5"
				range="melee"
				type="pierce"
			[/attack]
			[attack]
				damage="10"
				description=_ "mace"
				icon="attacks/mace.png"
				name="mace"
				number="3"
				range="melee"
				type="impact"
			[/attack]
			[modifications]
			[/modifications]
		[/unit]
		[unit]
			alignment="chaotic"
			alpha="256"
			attacks_left="0"
			cost="27"
			die_sound="hiss-die.wav"
			ellipse="misc/ellipse"
			experience="5"
			facing="nw"
			flag_rgb="magenta"
			flies="false"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="30"
			id="Saurian Augur-5"
			image="units/saurians/soothsayer.png"
			language_name=_ "Saurian Soothsayer"
			level="2"
			max_attacks="1"
			max_experience="84"
			max_hitpoints="30"
			max_moves="6"
			movement="6"
			movement_type="lizard"
			moves="0"
			name="Arix"
			profile="portraits/saurians/augur.png"
			race="lizard"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="1"
			type="Saurian Soothsayer"
			undead_variation="saurian"
			underlying_id="5"
			unrenamable="no"
			upkeep="full"
			usage="healer"
			x="21"
			y="20"
			zoc="yes"
			[portrait]
				image="portraits/saurians/transparent/augur.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/saurians/transparent/augur.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="40"
				cave="40"
				deep_water="80"
				flat="60"
				forest="40"
				frozen="70"
				fungus="40"
				hills="40"
				impassable="40"
				mountains="40"
				reef="60"
				sand="40"
				shallow_water="60"
				swamp_water="40"
				unwalkable="80"
				village="50"
			[/defense]
			[movement_costs]
				castle="1"
				cave="1"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="4"
				fungus="1"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="1"
				shallow_water="3"
				swamp_water="1"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="80"
				blade="110"
				cold="120"
				fire="120"
				impact="110"
				pierce="80"
			[/resistance]
			[abilities]
				[heals]
					affect_allies="yes"
					affect_self="no"
#textdomain wesnoth
					description=_ "Cures:
A curer can cure a unit of poison, although that unit will receive no additional healing on the turn it is cured of the poison."
					female_name=_ "female^cures"
					id="curing"
					name=_ "cures"
					poison="cured"
					[affect_adjacent]
						adjacent="n,ne,se,s,sw,nw"
					[/affect_adjacent]
				[/heals]
				[heals]
					affect_allies="yes"
					affect_self="no"
					description=_ "Heals +8:
This unit combines herbal remedies with magic to heal units more quickly than is normally possible on the battlefield.

A unit cared for by this healer may heal up to 8 HP per turn, or stop poison from taking effect for that turn.
A poisoned unit cannot be cured of its poison by a healer, and must seek the care of a village or a unit that can cure."
					female_name=_ "female^heals +8"
					id="healing"
					name=_ "heals +8"
					poison="slowed"
					value="8"
					[affect_adjacent]
						adjacent="n,ne,se,s,sw,nw"
					[/affect_adjacent]
				[/heals]
			[/abilities]
			[advancement]
				description=_ "Max HP bonus +3, Max XP +20%"
				id="amla_default"
				image="misc/icon-amla-tough.png"
				max_times="100"
				strict_amla="yes"
				[effect]
					apply_to="hitpoints"
					heal_full="yes"
					increase_total="3"
				[/effect]
				[effect]
					apply_to="max_experience"
					increase="20%"
				[/effect]
				[effect]
					apply_to="status"
					remove="poisoned"
				[/effect]
				[effect]
					apply_to="status"
					remove="slowed"
				[/effect]
			[/advancement]
			[attack_anim]
				start_time="-300"
				[filter_attack]
					name="curse"
				[/filter_attack]
				[if]
					hits="yes"
					[missile_frame]
						begin="-200"
						end="0"
						image="projectiles/whitemissile-n.png"
						image_diagonal="projectiles/whitemissile-ne.png"
						offset="0.0~0.8"
					[/missile_frame]
					[missile_frame]
						begin="0"
						end="50"
						halo="projectiles/whitemissile-impact-1.png"
						offset="0.8"
					[/missile_frame]
					[missile_frame]
						begin="50"
						end="100"
						halo="projectiles/whitemissile-impact-2.png"
						offset="0.92"
					[/missile_frame]
					[missile_frame]
						begin="100"
						end="150"
						halo="projectiles/whitemissile-impact-3.png"
						offset="0.94"
					[/missile_frame]
					[missile_frame]
						begin="150"
						end="200"
						halo="projectiles/whitemissile-impact-4.png"
						offset="0.96"
					[/missile_frame]
					[missile_frame]
						begin="200"
						end="250"
						halo="projectiles/whitemissile-impact-5.png"
						offset="0.98"
					[/missile_frame]
					[missile_frame]
						begin="250"
						end="300"
						halo="projectiles/whitemissile-impact-6.png"
						offset="1.0"
					[/missile_frame]
					[missile_frame]
						begin="300"
						end="350"
						halo="projectiles/whitemissile-impact-7.png"
						offset="1.02"
					[/missile_frame]
					[missile_frame]
						begin="350"
						end="400"
						halo="projectiles/whitemissile-impact-8.png"
						offset="1.04"
					[/missile_frame]
				[/if]
				[else]
					hits="no"
					[missile_frame]
						alpha=".8~0.0:200"
						begin="-200"
						end="0"
						image="projectiles/whitemissile-n.png"
						image_diagonal="projectiles/whitemissile-ne.png"
						offset="0.0~0.8"
					[/missile_frame]
				[/else]
				[frame]
					duration="50"
					halo="halo/saurian-magic-halo-1.png"
					image="units/saurians/soothsayer-magic-1.png"
				[/frame]
				[frame]
					duration="60"
					halo="halo/saurian-magic-halo-2.png"
					image="units/saurians/soothsayer-magic-1.png"
					sound="magicmissile.wav"
				[/frame]
				[frame]
					duration="70"
					halo="halo/saurian-magic-halo-3.png"
					image="units/saurians/soothsayer-magic-2.png"
				[/frame]
				[frame]
					duration="80"
					halo="halo/saurian-magic-halo-4.png"
					image="units/saurians/soothsayer-magic-2.png"
				[/frame]
				[frame]
					duration="90"
					halo="halo/saurian-magic-halo-5.png"
					image="units/saurians/soothsayer-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-6.png"
					image="units/saurians/soothsayer-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-7.png"
					image="units/saurians/soothsayer.png"
				[/frame]
			[/attack_anim]
			[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="staff"
				[/filter_attack]
				[frame]
					duration="150"
					image="units/saurians/soothsayer-melee-1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						duration="100"
						image="units/saurians/soothsayer-melee-2.png"
						sound="staff.wav"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						duration="100"
						image="units/saurians/soothsayer-melee-2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					duration="100"
					image="units/saurians/soothsayer-melee-3.png"
				[/frame]
				[frame]
					duration="90"
					image="units/saurians/soothsayer-melee-4.png"
				[/frame]
				[frame]
					duration="80"
					image="units/saurians/soothsayer-melee-5.png"
				[/frame]
				[frame]
					duration="50"
					image="units/saurians/soothsayer-defend-1.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/saurians/soothsayer-defend-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/saurians/soothsayer-defend-2.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/saurians/soothsayer-defend-2.png"
						sound="hiss-hit.wav"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/saurians/soothsayer-defend-2.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/saurians/soothsayer-defend-1.png"
				[/frame]
			[/defend]
			[healing_anim]
				start_time="-300"
				[frame]
					duration="50"
					halo="halo/saurian-magic-halo-1.png"
					image="units/saurians/soothsayer-magic-1.png"
				[/frame]
				[frame]
					duration="60"
					halo="halo/saurian-magic-halo-2.png"
					image="units/saurians/soothsayer-magic-1.png"
				[/frame]
				[frame]
					duration="70"
					halo="halo/saurian-magic-halo-3.png"
					image="units/saurians/soothsayer-magic-2.png"
				[/frame]
				[frame]
					duration="80"
					halo="halo/saurian-magic-halo-4.png"
					image="units/saurians/soothsayer-magic-2.png"
				[/frame]
				[frame]
					duration="90"
					halo="halo/saurian-magic-halo-5.png"
					image="units/saurians/soothsayer-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-6.png"
					image="units/saurians/soothsayer-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-7.png"
					image="units/saurians/soothsayer.png"
				[/frame]
			[/healing_anim]
			[variables]
			[/variables]
			[status]
			[/status]
			[attack]
				damage="6"
#textdomain wesnoth-units
				description=_ "staff"
				icon="attacks/staff-magic.png"
				name="staff"
				number="2"
				range="melee"
				type="impact"
			[/attack]
			[attack]
				damage="6"
				description=_ "curse"
				icon="attacks/curse.png"
				name="curse"
				number="3"
				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]
			[modifications]
				[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]
				[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="Drake Gladiator,Drake Slasher"
			alignment="lawful"
			alpha="256"
			attacks_left="1"
			cost="19"
			die_sound="drake-die.ogg"
			ellipse="misc/ellipse"
			experience="1"
			facing="se"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="41"
			id="Drake Clasher-6"
			image="units/drakes/clasher.png"
#textdomain wesnoth-units
			language_name=_ "Drake Clasher"
			level="1"
			max_attacks="1"
			max_experience="25"
			max_hitpoints="41"
			max_moves="6"
			movement="5"
			movement_type="drakefoot"
			moves="0"
			name="Resharli"
			profile="portraits/drakes/clasher.png"
			race="drake"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="1"
			type="Drake Clasher"
			undead_variation="drake"
			underlying_id="6"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			x="6"
			y="7"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="spear"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-100"
					image="units/drakes/clasher-flying.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="75"
						image="units/drakes/clasher-attack-spear.png"
						sound="spear.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="75"
						image="units/drakes/clasher-attack-spear.png"
						sound="spear-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="75"
					end="175"
					image="units/drakes/clasher-flying.png"
				[/frame]
				[frame]
					begin="175"
					end="200"
					image="units/drakes/clasher.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="sword"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-100"
					image="units/drakes/clasher-flying.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="75"
						image="units/drakes/clasher-attack-sword.png"
						sound="sword-1.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="75"
						image="units/drakes/clasher-attack-sword.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					begin="75"
					end="175"
					image="units/drakes/clasher-flying.png"
				[/frame]
				[frame]
					begin="175"
					end="200"
					image="units/drakes/clasher.png"
				[/frame]
			[/attack_anim]
			[death]
				[frame]
					begin="0"
					end="130"
					image="units/drakes/clasher-die-1.png"
				[/frame]
				[frame]
					begin="130"
					end="320"
					image="units/drakes/clasher-die-2.png"
				[/frame]
				[frame]
					begin="320"
					end="450"
					image="units/drakes/clasher-die-3.png"
				[/frame]
				[frame]
					begin="450"
					end="600"
					image="units/drakes/clasher-die-4.png"
				[/frame]
				[frame]
					begin="600"
					end="750"
					image="units/drakes/clasher-die-5.png"
				[/frame]
				[frame]
					begin="750"
					end="900"
					image="units/drakes/clasher-die-6.png"
				[/frame]
				[frame]
					begin="900"
					end="1050"
					image="units/drakes/clasher-die-7.png"
				[/frame]
				[frame]
					begin="1050"
					end="1200"
					image="units/drakes/clasher-die-8.png"
				[/frame]
				[frame]
					begin="1200"
					end="1350"
					image="units/drakes/clasher-die-9.png"
				[/frame]
				[frame]
					begin="1350"
					end="1500"
					image="units/drakes/clasher-die-10.png"
				[/frame]
			[/death]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/drakes/clasher.png"
				[/frame]
				[frame]
					duration="100"
					image="units/drakes/clasher-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/drakes/clasher-defend.png"
						sound="drake-hit-1.ogg,drake-hit-2.ogg,drake-hit-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/drakes/clasher-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/drakes/clasher.png"
				[/frame]
			[/defend]
			[defense]
				castle="60"
				cave="70"
				deep_water="90"
				flat="70"
				forest="60"
				frozen="80"
				fungus="60"
				hills="60"
				impassable="70"
				mountains="60"
				reef="70"
				sand="60"
				shallow_water="80"
				swamp_water="80"
				unwalkable="80"
				village="60"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="3"
				fungus="2"
				hills="1"
				impassable="99"
				mountains="1"
				reef="2"
				sand="1"
				shallow_water="3"
				swamp_water="3"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="130"
				blade="80"
				cold="150"
				fire="50"
				impact="70"
				pierce="100"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="5"
				description=_ "sword"
				icon="attacks/scimitar.png"
				name="sword"
				number="4"
				range="melee"
				type="blade"
			[/attack]
			[attack]
				damage="6"
				description=_ "spear"
				icon="attacks/spear.png"
				name="spear"
				number="4"
				range="melee"
				type="pierce"
				[specials]
					[firststrike]
#textdomain wesnoth
						description=_ "First Strike:
This unit always strikes first with this attack, even if they are defending."
						id="firststrike"
						name=_ "firststrike"
					[/firststrike]
				[/specials]
			[/attack]
			[modifications]
				[trait]
					female_name=_ "female^intelligent"
					id="intelligent"
					male_name=_ "intelligent"
					name=_ "intelligent"
					[effect]
						apply_to="max_experience"
						increase="-20%"
					[/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="Saurian Ambusher"
			alignment="chaotic"
			alpha="256"
			attacks_left="0"
			cost="15"
			die_sound="hiss-die.wav"
			ellipse="misc/ellipse"
			experience="5"
			facing="se"
			flag_rgb="magenta"
			flies="false"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="11"
			id="Saurian Skirmisher-7"
			image="units/saurians/skirmisher.png"
#textdomain wesnoth-units
			language_name=_ "Saurian Skirmisher"
			level="1"
			max_attacks="1"
			max_experience="22"
			max_hitpoints="26"
			max_moves="7"
			movement="6"
			movement_type="lizard"
			moves="0"
			name="Jizlezisex"
			profile="portraits/saurians/skirmisher.png"
			race="lizard"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="1"
			type="Saurian Skirmisher"
			undead_variation="saurian"
			underlying_id="7"
			unrenamable="no"
			upkeep="full"
			usage="scout"
			x="19"
			y="19"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="spear"
					range="ranged"
				[/filter_attack]
				[missile_frame]
					begin="-150"
					end="0"
					image="projectiles/spear-n.png"
					image_diagonal="projectiles/spear-ne.png"
				[/missile_frame]
				[frame]
					begin="-200"
					end="-100"
					image="units/saurians/skirmisher-attack-ranged-1.png"
					sound="throw-1.wav,throw-2.wav,throw-3.wav,throw-4.wav"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="50"
						image="units/saurians/skirmisher-attack-ranged-2.png"
						sound="spear.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="50"
						image="units/saurians/skirmisher-attack-ranged-2.png"
					[/frame]
				[/else]
			[/attack_anim]
			[attack_anim]
				direction="ne,nw,s,se,sw"
				[filter_attack]
					name="spear"
					range="melee"
				[/filter_attack]
				[frame]
					begin="-150"
					end="-100"
					image="units/saurians/skirmisher-attack1.png"
				[/frame]
				[if]
					hits="no"
					[frame]
						begin="-100"
						end="50"
						image="units/saurians/skirmisher-attack2.png"
						sound="spear-miss.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-100"
						end="50"
						image="units/saurians/skirmisher-attack2.png"
						sound="spear.ogg"
					[/frame]
				[/else]
				[frame]
					begin="50"
					end="150"
					image="units/saurians/skirmisher-defend.png"
				[/frame]
				[frame]
					begin="150"
					end="200"
					image="units/saurians/skirmisher.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				direction="n"
				[filter_attack]
					name="spear"
					range="melee"
				[/filter_attack]
				[frame]
					begin="-150"
					end="-100"
					image="units/saurians/skirmisher-attack-n1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="90"
						image="units/saurians/skirmisher-attack-n2.png"
						sound="spear.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="90"
						image="units/saurians/skirmisher-attack-n2.png"
						sound="spear-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="90"
					end="150"
					image="units/saurians/skirmisher-attack1.png"
				[/frame]
				[frame]
					begin="150"
					end="200"
					image="units/saurians/skirmisher.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/saurians/skirmisher.png"
				[/frame]
				[frame]
					duration="100"
					image="units/saurians/skirmisher-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/saurians/skirmisher-defend.png"
						sound="hiss-hit.wav"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/saurians/skirmisher-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/saurians/skirmisher.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]
				[filter]
					[filter_location]
						[not]
							terrain="C*,K*,*^V*"
						[/not]
					[/filter_location]
				[/filter]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-1.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-2.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-3.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-4.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-5.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-6.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-7.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-6.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-5.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-6.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-8.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-9.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-10.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-11.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-12.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-13.png"
				[/frame]
				[frame]
					duration="225"
					image="units/saurians/skirmisher-idle-12.png"
				[/frame]
				[frame]
					duration="225"
					image="units/saurians/skirmisher-idle-13.png"
				[/frame]
				[frame]
					duration="250"
					image="units/saurians/skirmisher-idle-12.png"
				[/frame]
				[frame]
					duration="250"
					image="units/saurians/skirmisher-idle-13.png"
				[/frame]
			[/idle_anim]
			[portrait]
				image="portraits/saurians/transparent/skirmisher.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/saurians/transparent/skirmisher.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="40"
				cave="40"
				deep_water="80"
				flat="60"
				forest="40"
				frozen="70"
				fungus="40"
				hills="40"
				impassable="40"
				mountains="40"
				reef="60"
				sand="40"
				shallow_water="60"
				swamp_water="40"
				unwalkable="80"
				village="50"
			[/defense]
			[movement_costs]
				castle="1"
				cave="1"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="4"
				fungus="1"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="1"
				shallow_water="3"
				swamp_water="1"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="80"
				blade="110"
				cold="120"
				fire="120"
				impact="110"
				pierce="80"
			[/resistance]
			[abilities]
				[skirmisher]
					affect_self="yes"
#textdomain wesnoth
					description=_ "Skirmisher:
This unit is skilled in moving past enemies quickly, and ignores all enemy Zones of Control."
					female_name=_ "female^skirmisher"
					id="skirmisher"
					name=_ "skirmisher"
				[/skirmisher]
			[/abilities]
			[variables]
			[/variables]
			[status]
			[/status]
			[attack]
				damage="5"
#textdomain wesnoth-units
				description=_ "spear"
				icon="attacks/spear.png"
				name="spear"
				number="4"
				range="melee"
				type="pierce"
			[/attack]
			[attack]
				damage="4"
				description=_ "spear"
				icon="attacks/spear.png"
				name="spear"
				number="2"
				range="ranged"
				type="pierce"
			[/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="Sky Drake"
			alignment="lawful"
			alpha="256"
			attacks_left="1"
			cost="16"
			die_sound="drake-die.ogg"
			ellipse="misc/ellipse"
			experience="2"
			facing="se"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="32"
			id="Drake Glider-17"
			image="units/drakes/glider.png"
#textdomain wesnoth-units
			language_name=_ "Drake Glider"
			level="1"
			max_attacks="1"
			max_experience="20"
			max_hitpoints="37"
			max_moves="8"
			movement="8"
			movement_type="drakefly"
			moves="0"
			name="Marravlan"
			profile="portraits/drakes/glider.png"
			race="drake"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="1"
			type="Drake Glider"
			undead_variation="drake"
			underlying_id="17"
			unrenamable="no"
			upkeep="full"
			usage="scout"
			x="13"
			y="22"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="fire breath"
				[/filter_attack]
				[if]
					direction="n"
					[missile_frame]
						begin="-400"
						end="100"
						halo="projectiles/fire-breath-n-1.png:80,projectiles/fire-breath-n-2.png:80,projectiles/fire-breath-n-3.png:80,projectiles/fire-breath-n-4.png:80,projectiles/fire-breath-n-5.png:80"
						halo_x="9"
						halo_y="-34"
					[/missile_frame]
				[/if]
				[else]
					direction="s"
					[missile_frame]
						begin="-400"
						end="100"
						halo="projectiles/fire-breath-s-1.png:80,projectiles/fire-breath-s-2.png:80,projectiles/fire-breath-s-3.png:80,projectiles/fire-breath-s-4.png:80,projectiles/fire-breath-s-5.png:80"
						halo_x="9"
						halo_y="15"
					[/missile_frame]
				[/else]
				[else]
					direction="ne,nw"
					[missile_frame]
						begin="-400"
						end="100"
						halo="projectiles/fire-breath-ne-1.png:80,projectiles/fire-breath-ne-2.png:80,projectiles/fire-breath-ne-3.png:80,projectiles/fire-breath-ne-4.png:80,projectiles/fire-breath-ne-5.png:80"
						halo_x="22"
						halo_y="-22"
					[/missile_frame]
				[/else]
				[else]
					direction="se,sw"
					[missile_frame]
						begin="-400"
						end="100"
						halo="projectiles/fire-breath-se-1.png:80,projectiles/fire-breath-se-2.png:80,projectiles/fire-breath-se-3.png:80,projectiles/fire-breath-se-4.png:80,projectiles/fire-breath-se-5.png:80"
						halo_x="24"
						halo_y="10"
					[/missile_frame]
				[/else]
				[if]
					hits="no"
					[frame]
						begin="-400"
						end="-350"
						image="units/drakes/glider.png"
						sound="flame-big-miss.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-400"
						end="-350"
						image="units/drakes/glider.png"
						sound="flame-big.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-350"
					end="-150"
					image="units/drakes/glider-attack-ranged.png"
				[/frame]
				[frame]
					begin="-150"
					end="0"
					image="units/drakes/glider.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="slam"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-150"
					image="units/drakes/glider-attack-close1.png"
				[/frame]
				[frame]
					begin="-150"
					end="-100"
					image="units/drakes/glider-flying.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="50"
						image="units/drakes/glider-attack-close2.png"
						sound="club.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="50"
						image="units/drakes/glider-attack-close2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					begin="50"
					end="100"
					image="units/drakes/glider-flying.png"
				[/frame]
				[frame]
					begin="100"
					end="150"
					image="units/drakes/glider-attack-close1.png"
				[/frame]
				[frame]
					begin="150"
					end="200"
					image="units/drakes/glider.png"
				[/frame]
			[/attack_anim]
			[death]
				[frame]
					begin="0"
					end="130"
					image="units/drakes/glider-die-1.png"
				[/frame]
				[frame]
					begin="130"
					end="320"
					image="units/drakes/glider-die-2.png"
				[/frame]
				[frame]
					begin="320"
					end="450"
					image="units/drakes/glider-die-3.png"
				[/frame]
				[frame]
					begin="450"
					end="600"
					image="units/drakes/glider-die-4.png"
				[/frame]
				[frame]
					begin="600"
					end="750"
					image="units/drakes/glider-die-5.png"
				[/frame]
				[frame]
					begin="750"
					end="900"
					image="units/drakes/glider-die-6.png"
				[/frame]
				[frame]
					begin="900"
					end="1050"
					image="units/drakes/glider-die-7.png"
				[/frame]
				[frame]
					begin="1050"
					end="1200"
					image="units/drakes/glider-die-8.png"
				[/frame]
			[/death]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/drakes/glider.png"
				[/frame]
				[frame]
					duration="100"
					image="units/drakes/glider-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/drakes/glider-defend.png"
						sound="drake-hit-1.ogg,drake-hit-2.ogg,drake-hit-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/drakes/glider-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/drakes/glider.png"
				[/frame]
			[/defend]
			[movement_anim]
				[frame]
					begin="0"
					end="150"
					image="units/drakes/glider-flying.png"
				[/frame]
			[/movement_anim]
			[standing_anim]
				start_time="0"
				[filter]
					[filter_location]
						terrain="!,W*,Qx*,Ql*"
						[or]
							terrain="Wwf,Wwr,*^V*"
						[/or]
					[/filter_location]
				[/filter]
				[frame]
					duration="150"
					image="units/drakes/glider.png"
				[/frame]
			[/standing_anim]
			[standing_anim]
				layer="60"
				start_time="0"
				submerge="0.01"
				[filter]
					[filter_location]
						terrain="W*,Qx*,Ql*"
						[not]
							terrain="Wwf,Wwr,*^V*"
						[/not]
					[/filter_location]
				[/filter]
				[frame]
					duration="150"
					image="units/drakes/glider-flying.png"
				[/frame]
			[/standing_anim]
			[defense]
				castle="60"
				cave="70"
				deep_water="80"
				flat="70"
				forest="60"
				frozen="80"
				fungus="60"
				hills="60"
				impassable="70"
				mountains="60"
				reef="70"
				sand="60"
				shallow_water="80"
				swamp_water="70"
				unwalkable="60"
				village="60"
			[/defense]
			[movement_costs]
				castle="1"
				cave="3"
				deep_water="2"
				flat="1"
				forest="1"
				frozen="2"
				fungus="2"
				hills="1"
				impassable="99"
				mountains="1"
				reef="1"
				sand="1"
				shallow_water="1"
				swamp_water="1"
				unwalkable="1"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="130"
				blade="90"
				cold="150"
				fire="50"
				impact="80"
				pierce="110"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="6"
				description=_ "slam"
				icon="attacks/slam-drake.png"
				name="slam"
				number="2"
				range="melee"
				type="impact"
			[/attack]
			[attack]
				damage="3"
				description=_ "fire breath"
				icon="attacks/fire-breath-drake.png"
				name="fire breath"
				number="3"
				range="ranged"
				type="fire"
				[specials]
					[chance_to_hit]
						active_on="offense"
						cumulative="yes"
#textdomain wesnoth
						description=_ "Marksman:
When used offensively, this attack always has at least a 60% chance to hit."
						id="marksman"
						name=_ "marksman"
						value="60"
					[/chance_to_hit]
				[/specials]
			[/attack]
			[modifications]
				[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]
				[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="Drake Warrior"
			alignment="lawful"
			alpha="256"
			attacks_left="0"
			cost="17"
			die_sound="drake-die.ogg"
			ellipse="misc/ellipse"
			experience="2"
			facing="se"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="32"
			id="Drake Fighter-19"
			image="units/drakes/fighter.png"
#textdomain wesnoth-units
			language_name=_ "Drake Fighter"
			level="1"
			max_attacks="1"
			max_experience="29"
			max_hitpoints="42"
			max_moves="7"
			movement="6"
			movement_type="drakefly"
			moves="0"
			name="Gadé Ihn Ih"
			profile="portraits/drakes/fighter.png"
			race="drake"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="1"
			type="Drake Fighter"
			undead_variation="drake"
			underlying_id="19"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			x="6"
			y="11"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="fire breath"
				[/filter_attack]
				[if]
					direction="n"
					[missile_frame]
						begin="-400"
						end="100"
						halo="projectiles/fire-breath-n-1.png:80,projectiles/fire-breath-n-2.png:80,projectiles/fire-breath-n-3.png:80,projectiles/fire-breath-n-4.png:80,projectiles/fire-breath-n-5.png:80"
						halo_x="11"
						halo_y="-34"
					[/missile_frame]
				[/if]
				[else]
					direction="s"
					[missile_frame]
						begin="-400"
						end="100"
						halo="projectiles/fire-breath-s-1.png:80,projectiles/fire-breath-s-2.png:80,projectiles/fire-breath-s-3.png:80,projectiles/fire-breath-s-4.png:80,projectiles/fire-breath-s-5.png:80"
						halo_x="11"
						halo_y="15"
					[/missile_frame]
				[/else]
				[else]
					direction="ne,nw"
					[missile_frame]
						begin="-400"
						end="100"
						halo="projectiles/fire-breath-ne-1.png:80,projectiles/fire-breath-ne-2.png:80,projectiles/fire-breath-ne-3.png:80,projectiles/fire-breath-ne-4.png:80,projectiles/fire-breath-ne-5.png:80"
						halo_x="24"
						halo_y="-22"
					[/missile_frame]
				[/else]
				[else]
					direction="se,sw"
					[missile_frame]
						begin="-400"
						end="100"
						halo="projectiles/fire-breath-se-1.png:80,projectiles/fire-breath-se-2.png:80,projectiles/fire-breath-se-3.png:80,projectiles/fire-breath-se-4.png:80,projectiles/fire-breath-se-5.png:80"
						halo_x="26"
						halo_y="10"
					[/missile_frame]
				[/else]
				[if]
					hits="no"
					[frame]
						begin="-400"
						end="-350"
						image="units/drakes/fighter-attack-ranged1.png"
						sound="flame-big-miss.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-400"
						end="-350"
						image="units/drakes/fighter-attack-ranged1.png"
						sound="flame-big.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-350"
					end="-150"
					image="units/drakes/fighter-attack-ranged2.png"
				[/frame]
				[frame]
					begin="-150"
					end="0"
					image="units/drakes/fighter.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="scimitar"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-175"
					image="units/drakes/fighter.png"
				[/frame]
				[frame]
					begin="-175"
					end="-100"
					image="units/drakes/fighter-attack-close1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="75"
						image="units/drakes/fighter-attack-close2.png"
						sound="sword-1.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="75"
						image="units/drakes/fighter-attack-close2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					begin="75"
					end="150"
					image="units/drakes/fighter-defend.png"
				[/frame]
				[frame]
					begin="150"
					end="175"
					image="units/drakes/fighter.png"
				[/frame]
			[/attack_anim]
			[death]
				[frame]
					begin="0"
					end="130"
					image="units/drakes/fighter-die-1.png"
				[/frame]
				[frame]
					begin="130"
					end="320"
					image="units/drakes/fighter-die-2.png"
				[/frame]
				[frame]
					begin="320"
					end="450"
					image="units/drakes/fighter-die-3.png"
				[/frame]
				[frame]
					begin="450"
					end="600"
					image="units/drakes/fighter-die-4.png"
				[/frame]
				[frame]
					begin="600"
					end="750"
					image="units/drakes/fighter-die-5.png"
				[/frame]
				[frame]
					begin="750"
					end="900"
					image="units/drakes/fighter-die-6.png"
				[/frame]
				[frame]
					begin="900"
					end="1050"
					image="units/drakes/fighter-die-7.png"
				[/frame]
				[frame]
					begin="1050"
					end="1200"
					image="units/drakes/fighter-die-8.png"
				[/frame]
			[/death]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/drakes/fighter.png"
				[/frame]
				[frame]
					duration="100"
					image="units/drakes/fighter-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/drakes/fighter-defend.png"
						sound="drake-hit-1.ogg,drake-hit-2.ogg,drake-hit-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/drakes/fighter-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/drakes/fighter.png"
				[/frame]
			[/defend]
			[movement_anim]
				[frame]
					begin="0"
					end="150"
					image="units/drakes/fighter-flying.png"
				[/frame]
			[/movement_anim]
			[standing_anim]
				start_time="0"
				[filter]
					[filter_location]
						terrain="!,W*,Qx*,Ql*"
						[or]
							terrain="Wwf,Wwr,*^V*"
						[/or]
					[/filter_location]
				[/filter]
				[frame]
					duration="150"
					image="units/drakes/fighter.png"
				[/frame]
			[/standing_anim]
			[standing_anim]
				layer="60"
				start_time="0"
				submerge="0.01"
				[filter]
					[filter_location]
						terrain="W*,Qx*,Ql*"
						[not]
							terrain="Wwf,Wwr,*^V*"
						[/not]
					[/filter_location]
				[/filter]
				[frame]
					duration="150"
					image="units/drakes/fighter-flying.png"
				[/frame]
			[/standing_anim]
			[defense]
				castle="60"
				cave="70"
				deep_water="80"
				flat="70"
				forest="60"
				frozen="80"
				fungus="60"
				hills="60"
				impassable="70"
				mountains="60"
				reef="70"
				sand="60"
				shallow_water="80"
				swamp_water="70"
				unwalkable="60"
				village="60"
			[/defense]
			[movement_costs]
				castle="1"
				cave="3"
				deep_water="2"
				flat="1"
				forest="1"
				frozen="2"
				fungus="2"
				hills="1"
				impassable="99"
				mountains="1"
				reef="1"
				sand="1"
				shallow_water="1"
				swamp_water="1"
				unwalkable="1"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="130"
				blade="90"
				cold="150"
				fire="50"
				impact="80"
				pierce="110"
			[/resistance]
			[variables]
			[/variables]
			[status]
			[/status]
			[attack]
				damage="7"
				description=_ "scimitar"
				icon="attacks/scimitar.png"
				name="scimitar"
				number="3"
				range="melee"
				type="blade"
			[/attack]
			[attack]
				damage="3"
				description=_ "fire breath"
				icon="attacks/fire-breath-drake.png"
				name="fire breath"
				number="3"
				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="Saurian Oracle,Saurian Soothsayer"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="16"
			die_sound="hiss-die.wav"
			ellipse="misc/ellipse"
			experience="0"
			facing="se"
			flag_rgb="magenta"
			flies="false"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="26"
			id="Saurian Augur-21"
			image="units/saurians/augur.png"
#textdomain wesnoth-units
			language_name=_ "Saurian Augur"
			level="1"
			max_attacks="1"
			max_experience="20"
			max_hitpoints="26"
			max_moves="7"
			movement="6"
			movement_type="lizard"
			moves="0"
			name="Hezza"
			profile="portraits/saurians/augur.png"
			race="lizard"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="1"
			type="Saurian Augur"
			undead_variation="saurian"
			underlying_id="21"
			unrenamable="no"
			upkeep="full"
			usage="healer"
			x="6"
			y="10"
			zoc="yes"
			[attack_anim]
				start_time="-300"
				[filter_attack]
					name="curse"
				[/filter_attack]
				[if]
					hits="yes"
					[missile_frame]
						begin="-200"
						end="0"
						image="projectiles/whitemissile-n.png"
						image_diagonal="projectiles/whitemissile-ne.png"
						offset="0.0~0.8"
					[/missile_frame]
					[missile_frame]
						begin="0"
						end="50"
						halo="projectiles/whitemissile-impact-1.png"
						offset="0.8"
					[/missile_frame]
					[missile_frame]
						begin="50"
						end="100"
						halo="projectiles/whitemissile-impact-2.png"
						offset="0.92"
					[/missile_frame]
					[missile_frame]
						begin="100"
						end="150"
						halo="projectiles/whitemissile-impact-3.png"
						offset="0.94"
					[/missile_frame]
					[missile_frame]
						begin="150"
						end="200"
						halo="projectiles/whitemissile-impact-4.png"
						offset="0.96"
					[/missile_frame]
					[missile_frame]
						begin="200"
						end="250"
						halo="projectiles/whitemissile-impact-5.png"
						offset="0.98"
					[/missile_frame]
					[missile_frame]
						begin="250"
						end="300"
						halo="projectiles/whitemissile-impact-6.png"
						offset="1.0"
					[/missile_frame]
					[missile_frame]
						begin="300"
						end="350"
						halo="projectiles/whitemissile-impact-7.png"
						offset="1.02"
					[/missile_frame]
					[missile_frame]
						begin="350"
						end="400"
						halo="projectiles/whitemissile-impact-8.png"
						offset="1.04"
					[/missile_frame]
				[/if]
				[else]
					hits="no"
					[missile_frame]
						alpha=".8~0.0:200"
						begin="-200"
						end="0"
						image="projectiles/whitemissile-n.png"
						image_diagonal="projectiles/whitemissile-ne.png"
						offset="0.0~0.8"
					[/missile_frame]
				[/else]
				[frame]
					duration="50"
					halo="halo/saurian-magic-halo-1.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="60"
					halo="halo/saurian-magic-halo-2.png"
					image="units/saurians/augur-magic-1.png"
					sound="magicmissile.wav"
				[/frame]
				[frame]
					duration="70"
					halo="halo/saurian-magic-halo-3.png"
					image="units/saurians/augur-magic-2.png"
				[/frame]
				[frame]
					duration="80"
					halo="halo/saurian-magic-halo-4.png"
					image="units/saurians/augur-magic-2.png"
				[/frame]
				[frame]
					duration="90"
					halo="halo/saurian-magic-halo-5.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-6.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-7.png"
					image="units/saurians/augur.png"
				[/frame]
			[/attack_anim]
			[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="staff"
				[/filter_attack]
				[frame]
					duration="150"
					image="units/saurians/augur-melee-1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						duration="100"
						image="units/saurians/augur-melee-2.png"
						sound="staff.wav"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						duration="100"
						image="units/saurians/augur-melee-2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					duration="100"
					image="units/saurians/augur-melee-3.png"
				[/frame]
				[frame]
					duration="90"
					image="units/saurians/augur-melee-4.png"
				[/frame]
				[frame]
					duration="80"
					image="units/saurians/augur-melee-5.png"
				[/frame]
				[frame]
					duration="50"
					image="units/saurians/augur-defend-1.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/saurians/augur-defend-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/saurians/augur-defend-2.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/saurians/augur-defend-2.png"
						sound="hiss-hit.wav"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/saurians/augur-defend-2.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/saurians/augur-defend-1.png"
				[/frame]
			[/defend]
			[healing_anim]
				start_time="-300"
				[frame]
					duration="50"
					halo="halo/saurian-magic-halo-1.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="60"
					halo="halo/saurian-magic-halo-2.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="70"
					halo="halo/saurian-magic-halo-3.png"
					image="units/saurians/augur-magic-2.png"
				[/frame]
				[frame]
					duration="80"
					halo="halo/saurian-magic-halo-4.png"
					image="units/saurians/augur-magic-2.png"
				[/frame]
				[frame]
					duration="90"
					halo="halo/saurian-magic-halo-5.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-6.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-7.png"
					image="units/saurians/augur.png"
				[/frame]
			[/healing_anim]
			[portrait]
				image="portraits/saurians/transparent/augur.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/saurians/transparent/augur.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="40"
				cave="40"
				deep_water="80"
				flat="60"
				forest="40"
				frozen="70"
				fungus="40"
				hills="40"
				impassable="40"
				mountains="40"
				reef="60"
				sand="40"
				shallow_water="60"
				swamp_water="40"
				unwalkable="80"
				village="50"
			[/defense]
			[movement_costs]
				castle="1"
				cave="1"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="4"
				fungus="1"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="1"
				shallow_water="3"
				swamp_water="1"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="80"
				blade="110"
				cold="120"
				fire="120"
				impact="110"
				pierce="80"
			[/resistance]
			[abilities]
				[heals]
					affect_allies="yes"
					affect_self="no"
#textdomain wesnoth
					description=_ "Heals +4:
Allows the unit to heal adjacent allied units at the beginning of our turn.

A unit cared for by this healer may heal up to 4 HP per turn, or stop poison from taking effect for that turn.
A poisoned unit cannot be cured of its poison by a healer, and must seek the care of a village or a unit that can cure."
					female_name=_ "female^heals +4"
					id="healing"
					name=_ "heals +4"
					poison="slowed"
					value="4"
					[affect_adjacent]
						adjacent="n,ne,se,s,sw,nw"
					[/affect_adjacent]
				[/heals]
			[/abilities]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="4"
#textdomain wesnoth-units
				description=_ "staff"
				icon="attacks/staff-magic.png"
				name="staff"
				number="2"
				range="melee"
				type="impact"
			[/attack]
			[attack]
				damage="5"
				description=_ "curse"
				icon="attacks/curse.png"
				name="curse"
				number="3"
				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]
			[modifications]
				[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]
				[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="Saurian Ambusher"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="15"
			die_sound="hiss-die.wav"
			ellipse="misc/ellipse"
			experience="8"
			facing="se"
			flag_rgb="magenta"
			flies="false"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="27"
			id="Saurian Skirmisher-22"
			image="units/saurians/skirmisher.png"
#textdomain wesnoth-units
			language_name=_ "Saurian Skirmisher"
			level="1"
			max_attacks="1"
			max_experience="18"
			max_hitpoints="27"
			max_moves="6"
			movement="6"
			movement_type="lizard"
			moves="0"
			name="Ssixta"
			profile="portraits/saurians/skirmisher.png"
			race="lizard"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="1"
			type="Saurian Skirmisher"
			undead_variation="saurian"
			underlying_id="22"
			unrenamable="no"
			upkeep="full"
			usage="scout"
			x="8"
			y="10"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="spear"
					range="ranged"
				[/filter_attack]
				[missile_frame]
					begin="-150"
					end="0"
					image="projectiles/spear-n.png"
					image_diagonal="projectiles/spear-ne.png"
				[/missile_frame]
				[frame]
					begin="-200"
					end="-100"
					image="units/saurians/skirmisher-attack-ranged-1.png"
					sound="throw-1.wav,throw-2.wav,throw-3.wav,throw-4.wav"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="50"
						image="units/saurians/skirmisher-attack-ranged-2.png"
						sound="spear.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="50"
						image="units/saurians/skirmisher-attack-ranged-2.png"
					[/frame]
				[/else]
			[/attack_anim]
			[attack_anim]
				direction="ne,nw,s,se,sw"
				[filter_attack]
					name="spear"
					range="melee"
				[/filter_attack]
				[frame]
					begin="-150"
					end="-100"
					image="units/saurians/skirmisher-attack1.png"
				[/frame]
				[if]
					hits="no"
					[frame]
						begin="-100"
						end="50"
						image="units/saurians/skirmisher-attack2.png"
						sound="spear-miss.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-100"
						end="50"
						image="units/saurians/skirmisher-attack2.png"
						sound="spear.ogg"
					[/frame]
				[/else]
				[frame]
					begin="50"
					end="150"
					image="units/saurians/skirmisher-defend.png"
				[/frame]
				[frame]
					begin="150"
					end="200"
					image="units/saurians/skirmisher.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				direction="n"
				[filter_attack]
					name="spear"
					range="melee"
				[/filter_attack]
				[frame]
					begin="-150"
					end="-100"
					image="units/saurians/skirmisher-attack-n1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="90"
						image="units/saurians/skirmisher-attack-n2.png"
						sound="spear.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="90"
						image="units/saurians/skirmisher-attack-n2.png"
						sound="spear-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="90"
					end="150"
					image="units/saurians/skirmisher-attack1.png"
				[/frame]
				[frame]
					begin="150"
					end="200"
					image="units/saurians/skirmisher.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/saurians/skirmisher.png"
				[/frame]
				[frame]
					duration="100"
					image="units/saurians/skirmisher-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/saurians/skirmisher-defend.png"
						sound="hiss-hit.wav"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/saurians/skirmisher-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/saurians/skirmisher.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]
				[filter]
					[filter_location]
						[not]
							terrain="C*,K*,*^V*"
						[/not]
					[/filter_location]
				[/filter]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-1.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-2.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-3.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-4.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-5.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-6.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-7.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-6.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-5.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-6.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-8.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-9.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-10.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-11.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-12.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-13.png"
				[/frame]
				[frame]
					duration="225"
					image="units/saurians/skirmisher-idle-12.png"
				[/frame]
				[frame]
					duration="225"
					image="units/saurians/skirmisher-idle-13.png"
				[/frame]
				[frame]
					duration="250"
					image="units/saurians/skirmisher-idle-12.png"
				[/frame]
				[frame]
					duration="250"
					image="units/saurians/skirmisher-idle-13.png"
				[/frame]
			[/idle_anim]
			[portrait]
				image="portraits/saurians/transparent/skirmisher.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/saurians/transparent/skirmisher.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="40"
				cave="40"
				deep_water="80"
				flat="60"
				forest="40"
				frozen="70"
				fungus="40"
				hills="40"
				impassable="40"
				mountains="40"
				reef="60"
				sand="40"
				shallow_water="60"
				swamp_water="40"
				unwalkable="80"
				village="50"
			[/defense]
			[movement_costs]
				castle="1"
				cave="1"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="4"
				fungus="1"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="1"
				shallow_water="3"
				swamp_water="1"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="80"
				blade="110"
				cold="120"
				fire="120"
				impact="110"
				pierce="80"
			[/resistance]
			[abilities]
				[skirmisher]
					affect_self="yes"
#textdomain wesnoth
					description=_ "Skirmisher:
This unit is skilled in moving past enemies quickly, and ignores all enemy Zones of Control."
					female_name=_ "female^skirmisher"
					id="skirmisher"
					name=_ "skirmisher"
				[/skirmisher]
			[/abilities]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="5"
#textdomain wesnoth-units
				description=_ "spear"
				icon="attacks/spear.png"
				name="spear"
				number="4"
				range="melee"
				type="pierce"
			[/attack]
			[attack]
				damage="4"
				description=_ "spear"
				icon="attacks/spear.png"
				name="spear"
				number="2"
				range="ranged"
				type="pierce"
			[/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^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="Saurian Oracle,Saurian Soothsayer"
			alignment="chaotic"
			alpha="256"
			attacks_left="0"
			cost="16"
			die_sound="hiss-die.wav"
			ellipse="misc/ellipse"
			experience="1"
			facing="s"
			flag_rgb="magenta"
			flies="false"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="15"
			id="Saurian Augur-23"
			image="units/saurians/augur.png"
#textdomain wesnoth-units
			language_name=_ "Saurian Augur"
			level="1"
			max_attacks="1"
			max_experience="15"
			max_hitpoints="21"
			max_moves="7"
			movement="6"
			movement_type="lizard"
			moves="0"
			name="Tale"
			profile="portraits/saurians/augur.png"
			race="lizard"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="1"
			type="Saurian Augur"
			undead_variation="saurian"
			underlying_id="23"
			unrenamable="no"
			upkeep="full"
			usage="healer"
			x="7"
			y="11"
			zoc="yes"
			[attack_anim]
				start_time="-300"
				[filter_attack]
					name="curse"
				[/filter_attack]
				[if]
					hits="yes"
					[missile_frame]
						begin="-200"
						end="0"
						image="projectiles/whitemissile-n.png"
						image_diagonal="projectiles/whitemissile-ne.png"
						offset="0.0~0.8"
					[/missile_frame]
					[missile_frame]
						begin="0"
						end="50"
						halo="projectiles/whitemissile-impact-1.png"
						offset="0.8"
					[/missile_frame]
					[missile_frame]
						begin="50"
						end="100"
						halo="projectiles/whitemissile-impact-2.png"
						offset="0.92"
					[/missile_frame]
					[missile_frame]
						begin="100"
						end="150"
						halo="projectiles/whitemissile-impact-3.png"
						offset="0.94"
					[/missile_frame]
					[missile_frame]
						begin="150"
						end="200"
						halo="projectiles/whitemissile-impact-4.png"
						offset="0.96"
					[/missile_frame]
					[missile_frame]
						begin="200"
						end="250"
						halo="projectiles/whitemissile-impact-5.png"
						offset="0.98"
					[/missile_frame]
					[missile_frame]
						begin="250"
						end="300"
						halo="projectiles/whitemissile-impact-6.png"
						offset="1.0"
					[/missile_frame]
					[missile_frame]
						begin="300"
						end="350"
						halo="projectiles/whitemissile-impact-7.png"
						offset="1.02"
					[/missile_frame]
					[missile_frame]
						begin="350"
						end="400"
						halo="projectiles/whitemissile-impact-8.png"
						offset="1.04"
					[/missile_frame]
				[/if]
				[else]
					hits="no"
					[missile_frame]
						alpha=".8~0.0:200"
						begin="-200"
						end="0"
						image="projectiles/whitemissile-n.png"
						image_diagonal="projectiles/whitemissile-ne.png"
						offset="0.0~0.8"
					[/missile_frame]
				[/else]
				[frame]
					duration="50"
					halo="halo/saurian-magic-halo-1.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="60"
					halo="halo/saurian-magic-halo-2.png"
					image="units/saurians/augur-magic-1.png"
					sound="magicmissile.wav"
				[/frame]
				[frame]
					duration="70"
					halo="halo/saurian-magic-halo-3.png"
					image="units/saurians/augur-magic-2.png"
				[/frame]
				[frame]
					duration="80"
					halo="halo/saurian-magic-halo-4.png"
					image="units/saurians/augur-magic-2.png"
				[/frame]
				[frame]
					duration="90"
					halo="halo/saurian-magic-halo-5.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-6.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-7.png"
					image="units/saurians/augur.png"
				[/frame]
			[/attack_anim]
			[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="staff"
				[/filter_attack]
				[frame]
					duration="150"
					image="units/saurians/augur-melee-1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						duration="100"
						image="units/saurians/augur-melee-2.png"
						sound="staff.wav"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						duration="100"
						image="units/saurians/augur-melee-2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					duration="100"
					image="units/saurians/augur-melee-3.png"
				[/frame]
				[frame]
					duration="90"
					image="units/saurians/augur-melee-4.png"
				[/frame]
				[frame]
					duration="80"
					image="units/saurians/augur-melee-5.png"
				[/frame]
				[frame]
					duration="50"
					image="units/saurians/augur-defend-1.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/saurians/augur-defend-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/saurians/augur-defend-2.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/saurians/augur-defend-2.png"
						sound="hiss-hit.wav"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/saurians/augur-defend-2.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/saurians/augur-defend-1.png"
				[/frame]
			[/defend]
			[healing_anim]
				start_time="-300"
				[frame]
					duration="50"
					halo="halo/saurian-magic-halo-1.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="60"
					halo="halo/saurian-magic-halo-2.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="70"
					halo="halo/saurian-magic-halo-3.png"
					image="units/saurians/augur-magic-2.png"
				[/frame]
				[frame]
					duration="80"
					halo="halo/saurian-magic-halo-4.png"
					image="units/saurians/augur-magic-2.png"
				[/frame]
				[frame]
					duration="90"
					halo="halo/saurian-magic-halo-5.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-6.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-7.png"
					image="units/saurians/augur.png"
				[/frame]
			[/healing_anim]
			[portrait]
				image="portraits/saurians/transparent/augur.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/saurians/transparent/augur.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="40"
				cave="40"
				deep_water="80"
				flat="60"
				forest="40"
				frozen="70"
				fungus="40"
				hills="40"
				impassable="40"
				mountains="40"
				reef="60"
				sand="40"
				shallow_water="60"
				swamp_water="40"
				unwalkable="80"
				village="50"
			[/defense]
			[movement_costs]
				castle="1"
				cave="1"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="4"
				fungus="1"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="1"
				shallow_water="3"
				swamp_water="1"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="80"
				blade="110"
				cold="120"
				fire="120"
				impact="110"
				pierce="80"
			[/resistance]
			[abilities]
				[heals]
					affect_allies="yes"
					affect_self="no"
#textdomain wesnoth
					description=_ "Heals +4:
Allows the unit to heal adjacent allied units at the beginning of our turn.

A unit cared for by this healer may heal up to 4 HP per turn, or stop poison from taking effect for that turn.
A poisoned unit cannot be cured of its poison by a healer, and must seek the care of a village or a unit that can cure."
					female_name=_ "female^heals +4"
					id="healing"
					name=_ "heals +4"
					poison="slowed"
					value="4"
					[affect_adjacent]
						adjacent="n,ne,se,s,sw,nw"
					[/affect_adjacent]
				[/heals]
			[/abilities]
			[variables]
			[/variables]
			[status]
			[/status]
			[attack]
				damage="4"
#textdomain wesnoth-units
				description=_ "staff"
				icon="attacks/staff-magic.png"
				name="staff"
				number="2"
				range="melee"
				type="impact"
			[/attack]
			[attack]
				damage="5"
				description=_ "curse"
				icon="attacks/curse.png"
				name="curse"
				number="3"
				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]
			[modifications]
				[trait]
					female_name=_ "female^intelligent"
					id="intelligent"
					male_name=_ "intelligent"
					name=_ "intelligent"
					[effect]
						apply_to="max_experience"
						increase="-20%"
					[/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="Saurian Ambusher"
			alignment="chaotic"
			alpha="256"
			attacks_left="1"
			cost="15"
			die_sound="hiss-die.wav"
			ellipse="misc/ellipse"
			experience="1"
			facing="s"
			flag_rgb="magenta"
			flies="false"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="30"
			id="Saurian Skirmisher-24"
			image="units/saurians/skirmisher.png"
#textdomain wesnoth-units
			language_name=_ "Saurian Skirmisher"
			level="1"
			max_attacks="1"
			max_experience="18"
			max_hitpoints="31"
			max_moves="6"
			movement="6"
			movement_type="lizard"
			moves="0"
			name="Ssz"
			profile="portraits/saurians/skirmisher.png"
			race="lizard"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="1"
			type="Saurian Skirmisher"
			undead_variation="saurian"
			underlying_id="24"
			unrenamable="no"
			upkeep="full"
			usage="scout"
			x="5"
			y="11"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="spear"
					range="ranged"
				[/filter_attack]
				[missile_frame]
					begin="-150"
					end="0"
					image="projectiles/spear-n.png"
					image_diagonal="projectiles/spear-ne.png"
				[/missile_frame]
				[frame]
					begin="-200"
					end="-100"
					image="units/saurians/skirmisher-attack-ranged-1.png"
					sound="throw-1.wav,throw-2.wav,throw-3.wav,throw-4.wav"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="50"
						image="units/saurians/skirmisher-attack-ranged-2.png"
						sound="spear.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="50"
						image="units/saurians/skirmisher-attack-ranged-2.png"
					[/frame]
				[/else]
			[/attack_anim]
			[attack_anim]
				direction="ne,nw,s,se,sw"
				[filter_attack]
					name="spear"
					range="melee"
				[/filter_attack]
				[frame]
					begin="-150"
					end="-100"
					image="units/saurians/skirmisher-attack1.png"
				[/frame]
				[if]
					hits="no"
					[frame]
						begin="-100"
						end="50"
						image="units/saurians/skirmisher-attack2.png"
						sound="spear-miss.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-100"
						end="50"
						image="units/saurians/skirmisher-attack2.png"
						sound="spear.ogg"
					[/frame]
				[/else]
				[frame]
					begin="50"
					end="150"
					image="units/saurians/skirmisher-defend.png"
				[/frame]
				[frame]
					begin="150"
					end="200"
					image="units/saurians/skirmisher.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				direction="n"
				[filter_attack]
					name="spear"
					range="melee"
				[/filter_attack]
				[frame]
					begin="-150"
					end="-100"
					image="units/saurians/skirmisher-attack-n1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="90"
						image="units/saurians/skirmisher-attack-n2.png"
						sound="spear.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="90"
						image="units/saurians/skirmisher-attack-n2.png"
						sound="spear-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="90"
					end="150"
					image="units/saurians/skirmisher-attack1.png"
				[/frame]
				[frame]
					begin="150"
					end="200"
					image="units/saurians/skirmisher.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/saurians/skirmisher.png"
				[/frame]
				[frame]
					duration="100"
					image="units/saurians/skirmisher-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/saurians/skirmisher-defend.png"
						sound="hiss-hit.wav"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/saurians/skirmisher-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/saurians/skirmisher.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]
				[filter]
					[filter_location]
						[not]
							terrain="C*,K*,*^V*"
						[/not]
					[/filter_location]
				[/filter]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-1.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-2.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-3.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-4.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-5.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-6.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-7.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-6.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-5.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-6.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-8.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-9.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-10.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-11.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-12.png"
				[/frame]
				[frame]
					duration="200"
					image="units/saurians/skirmisher-idle-13.png"
				[/frame]
				[frame]
					duration="225"
					image="units/saurians/skirmisher-idle-12.png"
				[/frame]
				[frame]
					duration="225"
					image="units/saurians/skirmisher-idle-13.png"
				[/frame]
				[frame]
					duration="250"
					image="units/saurians/skirmisher-idle-12.png"
				[/frame]
				[frame]
					duration="250"
					image="units/saurians/skirmisher-idle-13.png"
				[/frame]
			[/idle_anim]
			[portrait]
				image="portraits/saurians/transparent/skirmisher.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/saurians/transparent/skirmisher.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="40"
				cave="40"
				deep_water="80"
				flat="60"
				forest="40"
				frozen="70"
				fungus="40"
				hills="40"
				impassable="40"
				mountains="40"
				reef="60"
				sand="40"
				shallow_water="60"
				swamp_water="40"
				unwalkable="80"
				village="50"
			[/defense]
			[movement_costs]
				castle="1"
				cave="1"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="4"
				fungus="1"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="1"
				shallow_water="3"
				swamp_water="1"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="80"
				blade="110"
				cold="120"
				fire="120"
				impact="110"
				pierce="80"
			[/resistance]
			[abilities]
				[skirmisher]
					affect_self="yes"
#textdomain wesnoth
					description=_ "Skirmisher:
This unit is skilled in moving past enemies quickly, and ignores all enemy Zones of Control."
					female_name=_ "female^skirmisher"
					id="skirmisher"
					name=_ "skirmisher"
				[/skirmisher]
			[/abilities]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="4"
#textdomain wesnoth-units
				description=_ "spear"
				icon="attacks/spear.png"
				name="spear"
				number="4"
				range="melee"
				type="pierce"
			[/attack]
			[attack]
				damage="4"
				description=_ "spear"
				icon="attacks/spear.png"
				name="spear"
				number="2"
				range="ranged"
				type="pierce"
			[/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="Saurian Oracle,Saurian Soothsayer"
			alignment="chaotic"
			alpha="256"
			attacks_left="0"
			cost="16"
			die_sound="hiss-die.wav"
			ellipse="misc/ellipse"
			experience="6"
			facing="sw"
			flag_rgb="magenta"
			flies="false"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="17"
			id="Saurian Augur-25"
			image="units/saurians/augur.png"
#textdomain wesnoth-units
			language_name=_ "Saurian Augur"
			level="1"
			max_attacks="1"
			max_experience="20"
			max_hitpoints="22"
			max_moves="7"
			movement="6"
			movement_type="lizard"
			moves="0"
			name="Skrezyx"
			profile="portraits/saurians/augur.png"
			race="lizard"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="1"
			type="Saurian Augur"
			undead_variation="saurian"
			underlying_id="25"
			unrenamable="no"
			upkeep="full"
			usage="healer"
			x="21"
			y="19"
			zoc="yes"
			[attack_anim]
				start_time="-300"
				[filter_attack]
					name="curse"
				[/filter_attack]
				[if]
					hits="yes"
					[missile_frame]
						begin="-200"
						end="0"
						image="projectiles/whitemissile-n.png"
						image_diagonal="projectiles/whitemissile-ne.png"
						offset="0.0~0.8"
					[/missile_frame]
					[missile_frame]
						begin="0"
						end="50"
						halo="projectiles/whitemissile-impact-1.png"
						offset="0.8"
					[/missile_frame]
					[missile_frame]
						begin="50"
						end="100"
						halo="projectiles/whitemissile-impact-2.png"
						offset="0.92"
					[/missile_frame]
					[missile_frame]
						begin="100"
						end="150"
						halo="projectiles/whitemissile-impact-3.png"
						offset="0.94"
					[/missile_frame]
					[missile_frame]
						begin="150"
						end="200"
						halo="projectiles/whitemissile-impact-4.png"
						offset="0.96"
					[/missile_frame]
					[missile_frame]
						begin="200"
						end="250"
						halo="projectiles/whitemissile-impact-5.png"
						offset="0.98"
					[/missile_frame]
					[missile_frame]
						begin="250"
						end="300"
						halo="projectiles/whitemissile-impact-6.png"
						offset="1.0"
					[/missile_frame]
					[missile_frame]
						begin="300"
						end="350"
						halo="projectiles/whitemissile-impact-7.png"
						offset="1.02"
					[/missile_frame]
					[missile_frame]
						begin="350"
						end="400"
						halo="projectiles/whitemissile-impact-8.png"
						offset="1.04"
					[/missile_frame]
				[/if]
				[else]
					hits="no"
					[missile_frame]
						alpha=".8~0.0:200"
						begin="-200"
						end="0"
						image="projectiles/whitemissile-n.png"
						image_diagonal="projectiles/whitemissile-ne.png"
						offset="0.0~0.8"
					[/missile_frame]
				[/else]
				[frame]
					duration="50"
					halo="halo/saurian-magic-halo-1.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="60"
					halo="halo/saurian-magic-halo-2.png"
					image="units/saurians/augur-magic-1.png"
					sound="magicmissile.wav"
				[/frame]
				[frame]
					duration="70"
					halo="halo/saurian-magic-halo-3.png"
					image="units/saurians/augur-magic-2.png"
				[/frame]
				[frame]
					duration="80"
					halo="halo/saurian-magic-halo-4.png"
					image="units/saurians/augur-magic-2.png"
				[/frame]
				[frame]
					duration="90"
					halo="halo/saurian-magic-halo-5.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-6.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-7.png"
					image="units/saurians/augur.png"
				[/frame]
			[/attack_anim]
			[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="staff"
				[/filter_attack]
				[frame]
					duration="150"
					image="units/saurians/augur-melee-1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						duration="100"
						image="units/saurians/augur-melee-2.png"
						sound="staff.wav"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						duration="100"
						image="units/saurians/augur-melee-2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					duration="100"
					image="units/saurians/augur-melee-3.png"
				[/frame]
				[frame]
					duration="90"
					image="units/saurians/augur-melee-4.png"
				[/frame]
				[frame]
					duration="80"
					image="units/saurians/augur-melee-5.png"
				[/frame]
				[frame]
					duration="50"
					image="units/saurians/augur-defend-1.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/saurians/augur-defend-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/saurians/augur-defend-2.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/saurians/augur-defend-2.png"
						sound="hiss-hit.wav"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/saurians/augur-defend-2.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/saurians/augur-defend-1.png"
				[/frame]
			[/defend]
			[healing_anim]
				start_time="-300"
				[frame]
					duration="50"
					halo="halo/saurian-magic-halo-1.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="60"
					halo="halo/saurian-magic-halo-2.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="70"
					halo="halo/saurian-magic-halo-3.png"
					image="units/saurians/augur-magic-2.png"
				[/frame]
				[frame]
					duration="80"
					halo="halo/saurian-magic-halo-4.png"
					image="units/saurians/augur-magic-2.png"
				[/frame]
				[frame]
					duration="90"
					halo="halo/saurian-magic-halo-5.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-6.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-7.png"
					image="units/saurians/augur.png"
				[/frame]
			[/healing_anim]
			[portrait]
				image="portraits/saurians/transparent/augur.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/saurians/transparent/augur.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="40"
				cave="40"
				deep_water="80"
				flat="60"
				forest="40"
				frozen="70"
				fungus="40"
				hills="40"
				impassable="40"
				mountains="40"
				reef="60"
				sand="40"
				shallow_water="60"
				swamp_water="40"
				unwalkable="80"
				village="50"
			[/defense]
			[movement_costs]
				castle="1"
				cave="1"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="4"
				fungus="1"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="1"
				shallow_water="3"
				swamp_water="1"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="80"
				blade="110"
				cold="120"
				fire="120"
				impact="110"
				pierce="80"
			[/resistance]
			[abilities]
				[heals]
					affect_allies="yes"
					affect_self="no"
#textdomain wesnoth
					description=_ "Heals +4:
Allows the unit to heal adjacent allied units at the beginning of our turn.

A unit cared for by this healer may heal up to 4 HP per turn, or stop poison from taking effect for that turn.
A poisoned unit cannot be cured of its poison by a healer, and must seek the care of a village or a unit that can cure."
					female_name=_ "female^heals +4"
					id="healing"
					name=_ "heals +4"
					poison="slowed"
					value="4"
					[affect_adjacent]
						adjacent="n,ne,se,s,sw,nw"
					[/affect_adjacent]
				[/heals]
			[/abilities]
			[variables]
			[/variables]
			[status]
			[/status]
			[attack]
				damage="5"
#textdomain wesnoth-units
				description=_ "staff"
				icon="attacks/staff-magic.png"
				name="staff"
				number="2"
				range="melee"
				type="impact"
			[/attack]
			[attack]
				damage="5"
				description=_ "curse"
				icon="attacks/curse.png"
				name="curse"
				number="3"
				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]
			[modifications]
				[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]
				[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="Drake Warrior"
			alignment="lawful"
			alpha="256"
			attacks_left="1"
			cost="17"
			die_sound="drake-die.ogg"
			ellipse="misc/ellipse"
			experience="1"
			facing="s"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="37"
			id="Drake Fighter-30"
			image="units/drakes/fighter.png"
#textdomain wesnoth-units
			language_name=_ "Drake Fighter"
			level="1"
			max_attacks="1"
			max_experience="29"
			max_hitpoints="38"
			max_moves="7"
			movement="6"
			movement_type="drakefly"
			moves="1"
			name="Garrustun"
			profile="portraits/drakes/fighter.png"
			race="drake"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="1"
			type="Drake Fighter"
			undead_variation="drake"
			underlying_id="30"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			x="4"
			y="10"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="fire breath"
				[/filter_attack]
				[if]
					direction="n"
					[missile_frame]
						begin="-400"
						end="100"
						halo="projectiles/fire-breath-n-1.png:80,projectiles/fire-breath-n-2.png:80,projectiles/fire-breath-n-3.png:80,projectiles/fire-breath-n-4.png:80,projectiles/fire-breath-n-5.png:80"
						halo_x="11"
						halo_y="-34"
					[/missile_frame]
				[/if]
				[else]
					direction="s"
					[missile_frame]
						begin="-400"
						end="100"
						halo="projectiles/fire-breath-s-1.png:80,projectiles/fire-breath-s-2.png:80,projectiles/fire-breath-s-3.png:80,projectiles/fire-breath-s-4.png:80,projectiles/fire-breath-s-5.png:80"
						halo_x="11"
						halo_y="15"
					[/missile_frame]
				[/else]
				[else]
					direction="ne,nw"
					[missile_frame]
						begin="-400"
						end="100"
						halo="projectiles/fire-breath-ne-1.png:80,projectiles/fire-breath-ne-2.png:80,projectiles/fire-breath-ne-3.png:80,projectiles/fire-breath-ne-4.png:80,projectiles/fire-breath-ne-5.png:80"
						halo_x="24"
						halo_y="-22"
					[/missile_frame]
				[/else]
				[else]
					direction="se,sw"
					[missile_frame]
						begin="-400"
						end="100"
						halo="projectiles/fire-breath-se-1.png:80,projectiles/fire-breath-se-2.png:80,projectiles/fire-breath-se-3.png:80,projectiles/fire-breath-se-4.png:80,projectiles/fire-breath-se-5.png:80"
						halo_x="26"
						halo_y="10"
					[/missile_frame]
				[/else]
				[if]
					hits="no"
					[frame]
						begin="-400"
						end="-350"
						image="units/drakes/fighter-attack-ranged1.png"
						sound="flame-big-miss.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-400"
						end="-350"
						image="units/drakes/fighter-attack-ranged1.png"
						sound="flame-big.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-350"
					end="-150"
					image="units/drakes/fighter-attack-ranged2.png"
				[/frame]
				[frame]
					begin="-150"
					end="0"
					image="units/drakes/fighter.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="scimitar"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-175"
					image="units/drakes/fighter.png"
				[/frame]
				[frame]
					begin="-175"
					end="-100"
					image="units/drakes/fighter-attack-close1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="75"
						image="units/drakes/fighter-attack-close2.png"
						sound="sword-1.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="75"
						image="units/drakes/fighter-attack-close2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					begin="75"
					end="150"
					image="units/drakes/fighter-defend.png"
				[/frame]
				[frame]
					begin="150"
					end="175"
					image="units/drakes/fighter.png"
				[/frame]
			[/attack_anim]
			[death]
				[frame]
					begin="0"
					end="130"
					image="units/drakes/fighter-die-1.png"
				[/frame]
				[frame]
					begin="130"
					end="320"
					image="units/drakes/fighter-die-2.png"
				[/frame]
				[frame]
					begin="320"
					end="450"
					image="units/drakes/fighter-die-3.png"
				[/frame]
				[frame]
					begin="450"
					end="600"
					image="units/drakes/fighter-die-4.png"
				[/frame]
				[frame]
					begin="600"
					end="750"
					image="units/drakes/fighter-die-5.png"
				[/frame]
				[frame]
					begin="750"
					end="900"
					image="units/drakes/fighter-die-6.png"
				[/frame]
				[frame]
					begin="900"
					end="1050"
					image="units/drakes/fighter-die-7.png"
				[/frame]
				[frame]
					begin="1050"
					end="1200"
					image="units/drakes/fighter-die-8.png"
				[/frame]
			[/death]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/drakes/fighter.png"
				[/frame]
				[frame]
					duration="100"
					image="units/drakes/fighter-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/drakes/fighter-defend.png"
						sound="drake-hit-1.ogg,drake-hit-2.ogg,drake-hit-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/drakes/fighter-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/drakes/fighter.png"
				[/frame]
			[/defend]
			[movement_anim]
				[frame]
					begin="0"
					end="150"
					image="units/drakes/fighter-flying.png"
				[/frame]
			[/movement_anim]
			[standing_anim]
				start_time="0"
				[filter]
					[filter_location]
						terrain="!,W*,Qx*,Ql*"
						[or]
							terrain="Wwf,Wwr,*^V*"
						[/or]
					[/filter_location]
				[/filter]
				[frame]
					duration="150"
					image="units/drakes/fighter.png"
				[/frame]
			[/standing_anim]
			[standing_anim]
				layer="60"
				start_time="0"
				submerge="0.01"
				[filter]
					[filter_location]
						terrain="W*,Qx*,Ql*"
						[not]
							terrain="Wwf,Wwr,*^V*"
						[/not]
					[/filter_location]
				[/filter]
				[frame]
					duration="150"
					image="units/drakes/fighter-flying.png"
				[/frame]
			[/standing_anim]
			[defense]
				castle="60"
				cave="70"
				deep_water="80"
				flat="70"
				forest="60"
				frozen="80"
				fungus="60"
				hills="60"
				impassable="70"
				mountains="60"
				reef="70"
				sand="60"
				shallow_water="80"
				swamp_water="70"
				unwalkable="60"
				village="60"
			[/defense]
			[movement_costs]
				castle="1"
				cave="3"
				deep_water="2"
				flat="1"
				forest="1"
				frozen="2"
				fungus="2"
				hills="1"
				impassable="99"
				mountains="1"
				reef="1"
				sand="1"
				shallow_water="1"
				swamp_water="1"
				unwalkable="1"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="130"
				blade="90"
				cold="150"
				fire="50"
				impact="80"
				pierce="110"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="8"
				description=_ "scimitar"
				icon="attacks/scimitar.png"
				name="scimitar"
				number="3"
				range="melee"
				type="blade"
			[/attack]
			[attack]
				damage="3"
				description=_ "fire breath"
				icon="attacks/fire-breath-drake.png"
				name="fire breath"
				number="3"
				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^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="Drake Gladiator,Drake Slasher"
			alignment="lawful"
			alpha="256"
			attacks_left="1"
			cost="19"
			die_sound="drake-die.ogg"
			ellipse="misc/ellipse"
			experience="0"
			facing="s"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="44"
			id="Drake Clasher-32"
			image="units/drakes/clasher.png"
#textdomain wesnoth-units
			language_name=_ "Drake Clasher"
			level="1"
			max_attacks="1"
			max_experience="25"
			max_hitpoints="44"
			max_moves="5"
			movement="5"
			movement_type="drakefoot"
			moves="0"
			name="Kash"
			profile="portraits/drakes/clasher.png"
			race="drake"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="1"
			type="Drake Clasher"
			undead_variation="drake"
			underlying_id="32"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			x="9"
			y="7"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="spear"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-100"
					image="units/drakes/clasher-flying.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="75"
						image="units/drakes/clasher-attack-spear.png"
						sound="spear.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="75"
						image="units/drakes/clasher-attack-spear.png"
						sound="spear-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="75"
					end="175"
					image="units/drakes/clasher-flying.png"
				[/frame]
				[frame]
					begin="175"
					end="200"
					image="units/drakes/clasher.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="sword"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-100"
					image="units/drakes/clasher-flying.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="75"
						image="units/drakes/clasher-attack-sword.png"
						sound="sword-1.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="75"
						image="units/drakes/clasher-attack-sword.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					begin="75"
					end="175"
					image="units/drakes/clasher-flying.png"
				[/frame]
				[frame]
					begin="175"
					end="200"
					image="units/drakes/clasher.png"
				[/frame]
			[/attack_anim]
			[death]
				[frame]
					begin="0"
					end="130"
					image="units/drakes/clasher-die-1.png"
				[/frame]
				[frame]
					begin="130"
					end="320"
					image="units/drakes/clasher-die-2.png"
				[/frame]
				[frame]
					begin="320"
					end="450"
					image="units/drakes/clasher-die-3.png"
				[/frame]
				[frame]
					begin="450"
					end="600"
					image="units/drakes/clasher-die-4.png"
				[/frame]
				[frame]
					begin="600"
					end="750"
					image="units/drakes/clasher-die-5.png"
				[/frame]
				[frame]
					begin="750"
					end="900"
					image="units/drakes/clasher-die-6.png"
				[/frame]
				[frame]
					begin="900"
					end="1050"
					image="units/drakes/clasher-die-7.png"
				[/frame]
				[frame]
					begin="1050"
					end="1200"
					image="units/drakes/clasher-die-8.png"
				[/frame]
				[frame]
					begin="1200"
					end="1350"
					image="units/drakes/clasher-die-9.png"
				[/frame]
				[frame]
					begin="1350"
					end="1500"
					image="units/drakes/clasher-die-10.png"
				[/frame]
			[/death]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/drakes/clasher.png"
				[/frame]
				[frame]
					duration="100"
					image="units/drakes/clasher-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/drakes/clasher-defend.png"
						sound="drake-hit-1.ogg,drake-hit-2.ogg,drake-hit-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/drakes/clasher-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/drakes/clasher.png"
				[/frame]
			[/defend]
			[defense]
				castle="60"
				cave="70"
				deep_water="90"
				flat="70"
				forest="60"
				frozen="80"
				fungus="60"
				hills="60"
				impassable="70"
				mountains="60"
				reef="70"
				sand="60"
				shallow_water="80"
				swamp_water="80"
				unwalkable="80"
				village="60"
			[/defense]
			[movement_costs]
				castle="1"
				cave="2"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="3"
				fungus="2"
				hills="1"
				impassable="99"
				mountains="1"
				reef="2"
				sand="1"
				shallow_water="3"
				swamp_water="3"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="130"
				blade="80"
				cold="150"
				fire="50"
				impact="70"
				pierce="100"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="6"
				description=_ "sword"
				icon="attacks/scimitar.png"
				name="sword"
				number="4"
				range="melee"
				type="blade"
			[/attack]
			[attack]
				damage="7"
				description=_ "spear"
				icon="attacks/spear.png"
				name="spear"
				number="4"
				range="melee"
				type="pierce"
				[specials]
					[firststrike]
#textdomain wesnoth
						description=_ "First Strike:
This unit always strikes first with this attack, even if they are defending."
						id="firststrike"
						name=_ "firststrike"
					[/firststrike]
				[/specials]
			[/attack]
			[modifications]
				[trait]
					female_name=_ "female^intelligent"
					id="intelligent"
					male_name=_ "intelligent"
					name=_ "intelligent"
					[effect]
						apply_to="max_experience"
						increase="-20%"
					[/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="Saurian Oracle,Saurian Soothsayer"
			alignment="chaotic"
			alpha="256"
			attacks_left="0"
			cost="16"
			die_sound="hiss-die.wav"
			ellipse="misc/ellipse"
			experience="0"
			facing="nw"
			flag_rgb="magenta"
			flies="false"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="21"
			id="Saurian Augur-34"
			image="units/saurians/augur.png"
#textdomain wesnoth-units
			language_name=_ "Saurian Augur"
			level="1"
			max_attacks="1"
			max_experience="15"
			max_hitpoints="21"
			max_moves="7"
			movement="6"
			movement_type="lizard"
			moves="0"
			name="Prezzix"
			profile="portraits/saurians/augur.png"
			race="lizard"
			random_gender="no"
			random_traits="no"
			resting="no"
			side="1"
			type="Saurian Augur"
			undead_variation="saurian"
			underlying_id="34"
			unrenamable="no"
			upkeep="full"
			usage="healer"
			x="14"
			y="3"
			zoc="yes"
			[attack_anim]
				start_time="-300"
				[filter_attack]
					name="curse"
				[/filter_attack]
				[if]
					hits="yes"
					[missile_frame]
						begin="-200"
						end="0"
						image="projectiles/whitemissile-n.png"
						image_diagonal="projectiles/whitemissile-ne.png"
						offset="0.0~0.8"
					[/missile_frame]
					[missile_frame]
						begin="0"
						end="50"
						halo="projectiles/whitemissile-impact-1.png"
						offset="0.8"
					[/missile_frame]
					[missile_frame]
						begin="50"
						end="100"
						halo="projectiles/whitemissile-impact-2.png"
						offset="0.92"
					[/missile_frame]
					[missile_frame]
						begin="100"
						end="150"
						halo="projectiles/whitemissile-impact-3.png"
						offset="0.94"
					[/missile_frame]
					[missile_frame]
						begin="150"
						end="200"
						halo="projectiles/whitemissile-impact-4.png"
						offset="0.96"
					[/missile_frame]
					[missile_frame]
						begin="200"
						end="250"
						halo="projectiles/whitemissile-impact-5.png"
						offset="0.98"
					[/missile_frame]
					[missile_frame]
						begin="250"
						end="300"
						halo="projectiles/whitemissile-impact-6.png"
						offset="1.0"
					[/missile_frame]
					[missile_frame]
						begin="300"
						end="350"
						halo="projectiles/whitemissile-impact-7.png"
						offset="1.02"
					[/missile_frame]
					[missile_frame]
						begin="350"
						end="400"
						halo="projectiles/whitemissile-impact-8.png"
						offset="1.04"
					[/missile_frame]
				[/if]
				[else]
					hits="no"
					[missile_frame]
						alpha=".8~0.0:200"
						begin="-200"
						end="0"
						image="projectiles/whitemissile-n.png"
						image_diagonal="projectiles/whitemissile-ne.png"
						offset="0.0~0.8"
					[/missile_frame]
				[/else]
				[frame]
					duration="50"
					halo="halo/saurian-magic-halo-1.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="60"
					halo="halo/saurian-magic-halo-2.png"
					image="units/saurians/augur-magic-1.png"
					sound="magicmissile.wav"
				[/frame]
				[frame]
					duration="70"
					halo="halo/saurian-magic-halo-3.png"
					image="units/saurians/augur-magic-2.png"
				[/frame]
				[frame]
					duration="80"
					halo="halo/saurian-magic-halo-4.png"
					image="units/saurians/augur-magic-2.png"
				[/frame]
				[frame]
					duration="90"
					halo="halo/saurian-magic-halo-5.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-6.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-7.png"
					image="units/saurians/augur.png"
				[/frame]
			[/attack_anim]
			[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="staff"
				[/filter_attack]
				[frame]
					duration="150"
					image="units/saurians/augur-melee-1.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						duration="100"
						image="units/saurians/augur-melee-2.png"
						sound="staff.wav"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						duration="100"
						image="units/saurians/augur-melee-2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					duration="100"
					image="units/saurians/augur-melee-3.png"
				[/frame]
				[frame]
					duration="90"
					image="units/saurians/augur-melee-4.png"
				[/frame]
				[frame]
					duration="80"
					image="units/saurians/augur-melee-5.png"
				[/frame]
				[frame]
					duration="50"
					image="units/saurians/augur-defend-1.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/saurians/augur-defend-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/saurians/augur-defend-2.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/saurians/augur-defend-2.png"
						sound="hiss-hit.wav"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/saurians/augur-defend-2.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/saurians/augur-defend-1.png"
				[/frame]
			[/defend]
			[healing_anim]
				start_time="-300"
				[frame]
					duration="50"
					halo="halo/saurian-magic-halo-1.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="60"
					halo="halo/saurian-magic-halo-2.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="70"
					halo="halo/saurian-magic-halo-3.png"
					image="units/saurians/augur-magic-2.png"
				[/frame]
				[frame]
					duration="80"
					halo="halo/saurian-magic-halo-4.png"
					image="units/saurians/augur-magic-2.png"
				[/frame]
				[frame]
					duration="90"
					halo="halo/saurian-magic-halo-5.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-6.png"
					image="units/saurians/augur-magic-1.png"
				[/frame]
				[frame]
					duration="100"
					halo="halo/saurian-magic-halo-7.png"
					image="units/saurians/augur.png"
				[/frame]
			[/healing_anim]
			[portrait]
				image="portraits/saurians/transparent/augur.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/saurians/transparent/augur.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="40"
				cave="40"
				deep_water="80"
				flat="60"
				forest="40"
				frozen="70"
				fungus="40"
				hills="40"
				impassable="40"
				mountains="40"
				reef="60"
				sand="40"
				shallow_water="60"
				swamp_water="40"
				unwalkable="80"
				village="50"
			[/defense]
			[movement_costs]
				castle="1"
				cave="1"
				deep_water="99"
				flat="1"
				forest="2"
				frozen="4"
				fungus="1"
				hills="1"
				impassable="99"
				mountains="2"
				reef="2"
				sand="1"
				shallow_water="3"
				swamp_water="1"
				unwalkable="99"
				village="1"
			[/movement_costs]
			[resistance]
				arcane="80"
				blade="110"
				cold="120"
				fire="120"
				impact="110"
				pierce="80"
			[/resistance]
			[abilities]
				[heals]
					affect_allies="yes"
					affect_self="no"
#textdomain wesnoth
					description=_ "Heals +4:
Allows the unit to heal adjacent allied units at the beginning of our turn.

A unit cared for by this healer may heal up to 4 HP per turn, or stop poison from taking effect for that turn.
A poisoned unit cannot be cured of its poison by a healer, and must seek the care of a village or a unit that can cure."
					female_name=_ "female^heals +4"
					id="healing"
					name=_ "heals +4"
					poison="slowed"
					value="4"
					[affect_adjacent]
						adjacent="n,ne,se,s,sw,nw"
					[/affect_adjacent]
				[/heals]
			[/abilities]
			[variables]
			[/variables]
			[status]
			[/status]
			[attack]
				damage="4"
#textdomain wesnoth-units
				description=_ "staff"
				icon="attacks/staff-magic.png"
				name="staff"
				number="2"
				range="melee"
				type="impact"
			[/attack]
			[attack]
				damage="5"
				description=_ "curse"
				icon="attacks/curse.png"
				name="curse"
				number="3"
				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]
			[modifications]
				[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]
				[trait]
					female_name=_ "female^intelligent"
					id="intelligent"
					male_name=_ "intelligent"
					name=_ "intelligent"
					[effect]
						apply_to="max_experience"
						increase="-20%"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
	[/side]
	[side]
		action_bonus_count="9"
		aggression="0.5"
		allow_player="yes"
		caution="0.25"
		colour="2"
		controller="network"
		countdown_time="270000"
		current_player="Gauteamus"
		disallow_observers="no"
		fog="yes"
		global_recruitment_pattern="fighter,fighter,archer,archer,mixed fighter,healer,scout"
		gold="12"
		hidden="no"
		id="Gauteamus2"
		income="0"
		leader_value="3"
		name="Gauteamus"
		no_leader="yes"
		number_of_possible_recruits_to_force_recruit="3.1"
		objectives=_ "Victory:
@Defeat enemy leader(s)"
		objectives_changed="yes"
		recruit="Elvish Archer,Elvish Fighter,Elvish Scout,Elvish Shaman,Mage,Merman Hunter,Wose"
		recruitment_pattern="fighter,fighter,archer,archer,mixed fighter,healer,scout"
		save_id="Gauteamus2"
		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,archer,mixed fighter,healer,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="6"
			y="15"
		[/village]
		[village]
			x="8"
			y="17"
		[/village]
		[village]
			x="11"
			y="16"
		[/village]
		[village]
			x="17"
			y="17"
		[/village]
		[unit]
			advances_to="Elvish Sharpshooter"
			alignment="neutral"
			allow_changes="yes"
			allow_player="yes"
			alpha="256"
			attacks_left="0"
			canrecruit="yes"
			colour="2"
			controller="network"
			cost="41"
			current_player="Gauteamus"
			die_sound="human-female-hit-1.ogg,human-female-hit-2.ogg,human-female-hit-3.ogg"
			experience="9"
			facing="n"
			flag_rgb="magenta"
			flying="no"
			fog="yes"
			gender="female"
			gold="100"
			goto_x="-999"
			goto_y="-999"
			hitpoints="31"
			id="Gauteamus2"
			image="units/elves-wood/marksman+female.png"
			income="0"
#textdomain wesnoth-units
			language_name=_ "female^Elvish Marksman"
			leader="Elvish Captain,Elvish Hero,Elvish Ranger,Elvish Marksman,Elvish Druid,Elvish Sorceress,White Mage,Red Mage,Elder Wose"
			level="2"
			max_attacks="1"
			max_experience="56"
			max_hitpoints="37"
			max_moves="6"
			movement="6"
			movement_type="woodland"
			moves="0"
			mp_countdown="yes"
			mp_countdown_action_bonus="20"
			mp_countdown_init_time="270"
			mp_countdown_reservoir_time="270"
			mp_countdown_turn_bonus="200"
			name="Gauteamus"
			profile="portraits/elves/marksman+female.png"
			race="elf"
			random_leader="Elvish Captain,Elvish Hero,Elvish Ranger,Elvish Marksman,Elvish Druid,Elvish Sorceress,Red Mage"
			random_traits="no"
			recruit="Elvish Fighter,Elvish Archer,Mage,Elvish Shaman,Elvish Scout,Wose,Merman Hunter"
			resting="yes"
			save_id="Gauteamus2"
			share_maps="no"
			share_view="yes"
			shroud="no"
			side="2"
			team_name="south"
			terrain_liked="Ff, Fa, Ss, Ww"
			type="Elvish Marksman"
			undead_variation="archer"
			underlying_id="2"
			unrenamable="no"
			upkeep="full"
			usage="archer"
			user_team_name="wesnoth-multiplayerteamname^South"
			village_gold="2"
			x="20"
			y="19"
			zoc="yes"
			[defense]
				castle="40"
				cave="70"
				deep_water="80"
				flat="60"
				forest="30"
				frozen="70"
				fungus="50"
				hills="50"
				impassable="70"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="3"
				deep_water="99"
				flat="1"
				forest="1"
				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="110"
				blade="100"
				cold="100"
				fire="100"
				impact="100"
				pierce="100"
			[/resistance]
			[portrait]
				image="portraits/elves/transparent/marksman+female.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image=" "
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[variables]
			[/variables]
			[status]
			[/status]
			[attack]
				damage="6"
				description=_ "sword"
				icon="attacks/sword-elven.png"
				name="sword"
				number="2"
				range="melee"
				type="blade"
			[/attack]
			[attack]
				damage="9"
				description=_ "longbow"
				icon="attacks/bow-elven-magic.png"
				name="longbow"
				number="4"
				range="ranged"
				type="pierce"
				[specials]
					[chance_to_hit]
						active_on="offense"
						cumulative="yes"
#textdomain wesnoth
						description=_ "Marksman:
When used offensively, this attack always has at least a 60% chance to hit."
						id="marksman"
						name=_ "marksman"
						value="60"
					[/chance_to_hit]
				[/specials]
			[/attack]
			[modifications]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Elvish Rider"
			alignment="neutral"
			alpha="256"
			attacks_left="1"
			cost="18"
			die_sound="horse-die.ogg"
			ellipse="misc/ellipse"
			experience="4"
			facing="s"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="25"
			id="Elvish Scout-9"
			image="units/elves-wood/scout.png"
#textdomain wesnoth-units
			language_name=_ "Elvish Scout"
			level="1"
			max_attacks="1"
			max_experience="18"
			max_hitpoints="30"
			max_moves="10"
			movement="9"
			movement_type="woodland"
			moves="10"
			name="Hith"
			profile="portraits/elves/scout.png"
			race="elf"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="2"
			type="Elvish Scout"
			undead_variation="mounted"
			underlying_id="9"
			unrenamable="no"
			upkeep="full"
			usage="scout"
			x="6"
			y="19"
			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="-300"
						image="units/elves-wood/scout-attack1.png"
						sound="bow.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-400"
						end="-300"
						image="units/elves-wood/scout-attack1.png"
						sound="bow-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-300"
					end="-50"
					image="units/elves-wood/scout-attack2.png"
				[/frame]
				[frame]
					begin="-50"
					end="50"
					image="units/elves-wood/scout-moving.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="sword"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-175"
					image="units/elves-wood/scout.png"
					sound="horse-elf-canter.wav"
				[/frame]
				[frame]
					begin="-175"
					end="-100"
					image="units/elves-wood/scout-moving.png"
				[/frame]
				[if]
					hits="no"
					[frame]
						begin="-100"
						end="100"
						image="units/elves-wood/scout-attack.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-100"
						end="100"
						image="units/elves-wood/scout-attack.png"
						sound="sword-1.ogg"
					[/frame]
				[/else]
				[frame]
					begin="100"
					end="200"
					image="units/elves-wood/scout-moving.png"
				[/frame]
				[frame]
					begin="200"
					end="250"
					image="units/elves-wood/scout.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/elves-wood/scout.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/scout-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/elves-wood/scout-defend.png"
						sound="horse-hit-1.ogg,horse-hit-2.ogg,horse-hit-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/elves-wood/scout-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/elves-wood/scout.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="125"
					image="units/elves-wood/scout-idle-1.png"
				[/frame]
				[frame]
					duration="125"
					image="units/elves-wood/scout-idle-2.png"
				[/frame]
				[frame]
					duration="125"
					image="units/elves-wood/scout-idle-3.png"
				[/frame]
				[frame]
					duration="125"
					image="units/elves-wood/scout-idle-4.png"
				[/frame]
				[frame]
					duration="125"
					image="units/elves-wood/scout-idle-5.png"
				[/frame]
				[frame]
					duration="125"
					image="units/elves-wood/scout-idle-6.png"
				[/frame]
				[frame]
					duration="125"
					image="units/elves-wood/scout-idle-7.png"
				[/frame]
				[frame]
					duration="125"
					image="units/elves-wood/scout-idle-8.png"
				[/frame]
				[frame]
					duration="125"
					image="units/elves-wood/scout-idle-7.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/scout-idle-8.png"
				[/frame]
				[frame]
					duration="175"
					image="units/elves-wood/scout-idle-7.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/scout-idle-8.png"
				[/frame]
				[frame]
					duration="175"
					image="units/elves-wood/scout-idle-9.png"
				[/frame]
				[frame]
					duration="175"
					image="units/elves-wood/scout-idle-10.png"
				[/frame]
				[frame]
					duration="175"
					image="units/elves-wood/scout-idle-11.png"
				[/frame]
				[frame]
					duration="175"
					image="units/elves-wood/scout-idle-12.png"
				[/frame]
				[frame]
					duration="175"
					image="units/elves-wood/scout-idle-13.png"
				[/frame]
				[frame]
					duration="175"
					image="units/elves-wood/scout-idle-14.png"
				[/frame]
				[frame]
					duration="175"
					image="units/elves-wood/scout-idle-15.png"
				[/frame]
				[frame]
					duration="175"
					image="units/elves-wood/scout-idle-16.png"
				[/frame]
			[/idle_anim]
			[movement_anim]
				[frame]
					begin="0"
					end="150"
					image="units/elves-wood/scout-moving.png"
				[/frame]
			[/movement_anim]
			[portrait]
				image="portraits/elves/transparent/scout.png"
				mirror="true"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/elves/transparent/scout.png"
				mirror="false"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="40"
				cave="70"
				deep_water="80"
				flat="60"
				forest="40"
				frozen="70"
				fungus="50"
				hills="50"
				impassable="70"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="60"
			[/defense]
			[movement_costs]
				castle="1"
				cave="3"
				deep_water="99"
				flat="1"
				forest="1"
				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="110"
				blade="100"
				cold="100"
				fire="100"
				impact="100"
				pierce="120"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="4"
				description=_ "sword"
				icon="attacks/sword-elven.png"
				name="sword"
				number="3"
				range="melee"
				type="blade"
			[/attack]
			[attack]
				damage="6"
				description=_ "bow"
				icon="attacks/bow-elven.png"
				name="bow"
				number="2"
				range="ranged"
				type="pierce"
			[/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^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="Elvish Ranger,Elvish Marksman"
			alignment="neutral"
			alpha="256"
			attacks_left="1"
			cost="17"
			die_sound="human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-1.ogg,elf-hit-2.ogg"
			ellipse="misc/ellipse"
			experience="0"
			facing="se"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="29"
			id="Elvish Archer-12"
			image="units/elves-wood/archer.png"
#textdomain wesnoth-units
			language_name=_ "Elvish Archer"
			level="1"
			max_attacks="1"
			max_experience="25"
			max_hitpoints="29"
			max_moves="6"
			movement="6"
			movement_type="woodland"
			moves="6"
			name="Unóriorfir"
			profile="portraits/elves/archer.png"
			race="elf"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="2"
			type="Elvish Archer"
			undead_variation="archer"
			underlying_id="12"
			unrenamable="no"
			upkeep="full"
			usage="archer"
			x="11"
			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]
				[frame]
					begin="-445"
					end="-380"
					image="units/elves-wood/archer-bow.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-380"
						end="-305"
						image="units/elves-wood/archer-bow-attack1.png"
						sound="bow.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-380"
						end="-305"
						image="units/elves-wood/archer-bow-attack1.png"
						sound="bow-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-305"
					end="-230"
					image="units/elves-wood/archer-bow-attack2.png"
				[/frame]
				[frame]
					begin="-230"
					end="-130"
					image="units/elves-wood/archer-bow-attack3.png"
				[/frame]
				[frame]
					begin="-130"
					end="0"
					image="units/elves-wood/archer-bow-attack4.png"
				[/frame]
				[frame]
					begin="0"
					end="65"
					image="units/elves-wood/archer-bow.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="sword"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-175"
					image="units/elves-wood/archer-sword.png"
				[/frame]
				[frame]
					begin="-175"
					end="-75"
					image="units/elves-wood/archer-sword-1.png"
				[/frame]
				[if]
					hits="no"
					[frame]
						begin="-75"
						end="75"
						image="units/elves-wood/archer-sword-2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-75"
						end="75"
						image="units/elves-wood/archer-sword-2.png"
						sound="sword-1.ogg"
					[/frame]
				[/else]
				[frame]
					begin="75"
					end="125"
					image="units/elves-wood/archer-sword-3.png"
				[/frame]
				[frame]
					begin="125"
					end="175"
					image="units/elves-wood/archer-sword-4.png"
				[/frame]
				[frame]
					begin="175"
					end="200"
					image="units/elves-wood/archer-sword.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[filter_attack]
					range="melee"
				[/filter_attack]
				[frame]
					duration="1"
					image="units/elves-wood/archer-sword.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-sword-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/elves-wood/archer-sword-defend.png"
						sound="human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-1.ogg,elf-hit-2.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/elves-wood/archer-sword-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/elves-wood/archer-sword.png"
				[/frame]
			[/defend]
			[defend]
				start_time="-126"
				[filter_attack]
					range="ranged"
				[/filter_attack]
				[frame]
					duration="1"
					image="units/elves-wood/archer-bow.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-bow-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/elves-wood/archer-bow-defend.png"
						sound="human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-1.ogg,elf-hit-2.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/elves-wood/archer-bow-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/elves-wood/archer-bow.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/elves-wood/archer-idle-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-4.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-5.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-6.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-4.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-5.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-6.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-4.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-5.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-6.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-1.png"
				[/frame]
			[/idle_anim]
			[portrait]
				image="portraits/elves/transparent/archer.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/elves/transparent/archer.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="40"
				cave="70"
				deep_water="80"
				flat="60"
				forest="30"
				frozen="70"
				fungus="50"
				hills="50"
				impassable="70"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="3"
				deep_water="99"
				flat="1"
				forest="1"
				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="110"
				blade="100"
				cold="100"
				fire="100"
				impact="100"
				pierce="100"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="5"
				description=_ "sword"
				icon="attacks/sword-elven.png"
				name="sword"
				number="2"
				range="melee"
				type="blade"
			[/attack]
			[attack]
				damage="6"
				description=_ "bow"
				icon="attacks/bow-elven.png"
				name="bow"
				number="4"
				range="ranged"
				type="pierce"
			[/attack]
			[modifications]
				[trait]
#textdomain wesnoth
					female_name=_ "female^dextrous"
					id="dextrous"
					male_name=_ "dextrous"
					name=_ "dextrous"
					[effect]
						apply_to="attack"
						increase_damage="1"
						range="ranged"
					[/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="Elvish Captain,Elvish Hero"
			alignment="neutral"
			alpha="256"
			attacks_left="1"
			cost="14"
			die_sound="human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-1.ogg,elf-hit-2.ogg"
			ellipse="misc/ellipse"
			experience="2"
			facing="nw"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="14"
			id="Elvish Fighter-13"
			image="units/elves-wood/fighter.png"
#textdomain wesnoth-units
			language_name=_ "Elvish Fighter"
			level="1"
			max_attacks="1"
			max_experience="22"
			max_hitpoints="34"
			max_moves="5"
			movement="5"
			movement_type="woodland"
			moves="5"
			name="Nil"
			profile="portraits/elves/fighter.png"
			race="elf"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="2"
			type="Elvish Fighter"
			underlying_id="13"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			x="7"
			y="12"
			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]
				[frame]
					begin="-445"
					end="-380"
					image="units/elves-wood/fighter-bow.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-380"
						end="-305"
						image="units/elves-wood/fighter-bow-attack1.png"
						sound="bow.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-380"
						end="-305"
						image="units/elves-wood/fighter-bow-attack1.png"
						sound="bow-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-305"
					end="-230"
					image="units/elves-wood/fighter-bow-attack2.png"
				[/frame]
				[frame]
					begin="-230"
					end="-130"
					image="units/elves-wood/fighter-bow-attack3.png"
				[/frame]
				[frame]
					begin="-130"
					end="0"
					image="units/elves-wood/fighter-bow-attack4.png"
				[/frame]
				[frame]
					begin="0"
					end="65"
					image="units/elves-wood/fighter-bow.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="sword"
				[/filter_attack]
				[frame]
					begin="-175"
					end="-100"
					image="units/elves-wood/fighter.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="100"
						image="units/elves-wood/fighter-melee-1.png"
						sound="sword-1.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="100"
						image="units/elves-wood/fighter-melee-1.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					begin="100"
					end="150"
					image="units/elves-wood/fighter-melee-2.png"
				[/frame]
				[frame]
					begin="150"
					end="175"
					image="units/elves-wood/fighter.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[filter_attack]
					range="melee"
				[/filter_attack]
				[frame]
					duration="1"
					image="units/elves-wood/fighter.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/fighter-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/elves-wood/fighter-defend.png"
						sound="human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-1.ogg,elf-hit-2.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/elves-wood/fighter-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/elves-wood/fighter.png"
				[/frame]
			[/defend]
			[defend]
				start_time="-126"
				[filter_attack]
					range="ranged"
				[/filter_attack]
				[frame]
					duration="1"
					image="units/elves-wood/fighter-bow.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/fighter-bow-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/elves-wood/fighter-bow-defend.png"
						sound="human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-1.ogg,elf-hit-2.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/elves-wood/fighter-bow-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/elves-wood/fighter-bow.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/elves-wood/fighter-idle-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/fighter-idle-2.png"
				[/frame]
				[frame]
					duration="125"
					image="units/elves-wood/fighter-idle-3.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/fighter-idle-4.png"
				[/frame]
				[frame]
					duration="175"
					image="units/elves-wood/fighter-idle-5.png"
				[/frame]
				[frame]
					duration="200"
					image="units/elves-wood/fighter-idle-6.png"
				[/frame]
				[frame]
					duration="200"
					image="units/elves-wood/fighter-idle-5.png"
				[/frame]
				[frame]
					duration="400"
					image="units/elves-wood/fighter-idle-6.png"
				[/frame]
				[frame]
					duration="175"
					image="units/elves-wood/fighter-idle-7.png"
				[/frame]
				[frame]
					duration="200"
					image="units/elves-wood/fighter-idle-8.png"
				[/frame]
				[frame]
					duration="250"
					image="units/elves-wood/fighter-idle-9.png"
				[/frame]
				[frame]
					duration="400"
					image="units/elves-wood/fighter-idle-10.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/fighter-idle-9.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/fighter-idle-11.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/fighter-idle-12.png"
				[/frame]
			[/idle_anim]
			[portrait]
				image="portraits/elves/transparent/fighter.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/elves/transparent/fighter.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="40"
				cave="70"
				deep_water="80"
				flat="60"
				forest="40"
				frozen="70"
				fungus="50"
				hills="50"
				impassable="70"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="3"
				deep_water="99"
				flat="1"
				forest="1"
				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="110"
				blade="100"
				cold="100"
				fire="100"
				impact="100"
				pierce="100"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="6"
				description=_ "sword"
				icon="attacks/sword-elven.png"
				name="sword"
				number="4"
				range="melee"
				type="blade"
			[/attack]
			[attack]
				damage="3"
				description=_ "bow"
				icon="attacks/bow-elven.png"
				name="bow"
				number="3"
				range="ranged"
				type="pierce"
			[/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^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="Elvish Druid,Elvish Sorceress"
			alignment="neutral"
			alpha="256"
			attacks_left="1"
			cost="15"
			die_sound="human-female-hit-1.ogg,human-female-hit-2.ogg,human-female-hit-3.ogg"
			ellipse="misc/ellipse"
			experience="0"
			facing="ne"
			flag_rgb="magenta"
			flying="no"
			gender="female"
			goto_x="-999"
			goto_y="-999"
			hitpoints="26"
			id="Elvish Shaman-15"
			image="units/elves-wood/shaman.png"
#textdomain wesnoth-units
			language_name=_ "female^Elvish Shaman"
			level="1"
			max_attacks="1"
			max_experience="22"
			max_hitpoints="26"
			max_moves="6"
			movement="5"
			movement_type="woodland"
			moves="6"
			name="Gioniolidiev"
			profile="portraits/elves/shaman.png~RIGHT()"
			race="elf"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="2"
			type="Elvish Shaman"
			underlying_id="15"
			unrenamable="no"
			upkeep="full"
			usage="healer"
			x="6"
			y="12"
			zoc="yes"
			[attack_anim]
				[filter_attack]
					name="entangle"
				[/filter_attack]
				[missile_frame]
					begin="-200"
					end="50"
					image="projectiles/entangle.png"
					image_diagonal="projectiles/entangle.png"
					offset="1.0"
				[/missile_frame]
				[frame]
					begin="-450"
					end="-375"
					halo="halo/elven/nature-halo1.png"
					halo_x="0"
					halo_y="-12"
					image="units/elves-wood/shaman.png"
				[/frame]
				[frame]
					begin="-375"
					end="-300"
					halo="halo/elven/nature-halo2.png"
					halo_x="0"
					halo_y="-12"
					image="units/elves-wood/shaman.png"
				[/frame]
				[frame]
					begin="-300"
					end="-225"
					halo="halo/elven/nature-halo3.png"
					halo_x="0"
					halo_y="-12"
					image="units/elves-wood/shaman.png"
				[/frame]
				[frame]
					begin="-225"
					end="-150"
					halo="halo/elven/nature-halo4.png"
					halo_x="0"
					halo_y="-12"
					image="units/elves-wood/shaman-attack2.png"
				[/frame]
				[frame]
					begin="-150"
					end="-75"
					halo="halo/elven/nature-halo5.png"
					halo_x="0"
					halo_y="-12"
					image="units/elves-wood/shaman-attack2.png"
				[/frame]
				[if]
					hits="hit"
					slowed_sound_start_time="-100"
					[filter_second]
						[not]
							[filter_wml]
								[status]
									slowed="yes"
								[/status]
							[/filter_wml]
						[/not]
					[/filter_second]
					[slowed_sound_frame]
						duration="100"
						sound="slowed.wav"
					[/slowed_sound_frame]
				[/if]
				[frame]
					begin="-75"
					end="0"
					halo="halo/elven/nature-halo6.png"
					halo_x="0"
					halo_y="-12"
					image="units/elves-wood/shaman-attack2.png"
					sound="entangle.wav"
				[/frame]
				[frame]
					begin="-0"
					end="50"
					halo="halo/elven/nature-halo7.png"
					halo_x="0"
					halo_y="-12"
					image="units/elves-wood/shaman.png"
				[/frame]
				[frame]
					begin="50"
					end="100"
					halo="halo/elven/nature-halo8.png"
					halo_x="0"
					halo_y="-12"
					image="units/elves-wood/shaman.png"
				[/frame]
				[frame]
					begin="100"
					end="150"
					image="units/elves-wood/shaman.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="staff"
				[/filter_attack]
				[frame]
					begin="-175"
					end="-100"
					image="units/elves-wood/shaman.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="100"
						image="units/elves-wood/shaman-attack.png"
						sound="staff.wav"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="100"
						image="units/elves-wood/shaman-attack.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					begin="100"
					end="175"
					image="units/elves-wood/shaman.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[frame]
					duration="1"
					image="units/elves-wood/shaman.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/shaman-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/elves-wood/shaman-defend.png"
						sound="human-female-hit-1.ogg,human-female-hit-2.ogg,human-female-hit-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/elves-wood/shaman-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/elves-wood/shaman.png"
				[/frame]
			[/defend]
			[healing_anim]
				start_time="-200"
				[frame]
					duration="55"
					image="units/elves-wood/shaman-heal1.png"
				[/frame]
				[frame]
					duration="55"
					image="units/elves-wood/shaman-heal2.png"
				[/frame]
				[frame]
					duration="55"
					halo="halo/elven/shaman-heal-halo-1.png"
					image="units/elves-wood/shaman-heal3.png"
				[/frame]
				[frame]
					duration="55"
					halo="halo/elven/shaman-heal-halo-2.png"
					image="units/elves-wood/shaman-heal4.png"
				[/frame]
				[frame]
					duration="55"
					halo="halo/elven/shaman-heal-halo-3.png"
					image="units/elves-wood/shaman-heal5.png"
				[/frame]
				[frame]
					duration="55"
					halo="halo/elven/shaman-heal-halo-4.png"
					image="units/elves-wood/shaman-heal6.png"
				[/frame]
				[frame]
					duration="55"
					halo="halo/elven/shaman-heal-halo-5.png"
					image="units/elves-wood/shaman-heal7.png"
				[/frame]
				[frame]
					duration="55"
					halo="halo/elven/shaman-heal-halo-6.png"
					image="units/elves-wood/shaman-heal8.png"
				[/frame]
				[frame]
					duration="55"
					halo="halo/elven/shaman-heal-halo-7.png"
					image="units/elves-wood/shaman-heal9.png"
				[/frame]
				[frame]
					duration="30"
					image="units/elves-wood/shaman-heal9.png"
				[/frame]
			[/healing_anim]
			[portrait]
				image="portraits/elves/transparent/shaman.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/elves/transparent/shaman.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="40"
				cave="70"
				deep_water="80"
				flat="60"
				forest="30"
				frozen="70"
				fungus="50"
				hills="50"
				impassable="70"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="3"
				deep_water="99"
				flat="1"
				forest="1"
				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="110"
				blade="100"
				cold="100"
				fire="100"
				impact="100"
				pierce="100"
			[/resistance]
			[abilities]
				[heals]
					affect_allies="yes"
					affect_self="no"
#textdomain wesnoth
					description=_ "Heals +4:
Allows the unit to heal adjacent allied units at the beginning of our turn.

A unit cared for by this healer may heal up to 4 HP per turn, or stop poison from taking effect for that turn.
A poisoned unit cannot be cured of its poison by a healer, and must seek the care of a village or a unit that can cure."
					female_name=_ "female^heals +4"
					id="healing"
					name=_ "heals +4"
					poison="slowed"
					value="4"
					[affect_adjacent]
						adjacent="n,ne,se,s,sw,nw"
					[/affect_adjacent]
				[/heals]
			[/abilities]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="4"
#textdomain wesnoth-units
				description=_ "staff"
				icon="attacks/druidstaff.png"
				name="staff"
				number="2"
				range="melee"
				type="impact"
			[/attack]
			[attack]
				damage="3"
				description=_ "entangle"
				name="entangle"
				number="2"
				range="ranged"
				type="impact"
				[specials]
					[slow]
#textdomain wesnoth
						description=_ "Slow:
This attack slows the target until it ends a turn. Slow halves the damage caused by attacks and the movement cost for a slowed unit is doubled. A unit that is slowed will feature a snail icon in its sidebar information when it is selected."
						id="slow"
						name=_ "slows"
					[/slow]
				[/specials]
			[/attack]
			[modifications]
				[trait]
					female_name=_ "female^strong"
					id="strong"
					male_name=_ "strong"
					name=_ "female^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=_ "female^quick"
					[effect]
						apply_to="movement"
						increase="1"
					[/effect]
					[effect]
						apply_to="hitpoints"
						increase_total="-5%"
					[/effect]
				[/trait]
			[/modifications]
		[/unit]
		[unit]
			advances_to="Elvish Ranger,Elvish Marksman"
			alignment="neutral"
			alpha="256"
			attacks_left="1"
			cost="17"
			die_sound="human-female-hit-1.ogg,human-female-hit-2.ogg,human-female-hit-3.ogg"
			ellipse="misc/ellipse"
			experience="0"
			facing="se"
			flag_rgb="magenta"
			flying="no"
			gender="female"
			goto_x="-999"
			goto_y="-999"
			hitpoints="30"
			id="Elvish Archer-16"
			image="units/elves-wood/archer+female.png"
#textdomain wesnoth-units
			language_name=_ "female^Elvish Archer"
			level="1"
			max_attacks="1"
			max_experience="31"
			max_hitpoints="30"
			max_moves="6"
			movement="6"
			movement_type="woodland"
			moves="6"
			name="Elorfiwiel"
			profile="portraits/elves/archer+female.png"
			race="elf"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="2"
			type="Elvish Archer"
			undead_variation="archer"
			underlying_id="16"
			unrenamable="no"
			upkeep="full"
			usage="archer"
			x="4"
			y="12"
			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]
				[frame]
					begin="-445"
					end="-380"
					image="units/elves-wood/archer+female-bow.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-380"
						end="-305"
						image="units/elves-wood/archer+female-bow-attack1.png"
						sound="bow.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-380"
						end="-305"
						image="units/elves-wood/archer+female-bow-attack1.png"
						sound="bow-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-305"
					end="-230"
					image="units/elves-wood/archer+female-bow-attack2.png"
				[/frame]
				[frame]
					begin="-230"
					end="-130"
					image="units/elves-wood/archer+female-bow-attack3.png"
				[/frame]
				[frame]
					begin="-130"
					end="0"
					image="units/elves-wood/archer+female-bow-attack4.png"
				[/frame]
				[frame]
					begin="0"
					end="65"
					image="units/elves-wood/archer+female-bow.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="sword"
				[/filter_attack]
				[frame]
					begin="-200"
					end="-175"
					image="units/elves-wood/archer+female-sword.png"
				[/frame]
				[frame]
					begin="-175"
					end="-75"
					image="units/elves-wood/archer+female-sword-1.png"
				[/frame]
				[if]
					hits="no"
					[frame]
						begin="-75"
						end="75"
						image="units/elves-wood/archer+female-sword-2.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="yes"
					[frame]
						begin="-75"
						end="75"
						image="units/elves-wood/archer+female-sword-2.png"
						sound="sword-1.ogg"
					[/frame]
				[/else]
				[frame]
					begin="75"
					end="125"
					image="units/elves-wood/archer+female-sword-3.png"
				[/frame]
				[frame]
					begin="125"
					end="175"
					image="units/elves-wood/archer+female-sword-4.png"
				[/frame]
				[frame]
					begin="175"
					end="200"
					image="units/elves-wood/archer+female-sword.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[filter_attack]
					range="melee"
				[/filter_attack]
				[frame]
					duration="1"
					image="units/elves-wood/archer+female-sword.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer+female-sword-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/elves-wood/archer+female-sword-defend.png"
						sound="human-female-hit-1.ogg,human-female-hit-2.ogg,human-female-hit-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/elves-wood/archer+female-sword-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/elves-wood/archer+female-sword.png"
				[/frame]
			[/defend]
			[defend]
				start_time="-126"
				[filter_attack]
					range="ranged"
				[/filter_attack]
				[frame]
					duration="1"
					image="units/elves-wood/archer+female-bow.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer+female-bow-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/elves-wood/archer+female-bow-defend.png"
						sound="human-female-hit-1.ogg,human-female-hit-2.ogg,human-female-hit-3.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/elves-wood/archer+female-bow-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/elves-wood/archer+female-bow.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/elves-wood/archer-idle-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-4.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-5.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-6.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-4.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-5.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-6.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-3.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-4.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-5.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-6.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-2.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/archer-idle-1.png"
				[/frame]
			[/idle_anim]
			[portrait]
				image="portraits/elves/transparent/archer+female.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/elves/transparent/archer+female.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="40"
				cave="70"
				deep_water="80"
				flat="60"
				forest="30"
				frozen="70"
				fungus="50"
				hills="50"
				impassable="70"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="3"
				deep_water="99"
				flat="1"
				forest="1"
				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="110"
				blade="100"
				cold="100"
				fire="100"
				impact="100"
				pierce="100"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="6"
				description=_ "sword"
				icon="attacks/sword-elven.png"
				name="sword"
				number="2"
				range="melee"
				type="blade"
			[/attack]
			[attack]
				damage="6"
				description=_ "bow"
				icon="attacks/bow-elven.png"
				name="bow"
				number="4"
				range="ranged"
				type="pierce"
			[/attack]
			[modifications]
				[trait]
#textdomain wesnoth
					female_name=_ "female^dextrous"
					id="dextrous"
					male_name=_ "dextrous"
					name=_ "female^dextrous"
					[effect]
						apply_to="attack"
						increase_damage="1"
						range="ranged"
					[/effect]
				[/trait]
				[trait]
					female_name=_ "female^strong"
					id="strong"
					male_name=_ "strong"
					name=_ "female^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="Elvish Captain,Elvish Hero"
			alignment="neutral"
			alpha="256"
			attacks_left="1"
			cost="14"
			die_sound="human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-1.ogg,elf-hit-2.ogg"
			ellipse="misc/ellipse"
			experience="0"
			facing="se"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="38"
			id="Elvish Fighter-20"
			image="units/elves-wood/fighter.png"
#textdomain wesnoth-units
			language_name=_ "Elvish Fighter"
			level="1"
			max_attacks="1"
			max_experience="22"
			max_hitpoints="38"
			max_moves="5"
			movement="5"
			movement_type="woodland"
			moves="5"
			name="Urálithral"
			profile="portraits/elves/fighter.png"
			race="elf"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="2"
			type="Elvish Fighter"
			underlying_id="20"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			x="9"
			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]
				[frame]
					begin="-445"
					end="-380"
					image="units/elves-wood/fighter-bow.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-380"
						end="-305"
						image="units/elves-wood/fighter-bow-attack1.png"
						sound="bow.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-380"
						end="-305"
						image="units/elves-wood/fighter-bow-attack1.png"
						sound="bow-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-305"
					end="-230"
					image="units/elves-wood/fighter-bow-attack2.png"
				[/frame]
				[frame]
					begin="-230"
					end="-130"
					image="units/elves-wood/fighter-bow-attack3.png"
				[/frame]
				[frame]
					begin="-130"
					end="0"
					image="units/elves-wood/fighter-bow-attack4.png"
				[/frame]
				[frame]
					begin="0"
					end="65"
					image="units/elves-wood/fighter-bow.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="sword"
				[/filter_attack]
				[frame]
					begin="-175"
					end="-100"
					image="units/elves-wood/fighter.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="100"
						image="units/elves-wood/fighter-melee-1.png"
						sound="sword-1.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="100"
						image="units/elves-wood/fighter-melee-1.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					begin="100"
					end="150"
					image="units/elves-wood/fighter-melee-2.png"
				[/frame]
				[frame]
					begin="150"
					end="175"
					image="units/elves-wood/fighter.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[filter_attack]
					range="melee"
				[/filter_attack]
				[frame]
					duration="1"
					image="units/elves-wood/fighter.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/fighter-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/elves-wood/fighter-defend.png"
						sound="human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-1.ogg,elf-hit-2.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/elves-wood/fighter-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/elves-wood/fighter.png"
				[/frame]
			[/defend]
			[defend]
				start_time="-126"
				[filter_attack]
					range="ranged"
				[/filter_attack]
				[frame]
					duration="1"
					image="units/elves-wood/fighter-bow.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/fighter-bow-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/elves-wood/fighter-bow-defend.png"
						sound="human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-1.ogg,elf-hit-2.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/elves-wood/fighter-bow-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/elves-wood/fighter-bow.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/elves-wood/fighter-idle-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/fighter-idle-2.png"
				[/frame]
				[frame]
					duration="125"
					image="units/elves-wood/fighter-idle-3.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/fighter-idle-4.png"
				[/frame]
				[frame]
					duration="175"
					image="units/elves-wood/fighter-idle-5.png"
				[/frame]
				[frame]
					duration="200"
					image="units/elves-wood/fighter-idle-6.png"
				[/frame]
				[frame]
					duration="200"
					image="units/elves-wood/fighter-idle-5.png"
				[/frame]
				[frame]
					duration="400"
					image="units/elves-wood/fighter-idle-6.png"
				[/frame]
				[frame]
					duration="175"
					image="units/elves-wood/fighter-idle-7.png"
				[/frame]
				[frame]
					duration="200"
					image="units/elves-wood/fighter-idle-8.png"
				[/frame]
				[frame]
					duration="250"
					image="units/elves-wood/fighter-idle-9.png"
				[/frame]
				[frame]
					duration="400"
					image="units/elves-wood/fighter-idle-10.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/fighter-idle-9.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/fighter-idle-11.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/fighter-idle-12.png"
				[/frame]
			[/idle_anim]
			[portrait]
				image="portraits/elves/transparent/fighter.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/elves/transparent/fighter.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="40"
				cave="70"
				deep_water="80"
				flat="60"
				forest="40"
				frozen="70"
				fungus="50"
				hills="50"
				impassable="70"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="3"
				deep_water="99"
				flat="1"
				forest="1"
				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="110"
				blade="100"
				cold="100"
				fire="100"
				impact="100"
				pierce="100"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="5"
				description=_ "sword"
				icon="attacks/sword-elven.png"
				name="sword"
				number="4"
				range="melee"
				type="blade"
			[/attack]
			[attack]
				damage="3"
				description=_ "bow"
				icon="attacks/bow-elven.png"
				name="bow"
				number="3"
				range="ranged"
				type="pierce"
			[/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="Elvish Captain,Elvish Hero"
			alignment="neutral"
			alpha="256"
			attacks_left="1"
			cost="14"
			die_sound="human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-1.ogg,elf-hit-2.ogg"
			ellipse="misc/ellipse"
			experience="0"
			facing="sw"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="38"
			id="Elvish Fighter-28"
			image="units/elves-wood/fighter.png"
#textdomain wesnoth-units
			language_name=_ "Elvish Fighter"
			level="1"
			max_attacks="1"
			max_experience="22"
			max_hitpoints="38"
			max_moves="5"
			movement="5"
			movement_type="woodland"
			moves="5"
			name="Caláriond"
			profile="portraits/elves/fighter.png"
			race="elf"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="2"
			type="Elvish Fighter"
			underlying_id="28"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			x="5"
			y="12"
			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]
				[frame]
					begin="-445"
					end="-380"
					image="units/elves-wood/fighter-bow.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-380"
						end="-305"
						image="units/elves-wood/fighter-bow-attack1.png"
						sound="bow.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-380"
						end="-305"
						image="units/elves-wood/fighter-bow-attack1.png"
						sound="bow-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-305"
					end="-230"
					image="units/elves-wood/fighter-bow-attack2.png"
				[/frame]
				[frame]
					begin="-230"
					end="-130"
					image="units/elves-wood/fighter-bow-attack3.png"
				[/frame]
				[frame]
					begin="-130"
					end="0"
					image="units/elves-wood/fighter-bow-attack4.png"
				[/frame]
				[frame]
					begin="0"
					end="65"
					image="units/elves-wood/fighter-bow.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="sword"
				[/filter_attack]
				[frame]
					begin="-175"
					end="-100"
					image="units/elves-wood/fighter.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="100"
						image="units/elves-wood/fighter-melee-1.png"
						sound="sword-1.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="100"
						image="units/elves-wood/fighter-melee-1.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					begin="100"
					end="150"
					image="units/elves-wood/fighter-melee-2.png"
				[/frame]
				[frame]
					begin="150"
					end="175"
					image="units/elves-wood/fighter.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[filter_attack]
					range="melee"
				[/filter_attack]
				[frame]
					duration="1"
					image="units/elves-wood/fighter.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/fighter-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/elves-wood/fighter-defend.png"
						sound="human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-1.ogg,elf-hit-2.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/elves-wood/fighter-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/elves-wood/fighter.png"
				[/frame]
			[/defend]
			[defend]
				start_time="-126"
				[filter_attack]
					range="ranged"
				[/filter_attack]
				[frame]
					duration="1"
					image="units/elves-wood/fighter-bow.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/fighter-bow-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/elves-wood/fighter-bow-defend.png"
						sound="human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-1.ogg,elf-hit-2.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/elves-wood/fighter-bow-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/elves-wood/fighter-bow.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/elves-wood/fighter-idle-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/fighter-idle-2.png"
				[/frame]
				[frame]
					duration="125"
					image="units/elves-wood/fighter-idle-3.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/fighter-idle-4.png"
				[/frame]
				[frame]
					duration="175"
					image="units/elves-wood/fighter-idle-5.png"
				[/frame]
				[frame]
					duration="200"
					image="units/elves-wood/fighter-idle-6.png"
				[/frame]
				[frame]
					duration="200"
					image="units/elves-wood/fighter-idle-5.png"
				[/frame]
				[frame]
					duration="400"
					image="units/elves-wood/fighter-idle-6.png"
				[/frame]
				[frame]
					duration="175"
					image="units/elves-wood/fighter-idle-7.png"
				[/frame]
				[frame]
					duration="200"
					image="units/elves-wood/fighter-idle-8.png"
				[/frame]
				[frame]
					duration="250"
					image="units/elves-wood/fighter-idle-9.png"
				[/frame]
				[frame]
					duration="400"
					image="units/elves-wood/fighter-idle-10.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/fighter-idle-9.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/fighter-idle-11.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/fighter-idle-12.png"
				[/frame]
			[/idle_anim]
			[portrait]
				image="portraits/elves/transparent/fighter.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/elves/transparent/fighter.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="40"
				cave="70"
				deep_water="80"
				flat="60"
				forest="40"
				frozen="70"
				fungus="50"
				hills="50"
				impassable="70"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="3"
				deep_water="99"
				flat="1"
				forest="1"
				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="110"
				blade="100"
				cold="100"
				fire="100"
				impact="100"
				pierce="100"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="5"
				description=_ "sword"
				icon="attacks/sword-elven.png"
				name="sword"
				number="4"
				range="melee"
				type="blade"
			[/attack]
			[attack]
				damage="3"
				description=_ "bow"
				icon="attacks/bow-elven.png"
				name="bow"
				number="3"
				range="ranged"
				type="pierce"
			[/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="Elvish Captain,Elvish Hero"
			alignment="neutral"
			alpha="256"
			attacks_left="1"
			cost="14"
			die_sound="human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-1.ogg,elf-hit-2.ogg"
			ellipse="misc/ellipse"
			experience="0"
			facing="sw"
			flag_rgb="magenta"
			flying="no"
			gender="male"
			goto_x="-999"
			goto_y="-999"
			hitpoints="38"
			id="Elvish Fighter-31"
			image="units/elves-wood/fighter.png"
#textdomain wesnoth-units
			language_name=_ "Elvish Fighter"
			level="1"
			max_attacks="1"
			max_experience="28"
			max_hitpoints="38"
			max_moves="5"
			movement="5"
			movement_type="woodland"
			moves="5"
			name="Isarandelas"
			profile="portraits/elves/fighter.png"
			race="elf"
			random_gender="no"
			random_traits="no"
			resting="yes"
			side="2"
			type="Elvish Fighter"
			underlying_id="31"
			unrenamable="no"
			upkeep="full"
			usage="fighter"
			x="8"
			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]
				[frame]
					begin="-445"
					end="-380"
					image="units/elves-wood/fighter-bow.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-380"
						end="-305"
						image="units/elves-wood/fighter-bow-attack1.png"
						sound="bow.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-380"
						end="-305"
						image="units/elves-wood/fighter-bow-attack1.png"
						sound="bow-miss.ogg"
					[/frame]
				[/else]
				[frame]
					begin="-305"
					end="-230"
					image="units/elves-wood/fighter-bow-attack2.png"
				[/frame]
				[frame]
					begin="-230"
					end="-130"
					image="units/elves-wood/fighter-bow-attack3.png"
				[/frame]
				[frame]
					begin="-130"
					end="0"
					image="units/elves-wood/fighter-bow-attack4.png"
				[/frame]
				[frame]
					begin="0"
					end="65"
					image="units/elves-wood/fighter-bow.png"
				[/frame]
			[/attack_anim]
			[attack_anim]
				[filter_attack]
					name="sword"
				[/filter_attack]
				[frame]
					begin="-175"
					end="-100"
					image="units/elves-wood/fighter.png"
				[/frame]
				[if]
					hits="yes"
					[frame]
						begin="-100"
						end="100"
						image="units/elves-wood/fighter-melee-1.png"
						sound="sword-1.ogg"
					[/frame]
				[/if]
				[else]
					hits="no"
					[frame]
						begin="-100"
						end="100"
						image="units/elves-wood/fighter-melee-1.png"
						sound="miss-1.ogg,miss-2.ogg,miss-3.ogg"
					[/frame]
				[/else]
				[frame]
					begin="100"
					end="150"
					image="units/elves-wood/fighter-melee-2.png"
				[/frame]
				[frame]
					begin="150"
					end="175"
					image="units/elves-wood/fighter.png"
				[/frame]
			[/attack_anim]
			[defend]
				start_time="-126"
				[filter_attack]
					range="melee"
				[/filter_attack]
				[frame]
					duration="1"
					image="units/elves-wood/fighter.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/fighter-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/elves-wood/fighter-defend.png"
						sound="human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-1.ogg,elf-hit-2.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/elves-wood/fighter-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/elves-wood/fighter.png"
				[/frame]
			[/defend]
			[defend]
				start_time="-126"
				[filter_attack]
					range="ranged"
				[/filter_attack]
				[frame]
					duration="1"
					image="units/elves-wood/fighter-bow.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/fighter-bow-defend.png"
				[/frame]
				[if]
					hits="hit"
					[frame]
						duration="150"
						image="units/elves-wood/fighter-bow-defend.png"
						sound="human-hit-1.ogg,human-hit-2.ogg,human-hit-3.ogg,human-hit-4.ogg,elf-hit-1.ogg,elf-hit-2.ogg"
					[/frame]
				[/if]
				[else]
					hits="miss,kill"
					[frame]
						duration="150"
						image="units/elves-wood/fighter-bow-defend.png"
					[/frame]
				[/else]
				[frame]
					duration="1"
					image="units/elves-wood/fighter-bow.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/elves-wood/fighter-idle-1.png"
				[/frame]
				[frame]
					duration="100"
					image="units/elves-wood/fighter-idle-2.png"
				[/frame]
				[frame]
					duration="125"
					image="units/elves-wood/fighter-idle-3.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/fighter-idle-4.png"
				[/frame]
				[frame]
					duration="175"
					image="units/elves-wood/fighter-idle-5.png"
				[/frame]
				[frame]
					duration="200"
					image="units/elves-wood/fighter-idle-6.png"
				[/frame]
				[frame]
					duration="200"
					image="units/elves-wood/fighter-idle-5.png"
				[/frame]
				[frame]
					duration="400"
					image="units/elves-wood/fighter-idle-6.png"
				[/frame]
				[frame]
					duration="175"
					image="units/elves-wood/fighter-idle-7.png"
				[/frame]
				[frame]
					duration="200"
					image="units/elves-wood/fighter-idle-8.png"
				[/frame]
				[frame]
					duration="250"
					image="units/elves-wood/fighter-idle-9.png"
				[/frame]
				[frame]
					duration="400"
					image="units/elves-wood/fighter-idle-10.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/fighter-idle-9.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/fighter-idle-11.png"
				[/frame]
				[frame]
					duration="150"
					image="units/elves-wood/fighter-idle-12.png"
				[/frame]
			[/idle_anim]
			[portrait]
				image="portraits/elves/transparent/fighter.png"
				mirror="false"
				side="left"
				size="400"
			[/portrait]
			[portrait]
				image="portraits/elves/transparent/fighter.png"
				mirror="true"
				side="right"
				size="400"
			[/portrait]
			[defense]
				castle="40"
				cave="70"
				deep_water="80"
				flat="60"
				forest="40"
				frozen="70"
				fungus="50"
				hills="50"
				impassable="70"
				mountains="40"
				reef="70"
				sand="70"
				shallow_water="80"
				swamp_water="70"
				unwalkable="80"
				village="40"
			[/defense]
			[movement_costs]
				castle="1"
				cave="3"
				deep_water="99"
				flat="1"
				forest="1"
				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="110"
				blade="100"
				cold="100"
				fire="100"
				impact="100"
				pierce="100"
			[/resistance]
			[variables]
			[/variables]
			[status]
				hidden="yes"
			[/status]
			[attack]
				damage="5"
				description=_ "sword"
				icon="attacks/sword-elven.png"
				name="sword"
				number="4"
				range="melee"
				type="blade"
			[/attack]
			[attack]
				damage="4"
				description=_ "bow"
				icon="attacks/bow-elven.png"
				name="bow"
				number="3"
				range="ranged"
				type="pierce"
			[/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^dextrous"
					id="dextrous"
					male_name=_ "dextrous"
					name=_ "dextrous"
					[effect]
						apply_to="attack"
						increase_damage="1"
						range="ranged"
					[/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="10"
		side_number="2"
		turn_number="16"
	[/variables]
	[player]
		can_recruit="Elvish Archer,Elvish Fighter,Elvish Scout,Elvish Shaman,Mage,Merman Hunter,Wose"
		gold="-1"
		gold_add="no"
		save_id="Gauteamus2"
	[/player]
	[player]
		can_recruit="Drake Burner,Drake Clasher,Drake Fighter,Drake Glider,Saurian Augur,Saurian Skirmisher"
		gold="-1"
		gold_add="no"
		save_id="KnightKunibert1"
	[/player]
[/snapshot]
[replay_start]
	current_tod="0"
#textdomain wesnoth-multiplayer
	description=_ "This vital supply route has played a key role in many of Wesnoth's greatest battles."
	experience_modifier="70"
	hash="ni><w8>Ksy9E6lpej<-R7zqNgF0HH1GU14mLcPs+Y0>x<lui3JMr96tqaCJ+gLs7vdDsR,OV+p41UARdwDMp8w8hABAeHRqXh0zHL5LEGp<BJU2ovj4yzohfX.yffdE0"
	id="multiplayer_Weldyn_Channel"
	map_data="border_size=1
usage=map

Ss          , Hh          , Rp          , Ss          , Gs^Fp       , Hh          , Rp          , Rp          , Hh          , Ss          , Ss          , Gg          , Hh          , Hh          , Gs^Fms      , Ss          , Gg          , Hh          , Ww          , Ww          , Wo          , Wo          , Ww          , Wwf         , Hh          , Hh          , Hh          , Hh          , Ss          , Hh          , Hh          
Gg          , Gg^Fet      , Rp          , Mm          , Gs^Fp       , Ss          , Rp          , Gs^Fp       , Gg^Fet      , Gs^Fms      , Mm          , Gs^Fp       , Gg          , Gs^Fds      , Hh          , Gs^Fp       , Hh          , Gg          , Ww          , Wo          , Wo          , Ww          , Gs^Fp       , Gg^Fet      , Gs^Fms      , Mm          , Ss          , Mm          , Hh          , Gs^Fp       , Ss          
Gg          , Gg          , Gg          , Rp          , Rp          , Rp          , Gg          , Gg^Ve       , Gg          , Hh          , Gg          , Gg          , Re          , Gg          , Re          , Ch          , Mm          , Ww          , Wo          , Wo          , Ww          , Ww          , Mm          , Ss          , Ss^Vhs      , Hh          , Gs^Fp       , Hh          , Gs^Fms      , Gg^Fet      , Gg          
Gs^Fms      , Gg          , Gg          , Gg          , Rp          , Gg          , Gg          , Gg          , Re          , Mm          , Re          , Re          , Re          , Re          , Ch          , 1 Kh        , Ch          , Ww          , Ww          , Ww          , Gs^Fp       , Hh          , Hh          , Gs^Fp       , Gg          , Gg          , Gg          , Gg          , Gg          , Hh          , Gg          
Hh          , Gs^Fp       , Rp          , Rp          , Re^Uf       , Gs^Fds      , Re          , Re          , Gg          , Re          , Gg          , Gg          , Gg          , Kh          , Gg          , Ch          , Wwf         , Kh          , Ww^Bw\      , Gg          , Gg          , Gg          , Gg          , Gg          , Re          , Re^Uf       , Mm          , Gg          , Gg          , Gg          , Gg          
Hh          , Hh          , Rp          , Mm          , Gs^Fp       , Re          , Re          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Ww          , Ww          , Wwf         , Gg          , Gg          , Gg          , Gg          , Gg^Vh       , Gg          , Re          , Ss          , Hh          , Gs^Fp       , Re          , Gg          , Gg          
Gs^Fp       , Rp          , Mm          , Hh          , Re          , Re          , Gg          , Gg          , Gg          , Gg          , Gg^Uf       , Hh          , Hh          , Gg^Ve       , Ww          , Ww          , Ww          , Gg          , Ss          , Gs^Fp       , Gg          , Gg          , Gg          , Gg          , Gg          , Re          , Re          , Re^Uf       , Re          , Gg          , Gg          
Rp          , Rp          , Re          , Re          , Gg          , Gg          , Gg^Vh       , Gg          , Gg          , Gs^Fds      , Hh          , Mm          , Gg          , Gs^Fp       , Ww          , Wo          , Ww          , Gg          , Gs^Fp       , Ss^Vhs      , Ww          , Mm          , Hh          , Gg          , Gg^Ve       , Gs^Fms      , Gg          , Re          , Gg          , Gg          , Gg          
Gs^Fp       , Re          , Re          , Gg          , Gs^Fp       , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Ww          , Ww          , Wo          , Wo          , Wo          , Ww          , Ww          , Ww          , Ww          , Wwf         , Rp          , Gg          , Gg          , Gg          , Gg          , Gg          , Mm          , Gg^Uf       , Hh          
Gg          , Re          , Re          , Hh          , Ss          , Ggf^Uf      , Gg          , Gg          , Gs^Fms      , Ggf         , Gg          , Gg          , Ww          , Ww          , Wo          , Wo          , Mm^Xm       , Wo          , Wo          , Wo          , Ww          , Wwf         , Wwf         , Rp          , Rp          , Gg          , Gs^Fp       , Hh          , Gg^Fet      , Hh          , Gg          
Wwf         , Gg          , Gg          , Gs^Fms      , Mm          , Hh          , Hh          , Gg          , Gg          , Mm          , Hh          , Ww          , Ww          , Wo          , Wo          , Hh          , Mm^Xm       , Wo          , Wo          , Wo          , Ww          , Gs^Fp       , Rp          , Wwf         , Wwf         , Gg          , Rp          , Rp          , Rp          , Gg          , Gg          
Rp          , Wwf         , Wwf         , Gg          , Wwf         , Wwf         , Wwf         , Rp          , Gg          , Hh          , Ww          , Ww          , Wo          , Ww          , Wwr         , Mm^Xm       , Wwr         , Wo          , Wo          , Ww          , Ww          , Gg          , Gg          , Rp          , Wwf         , Rp          , Wwf         , Wwf         , Wwf         , Rp          , Rp          
Gg          , Rp          , Rp          , Wwf         , Rp          , Rp          , Wwf         , Rp          , Rp          , Gg          , Ww          , Ww          , Wo          , Wo          , Mm^Xm       , Mm^Xm       , Wo          , Ww          , Ww          , Ww          , Hh          , Hh          , Gg          , Rp          , Hh          , Wwf         , Mm          , Gg          , Gg          , Wwf         , Wwf         
Gs^Fds      , Gg          , Gg^Fet      , Rp          , Gs^Fms      , Gg          , Rp          , Wwf         , Wwf         , Gs^Fp       , Ww          , Wo          , Wo          , Wo          , Mm^Xm       , Hh          , Wo          , Wo          , Ww          , Ww          , Gg          , Mm          , Gs^Fms      , Gg          , Gg          , Hh          , Ss          , Gs^Fp       , Re          , Gg          , Gg          
Hh          , Hh          , Mm          , Hh          , Gg          , Gg          , Gg          , Rp          , Rp          , Wwf         , Ww          , Wo          , Ww          , Wo          , Wo          , Wo          , Wo          , Ww          , Ww          , Gg          , Gg          , Ggf         , Gg          , Gg          , Gg          , Ggf^Uf      , Gg^Fet      , Hh          , Re          , Re          , Gs^Fp       
Gs^Fds      , Ggf^Uf      , Gg          , Gg          , Gg          , Gg          , Gg^Ve       , Gg          , Hh          , Wwf         , Ww          , Ww          , Gs^Fp       , Ww          , Ww          , Wo          , Ww          , Ww          , Gg          , Gg          , Hh          , Gg          , Gg          , Gg          , Gg^Vh       , Gg          , Gg          , Gg          , Re          , Re          , Rp          
Gg          , Gg          , Re          , Re          , Re          , Gs^Fms      , Gg          , Gg          , Gg          , Mm          , Gg          , Ss^Vhs      , Ss          , Gg          , Ww          , Wo          , Ww          , Gs^Fp       , Hh          , Mm          , Ggf^Uf      , Gs^Fp       , Gg          , Gg          , Gg          , Gg          , Re          , Re          , Mm          , Rp          , Gs^Fp       
Gg          , Gg          , Re          , Re^Uf       , Hh          , Re          , Re          , Gg          , Gg^Vh       , Gg          , Gg          , Gs^Fp       , Gg          , Gg          , Ww          , Ww          , Gg          , Gg^Ve       , Gg          , Hh          , Gg          , Gg          , Gg          , Gg          , Ggf         , Re          , Gs^Fds      , Hh          , Rp          , Rp          , Hh          
Gg          , Gg          , Gg          , Gs^Fp       , Mm          , Ss          , Re          , Gg          , Gg          , Gg          , Gg          , Gg          , Ww^Bw\      , Wwf         , Wwf         , Ww          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Gg          , Re          , Re          , Re^Uf       , Mm          , Rp          , Hh          , Hh          
Gg          , Gg          , Gg          , Gg          , Gg          , Re^Uf       , Gg          , Gg          , Hh          , Gg          , Gs^Fp       , Gg          , Ww          , Kh          , Ch          , Ch          , Ch          , Kh          , Gg          , Gg          , Re          , Re          , Re          , Re          , Gg          , Gs^Fp       , Rp          , Rp          , Gg          , Gs^Fms      , Gg          
Gs^Fds      , Gg          , Gs^Fp       , Gg          , Gs^Fp       , Gg          , Ss^Vhs      , Gs^Fp       , Mm          , Hh          , Ww          , Ww          , Wo          , Ww          , Mm          , 2 Kh        , Re          , Re          , Re          , Re          , Gg          , Gg^Ve       , Gg          , Gg          , Gg          , Gg          , Rp          , Gg          , Gg          , Gg          , Gg          
Ss          , Gg^Fet      , Ss          , Hh          , Mm          , Hh          , Gs^Fms      , Ss          , Gs^Fp       , Ww          , Wo          , Wo          , Ww          , Ww          , Hh          , Ch          , Gs^Fds      , Gg          , Gs^Fms      , Mm          , Gg^Fet      , Hh          , Mm          , Hh          , Rp          , Rp          , Gs^Fp       , Rp          , Rp          , Gg          , Gg          
Hh          , Hh          , Gs^Fms      , Gs^Fp       , Hh          , Ss          , Mm          , Gg^Fet      , Ww          , Ww          , Wo          , Wo          , Ww          , Hh          , Gs^Fp       , Gg^Fet      , Gs^Fms      , Hh          , Mm          , Hh          , Gs^Fp       , Ss          , Hh          , Gs^Fp       , Rp          , Ss          , Ss          , Hh          , Mm          , Rp          , Gg          
Hh          , Gs^Fms      , Hh          , Ss          , Hh          , Hh          , Wwf         , Ww          , Wo          , Wo          , Ww          , Ww          , Hh          , Gg          , Hh          , Hh          , Ss          , Hh          , Hh          , Gs^Fms      , Ss          , Hh          , Rp          , Rp          , Gg          , Hh          , Hh          , Gs^Fp       , Ss          , Rp          , Hh          
"
	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 - Weldyn Channel"
	next_underlying_unit_id="0"
#textdomain wesnoth
	objectives=_ "Victory:
@Defeat enemy leader(s)"
	observer="yes"
	random_seed="1777746388"
	random_start_time="no"
	scenario="Ladder KnightKunibert"
	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="KnightKunibert"
		flag_rgb="magenta"
		fog="yes"
		gender="male"
		gold="100"
		id="KnightKunibert1"
		image="units/drakes/flare.png"
		income="0"
		leader="Drake Flare,Fire Drake,Drake Slasher,Drake Gladiator,Drake Warrior,Saurian Oracle,Saurian Soothsayer"
		mp_countdown="yes"
		mp_countdown_action_bonus="20"
		mp_countdown_init_time="270"
		mp_countdown_reservoir_time="270"
		mp_countdown_turn_bonus="200"
		name="KnightKunibert"
		random_leader="Drake Flare,Fire Drake,Drake Slasher,Drake Gladiator,Drake Warrior"
		recruit="Drake Burner,Drake Clasher,Drake Glider,Drake Fighter,Saurian Skirmisher,Saurian Augur"
		save_id="KnightKunibert1"
		share_maps="no"
		share_view="yes"
		shroud="no"
		side="1"
		team_name="north"
		terrain_liked="Hh, Ha, Ds, Ss"
		type="Drake Gladiator"
		user_team_name="wesnoth-multiplayerteamname^North"
		village_gold="2"
		[ai]
			recruitment_pattern="fighter,fighter,archer,healer,scout,scout"
			villages_per_scout="8"
			[team_formula]
				rulebase="fai 'recruitment.fai'
		# ===== Some general functions used later ==== #

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

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

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

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

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

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

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

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

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

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

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

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

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

#returns average defense of the unit #

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

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

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

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


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


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

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

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

# ==2== based on village possession #

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

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

# multipled by 1000 to increase precision #

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

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

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

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

#==1==  basic evaluation #

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

faiend
"
			[/team_formula]
		[/ai]
		[ai]
			villages_per_scout="8"
		[/ai]
	[/side]
	[side]
		allow_changes="yes"
		allow_player="yes"
		canrecruit="yes"
		colour="2"
		controller="network"
		current_player="Gauteamus"
		flag_rgb="magenta"
		fog="yes"
		gender="female"
		gold="100"
		id="Gauteamus2"
		image="units/elves-wood/captain.png"
		income="0"
		leader="Elvish Captain,Elvish Hero,Elvish Ranger,Elvish Marksman,Elvish Druid,Elvish Sorceress,White Mage,Red Mage,Elder Wose"
		mp_countdown="yes"
		mp_countdown_action_bonus="20"
		mp_countdown_init_time="270"
		mp_countdown_reservoir_time="270"
		mp_countdown_turn_bonus="200"
		name="Gauteamus"
		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"
		save_id="Gauteamus2"
		share_maps="no"
		share_view="yes"
		shroud="no"
		side="2"
		team_name="south"
		terrain_liked="Ff, Fa, Ss, Ww"
		type="Elvish Marksman"
		user_team_name="wesnoth-multiplayerteamname^South"
		village_gold="2"
		[ai]
			recruitment_pattern="fighter,fighter,archer,archer,mixed fighter,healer,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]
[/replay_start]
[statistics]
	mid_scenario="yes"
	[scenario]
		scenario="2p - Weldyn Channel"
		[team]
			[recruits]
				Elvish Archer="5"
				Elvish Fighter="8"
				Elvish Scout="1"
				Elvish Shaman="1"
				Merman Hunter="1"
			[/recruits]
			[recalls]
			[/recalls]
			[advances]
			[/advances]
			[deaths]
				Elvish Archer="3"
				Elvish Fighter="4"
				Merman Hunter="1"
			[/deaths]
			[killed]
				Drake Clasher="1"
				Drake Fighter="1"
				Saurian Skirmisher="1"
			[/killed]
			[attacks]
				[sequence]
					s00="1"
					s0001="1"
					s0101="1"
					_num="40"
				[/sequence]
				[sequence]
					s01="1"
					s101="1"
					_num="50"
				[/sequence]
				[sequence]
					s0011="1"
					s10="1"
					s1000="1"
					s11="2"
					_num="60"
				[/sequence]
				[sequence]
					s1101="1"
					_num="70"
				[/sequence]
			[/attacks]
			[defends]
				[sequence]
					s00="2"
					s0001="1"
					s010="1"
					s10="1"
					s100="1"
					s101="1"
					_num="40"
				[/sequence]
				[sequence]
					s001="1"
					_num="50"
				[/sequence]
				[sequence]
					s="1"
					s00="1"
					s001="1"
					s01="2"
					s10="3"
					s101="1"
					s11="1"
					s110="1"
					s111="2"
					s1110="2"
					s1111="1"
					_num="60"
				[/sequence]
				[sequence]
					s="1"
					s1="1"
					s10="2"
					s1001="1"
					s11="1"
					s1101="1"
					_num="70"
				[/sequence]
			[/defends]
			recruit_cost="245"
			recall_cost="0"
			damage_inflicted="285"
			damage_taken="311"
			expected_damage_inflicted="273963"
			expected_damage_taken="326293"
			turn_damage_inflicted="30"
			turn_damage_taken="5"
			turn_expected_damage_inflicted="10418"
			turn_expected_damage_taken="6729"
			save_id="Gauteamus2"
		[/team]
		[team]
			[recruits]
				Drake Clasher="3"
				Drake Fighter="3"
				Drake Glider="1"
				Saurian Augur="5"
				Saurian Skirmisher="4"
			[/recruits]
			[recalls]
			[/recalls]
			[advances]
				Saurian Soothsayer="1"
			[/advances]
			[deaths]
				Drake Clasher="1"
				Drake Fighter="1"
				Saurian Skirmisher="1"
			[/deaths]
			[killed]
				Elvish Archer="3"
				Elvish Fighter="4"
				Merman Hunter="1"
			[/killed]
			[attacks]
				[sequence]
					s0000="1"
					s010="1"
					s1="1"
					s1000="1"
					s110="1"
					_num="30"
				[/sequence]
				[sequence]
					s0000="1"
					s0100="2"
					s011="2"
					s11="1"
					_num="40"
				[/sequence]
				[sequence]
					s0000="1"
					s011="1"
					_num="50"
				[/sequence]
				[sequence]
					s0011="1"
					s010="1"
					s1="1"
					s101="2"
					s1100="1"
					_num="60"
				[/sequence]
				[sequence]
					s001="2"
					s010="1"
					s011="1"
					s101="4"
					s110="2"
					s111="2"
					_num="70"
				[/sequence]
			[/attacks]
			[defends]
				[sequence]
					s="1"
					_num="0"
				[/sequence]
				[sequence]
					s000="1"
					_num="40"
				[/sequence]
				[sequence]
					s01="3"
					s010="3"
					s0111="1"
					s1111="1"
					_num="60"
				[/sequence]
				[sequence]
					s01="1"
					_num="70"
				[/sequence]
			[/defends]
			recruit_cost="264"
			recall_cost="0"
			damage_inflicted="311"
			damage_taken="285"
			expected_damage_inflicted="326293"
			expected_damage_taken="273963"
			turn_damage_inflicted="62"
			turn_damage_taken="82"
			turn_expected_damage_inflicted="71613"
			turn_expected_damage_taken="46956"
			save_id="KnightKunibert1"
		[/team]
	[/scenario]
[/statistics]
