package RTDB

CoverSelectionParameters
{
	bool scoreOnlyForCombatTarget = false;
	bool vaidateOnlyForCombatTarget = false;
}

RandomRatioCoverSelectionParameters : CoverSelectionParameters
{
}

ThreatDistanceCoverSelectionParameters : CoverSelectionParameters
{
	float threatMinDistance = 7.5f;
	float threatPreferredDistance = 10.f;
	float threatMaxDistance = 20.f;
	bool useThreatMaxDistanceFiltering = true;
	bool allowNegativeThreatMaxDistanceScoring = false;
	float distanceToThreatMultiplier = 0.5f;
	float threatPredictionTime = 0.4f;
	bool checkThreatDestination = false;
	bool checkThreatPath = false;
}

OwnerDistanceCoverSelectionParameters : CoverSelectionParameters
{
	float ownerMinDistance = 3.f;
	float ownerPreferredDistance = 7.5f;
	float ownerMaxDistance = 20.f;
	float distanceToOwnerMultiplier = 0.5f;
}

ClosestToOwnerCoverSelectionParameters : CoverSelectionParameters
{
	float preferredOwnerDistance = 3.f;
	float distanceToOwnerMultiplier = 1.f;
}

AngleDistanceCoverSelectionParameters : CoverSelectionParameters
{
	float coverProtectionAngleMul = 1.f;
	float angleDistanceScore = 1.f;
	float verticalAngleCooldown = 1.f;
	float threatPredictionTime = 0.4f;
	float maximumDistance = -1.f;
	int minThreatsAmountToCheckDistance = 0;
	float coverLowerMinVerticalAngle = -1.f;
	float shootingSpotLowerMinVerticalAngle = -1.f;
	int closestThreatsAmountToIgnoreDistanceCheck = 0;
}

CoverTypeCoverSelectionParameters : CoverSelectionParameters
{
	float coverScore = 3.f;
	float shootingSpotScore = 1.f;
	float maxScore = 3.f;
}

OwnerThreatCoverSelectionParameters : CoverSelectionParameters
{
	float ownerThreatCoverAngle = 180.f;
	scoreOnlyForCombatTarget = true;
	vaidateOnlyForCombatTarget = true;
}

CoverHealthCoverSelectionParameters : CoverSelectionParameters
{
	float hpMultiplier = 0.3f;
}

KeepCurrentCoverCoverSelectionParameters : CoverSelectionParameters
{
	float keepCoverBonus = 0.4f;
}

PathLengthCoverSelectionParameters : CoverSelectionParameters
{
	bool useFriendlyTargetAsStart = false;
	float maximumRatio = 2.0f;
	float minPathLengthToPerform = 5.0f;
	bool doorInvalidatesPath = false;
	float multiplier = 1.0f;
}

PathSecurityCoverSelectionParameters : CoverSelectionParameters
{
	float threatHalfSightAngle = 60.f;
	float threatSightRange = 18.f;
	float pathSampleDist = 2.f;
	float multiplier = 1.f;
}

UtilityLossCoverSelectionParameters : CoverSelectionParameters
{
	float utilityLossMultiplier = 1.f;
	float utilityLossTimeoutInIdle = 20.f;
	int hitsTakenToClearScoreInIdle = 2;
	float utilityLossTimeoutCover = 5.f;
	int hitsTakenToClearScoreCover = -1;
	float utilityLossTimeoutShootingSpot = 5.f;
	int hitsTakenToClearScoreShootingSpot = 3;
}

AbsoluteZLimiterCoverSelectionParameters : CoverSelectionParameters
{
	float zLimit = 2.0f;
}

OwnerAngleCoverSelectionParameters : CoverSelectionParameters
{
	float minAngle = 0.0f;
	float maxAngle = 360.0f;
}

DistanceFromOthersCoverSelectionParameters : CoverSelectionParameters
{
	float minimalDistance = 0.8f;
	float minimalPreferredDistance = 3.0f;
	float distanceScoreMultiplier = 1.0f;
}

TacticLimiterCoverSelectionParameters : CoverSelectionParameters
{
	float addUtilityValue = 1.0f;
}

FriendlyTargetDistanceCoverSelectionParameters : CoverSelectionParameters
{
	float friendlyTargetMinDistance = 7.5f;
	float friendlyTargetPreferredDistance = 10.f;
	float friendlyTargetMaxDistance = 20.f;
	float friendlyTargetZLimit = 2.4f;
	float distanceToFriendlyTargetMultiplier = 0.5f;
	Vector3 spatialHintMults = ( 1.f, 1.f, 1.f );
}

FriendlyTargetAngleDistanceCoverSelectionParameters : CoverSelectionParameters
{
	float coverProtectionAngleMul = 1.f;
	float angleDistanceScore = 3.f;
	float positionChangeThreshold = 0.0f;
	float minDot = 0.0f;
	bool maxScoreIfInRange = false;
}

ClearLineOfSightCoverSelectionParameters : CoverSelectionParameters
{
	int preferredActionCount = 3;
	float multiplier = 1.f;
	float cooldown = 5.f;
	float clearLOSDistanceTolerance = 0.0f;
	scoreOnlyForCombatTarget = true;
	vaidateOnlyForCombatTarget = true;
}

AvoidLineOfSightSelectionParameters : CoverSelectionParameters
{
	float multiplier = 1.0f;
	float angle = 180.0f;
	float distance = 20.0f;
	float height = 3.0f;
}

