package Prereqs
using RTDB

PlayerCombatStateTimePrereq : IPrereq
{
	prereqClassName = "PlayerCombatStateTimePrereq";
	float minTime = -1.0f;
	float maxTime = -1.0f;
}

PlayerStateMachinePrereq : IPrereq
{
	prereqClassName = "PlayerStateMachinePrereq";
	string stateName = "";
	bool previousState = false;
	bool isInState = true;
}

LocomotionPSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "LocomotionPSMPrereq";
}

DetailedLocomotionPSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "DetailedLocomotionPSMPrereq";
}

UpperBodyPSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "UpperBodyPSMPrereq";
}

CombatPSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "CombatPSMPrereq";
}

MeleePSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "MeleePSMPrereq";
}

FallPSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "FallPSMPrereq";
}

HighLevelPSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "HighLevelPSMPrereq";
}

ZonesPSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "ZonesPSMPrereq";
}

VehiclePSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "VehiclePSMPrereq";
}

IsInVehiclePrereq : VehiclePSMPrereq
{
	stateName = "Default";
	isInState = false;
}

RangedWeaponPSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "RangedWeaponPSMPrereq";
}

TimeDilationPSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "TimeDilationPSMPrereq";
}

MeleeWeaponPSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "MeleeWeaponPSMPrereq";
}

UsingCoverPSMPrereq : ORPrereq
{
	nestedPrereqs = 
	[
		{
			prereqClassName = "UsingCoverPSMPrereq";
			bool isInState = true;
		} : PlayerStateMachinePrereq, 
		{
			statType = "IconicJointLockCover";
			valueToCheck = 1;
			comparisonType = "Equal";
		} : StatPrereq
	];
}

SwimmingPSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "SwimmingPSMPrereq";
}

TakedownPSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "TakedownPSMPrereq";
}

BodyCarryingPSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "BodyCarryingPSMPrereq";
}

BodyDisposalPSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "BodyDisposalPSMPrereq";
	isInState = false;
}

IsInWorkspotPSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "IsInWorkspotPSMPrereq";
	isInState = false;
}

IsInFocusModePSMPrereq : PlayerStateMachinePrereq
{
	prereqClassName = "IsInFocusModePSMPrereq";
}

