<utility_ai>
	<!--
	::Decision Makers::
	
	
	
	::Decisions::
	
		Parameters:
		name: Name reference for reusing decisions that are defined
		weight: weight value to be multiplied to the final score after all considerations
		task: task to perform if this decision is the winner
	
	::Considerations::
	
		Consideration scores range from 0 to 1. Considerations should be ordered most likely to least likely to fail, it speeds up decision making
		
		Parameters:
		class: consideration class to be used, list below.
		invert: [true/false] Invert output value?
		
		ConsiderationClasses:
		SelfHealth
		TargetHealth
		TargetDistance - extra parameter "range" defines the range to be used for scoring example range="10,100" would score from 10m to 100m using 0 - 1
	-->
	<ai_packages>
		<ai_package name="Zombie_Dumb">
			<action name="Wander" weight="1">
				<task class="Wander"/>
			</action>
			
			<action name="MoveToWaypoint" weight="2">
				<task class="MoveToTarget" run="false"/>
				
				<consideration class="TargetType" type="Block"/>
				<consideration class="TargetDistance" min="2" max="4"/>
				<consideration class="TargetVisible" flip_y="true"/>
			</action>
			
			<action name="MoveToEnemy" weight="2">
				<task class="MoveToTarget" run="false"/>
				
				<consideration class="TargetType" type="EntityNPC"/>
				<consideration class="TargetFactionStanding" flip_y="true" max="127"/>
				<consideration class="TargetDistance" min="2" max="20"/>
			</action>
			
			<action name="MoveToEnemyRun" weight="2">
				<task class="MoveToTarget" run="true"/>
				
				<consideration class="TargetType" type="EntityNPC"/>
				<consideration class="TargetFactionStanding" flip_y="true" max="127"/>
				<consideration class="TargetDistance" min="20" max="25"/>
			</action>
			
			<action name="MeleeAttackEntity" weight="3">
				<task class="AttackTargetEntity" action_index="0"/>
				
				<consideration class="TargetType" type="EntityNPC"/>
				<consideration class="TargetFactionStanding" flip_y="true" max="127"/>
				<consideration class="TargetDistance" flip_y="true" min="2" max="3"/>
			</action>
			
			<action name="MeleeAttackBlock" weight="3">
				<task class="AttackTargetBlock" action_index="0"/>
				
				<consideration class="PathBlocked"/>
				<consideration class="TargetType" type="Block"/>
				<consideration class="TargetDistance" flip_y="true" min="2" max="4"/>
			</action>
		</ai_package>
		
		<ai_package name="Human Basic"> <!-- Basic AI -->
			<action name="Wander" weight="1">
				<task class="Wander"/>
			</action>
			
			<action name="MoveToWaypoint" weight="1">
				<task class="MoveToTarget" run="false"/>
				
				<consideration class="TargetDistance" min="2" max="4"/>
				<consideration class="TargetVisible" flip_y="true"/>
			</action>
			
			<action name="Flee" weight="4">
				<task class="FleeFromTarget" max_distance="10"/>
				
				<consideration class="SelfHealth" flip_y="true" min="20" max="30"/>
				<consideration class="TargetFactionStanding" flip_y="true" max="127"/>
				<consideration class="TargetDistance" flip_y="true" min="4" max="5"/>
			</action>
		</ai_package>
		
		<ai_package name="Human Melee"> <!-- Melee Attack AI -->
			<action name="MoveToEnemy" weight="2">
				<task class="MoveToTarget" run="false"/>
				
				<consideration class="TargetType" type="EntityNPC, EntityZombie"/>
				<consideration class="TargetFactionStanding" flip_y="true" max="127"/>
				<consideration class="TargetDistance" min="3" max="4"/>
			</action>
			
			<action name="MoveToEnemyRun" weight="2">
				<task class="MoveToTarget" run="true"/>
				
				<consideration class="TargetType" type="EntityNPC, EntityZombie"/>
				<consideration class="TargetFactionStanding" flip_y="true" max="127"/>
				<consideration class="TargetDistance" min="3" max="10"/>
			</action>
			
			<action name="MeleeAttack" weight="3">
				<task class="AttackTargetEntity" action_index="0"/>
				
				<consideration class="TargetType" type="EntityNPC, EntityZombie"/>
				<consideration class="TargetFactionStanding" flip_y="true" max="127"/>
				<consideration class="TargetDistance" flip_y="true" min="0" max="2"/>
			</action>
		</ai_package>
		
		<ai_package name="Human Ranged"> <!-- Ranged Attack AI -->
			<action name="MoveToEnemy" weight="2" distance="6">
				<task class="MoveToTarget" run="false"/>
				
				<consideration class="TargetType" type="EntityNPC, EntityZombie"/>
				<consideration class="TargetFactionStanding" flip_y="true" max="127"/>
				<consideration class="TargetDistance" min="10" max="20"/>
			</action>
			
			<action name="Flee" weight="3">
				<task class="FleeFromTarget" max_distance="10"/>
				
				<consideration class="TargetType" type="EntityNPC, EntityZombie"/>
				<consideration class="TargetFactionStanding" flip_y="true" max="127"/>
				<consideration class="TargetDistance" flip_y="true" min="1" max="6"/>
			</action>
			
			<action name="RangedAttack" weight="3">
				<task class="AttackTargetEntity" action_index="0"/>

				<consideration class="TargetVisible"/>
				<consideration class="TargetType" type="EntityNPC, EntityZombie"/>
				<consideration class="TargetFactionStanding" flip_y="true" max="127"/>
				<consideration class="TargetDistance" min="1" max="5"/>
			</action>
		</ai_package>
	</ai_packages>
</utility_ai>





