[SwatGame.FireInterface]

Range=128.0

;For each Actor that is hit by this
;   Interface's focus trace
;   (in order by distance from the Player),
;   the Interface will test each Context in order
;   until one matches completely.
;If any matching context specifies
;   BlockTrace=true, then 
;   this Interface is "satisfied"
;   until the next time it is Updated.
;
;Tip1: Put more specific contexts earlier.
;   If a more generic context is earlier, then
;   it may match, where a more specific context
;   is appropriate.

;Note! The order of these entries is very important.

DoorRelatedContext=DoorWay
DoorRelatedContext=DoorModel
DoorRelatedContext=ToolkitOnDoor
DoorRelatedContext=C2ChargeOnDoor
DoorRelatedContext=BreachingShotgunOnDoor
DoorRelatedContext=WedgeOnDoor
DoorRelatedContext=OptiwandOnDoor
DoorRelatedContext=DoorAnimation

Context=Glass
Context=ToolkitOnWedge
Context=ToolkitOnC2Charge
Context=ToolkitOnBomb
Context=CuffsOnSuspect
Context=CuffsOnCivilian
Context=CuffsOnVIP
Context=CuffsOnPlayer
Context=ToolkitOnArrestedVIP
Context=DoorBufferVolume
Context=GenericObject

;(The order of these sections is not important.)

;
; \/ Door Related Contexts \/
;

[DoorWay]
;note, this could be left out since it does not
;   BlockTrace or AddFocus.  It is provided
;   for efficiency so that the Interface doesn't
;   need to test any more contexts.
DoorPart=DoorPart_Way

[DoorModel]
DoorPart=DoorPart_Model

BlockTrace=true

[ToolkitOnDoor]
Range=82
DoorPart=DoorPart_Animation
SkeletalRegion=REGION_Door_ToolkitSpot

HasA=Toolkit

CaresAboutOpen=true
IsOpen=false

EquipmentSlotForQualify=SLOT_Toolkit
ReticleImage=Material'gui_tex.qih_toolkit'

AddFocus=true
BlockTrace=true

FireFeedbackText=(Hold) Pick Lock

[C2ChargeOnDoor]
Range=75
DoorPart=DoorPart_Animation
SkeletalRegion=REGION_Door_BreachingSpot
CaresAboutOpen=true
IsOpen=false
CaresAboutC2ChargeOnPlayersSide=true
IsC2ChargeOnPlayersSide=false
HasA=C2Charge
ExceptActiveItem=Detonator

EquipmentSlotForQualify=SLOT_Breaching
ReticleImage=Material'gui_tex.qih_c2'

AddFocus=true
BlockTrace=true

FireFeedbackText=(Hold) Set Charge
;SideEffect=PreviewC2Charge

[BreachingShotgunOnDoor]
Range=82
DoorPart=DoorPart_Animation
SkeletalRegion=REGION_Door_BreachingSpot
CaresAboutOpen=true
IsOpen=false
HasA=BreachingSG

EquipmentSlotForQualify=SLOT_Breaching
ReticleImage=Material'gui_tex.qih_breaching'

AddFocus=true
BlockTrace=true

FireFeedbackText=Breach Door

[WedgeOnDoor]
Range=128
DoorPart=DoorPart_Animation
SkeletalRegion=REGION_Door_WedgeSpot
CaresAboutOpen=true
IsOpen=false
CaresAboutWedged=true
IsWedged=false
HasA=Wedge

EquipmentSlotForQualify=SLOT_Wedge
ReticleImage=Material'gui_tex.qih_doorwedge'

AddFocus=true
BlockTrace=true

FireFeedBackText=(Hold) Deploy Wedge
;SideEffect=PreviewWedge

[OptiwandOnDoor]
Range=128
DoorPart=DoorPart_Animation
SkeletalRegion=REGION_Door_OptiwandSpot
CaresAboutOpen=true
IsOpen=false
HasA=Optiwand

EquipmentSlotForQualify=SLOT_Optiwand
ReticleImage=Material'gui_tex.qih_optiwand'

AddFocus=true
BlockTrace=true

FireFeedBackText=(Hold) Mirror Under Door

[DoorAnimation]
;This is needed so that if you're pointing at
;   an attachment on the door, the DoorAnimation
;   doesn't match GenericObject and block
;   the focus, thus not adding the attachment.
;It needs to go at the end of the DoorRelatedContexts,
;   so that it doesn't match instead of
;   one of the special spots on the DoorAnimation.
DoorPart=DoorPart_Animation

;
; \/ Other Contexts \/
;

[Glass]
;Can't use equipment thru glass
Type=Actor

CaresAboutTransparent=true
IsTransparent=true

AddFocus=false
BlockTrace=true

[ToolkitOnWedge]
Range=128
Type=DeployedWedge
HasA=Toolkit

EquipmentSlotForQualify=SLOT_Toolkit
ReticleImage=Material'gui_tex.qih_toolkit'

AddFocus=true
BlockTrace=true

FireFeedbackText=Remove Wedge

[ToolkitOnC2Charge]
Range=82
Type=DeployedC2Charge
HasA=Toolkit

CaresAboutC2ChargeOnPlayersSide=true
IsC2ChargeOnPlayersSide=true

ExceptActiveItem=Detonator

EquipmentSlotForQualify=SLOT_Toolkit
ReticleImage=Material'gui_tex.qih_toolkit'

AddFocus=true
BlockTrace=true

FireFeedbackText=Remove C2 Charge

[ToolkitOnBomb]
Range=128
Type=Bomb
HasA=Toolkit

CaresAboutCanBeUsedByToolkitNow=true
CanBeUsedByToolkitNow=true

;in multiplayer, only SWAT can disable bombs
HasSpecialConditions=true

EquipmentSlotForQualify=SLOT_Toolkit
ReticleImage=Material'gui_tex.qih_toolkit'

AddFocus=true
BlockTrace=true

FireFeedbackText=Disable Bomb

[CuffsOnSuspect]
Range=200
Type=SwatEnemy
ActiveItem=Cuffs

CaresAboutCanBeArrestedNow=true
CanBeArrestedNow=true

AddFocus=true
BlockTrace=true

FireFeedbackText=(Hold) Restrain Suspect

[CuffsOnCivilian]
Range=200
Type=SwatHostage
ActiveItem=Cuffs

CaresAboutCanBeArrestedNow=true
CanBeArrestedNow=true

AddFocus=true
BlockTrace=true

FireFeedbackText=(Hold) Restrain Civilian

[CuffsOnVIP]
Range=200
Type=SwatPlayer
ActiveItem=Cuffs

CaresAboutCanBeArrestedNow=true
CanBeArrestedNow=true

;special condition: ANetPlayer::FocusInterfaceContextMeetsSpecialConditions() tests if Candidate is the VIP and on the other team
HasSpecialConditions=true

AddFocus=true
BlockTrace=true

FireFeedbackText=(Hold) Restrain VIP

[CuffsOnPlayer]
Range=200
Type=SwatPlayer
ActiveItem=Cuffs

CaresAboutCanBeArrestedNow=true
CanBeArrestedNow=true

;special condition: ANetPlayer::FocusInterfaceContextMeetsSpecialConditions() tests if Candidate is on the other team
HasSpecialConditions=true

AddFocus=true
BlockTrace=true

FireFeedbackText=(Hold) Restrain Player

[ToolkitOnArrestedVIP]
Range=200
Type=NetPlayer
HasA=Toolkit

CaresAboutCanBeUsedByToolkitNow=true
CanBeUsedByToolkitNow=true

;special condition: ANetPlayer::FocusInterfaceContextMeetsSpecialConditions() tests if Candidate is the VIP
HasSpecialConditions=true

EquipmentSlotForQualify=SLOT_Toolkit
ReticleImage=Material'gui_tex.qih_toolkit'

AddFocus=true
BlockTrace=true

FireFeedbackText=Release VIP

[DoorBufferVolume]
Type=DoorBufferVolume

AddFocus=false
BlockTrace=false

[GenericObject]
;This Context refers to some visible object that isn't anything particular.
;It should block the trace so that we can't fire items thru solid objects.
Type=Actor

AddFocus=false
BlockTrace=true
