package DroneArchetype
using RTDB, DroneActions, DroneStatusEffectActions, DroneReactionsActions, ItemHandling, PatrolActions

Map : ActionMap
{
	defaultMap = 
	{
		map = 
		[
			{
				node = "GenericArchetype.EnterIdle";
				isOverriddenBy = "DroneArchetype.EnterIdle";
			}, 
			{
				node = "GenericArchetype.EnterAlerted";
				isOverriddenBy = "DroneArchetype.EnterAlerted";
			}, 
			{
				node = "GenericArchetype.EnterCombat";
				isOverriddenBy = "DroneArchetype.EnterCombat";
			}, 
			{
				node = "GenericArchetype.MovementPolicyCompositeDefault";
				isOverriddenBy = "DroneArchetype.MovementPolicyCompositeDefault";
			}, 
			{
				node = "GenericArchetype.StrafeMovementPolicyComposite";
				isOverriddenBy = "DroneArchetype.StrafeMovementPolicyComposite";
			}, 
			{
				node = "DashAndDodgeActions.DodgeMeleeSelectorConditionDefinition";
				isOverriddenBy = "DroneArchetype.DodgeMeleeSelectorConditionDefinition";
			}, 
			{
				node = "DashAndDodgeActions.DodgeMeleeCompositeSelectorDefinition";
				isOverriddenBy = "DroneArchetype.DodgeMeleeCompositeSelectorDefinition";
			}, 
			{
				node = "GenericArchetype.ShootDefault";
				isOverriddenBy = "DroneArchetype.ShootDefault";
			}, 
			{
				node = "GenericArchetype.WeaponHandlingComposite";
				isOverriddenBy = "DroneArchetype.WeaponHandlingComposite";
			}, 
			{
				node = "GenericArchetype.CommandEquipPrimaryWeaponComposite";
				isOverriddenBy = "DroneArchetype.CommandEquipPrimaryWeaponComposite";
			}, 
			{
				node = "GenericArchetype.CommandWeaponHandlingCompositeDecorator";
				isOverriddenBy = "DroneArchetype.CommandWeaponHandlingCompositeDecorator";
			}, 
			{
				node = "GenericArchetype.CommandForceShoot";
				isOverriddenBy = "DroneArchetype.CommandForceShoot";
			}, 
			{
				node = "GenericArchetype.SE_DefeatedStartup";
				isOverriddenBy = "DroneArchetype.SE_UnconsciousStartup";
			}, 
			{
				node = "GenericArchetype.SE_DefeatedLoop";
				isOverriddenBy = "DroneArchetype.SE_Unconscious";
			}, 
			{
				node = "GenericArchetype.SE_Blind";
				isOverriddenBy = "DroneArchetype.SE_Blind";
			}, 
			{
				node = "GenericArchetype.SE_SetFriendly";
				isOverriddenBy = "DroneArchetype.SE_SetFriendly";
			}, 
			{
				node = "StatusEffectActions.SE_SystemCollapse";
				isOverriddenBy = "DroneArchetype.SE_SystemCollapse";
			}, 
			{
				node = "StatusEffectActions.SE_QuickHackStaggerLocomotion";
				isOverriddenBy = "DroneArchetype.SE_QuickHackStaggerLocomotion";
			}, 
			{
				node = "StatusEffectActions.SE_QuickHackFreezeLocomotion";
				isOverriddenBy = "DroneArchetype.SE_QuickHackFreezeLocomotion";
			}, 
			{
				node = "StatusEffectActions.SE_CommsNoise";
				isOverriddenBy = "DroneArchetype.SE_CommsNoise";
			}, 
			{
				node = "StatusEffectActions.SE_CommsCallIn";
				isOverriddenBy = "DroneArchetype.SE_CommsCallIn";
			}, 
			{
				node = "StatusEffectActions.SE_CommsCallOut";
				isOverriddenBy = "DroneArchetype.SE_CommsCallOut";
			}, 
			{
				node = "StatusEffectActions.AIQuickhackDefaultAction";
				isOverriddenBy = "DroneArchetype.AIQuickhackDefaultAction";
			}, 
			{
				node = "ReactionsActions.LookAroundForIntruder";
				isOverriddenBy = "DroneArchetype.LookAroundForIntruder";
			}, 
			{
				node = "ReactionsActions.LookAroundForIntruderUnarmed";
				isOverriddenBy = "DroneArchetype.LookAroundForIntruder";
			}, 
			{
				node = "ReactionsActions.CallOffSquad";
				isOverriddenBy = "DroneArchetype.CallOffSquad";
			}, 
			{
				node = "ReactionsActions.AnswerCall";
				isOverriddenBy = "DroneArchetype.AnswerCall";
			}, 
			{
				node = "ReactionsActions.CallSquadMove";
				isOverriddenBy = "DroneArchetype.CallSquadMove";
			}, 
			{
				node = "ReactionsActions.RotateToStimTarget";
				isOverriddenBy = "DroneArchetype.RotateToStimTarget";
			}, 
			{
				node = "ReactionsActions.LookAwayFromWhistle";
				isOverriddenBy = "DroneArchetype.LookAwayFromWhistle";
			}, 
			{
				node = "ReactionsActions.CallSquadTalk";
				isOverriddenBy = "DroneArchetype.CallSquadTalk";
			}, 
			{
				node = "ReactionsActions.CallPlayerTalk";
				isOverriddenBy = "DroneArchetype.CallPlayerTalk";
			}, 
			{
				node = "ReactionsActions.EndDeviceInvestigation";
				isOverriddenBy = "DroneArchetype.EndDeviceInvestigation";
			}, 
			{
				node = "ReactionsActions.ReactionCanEquipWeapon";
				isOverriddenBy = "DroneArchetype.ReactionCanEquipWeapon";
			}, 
			{
				node = "ReactionsActions.CallSquadMoveToStimPosition";
				isOverriddenBy = "DroneArchetype.CallSquadMoveToStimPosition";
			}, 
			{
				node = "MechanicalReactionsActions.CallGuardWait";
				isOverriddenBy = "DroneReactionsActions.CallGuardWait";
			}, 
			{
				node = "DroneReactionsActions.GrenadeLandedInitialReaction";
				isOverriddenBy = "DroneArchetype.GrenadeLandedInitialReaction";
			}, 
			{
				node = "DroneReactionsActions.GrenadeLandedContinuedReaction";
				isOverriddenBy = "DroneArchetype.GrenadeLandedContinuedReaction";
			}, 
			{
				node = "PatrolActions.DefaultPatrolAction";
				isOverriddenBy = "DroneArchetype.DefaultPatrolAction";
			}
		];
	};
}

EnterIdle : AIActionSmartComposite
{
	type = "AISmartCompositeType.Sequence";
	nodes = 
	[
		"DroneActions.TryActivateIdleLights", "ItemHandling.EquipPrimarySequence", "GenericArchetype.Success"
	];
}

EnterAlerted : AIActionSmartComposite
{
	type = "AISmartCompositeType.Sequence";
	nodes = 
	[
		"DroneActions.PlayAlertedSound", "DroneActions.TryActivatAlertedLights", "GenericArchetype.Success"
	];
}

EnterCombat : AIActionSmartComposite
{
	type = "AISmartCompositeType.Sequence";
	nodes = 
	[
		"DroneActions.UseRelaxedPose", "DroneActions.PlayCombatSound", "DroneActions.TryActivateCombatLights", "GenericArchetype.Success"
	];
}

MovementPolicyCompositeDefault : DroneActions.MovementPolicyCompositeDefault
{
}

StrafeMovementPolicyComposite : DroneActions.StrafeMovementPolicyComposite
{
}

DodgeMeleeSelectorConditionDefinition : DroneActions.DodgeMeleeSelectorCondition
{
}

DodgeMeleeCompositeSelectorDefinition : DroneActions.DodgeMeleeCompositeSelectorDefinition
{
}

ShootDefault : DroneActions.ShootDefault
{
}

LookAroundForIntruder : DroneActions.LookAroundForIntruder
{
}

CallOffSquad : DroneActions.GoBackToIdle
{
}

GrenadeLandedInitialReaction : DroneReactionsActions.GrenadeLandedInitialReactionFast
{
}

GrenadeLandedContinuedReaction : DroneReactionsActions.GrenadeLandedContinuedReactionFast
{
}

AnswerCall : DroneReactionsActions.AnswerCall
{
}

CallSquadMove : DroneReactionsActions.CallSquadMove
{
}

RotateToStimTarget : DroneReactionsActions.RotateToStimTarget
{
}

LookAwayFromWhistle : DroneReactionsActions.LookAwayFromWhistle
{
}

CallSquadTalk : DroneReactionsActions.CallSquadTalk
{
}

CallPlayerTalk : DroneReactionsActions.CallPlayerTalk
{
}

EndDeviceInvestigation : DroneReactionsActions.WaitAMoment
{
}

ReactionCanEquipWeapon : DroneReactionsActions.ReactionCanEquipWeapon
{
}

CallSquadMoveToStimPosition : DroneReactionsActions.MoveToCustomWorldPosition
{
}

WeaponHandlingComposite : DroneActions.WeaponHandlingComposite
{
}

CommandEquipPrimaryWeaponComposite : ItemHandling.EquipSelector
{
}

CommandWeaponHandlingCompositeDecorator : DroneActions.CommandWeaponHandlingCompositeDecorator
{
}

CommandForceShoot : DroneActions.CommandForceShoot
{
}

SE_UnconsciousStartup : DroneStatusEffectActions.SE_UnconsciousStartup
{
}

SE_Unconscious : DroneStatusEffectActions.SE_Unconscious
{
}

SE_Blind : DroneStatusEffectActions.SE_Blind
{
}

SE_SetFriendly : DroneStatusEffectActions.SE_SetFriendly
{
}

SE_EMP : DroneStatusEffectActions.SE_EMP
{
}

SE_SystemCollapse : DroneStatusEffectActions.SE_SystemCollapse
{
}

SE_QuickHackStaggerLocomotion : DroneStatusEffectActions.SE_QuickHackStaggerLocomotion
{
}

SE_QuickHackFreezeLocomotion : DroneStatusEffectActions.SE_QuickHackFreezeLocomotion
{
}

SE_WeaponJammed : DroneStatusEffectActions.SE_WeaponJammed
{
}

SE_CommsNoise : DroneStatusEffectActions.SE_CommsNoise
{
}

SE_CommsCallIn : DroneStatusEffectActions.SE_CommsCallIn
{
}

SE_CommsCallOut : DroneStatusEffectActions.SE_CommsCallOut
{
}

AIQuickhackDefaultAction : DroneStatusEffectActions.DroneQuickhackDefaultAction
{
}

DefaultPatrolAction : PatrolActions.DroneScanShort
{
}

