[SwatGame.SwatPawn]

FirstPersonFOV=85.0
bWeaponBob=true
bob=0.002

; maximum distance that compliance is issued for
MaxComplianceIssueDistance=2000.0

CollisionRadius=24.0
CollisionHeight=64.0
CrouchHeight=52.0
CrouchRadius=24.0
;Remember: CollisionHeight and CrouchHeight are half of the total respective heights

GroundSpeed=150.00

;BaseEyeHeight is added to CollisionHeight to find the actual height the eye is from the ground.
;CrouchEyeHeight is added to CrouchHeight to find the actual height the eye is from the ground when crouching.
BaseEyeHeight=48.0
CrouchEyeHeight=35.0

; Relevancy Configuration

; distance in the sound propogation system (Unreal units) that we are relevant to another pawn
; currently set to the maximum sound distance for AIs hearing a player sprint (800)
RelevancyPropogationDistance=800.0

; the distance in Unreal units that we will be always relevent to another pawn
RelevancyLOSDistance=160.0

;Time it takes a Player to Qualify to Arrest another Pawn
;(Can be specified independently for SwatPawn subclasses)
QualifyTimeForArrest=3.0

;Percentage compared to our current health divided by our original health
;that determines appropriate injured speech
PercentageHealthForIntenseInjury=0.5

; Male and Female Anim Groups
MaleAnimGroups=SWATMaleAnimation.SWATaimPoses
MaleAnimGroups=SWATMaleAnimation.SWAThostage
MaleAnimGroups=SWATMaleAnimation.SWATmovement
MaleAnimGroups=SWATMaleAnimation.SWATinjuries
MaleAnimGroups=SWATMaleAnimation.SWATfidgets
MaleAnimGroups=SWATMaleAnimation.SWATaction
FemaleAnimGroups=FemaleAnimation.FEMALEaimPoses
FemaleAnimGroups=FemaleAnimation.FEMALEhostage
FemaleAnimGroups=FemaleAnimation.FEMALEmovement
FemaleAnimGroups=FemaleAnimation.FEMALEinjuries
FemaleAnimGroups=FemaleAnimation.FEMALEfidgets
FemaleAnimGroups=FemaleAnimation.FEMALEaction

AnimBoneBase=Bip01
AnimBoneSpineLow=Bip01_Spine1
AnimBoneRightShoulder=Bip01_R_UpperArm
AnimBoneHead=Bip01_Head
AnimBoneJaw=Bone03Jaw

; Note, this is different on SwatPlayers
NormalAimLocationBone=Bip01_Spine2
LeanAimLocationBone=Bip01_Head

NormalFireLocationBone=Bip01_Spine2
LeanFireLocationBone=Bip01_Head

AnimSocketGripRhand=GripRhand
AnimSocketGripBack=GripBack
AnimSocketGripHolster=GripHolster
AnimSocketGripBelt1=GripBelt1
AnimSocketGripBelt2=GripBelt2
AnimSocketHolster=Holster
AnimSocketPouch=Pouch
AnimSocketHeadGear=HeadGear

[SwatGame.SwatPlayer]
; Head looks correct from the player's perspective even though we fire at the upper spine
NormalAimLocationBone=Bip01_Head
LeanAimLocationBone=Bip01_Head

PreThrowAnimation=sPullPinUpper
ThrowShortAnimation=sThrowShortUpper
ThrowLongAnimation=sThrowLongUpper

ThrowAnimationRootBone=Bip01_Spine1
ThrowAnimationTweenTime=0.0

;velocity of the grenade in unreal units per second, per second that the throw button is held
ThrowSpeedTimeFactor=360.000000
;clamp the min & max velocity of a thrown grenade
ThrowSpeedRange=(Max=1500.0,Min=350.0)

;if a ThrownWeapon is thrown at a speed less than this, then the 'short' animations are played, otherwise, 'long' animations are used
;Note: this should match the setting in SwatGame.ini [Engine.Hands]
MinimumLongThrowSpeed=1000.0

;see comments in SwatPlayer.uc
PawnModelApparentBaseEyeHeight=30.0
PawnModelApparentCrouchEyeHeight=6.0

;***********************
;sting grenade camera effect tuning
;***********************

;the effect will drop-off evenly over the last x% of the duration
StingEffectDropOffTimePercent=0.2
StingEffectFrequency=6.0
;maximum angular offset in unreal angle units (65535 unreal angle units is 360 degrees)
StingViewEffectAmplitude=(Roll=9000,Pitch=9000,Yaw=9000)
;in input units per second
StingInputEffectMagnitude=9
;in unreal distance units, the farthest shake distance
TasedViewEffectAmplitude=20
;how often to recenter
TasedViewEffectFrequency=200

;***********************
;Leaning tuning
;***********************

; The length of time, in seconds, it takes for the first person view to go from unleaned, to fully leaned.
LeanTransitionDuration=0.3
; Horizontal offset distance the first-person camera moves on a full-lean.
LeanHorizontalDistance=44.0f
; The vertical offset distance the first-person camera moves on a full-lean.
LeanVerticalDistance=-16.0f
; The roll angle (in degrees) of the first-person camera during a full-lean.
LeanRollDegrees=8.0f
; Control points on the bezier curve that smooths out the first-person lean a bit. Pt0 is locked at (0,0)
; and Pt4 is locked at (1,1). These control points allow finer control over how the lean looks.
LeanBezierPt1X=0.4f
LeanBezierPt1Y=0.0f
LeanBezierPt2X=0.6f
LeanBezierPt2Y=1.0f

;**********************
;Low-Ready
;**********************

;Tween time for playing fire while in low-ready
LowReadyFireTweenTime=0.0

;************************
;AI Throwing data
;************************


[SwatGame.SwatAI]
; SwatAI has different collision radii than SwatPawn
CollisionRadius=24.0
CrouchRadius=24.0

; when the SwatAI releases a ThrownWeapon (AnimNotify_Use), the initial location of the projectile
; will be set to the Pawn's Location + ThrownProjectileInitialOffset
OverhandThrownProjectileInitialOffset=(X=47.0,Y=15,Z=49.0)
UnderhandThrownProjectileInitialOffset=(X=36.0,Y=24.0,Z=-10.0)

; in degrees
ThrownProjectilePitch=15

ThrowShortAnimation=sThrowShort
ThrowLongAnimation=sThrowLong

ThrowFromLeftAnimation=sGrenadeThrowLeft
ThrowFromRightAnimation=sGrenadeThrowRight

ThrowAnimationTweenTime=0.1

; the amount of time since we were last rendered required
; before we start using simple vision and idling
MinLastRenderedTimeDeltaForRelevency=5.0

; amount of time before we care about the player blocking our path
PlayerBlockingPathTime=3.0

; maximum distance that an AI will throw underhand
MaxUnderhandThrowDistance=1024.00

; ZOffset for overhand throw 
; if the Target.Location > (Location.Z + ZPositiveOffsetForOverhandThrow),
; reguardless of the MaxUnderhandThrowDistance we will throw overhand
ZPositiveOffsetForOverhandThrow=96.0

; amount of time that we're not rendered before we stop testing
; each node on our path's current reachability
PathReachabilityRenderedRecentlyDelta=5.0

; Flashbang animations
FBStandingReactionAnimations=sReactionFB
FBStandingNoWeaponReactionAnimations=sReactionFBNoWeapon
FBCrouchingReactionAnimations=cReactionFB
FBCrouchingNoWeaponReactionAnimations=cReactionFBNoWeapon
FBCompliantReactionAnimations=ComplyReactionFB
FBRestrainedReactionAnimations=cuffedReactionFB

FBStandingAffectedAnimations=sLoopFB1
FBStandingAffectedAnimations=sLoopFB2
FBStandingNoWeaponAffectedAnimations=sLoopFB1NoWeapon
FBStandingNoWeaponAffectedAnimations=sLoopFB2NoWeapon
FBCrouchingAffectedAnimations=cLoopFB1
FBCrouchingAffectedAnimations=cLoopFB2
FBCrouchingNoWeaponAffectedAnimations=cLoopFB1NoWeapon
FBCrouchingNoWeaponAffectedAnimations=cLoopFB2NoWeapon
FBCompliantAffectedAnimations=ComplyLoopFB
FBRestrainedAffectedAnimations=cuffedLoopFB

FBStandingRecoveryAnimations=sRecoveryFB
FBStandingNoWeaponRecoveryAnimations=sRecoveryFBNoWeapon
FBCrouchingRecoveryAnimations=cRecoveryFB
FBCrouchingNoWeaponRecoveryAnimations=cRecoveryFBNoWeapon
FBCompliantRecoveryAnimations=ComplyRecoveryFB
FBRestrainedRecoveryAnimations=cuffedRecoveryFB

GasStandingReactionAnimations=sReactionGas
GasStandingNoWeaponReactionAnimations=sReactionGasNoWeapon
GasCrouchingReactionAnimations=cReactionGas
GasCrouchingNoWeaponReactionAnimations=cReactionGasNoWeapon
GasCompliantReactionAnimations=complyReactionGas
GasRestrainedReactionAnimations=cuffedReactionGas

GasStandingAffectedAnimations=sLoopGas1
GasStandingAffectedAnimations=sLoopGas2
GasStandingNoWeaponAffectedAnimations=sLoopGas1NoWeapon
GasStandingNoWeaponAffectedAnimations=sLoopGas2NoWeapon
GasCrouchingAffectedAnimations=cLoopGas1
GasCrouchingAffectedAnimations=cLoopGas2
GasCrouchingNoWeaponAffectedAnimations=cLoopGas1NoWeapon
GasCrouchingNoWeaponAffectedAnimations=cLoopGas2NoWeapon
GasCompliantAffectedAnimations=ComplyLoopGas1
GasRestrainedAffectedAnimations=cuffedLoopGas

GasStandingRecoveryAnimations=sRecoveryGas
GasStandingNoWeaponRecoveryAnimations=sRecoveryGasNoWeapon
GasCrouchingRecoveryAnimations=cRecoveryGas
GasCrouchingNoWeaponRecoveryAnimations=cRecoveryGasNoWeapon
GasCompliantRecoveryAnimations=ComplyRecoveryGas
GasRestrainedRecoveryAnimations=cuffedRecoveryGas

StungStandingReactionAnimations=sReactionFB
StungStandingNoWeaponReactionAnimations=sReactionFBNoWeapon
StungCrouchingReactionAnimations=cReactionFB
StungCrouchingNoWeaponReactionAnimations=cReactionFBNoWeapon
StungCompliantReactionAnimations=ComplyReactionFB
StungRestrainedReactionAnimations=cuffedReactionFB

StungStandingAffectedAnimations=sLoopStunned
StungStandingNoWeaponAffectedAnimations=sLoopStunned
StungCrouchingAffectedAnimations=cLoopStunned
StungCrouchingNoWeaponAffectedAnimations=cLoopStunned
StungCompliantAffectedAnimations=ComplyLoopStunned
StungRestrainedAffectedAnimations=cuffedLoopFB

StungStandingRecoveryAnimations=sRecoveryFB
StungStandingNoWeaponRecoveryAnimations=sRecoveryFBNoWeapon
StungCrouchingRecoveryAnimations=cRecoveryFB
StungCrouchingNoWeaponRecoveryAnimations=cRecoveryFBNoWeapon
StungCompliantRecoveryAnimations=ComplyRecoveryFB
StungRestrainedRecoveryAnimations=cuffedRecoveryFB

TasedStandingReactionAnimations=sTaserReaction
TasedCrouchingReactionAnimations=cTaserReaction
TasedCompliantReactionAnimations=complyReactionTaser
TasedRestrainedReactionAnimations=cuffedReactionTaser

TasedStandingAffectedAnimations=sTaserLoop
TasedCrouchingAffectedAnimations=cTaserLoop
TasedCompliantAffectedAnimations=complyLoopTaser
TasedRestrainedAffectedAnimations=cuffedLoopTaser

TasedStandingRecoveryAnimations=sTaserRecovery
TasedCrouchingRecoveryAnimations=cTaserRecovery
TasedCompliantRecoveryAnimations=complyRecoveryTaser
TasedRestrainedRecoveryAnimations=cuffedRecoveryTaser

; flinch animations
StandingFlinchAnimations=sFlinch
StandingFlinchAnimations=sFlinch2
StandingFlinchAnimations=sFlinch3
StandingFlinchAnimations=sFlinch4
StandingFlinchAnimations=sFlinch5
CrouchingFlinchAnimations=cFlinch
CrouchingFlinchAnimations=cFlinch2
CrouchingFlinchAnimations=cFlinch3
CrouchingFlinchAnimations=cFlinch4
CrouchingFlinchAnimations=cFlinch5
CompliantFlinchAnimations=ComplyFlinch
CompliantFlinchAnimations=ComplyFlinch2
CompliantFlinchAnimations=ComplyFlinch3
CompliantFlinchAnimations=ComplyFlinch4
CompliantFlinchAnimations=ComplyFlinch5
RestrainedFlinchAnimations=CuffedFlinch
RestrainedFlinchAnimations=CuffedFlinch2
RestrainedFlinchAnimations=CuffedFlinch3
RestrainedFlinchAnimations=CuffedFlinch4
RestrainedFlinchAnimations=CuffedFlinch5


; Distance at which the player can report AIs to TOC
UsableDistance=2000

; This is for all AI types.  Can be modified for enemies separately 
; by adding to a SwatGame.SwatEnemy section, same for officers.
MinTimeBetweenFireHG=0.1
MaxTimeBetweenFireHG=0.2

MinTimeBetweenFireSMGSingleShot=0.1
MaxTimeBetweenFireSMGSingleShot=0.2
MinTimeBetweenFireSMGBurst=0.2
MaxTimeBetweenFireSMGBurst=0.4
MinTimeBetweenFireSMGFullAuto=0.5
MaxTimeBetweenFireSMGFullAuto=0.7

MinTimeBetweenFireMGSingleShot=0.1
MaxTimeBetweenFireMGSingleShot=0.2
MinTimeBetweenFireMGFullBurst=0.2
MaxTimeBetweenFireMGFullBurst=0.4
MinTimeBetweenFireMGFullAuto=0.5
MaxTimeBetweenFireMGFullAuto=0.7

MinTimeBetweenFireShotgun=0.3
MaxTimeBetweenFireShotgun=0.6

TurnAwayAnimationHG=TurnAwayRight_HG
TurnAwayAnimationHG=TurnAwayRightAlt1_HG

TurnAwayAnimationSG=TurnAwayRight_SG
TurnAwayAnimationSG=TurnAwayRightAlt1_SG

TurnAwayAnimationMG=TurnAwayRight_M4
TurnAwayAnimationMG=TurnAwayRightAlt1_M4

TurnAwayAnimationSMG=TurnAwayRight_SMG
TurnAwayAnimationSMG=TurnAwayRightAlt1_SMG

TurnAwayAnimationPB=TurnAwayRight_PB

[SwatGame.SwatAICharacter]
; amount we will be incapacitated at
IncapacitatedHealthAmount=20
RestrainedHandcuffsClassName="SwatEquipment.IAmCuffed"

[SwatGame.SwatTrainer]
; Trainer should never become incapacitated or it breaks training mission
IncapacitatedHealthAmount=0
RestrainedHandcuffsClassName="SwatEquipment.IAmCuffed"

[SwatGame.SwatEnemy]
; Base Aim Error by Skill Level
LowSkillAdditionalBaseAimError=7.0
MediumSkillAdditionalBaseAimError=6.0
HighSkillAdditionalBaseAimError=3.0

; minimum 2d distance between us and another enemy to affect their morale
; also does a line of sight check
MinDistanceToAffectMoraleOfOtherEnemiesUponDeath=500.0

; Range of time per skill level that an Enemy will fire full auto for
LowSkillMinTimeToFireFullAuto=1.0
LowSkillMaxTimeToFireFullAuto=2.0
MediumSkillMinTimeToFireFullAuto=0.6
MediumSkillMaxTimeToFireFullAuto=1.0
HighSkillMinTimeToFireFullAuto=0.2
HighSkillMaxTimeToFireFullAuto=0.5

; animations used for throwing weapons down when they're empty
ThrowWeaponDownAnimationsHG=OutOfAmmoDropHG1
ThrowWeaponDownAnimationsHG=OutOfAmmoDropHG2
ThrowWeaponDownAnimationsHG=OutOfAmmoDropHG3

ThrowWeaponDownAnimationsSMG=OutOfAmmoDropSMG1
ThrowWeaponDownAnimationsSMG=OutOfAmmoDropSMG2

ThrowWeaponDownAnimationsMG=OutOfAmmoDropMG1
ThrowWeaponDownAnimationsMG=OutOfAmmoDropMG2

ThrowWeaponDownAnimationsSG=OutOfAmmoDropSG1
ThrowWeaponDownAnimationsSG=OutOfAmmoDropSG2

; chance that we will play a full body hit animation
HighSkillFullBodyHitChance=0.25
MediumSkillFullBodyHitChance=0.5
LowSkillFullBodyHitChance=0.666

[SwatGame.SwatOfficer]
; Range of time that an officer will fire full auto for
MinTimeToFireFullAuto=0.2
MaxTimeToFireFullAuto=0.4

; If set will be the overlay for the officer viewport (note, you can have different overlays for red/blue teams by setting this value in the subclass properties)
ViewportOverlayMaterial=Material'HUD.officerviewport'

; time before we say something to the player about hitting us with something harmless against officers
DeltaReactionTimeBetweenHarmlessShot=3.0

[SwatGame.SniperPawn]
SniperRifleClass=Class'SwatEquipment.SniperRifle'
SniperOverlay=Material'HUD.SniperScopeShader'

; frequency of the noise that gets applied when the sniper view isn't moved
kSniperBaseFrequency=0.75
; this frequency gets added to the base frequency above whenever the viewport is moved 
kSniperMovementAddedFrequency=0.0
; Base amplitude for the noise that gets applied when the sniper view isn't moved
; Each unit is about approx. 3 degrees.
NoiseAmplitudeByFOVLevel(0)=2.5
NoiseAmplitudeByFOVLevel(1)=3.0
NoiseAmplitudeByFOVLevel(2)=3.3
NoiseAmplitudeByFOVLevel(3)=3.8
; This amplitude gets added when the sniper is being moved, same units as above
kSniperMovementAmplitude=15.0
; How much amplitude and frequency is lost per second...
kSniperMovementZeroedSpeed=2
; How much the horizontal axis of the noise is dampened...
kSniperHorizontalNoiseDamping=0.3
; Length of time after a shot is fired before the sound plays.  
ReloadTime=1
; Length of time the sound plays: This should only be set by Eric really
ReloadSoundTime=1
AnimBoneBase=Bip01
AnimBoneSpineLow=Bip01_Spine1
AnimBoneLClavicle=Bip01_L_Clavicle
AnimBoneRClavicle=Bip01_R_Clavicle
AnimBoneHead=Bone01Eye
AnimSocketGripRhand=GripRhand
AnimSocketGripBack=GripBack
AnimSocketGripHolster=GripHolster
AnimSocketGripBelt1=GripBelt1
AnimSocketGripBelt2=GripBelt2
AnimSocketHolster=Holster
AnimSocketPouch=Pouch
AnimSocketHeadGear=HeadGear
GroundSpeed=150.000000
WalkingPct=0.500000
CrouchedPct=0.250000
BaseEyeHeight=48.000000
CrouchEyeHeight=35.000000
CrouchHeight=45.000000
CrouchRadius=24.000000
FirstPersonFOV=85.000000
Mass=100.000000
; Male and Female Anim Groups
MaleAnimGroups=SWATMaleAnimation.SWATaimPoses
MaleAnimGroups=SWATMaleAnimation.SWAThostage
MaleAnimGroups=SWATMaleAnimation.SWATmovement
MaleAnimGroups=SWATMaleAnimation.SWATinjuries
MaleAnimGroups=SWATMaleAnimation.SWATfidgets
MaleAnimGroups=SWATMaleAnimation.SWATaction
FemaleAnimGroups=FemaleAnimation.FEMALEaimPoses
FemaleAnimGroups=FemaleAnimation.FEMALEhostage
FemaleAnimGroups=FemaleAnimation.FEMALEmovement
FemaleAnimGroups=FemaleAnimation.FEMALEinjuries
FemaleAnimGroups=FemaleAnimation.FEMALEfidgets
FemaleAnimGroups=FemaleAnimation.FEMALEaction

[SwatGame.NetPlayer]
IdealCuffingDistanceBetweenPawns=50.0

[SwatGame.SwatRagdollPawn]
LimbTwitchTime=3
LimbIdleTime=12
RenderTimeout=1.5
InitialRagdollRenderTimeout=3.0
; Don't mess with these.  Ever.  Unless you're Carlos or Chris that is.  So yeah.
TwitchInfos=(BoneName=Bip01_Head,ForceMagnitude=(Min=-3000,Max=3000),TargetBoneName=Bip01_Spine,TwitchType=ETWITCH_Torque)
TwitchInfos=(BoneName=Bip01_Spine2,ForceMagnitude=(Min=-120,Max=1200),TargetBoneName=Bip01_Spine,TwitchType=ETWITCH_Force)
;TwitchInfos=(BoneName=Bip01_L_Forearm,ForceMagnitude=(Min=-200,Max=500),TargetBoneName=Bip01_Spine,TwitchType=ETWITCH_Force)
;TwitchInfos=(BoneName=Bip01_R_Forearm,ForceMagnitude=(Min=-200,Max=500),TargetBoneName=Bip01_Spine,TwitchType=ETWITCH_Force)
;TwitchInfos=(BoneName=Bip01_R_UpperArm,ForceMagnitude=(Min=-120,Max=1200),TargetBoneName=Bip01_Spine,TwitchType=ETWITCH_Torque)
;TwitchInfos=(BoneName=Bip01_L_UpperArm,ForceMagnitude=(Min=-120,Max=1200),TargetBoneName=Bip01_Spine,TwitchType=ETWITCH_Torque)
;TwitchInfos=(BoneName=Bip01_R_Calf,ForceMagnitude=(Min=-300,Max=3000),TargetBoneName=Bip01_Spine,TwitchType=ETWITCH_Torque)
;TwitchInfos=(BoneName=Bip01_L_Calf,ForceMagnitude=(Min=-300,Max=3000),TargetBoneName=Bip01_Spine,TwitchType=ETWITCH_Torque)

; Bones with non-default linear damping (default is 0.0)
;BoneLinearDamping=(Damping=10,BoneName=Bip01_Neck)
;BoneLinearDamping=(Damping=10,BoneName=Bip01_Head)

; Bones with non-default angular damping (default is 0.5)
;BoneAngularDamping=(Damping=10,BoneName=Bip01_Neck)
;BoneAngularDamping=(Damping=10,BoneName=Bip01_Head)
;BoneAngularDamping=(Damping=10,BoneName=Bip01_L_Thigh)
;BoneAngularDamping=(Damping=10,BoneName=Bip01_L_Calf)
;BoneAngularDamping=(Damping=10,BoneName=Bip01_R_Thigh)
;BoneAngularDamping=(Damping=10,BoneName=Bip01_R_Calf)
;BoneAngularDamping=(Damping=10,BoneName=Bip01_L_Upperarm)
;BoneAngularDamping=(Damping=10,BoneName=Bip01_R_Upperarm)

[SwatGame.SwatOfficerRagdollParams]
hkJointFriction=3.0

