package Spawn_glp
using RTDB, Prereqs, Effectors

Stoop_King : GameplayLogicPackage
{
	CName[] animationWrapperOverrides = 
	[
		"StoopkingLocomotion"
	];
}

Stoop_Queen : GameplayLogicPackage
{
	CName[] animationWrapperOverrides = 
	[
		"StoopqueenLocomotion"
	];
}

Monk : GameplayLogicPackage
{
	CName[] animationWrapperOverrides = 
	[
		"MonkLocomotion"
	];
}

Homeless : GameplayLogicPackage
{
	CName[] animationWrapperOverrides = 
	[
		"HomelessLocomotion"
	];
}

Droid : GameplayLogicPackage
{
	animationWrapperOverrides = 
	[
		"Droid"
	];
}

Drone_GLP : GameplayLogicPackage
{
	fk< Effector >[] effectors = 
	[
		{
			prereqRecord = 
			{
				valueToCheck = 
				[
					{
						statType = "BaseStats.Health";
						modifierType = "Additive";
						value = 50.0f;
					} : ConstantStatModifier
				];
				statPoolType = "Health";
				comparisonType = "LessOrEqual";
			} : StatPoolPrereq;
			CName vfxName = "damage_smoke";
		} : PlayVFXEffector, 
		{
			prereqRecord = 
			{
				stateName = "Dead";
				isInState = false;
			} : Prereqs.HighLevelNPCStatePrereq;
			CName vfxName = "thrust_smoke";
		} : PlayVFXEffector
	];
}

DroneBombus_ExplodeOnDeath : Drone_GLP
{
	fk< Effector >[] effectors += 
	[
		{
			prereqRecord = 
			{
				nestedPrereqs = 
				[
					{
						stateName = "Dead";
					} : Prereqs.HighLevelNPCStatePrereq, 
					{
						statusEffect = "BaseStatusEffect.SystemCollapse";
					} : Prereqs.StatusEffectAbsentPrereq
				];
			} : ANDPrereq;
			attackRecord = "Attacks.DroneBombusDeathExplosion";
		} : Effectors.TriggerAttackOnOwnerEffect
	];
}

DroneWyvern_ExplodeOnDeath : Drone_GLP
{
	fk< Effector >[] effectors += 
	[
		{
			prereqRecord = 
			{
				nestedPrereqs = 
				[
					{
						stateName = "Dead";
					} : Prereqs.HighLevelNPCStatePrereq, 
					{
						statusEffect = "BaseStatusEffect.SystemCollapse";
					} : Prereqs.StatusEffectAbsentPrereq
				];
			} : ANDPrereq;
			attackRecord = "Attacks.DroneWyvernDeathExplosion";
		} : Effectors.TriggerAttackOnOwnerEffect
	];
}

DroneGriffin_ExplodeOnDeath : Drone_GLP
{
	fk< Effector >[] effectors += 
	[
		{
			prereqRecord = 
			{
				nestedPrereqs = 
				[
					{
						stateName = "Dead";
					} : Prereqs.HighLevelNPCStatePrereq, 
					{
						statusEffect = "BaseStatusEffect.SystemCollapse";
					} : Prereqs.StatusEffectAbsentPrereq
				];
			} : ANDPrereq;
			attackRecord = "Attacks.DroneGriffinDeathExplosion";
		} : Effectors.TriggerAttackOnOwnerEffect
	];
}

DroneOctant_ExplodeOnDeath : Drone_GLP
{
	fk< Effector >[] effectors += 
	[
		{
			prereqRecord = 
			{
				nestedPrereqs = 
				[
					{
						stateName = "Dead";
					} : Prereqs.HighLevelNPCStatePrereq, 
					{
						statusEffect = "BaseStatusEffect.SystemCollapse";
					} : Prereqs.StatusEffectAbsentPrereq
				];
			} : ANDPrereq;
			attackRecord = "Attacks.DroneOctantDeathExplosion";
		} : Effectors.TriggerAttackOnOwnerEffect
	];
}

DroneOctant_ExplodeOnDeathPlayerSafe : Drone_GLP
{
	fk< Effector >[] effectors += 
	[
		{
			prereqRecord = 
			{
				nestedPrereqs = 
				[
					{
						stateName = "Dead";
					} : Prereqs.HighLevelNPCStatePrereq, 
					{
						statusEffect = "BaseStatusEffect.SystemCollapse";
					} : Prereqs.StatusEffectAbsentPrereq
				];
			} : ANDPrereq;
			attackRecord = "Attacks.DroneOctantDeathExplosionPlayerSafe";
		} : Effectors.TriggerAttackOnOwnerEffect
	];
}

