package RTDB

SearchFilterMaskType
{
	CName enumName = "";
	string enumComment = "";
}

SearchFilterMaskTypeCondition
{
}

SearchFilterMaskTypeValue : SearchFilterMaskTypeCondition
{
	CName opType = "";
	fk< SearchFilterMaskType >[] values = [];
}

SearchFilterMaskTypeCond : SearchFilterMaskTypeCondition
{
	CName opType = "";
	fk< SearchFilterMaskType >[] values = [];
}

AimAssistType
{
	CName enumName = "";
	string enumComment = "";
}

AimAssistCommon
{
	bool isEnabled = false;
	bool isEnabledForMouse = false;
	EulerAngles firstPassAngleRange = ( 0.f, 0.f, 0.f );
	float angleDistUnitWeight = 15.f;
	float angleDistUnit = 4.f;
	float angleProximityThreshold = 2.f;
	float angleProximityBonus = 500.f;
	float worldDistUnitWeight = 5.f;
	float worldDistUnit = 2.f;
	float worldProximityThreshold = 2.f;
	float worldProximityBonus = 500.f;
	float pastTargetWeight = 10.f;
	float rotatingAwayFromPastTargetPenalty = 1.f;
	float targetLostTimeOut = 1.0f;
	float softLockTargetWeight = 999999.f;
	EulerAngles softLockBrakeAngle = ( 0.f, 20.f, 130.f );
	float softLockTargetLostTimeOut = 1.0f;
	bool forceSoftLockMinimumWeight = false;
	fk< SearchFilterMaskTypeCondition > targetFilterPriority = "";
	float targetFilterPriorityBonus = 0;
	bool primaryComponentsOnly = false;
	fk< AimAssistType > aimAssistType = "";
	fk< SearchFilterMaskTypeCondition > targetFilter = "AimAssist.DefaultTargetFilters";
	float targetAcquisitionDelayTime = 0.f;
	float recentInputTime = 0.2f;
}

AimAssistFinishing
{
	bool isEnabled = true;
	float maxTime = 0.1f;
	float inputHistoryTime = 0.25f;
	float velocityDecreaseActivationFactor = 0.5f;
	float maxCorrectionAngle = 45.0f;
	float maxCorrectionYaw = -1.f;
	float maxCorrectionPitch = -1.f;
}

AimAssistMagnetism
{
	bool isEnabled = false;
	Vector2 maxStrength = ( 0.75f, 0.75f );
	float maxTimeTillOffTarget = 0.08f;
	float minTimeTillOffTarget = 0.033f;
	CName distanceMultiplier = "";
	CName stickInputMagMultiplier = "";
	float blendOnTime = 0.05f;
	float blendOffTime = 0.5f;
	float softLockMinimumMagnetism = 0.0f;
	float softLockTimeToReach = 0.25f;
	float softLockBlendInTime = 0.5f;
	bool trackedTargetAutoTargeting = false;
	bool targetLostBlendOut = true;
	bool checkWeaponEffectiveRange = true;
	float pitchBoundAdditiveForYawMagnetism = 4.0f;
	float yawBoundAdditiveForPitchMagnetism = 5.0f;
	bool disableWithNoInput = true;
	float fullStickThreshold = 0.95f;
	float fullStickYawAngleDisable = 45.0f;
}

AimAssistAimSnap
{
	bool isEnabled = false;
	bool ignoreInputType = false;
	float duration = 0.2f;
	bool adjustPitch = true;
	bool adjustYaw = true;
	bool endOnTargetReached = false;
	bool endOnCameraInputApplied = true;
	bool endOnTimeExceeded = true;
	bool endOnAimingStopped = true;
	float cameraInputMagToBreak = 0.2f;
	float cameraMouseInputMagToBreak = 10.0f;
	float precision = 0.1f;
	float maxDuration = 2.0f;
	bool easeIn = true;
	bool easeOut = true;
	bool evaluateTargets = false;
	bool checkRange = true;
	float minDistance = 4.0f;
	float maxDistance = 30.0f;
	bool breakOnDistance = false;
	float targetAngleDistanceFactor = 1.0f;
	bool affectedByRecoil = true;
	bool cancelWithRecoil = true;
	bool bodyPartsTracking = false;
	bool targetCycling = false;
	float bptMaxDot = 0.0f;
	float bptMaxSwitches = -1.0f;
	float bptMinInputMag = 0.0f;
	float bptMinMouseInputMag = 0.0f;
	float bptMinResetInputMag = 0.0f;
}

AimAssistBulletMagnetism
{
	bool isEnabled = true;
	float targetHighAngularVelocity = 180.f;
	float targetSearchAnglePitch = 30.0f;
	float targetSearchAngleYaw = 30.0f;
	float magPointOffset = 0.1f;
	float deadReckoningSearchAnglePitch = 20.0f;
	float deadReckoningSearchAngleYaw = 20.0f;
}

AimAssistMelee
{
	int moveToTargetEnabledAttacks = 1;
	float moveToTargetSearchDistance = 2.0;
	float moveToTargetDistanceIntoAttackRange = 0.5;
	bool aimSnapOnAttack = false;
	bool aimSnapOnBlockHit = false;
	bool aimSnapOnThrow = false;
	bool aimSnapOnAim = false;
	bool aimSnapOnHit = false;
}

AimAssistConfigPreset
{
	fk< AimAssistCommon > commonParams = "";
	fk< AimAssistMagnetism > magnetismParams = "";
	fk< AimAssistAimSnap > aimSnapParams = "";
	fk< AimAssistBulletMagnetism > bulletMagnetismParams = "";
	fk< AimAssistFinishing > finishingParams = "";
	fk< AimAssistMelee > meleeParams = "";
}

AimAssistSettings
{
	fk< AimAssistConfigPreset > off = "";
	fk< AimAssistConfigPreset > light = "";
	fk< AimAssistConfigPreset > standard = "";
	fk< AimAssistConfigPreset > heavy = "";
}

AimAssistTargetData
{
	bool isForAimMagnetisim = true;
	bool isForAimSnap = true;
	float heightUp = 0.1f;
	float heightDown = 0.1f;
	float width = 0.1f;
	float aimSnapAngle = 3.0f;
	float aimSnapPriorityWeight = 1.0f;
	float magnetismPriorityWeight = 1.0f;
	fk< AimAssistType >[] filters = [];
}

SmartGunHandlerParams
{
	fk< AimAssistTargetData >[] blacklist = 
	[
		"AimAssistTargetsData.Grenade"
	];
}

