actor HomingSniperBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_8E"
dropitem "HomingSniperWepCDropped"
Weapon.AmmoUse 4
Weapon.AmmoGive 28
Obituary "$OB_HOMINGSNIPER"
Inventory.Pickupmessage "Now you're searchman, ok?"
weapon.ammotype "WilyBanzaiAmmo"
+WEAPON.NOAUTOAIM
States
{
Spawn:
C_08 E 1
loop
Ready:
HSN8 A 0 ACS_ExecuteAlways(998,0,DYE_SEARCHMAN)
HSN8 A 0 A_GunFlash("Flash.TeamCheck")
goto Ready1
Ready1:
HSN8 A 2 A_WeaponReady
loop
Deselect:
HSN8 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
HSN8 A 1 A_Lower
Loop
Select:
HSN8 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
HSN8 A 1 A_Raise
Loop
Fire:
HSN8 B 1 A_JumpIfInventory("PowerRage_ST",1,"FireRedo3.a")
HSN8 B 0 A_Refire("FireRedo3.a")
goto FireTheMissiles0
FireHoldC:
HSN8 A 0 A_JumpIfInventory("WilyBanzaiAmmo",1,"FireHold")
goto FireTheMissiles0
FireHold:
HSN8 H 0 A_TakeInventory("WilyBanzaiAmmo",1,1)
HSN8 L 1 A_GiveInventory("SearchmanMain_CI",1)
HSN8 H 0 A_Refire("FireHoldC")
goto FireTheMissiles0
FireTheMissiles0:
HSN8 H 1
HSN8 H 0 A_JumpIfInventory("SearchTargetID1",1,"Fire1")
HSN8 H 0 A_JumpIfInventory("SearchTargetID2",1,"Fire2")
HSN8 H 0 A_JumpIfInventory("SearchTargetID3",1,"Fire3")
HSN8 H 0 A_JumpIfInventory("SearchTargetID4",1,"Fire4")
goto Fire0
FireTheMissiles:
HSN8 H 0 A_JumpIfInventory("SearchTargetID1",1,"Fire1")
HSN8 H 0 A_JumpIfInventory("SearchTargetID2",1,"Fire2")
HSN8 H 0 A_JumpIfInventory("SearchTargetID3",1,"Fire3")
HSN8 H 0 A_JumpIfInventory("SearchTargetID4",1,"Fire4")
HSN8 H 0
goto Fire0+4
Fire4:
HSN8 I 0 A_PlaySoundEx("wep_L/SearchMissile","Weapon")//weapon/coilexplode
HSN8 I 0 A_GiveInventory("SearchmanMain4_CI",1)
HSN8 IJ 2
goto FireTheMissiles+4
Fire3:
HSN8 I 0 A_PlaySoundEx("wep_L/SearchMissile","Weapon")
HSN8 I 0 A_GiveInventory("SearchmanMain3_CI",1)
HSN8 IJ 2
goto FireTheMissiles+3
Fire2:
HSN8 I 0 A_PlaySoundEx("wep_L/SearchMissile","Weapon")
HSN8 I 0 A_GiveInventory("SearchmanMain2_CI",1)
HSN8 IJ 2
goto FireTheMissiles+2
Fire1:
HSN8 I 0 A_PlaySoundEx("wep_L/SearchMissile","Weapon")
HSN8 I 0 A_GiveInventory("SearchmanMain1_CI",1)
HSN8 IJ 2
goto FireTheMissiles+1
Fire0:
HSN8 I 0 A_PlaySoundEx("wep_L/SearchMissile","Weapon")
HSN8 I 0 A_GiveInventory("SearchmanMain0_CI",1)
HSN8 IJ 2
HSN8 K 0 A_TakeInventory("SearchTargetID4",999)
HSN8 K 0 A_TakeInventory("SearchTargetID3",999)
HSN8 K 0 A_TakeInventory("SearchTargetID2",999)
HSN8 K 0 A_TakeInventory("SearchTargetID1",999)
HSN8 K 0 A_TakeInventory("SearchTargetID4CD",999)
HSN8 K 0 A_TakeInventory("SearchTargetID3CD",999)
HSN8 K 0 A_TakeInventory("SearchTargetID2CD",999)
HSN8 K 0 A_TakeInventory("SearchTargetID1CD",999)
HSN8 KHHHH 2 A_GiveInventory("WilyBanzaiAmmo",100)
HSN8 H 0 A_GiveInventory("WilyBanzaiAmmo",560)
goto FireRedoCheck
FireRedoCheck:
HSN8 H 0 A_Refire("FireRedo0.a")
HSN8 D 1
HSN8 D 0 A_Refire("FireRedo0")
HSN8 D 1
HSN8 C 0 A_Refire("FireRedo1.a")
HSN8 C 1
HSN8 C 0 A_Refire("FireRedo1")
HSN8 C 1
HSN8 B 0 A_Refire("FireRedo2.a")
HSN8 B 1
HSN8 B 0 A_Refire("FireRedo2")
HSN8 B 1
HSN8 A 0 A_Refire("FireRedo3.a")
HSN8 A 1
HSN8 A 0 A_Refire("FireRedo3")
HSN8 A 1
goto Ready1

FireRedo3:
HSN8 B 1 A_JumpIfInventory("PowerRage_ST",1,"FireRedo3.a")
HSN8 B 0 A_Refire("FireRedo3.a")
goto FireTheMissiles0
FireRedo3.a:
HSN8 B 1
HSN8 B 0 A_Refire("FireRedo2")
goto FireTheMissiles0
FireRedo2:
HSN8 C 1 A_JumpIfInventory("PowerRage_ST",1,"FireRedo2.a")
HSN8 C 0 A_Refire("FireRedo2.a")
goto FireTheMissiles0
FireRedo2.a:
HSN8 C 1
HSN8 C 0 A_Refire("FireRedo1")
goto FireTheMissiles0
FireRedo1:
HSN8 D 1 A_JumpIfInventory("PowerRage_ST",1,"FireRedo1.a")
HSN8 D 0 A_Refire("FireRedo1.a")
goto FireTheMissiles0
FireRedo1.a:
HSN8 D 1
HSN8 D 0 A_Refire("FireRedo0")
goto FireTheMissiles0
FireRedo0:
HSN8 H 1 A_JumpIfInventory("PowerRage_ST",1,"FireRedo0.a")
HSN8 H 0 A_Refire("FireRedo0.a")
goto FireTheMissiles0
FireRedo0.a:
HSN8 H 1
HSN8 H 0 A_Refire("FireHold")
goto FireTheMissiles0

Altfire:
HSN8 A 0 A_GiveInventory("VivifyDelay7",1)
HSN8 A 0 A_Refire(1)
HSN8 A 0 A_GiveInventory("SearchmanAlt_CI",1)
HSN8 A 0 A_PlaySoundEx("weapon/dustbit","Weapon")
HSN8 BCEFGGGFECBA 2
goto Ready1


Flash.TeamCheck:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(975,1),"Flash.Team")
goto Flash

Flash:
TNT1 A 0 A_JumpIfInventory("BushInvis",1,"Flash.Bush")
TNT1 A 0 A_SetTranslucent(1.0)
TNT1 A 0 A_GiveInventory("SearchM_BushFlagsOff_P")
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 1 A_GiveInventory("SearchmanFlashState_P",1)
loop
Flash.Bush:
TNT1 A 0 A_GiveInventory("SearchM_BushFlagsOn_P")
TNT1 A 0 A_SetTranslucent(0.0)
goto Flash+3


Flash.Team:
TNT1 A 0 A_JumpIfInventory("BushInvis",1,"Flash.TeamBush")
TNT1 A 0 A_SetTranslucent(1.0)
TNT1 A 0 A_GiveInventory("SearchM_BushFlagsOff_P")
TNT1 A 0 
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 1 A_GiveInventory("SearchmanFlashState_P",1)
loop
Flash.TeamBush:
TNT1 A 0 A_GiveInventory("SearchM_BushFlagsOn_P")
TNT1 A 0 A_SetTranslucent(0.0)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==0,"Flash.Blue")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==1,"Flash.Red")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==2,"Flash.Orange")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==3,"Flash.Purple")
goto Flash.Team+4

Flash.Blue:
TNT1 A 0 A_SpawnItemEx("SearchM_IsHiddenFX0",0,0,60-(z-ceilingz > -70-56)*(70+56+(z-ceilingz))/2,momx,momy,momz,0,9,0)
goto Flash.Team+4
Flash.Red:
TNT1 A 0 A_SpawnItemEx("SearchM_IsHiddenFX1",0,0,60-(z-ceilingz > -70-56)*(70+56+(z-ceilingz))/2,momx,momy,momz,0,9,0)
goto Flash.Team+4
Flash.Orange:
TNT1 A 0 A_SpawnItemEx("SearchM_IsHiddenFX2",0,0,60-(z-ceilingz > -70-56)*(70+56+(z-ceilingz))/2,momx,momy,momz,0,9,0)
goto Flash.Team+4
Flash.Purple:
TNT1 A 0 A_SpawnItemEx("SearchM_IsHiddenFX3",0,0,60-(z-ceilingz > -70-56)*(70+56+(z-ceilingz))/2,momx,momy,momz,0,9,0)
goto Flash.Team+4
}
}

actor WilyBanzaiAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 560
+INVENTORY.IGNORESKILL
}

actor CrossHairFrame : Inventory
{
inventory.amount 1
inventory.maxamount 18
}
actor CrossBlink : Inventory
{
inventory.amount 1
inventory.maxamount 8
}

actor SearchTargetID : Inventory
{
inventory.amount 1
inventory.maxamount 64
}

actor SearchTargetID1 : SearchTargetID {}
actor SearchTargetID2 : SearchTargetID {}
actor SearchTargetID3 : SearchTargetID {}
actor SearchTargetID4 : SearchTargetID {}

actor SearchTargetIDCD : Powerup
{
+INVENTORY.ADDITIVETIME
powerup.duration 11
}

actor SearchTargetID1CD : SearchTargetIDCD {}
actor SearchTargetID2CD : SearchTargetIDCD {}
actor SearchTargetID3CD : SearchTargetIDCD {}
actor SearchTargetID4CD : SearchTargetIDCD {}

actor HomingLockedVision : Powerup
{
powerup.duration 10
}

actor SearchTargetID1CD_RC : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"PickupR")
TNT1 A 0 A_GiveInventory("SearchTargetID1CD",1)
goto PickupR
PickupR:
TNT1 A 0 A_GiveInventory("SearchTargetID1CD",1)
stop
}
}
actor SearchTargetID2CD_RC : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"PickupR")
TNT1 A 0 A_GiveInventory("SearchTargetID2CD",1)
goto PickupR
PickupR:
TNT1 A 0 A_GiveInventory("SearchTargetID2CD",1)
stop
}
}
actor SearchTargetID3CD_RC : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"PickupR")
TNT1 A 0 A_GiveInventory("SearchTargetID3CD",1)
goto PickupR
PickupR:
TNT1 A 0 A_GiveInventory("SearchTargetID3CD",1)
stop
}
}
actor SearchTargetID4CD_RC : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"PickupR")
TNT1 A 0 A_GiveInventory("SearchTargetID4CD",1)
goto PickupR
PickupR:
TNT1 A 0 A_GiveInventory("SearchTargetID4CD",1)
stop
}
}

actor SearchmanFlashState_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("SearchTargetID1",1,"Flash1")
TNT1 A 0 A_JumpIfInventory("SearchTargetID2",1,"Flash2")
TNT1 A 0 A_JumpIfInventory("SearchTargetID3",1,"Flash3")
TNT1 A 0 A_JumpIfInventory("SearchTargetID4",1,"Flash4")
TNT1 A 0
stop
Flash1:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,3,1)
goto Pickup+1
Flash2:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,3,2)
goto Pickup+2
Flash3:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,3,3)
goto Pickup+3
Flash4:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,3,4)
goto Pickup+4
}
}

actor HomingCrosshairB
{
PainSound "weapon/SearchCross"
+NOGRAVITY
- SOLID
+DONTSPLASH
+DONTBLAST
+THRUGHOST
+THRUACTORS
//+CLIENTSIDEONLY
//+NONETID
+NOINTERACTION
Radius 2
Height 2
Scale 2.5
states
{
Spawn:
HSNC A 0
HSNC A 1 A_Pain
stop
}
}
actor HomingCrosshairB2 : HomingCrosshairB
{
states
{
Spawn:
HSNC B 0
HSNC B 1
stop
}
}
actor HomingCrosshairB3 : HomingCrosshairB
{
states
{
Spawn:
HSNC C 0
HSNC C 1
stop
}
}
actor HomingCrosshairB4 : HomingCrosshairB
{
states
{
Spawn:
HSNC D 0
HSNC D 1 A_Pain
stop
}
}
actor HomingCrosshairB5 : HomingCrosshairB
{
states
{
Spawn:
HSNC E 0
HSNC E 1
stop
}
}
actor HomingCrosshairB6 : HomingCrosshairB
{
states
{
Spawn:
HSNC F 0
HSNC F 1
stop
}
}
actor HomingCrosshairB7 : HomingCrosshairB
{
states
{
Spawn:
HSNC G 0
HSNC G 1 A_Pain
stop
}
}
actor HomingCrosshairB8 : HomingCrosshairB
{
states
{
Spawn:
HSNC H 0
HSNC H 1
stop
}
}
actor HomingCrosshairB9 : HomingCrosshairB
{
states
{
Spawn:
HSNC I 0
HSNC I 1
stop
}
}

actor HomingCrosshairBW : HomingCrosshairB{states{Spawn:HSNC O 0
HSNC O 1 A_Pain
stop}}
actor HomingCrosshairB2W : HomingCrosshairB2{states{Spawn:HSNC P 0
HSNC P 1
stop}}
actor HomingCrosshairB3W : HomingCrosshairB3{states{Spawn:HSNC Q 0
HSNC Q 1
stop}}
actor HomingCrosshairB4W : HomingCrosshairB4{states{Spawn:HSNC R 0
HSNC R 1 A_Pain
stop}}
actor HomingCrosshairB5W : HomingCrosshairB5{states{Spawn:HSNC S 0
HSNC S 1
stop}}
actor HomingCrosshairB6W : HomingCrosshairB6{states{Spawn:HSNC T 0
HSNC T 1
stop}}
actor HomingCrosshairB7W : HomingCrosshairB7{states{Spawn:HSNC U 0
HSNC U 1 A_Pain
stop}}
actor HomingCrosshairB8W : HomingCrosshairB8{states{Spawn:HSNC V 0
HSNC V 1
stop}}
actor HomingCrosshairB9W : HomingCrosshairB9{states{Spawn:HSNC W 0
HSNC W 1
stop}}

actor SearchmanLockonCrosshair
{
-SOLID
+NOGRAVITY
+DONTSPLASH
+CLIENTSIDEONLY
+NOINTERACTION
//+NONETID
Radius 2
Height 2
Scale 2.5
states
{
Spawn:
HSNC N 0
HSNC N 1
stop
}
}

actor SearchmanLockonGiver_P : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("HomingLockedVision",1)
TNT1 A 0 A_SpawnItemEx("SearchmanLockonCrosshair_H")
stop
}
}

actor SearchmanLockonGiver_P2 : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("HomingLockedVision",1)
TNT1 A 0 A_SpawnItemEx("SearchmanLockonCrosshair_H")
stop
}
}

actor SearchmanLockonCrosshair_P : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SpawnItemEx("SearchmanLockonCrosshair",0,0,32,momx,momy,momz,0,8)
stop
}
}

actor SearchmanLockonCrosshair_H : BasicHelper
{
states
{
Spawn:
TNT1 A 0
TNT1 AAA 1 A_GiveToTarget("SearchmanLockonCrosshair_P",1)
stop
Death:
TNT1 A 1
stop
}
}


actor SearchManTargeterACS_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerenemy")==1,"Target1")
stop
Target1:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,-1,ACS_ExecuteWithResult(257),CallACS("cbm_GetPointerTID_147",8))
stop
}
}

actor SearchManCrossHairFrame_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("CrossHairFrame",18,"FrameReset")
TNT1 A 0 A_GiveInventory("CrossHairFrame",1)
TNT1 A 0 A_JumpIfInventory("CrossBlink",8,"WhiteReset")
TNT1 A 0 A_GiveInventory("CrossBlink",1)
stop
FrameReset:
TNT1 A 0 A_TakeInventory("CrossHairFrame",999)
goto Pickup+1
WhiteReset:
TNT1 A 0 A_TakeInventory("CrossBlink",999)
goto Pickup+3
}
}

actor SearchManTargeterFX_P : CustomInventory
{
States
{
Pickup:
CrossHair:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("SearchManCrossHairFrame_P",1)
TNT1 A 0 A_JumpIfInTargetInventory("CrossBlink",4,"White")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",17,"CrossHair9")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",15,"CrossHair8")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",13,"CrossHair7")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",11,"CrossHair6")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",9,"CrossHair5")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",7,"CrossHair4")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",5,"CrossHair3")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",3,"CrossHair2")
TNT1 A 0 //A_Jump(256,CountInv("CrossHairFrame"))
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB",8,0,8,0,0,0,0,1)
stop
CrossHair2:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB2",8,0,8,0,0,0,0,1)
stop
CrossHair3:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB3",8,0,8,0,0,0,0,1)
stop
CrossHair4:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB4",8,0,8,0,0,0,0,1)
stop
CrossHair5:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB5",8,0,8,0,0,0,0,1)
stop
CrossHair6:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB6",8,0,8,0,0,0,0,1)
stop
CrossHair7:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB7",8,0,8,0,0,0,0,1)
stop
CrossHair8:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB8",8,0,8,0,0,0,0,1)
stop
CrossHair9:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB9",8,0,8,0,0,0,0,1)
stop

White:
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",17,"CrossHair9W")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",15,"CrossHair8W")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",13,"CrossHair7W")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",11,"CrossHair6W")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",9,"CrossHair5W")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",7,"CrossHair4W")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",5,"CrossHair3W")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",3,"CrossHair2W")
TNT1 A 0 A_SpawnItemEx("HomingCrosshairBW",8,0,8,0,0,0,0,1)
stop
CrossHair2W:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB2W",8,0,8,0,0,0,0,1)
stop
CrossHair3W:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB3W",8,0,8,0,0,0,0,1)
stop
CrossHair4W:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB4W",8,0,8,0,0,0,0,1)
stop
CrossHair5W:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB5W",8,0,8,0,0,0,0,1)
stop
CrossHair6W:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB6W",8,0,8,0,0,0,0,1)
stop
CrossHair7W:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB7W",8,0,8,0,0,0,0,1)
stop
CrossHair8W:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB8W",8,0,8,0,0,0,0,1)
stop
CrossHair9W:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB9W",8,0,8,0,0,0,0,1)
stop

}
}

actor SearchManTargeter : FastProjectile
{
Translation "199:199=212:212","202:202=4:4"
+SKYEXPLODE
+EXPLODEONWATER
+DONTBLAST
+DONTREFLECT
+DONTSPLASH
+HITTRACER
Reactiontime 1
Damage (0)
radius 16
height 16
Speed 1000
States
{
Spawn:
TNT1 A 0
TNT1 A 10
TNT1 A 1 A_CountDown
wait

XDeath:
TNT1 A 0 A_GiveInventory("SearchManTargeterACS_P",1)
TNT1 A 2 A_GiveInventory("SearchManTargeterFX_P",1)
stop

Death:
TNT1 A 0 A_GiveInventory("SearchManTargeterFX_P",1)
stop
}
}


actor SearchManTargeterB : SearchManTargeter{Translation "199:199=74:74","202:202=205:205"}
actor SearchManTargeterR : SearchManTargeter{Translation "199:199=41:41","202:202=171:171"}
actor SearchManTargeterO : SearchManTargeter{Translation "199:199=128:128","202:202=104:104"}
actor SearchManTargeterP : SearchManTargeter{Translation "199:199=232:232","202:202=229:229"}

actor HomingSniperB
{
Translation "192:192=105:105","198:198=230:230","204:204=215:215"
PROJECTILE
Damagetype "SearchM_Shot"
Obituary "$OB_HOMINGSNIPERYD"
+DONTSEEKINVISIBLE
+SEEKERMISSILE
+SCREENSEEKER
damage (110+pitch*10)
Radius 9
Height 9
speed 32
scale 2.5
States
{
Spawn:
X_8E BC 2
loop

SpawnCore:
X_8E BBCC 1 A_SeekerMissile(2,10,3,50,9)
Goto Primed
Primed:
X_8E B 1 A_SeekerMissile(2,10,3,50,9)
X_8E B 0 A_JumpIfTargetInLOS("See",0,1)
X_8E B 1 A_SeekerMissile(2,10,3,50,9)
X_8E B 0 A_JumpIfTargetInLOS("See",0,1)
X_8E C 1 A_SeekerMissile(2,10,3,50,9)
X_8E C 0 A_JumpIfTargetInLOS("See",0,1)
X_8E C 1 A_SeekerMissile(2,10,3,50,9)
X_8E C 0 A_JumpIfTargetInLOS("See",0,1)
loop
See:
X_8E BBBBB 0 A_SeekerMissile(2,10,6)
X_8E B 1
X_8E B 0 A_ScaleVelocity(2.0)
Goto FastMode
FastMode:
X_8E BC 2
X_8E B 0 A_SpawnItemEx("HomingSniperBFX",0,0,0,momx*10,momy*10,momz*10,0,11)
X_8E BC 2
X_8E B 0 A_SpawnItemEx("HomingSniperBFX",0,0,0,momx*10,momy*10,momz*10,0,11)
X_8E BC 2
X_8E B 0 A_SpawnItemEx("HomingSniperBFX",0,0,0,momx*10,momy*10,momz*10,0,11)
Goto See+4
Death:
VMFX IJK 2 bright
XMFX D 2 bright
stop
}
}

actor HomingSniperBB : HomingSniperB{Translation "192:192=205:205","198:198=74:74","204:204=205:205"}
actor HomingSniperBR : HomingSniperB{Translation "192:192=171:171","198:198=41:41","204:204=171:171"}
actor HomingSniperBO : HomingSniperB{Translation "192:192=104:104","198:198=128:128","204:204=104:104"}
actor HomingSniperBP : HomingSniperB{Translation "192:192=229:229","198:198=232:232","204:204=229:229"}

actor HomingSniperBFX
{
PROJECTILE
+DONTBLAST
+PAINLESS
damage (0)
Radius 16
Height 16
speed 80
scale 2.5
States
{
Spawn:
TNT1 A 1
loop
XDeath:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("HomingSniperBFX2",8,0,8,0,0,0,0,9)
Death:
TNT1 A 1
stop
}
}

actor HomingSniperBFX2 : BasicClientSide
{
States
{
Spawn:
X_8E MLKKK 2
stop
}
}

actor HomingSniperCoreB : HomingSniperB
{
Radius 5
Height 5
speed 28
States
{
Spawn:
X_8E B 0
goto SpawnCore
}
}

actor HomingSniperB1
{
var int user_B;
var int user_TID;
Translation "192:192=105:105","198:198=230:230","204:204=215:215"
PROJECTILE
Damagetype "SearchM_LockShot"
Obituary "$OB_HOMINGSNIPERYD"
+DONTBLAST
+DONTREFLECT
+SEEKERMISSILE
Meleerange 1
damage (100+user_B*10)
Radius 5
Height 5
speed 28
scale 2.5
states
{
Spawn:
X_8E B 0
X_8E B 0 A_SetUserVar("user_TID",CallACS("cbm_Searchman_ACS",1,Meleerange))
Spawn2:
X_8E B 0 A_JumpIf(user_TID==0,"Unlock")
X_8E B 0 ACS_ExecuteAlways(C_SET_POINTER,0,8,user_TID+999)
X_8E B 1
//X_8E B 0 A_FaceTracer(90,90)//Change to this when the flags exist
//X_8E B 0 A_ChangeVelocity(cos(pitch)*28,0,sin(pitch)*28,3)
Spawn3:
//Check if tracer is alive and give them locked on FX
X_8E B 0 A_JumpIf(CallACS("cbm_Searchman_ACS",2,user_TID)==0,"Unlock")
X_8E B 0 A_SeekerMissile(90,90,2)
X_8E B 1
X_8E B 0 A_JumpIf(CallACS("cbm_Searchman_ACS",2,user_TID)==0,"Unlock")
X_8E B 0 A_SeekerMissile(90,90,2)
X_8E C 1 A_SpawnItemEx("SearchHomingSniperFX",0,0,0,0,0,0,0,1)
X_8E C 0 A_JumpIf(CallACS("cbm_Searchman_ACS",2,user_TID)==0,"Unlock")
X_8E C 0 A_SeekerMissile(90,90,2)
X_8E C 1
X_8E B 0 A_JumpIf(CallACS("cbm_Searchman_ACS",2,user_TID)==0,"Unlock")
X_8E B 0 A_SeekerMissile(90,90,2)
X_8E B 1 A_SpawnItemEx("SearchHomingSniperFX",0,0,0,0,0,0,0,1)
X_8E B 0 A_JumpIf(user_B>=6,"Spawn3")
X_8E B 0 A_GiveInventory("WeaponCharge",1)
X_8E B 0 A_JumpIfInventory("WeaponCharge",5,"SpawnP")
loop
SpawnP:
X_8E B 0 A_SetUserVar("user_B",user_B+1)
X_8E B 0 A_TakeInventory("WeaponCharge",99)
goto Spawn3
Unlock:
TNT1 A 0 A_SetPitch(user_B)
TNT1 A 0 A_SpawnItemEx("HomingSniperCoreB",0,0,0,momx,momy,momz,0,521,0)
stop
Death:
VMFX IJK 2 bright
XMFX D 2 bright
stop
}
}
actor HomingSniperB1B : HomingSniperB1{Translation "192:192=205:205","198:198=74:74","204:204=205:205"}
actor HomingSniperB1R : HomingSniperB1{Translation "192:192=171:171","198:198=41:41","204:204=171:171"}
actor HomingSniperB1O : HomingSniperB1{Translation "192:192=104:104","198:198=128:128","204:204=104:104"}
actor HomingSniperB1P : HomingSniperB1{Translation "192:192=229:229","198:198=232:232","204:204=229:229"}

actor HomingSniperB2 : HomingSniperB1
{
Meleerange 2
}
actor HomingSniperB2B : HomingSniperB1B{Meleerange 2}
actor HomingSniperB2R : HomingSniperB1R{Meleerange 2}
actor HomingSniperB2O : HomingSniperB1O{Meleerange 2}
actor HomingSniperB2P : HomingSniperB1P{Meleerange 2}

actor HomingSniperB3 : HomingSniperB1
{
Meleerange 3
}
actor HomingSniperB3B : HomingSniperB1B{Meleerange 3}
actor HomingSniperB3R : HomingSniperB1R{Meleerange 3}
actor HomingSniperB3O : HomingSniperB1O{Meleerange 3}
actor HomingSniperB3P : HomingSniperB1P{Meleerange 3}

actor HomingSniperB4 : HomingSniperB1
{
Meleerange 4
}
actor HomingSniperB4B : HomingSniperB1B{Meleerange 4}
actor HomingSniperB4R : HomingSniperB1R{Meleerange 4}
actor HomingSniperB4O : HomingSniperB1O{Meleerange 4}
actor HomingSniperB4P : HomingSniperB1P{Meleerange 4}

actor SearchHomingSniperFX : BasicClientSide
{
states
{
Spawn:
TNT1 A 0
TNT1 A 1
HSN8 NOP 2
stop
}
}

actor SearchFrisbee
{
Translation "204:204=215:215","195:195=73:73"
PROJECTILE
Damagetype "SearchM_Disc"
Obituary "$OB_SEARCHDISC"
BounceSound "wep_L/SearchDiscBounce"//item/protoreflect
+BOUNCEONFLOORS
+BOUNCEONWALLS
+BOUNCEONCEILINGS
+CANBOUNCEWATER
bouncefactor 1.0
wallbouncefactor 1.0
Bouncecount 4
reactiontime 20
Damage (180)
Height 12
Radius 12
speed 44
Scale 2.5
States
{
Spawn:
HSN8 Q 0 A_CountDown
HSN8 QR 3
loop
Death:
XMFX QSSQQ 1 bright
VMFX JD 2 bright
stop
}
}

actor SearchFrisbeeB : SearchFrisbee{Translation "204:204=205:205","195:195=74:74"}
actor SearchFrisbeeR : SearchFrisbee{Translation "204:204=171:171","195:195=41:41"}
actor SearchFrisbeeO : SearchFrisbee{Translation "204:204=104:104","195:195=128:128"}
actor SearchFrisbeeP : SearchFrisbee{Translation "204:204=229:229","195:195=232:232"}

actor SearchM_IsHiddenFX : CBM_IsHiddenFX
{
/*
-SOLID
+NOGRAVITY
+NOINTERACTION
+CLIENTSIDEONLY
//+NONETID
RenderStyle "Translucent"
Alpha 0.6
Radius 2
Height 2
scale 2.5
*/
states
{
Spawn:
SEAR I 0
SEAR I 1
stop
}
}
actor SearchM_IsHiddenFX0 : SearchM_IsHiddenFX
{
VisibleToTeam 0
}
actor SearchM_IsHiddenFX1 : SearchM_IsHiddenFX{VisibleToTeam 1}
actor SearchM_IsHiddenFX2 : SearchM_IsHiddenFX{VisibleToTeam 2}
actor SearchM_IsHiddenFX3 : SearchM_IsHiddenFX{VisibleToTeam 3}

actor SearchM_BushFlagsOn_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_CheckFlag("DONTIDENTIFYTARGET",2)
TNT1 A 0 ACS_NamedExecuteAlways("core_cantseekplayer",0,0,true)
TNT1 A 0 A_ChangeFlag("DONTIDENTIFYTARGET",1)
stop
}
}
actor SearchM_BushFlagsOff_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_CheckFlag("DONTIDENTIFYTARGET",1)
stop
TNT1 A 0 ACS_NamedExecuteAlways("core_cantseekplayer",0,0,false)
TNT1 A 0 A_ChangeFlag("DONTIDENTIFYTARGET",0)
stop
}
}

actor SearchBusher : BasicClassItem
{
inventory.icon "BushIcon"
inventory.pickupmessage "Power up! You can summon bushes, ok?"
Tag "Summon Search Bushes"
states
{
Spawn:
HSN8 Z 1
loop
Use:
TNT1 A 0 A_JumpIfInventory("SearchBushBusy",1,"No")
TNT1 A 0 A_GiveInventory("SearchBushBusy_RC",1)
TNT1 A 0 A_PlaySoundEx("class/searchbush","SoundSlot7")
TNT1 A 0 A_JumpIfInventory("SearchBushFlag1",1,"Success2")
TNT1 A 0 A_JumpIfInventory("SearchBushFlag2",1,"Success3")
TNT1 A 0 A_JumpIfInventory("SearchBushFlag3",1,"Success4")
Success1:
TNT1 A 0 A_TakeInventory("SearchBushFlag4",1)
TNT1 A 0 A_GiveInventory("SearchBushFlag1",1)
TNT1 A 0 A_SpawnItemEx("SearchBush1",0,0,150,0,0,-2,0,1)
TNT1 A 0 A_SpawnItemEx("SearchBush1",120,0,150,0,0,-2,0,1)
TNT1 A 0 A_SpawnItemEx("SearchBush1",240,0,150,0,0,-2,0,1)
fail
Success2:
TNT1 A 0 A_TakeInventory("SearchBushFlag1",1)
TNT1 A 0 A_GiveInventory("SearchBushFlag2",1)
TNT1 A 0 A_SpawnItemEx("SearchBush2",0,0,150,0,0,-2,0,1)
TNT1 A 0 A_SpawnItemEx("SearchBush2",120,0,150,0,0,-2,0,1)
TNT1 A 0 A_SpawnItemEx("SearchBush2",240,0,150,0,0,-2,0,1)
fail
Success3:
TNT1 A 0 A_TakeInventory("SearchBushFlag2",1)
TNT1 A 0 A_GiveInventory("SearchBushFlag3",1)
TNT1 A 0 A_SpawnItemEx("SearchBush3",0,0,150,0,0,-2,0,1)
TNT1 A 0 A_SpawnItemEx("SearchBush3",120,0,150,0,0,-2,0,1)
TNT1 A 0 A_SpawnItemEx("SearchBush3",240,0,150,0,0,-2,0,1)
fail
Success4:
TNT1 A 0 A_TakeInventory("SearchBushFlag3",1)
TNT1 A 0 A_GiveInventory("SearchBushFlag4",1)
TNT1 A 0 A_SpawnItemEx("SearchBush4",0,0,150,0,0,-2,0,1)
TNT1 A 0 A_SpawnItemEx("SearchBush4",120,0,150,0,0,-2,0,1)
TNT1 A 0 A_SpawnItemEx("SearchBush4",240,0,150,0,0,-2,0,1)
fail
}
}

actor SearchBushBusy : Powerup
{
powerup.duration 30
+INVENTORY.ADDITIVETIME
}

actor SearchBushBusy_RC : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"PickupR")
TNT1 A 0 A_GiveInventory("SearchBushBusy",1)
goto PickupR
PickupR:
TNT1 A 0 A_GiveInventory("SearchBushBusy",1)
stop
}
}

/*
actor BushInvis : PowerupGiver
{
powerup.duration 5
//powerup.duration -1
Powerup.Type "PowerShadow"
Powerup.Mode "Translucent"
+INVENTORY.AUTOACTIVATE
}
*/

actor BushInvis : Powerup
{
powerup.duration 7
}

actor SearchBushFlag1 : OnceC{}
actor SearchBushFlag2 : OnceC{}
actor SearchBushFlag3 : OnceC{}
actor SearchBushFlag4 : OnceC{}

actor SearchBushLeafFX1
{
+MISSILE
+NOGRAVITY
+THRUACTORS
+DONTBLAST
+DONTSPLASH
+CLIENTSIDEONLY
RenderStyle "Translucent"
Alpha 0.3
Mass 1
Radius 2
Height 2
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,2,3,4,5,6)
TNT1 A 0 A_Jump(256,5,6,7,8,9)
HSN8 S 4 A_ChangeVelocity(0,2,-2,3)
HSN8 T 3 A_ChangeVelocity(0,3,-2,3)
HSN8 U 4 A_ChangeVelocity(0,4,-2,3)
HSN8 V 3 A_ChangeVelocity(0,3,-2,3)
HSN8 W 4 A_ChangeVelocity(0,2,-2,3)
HSN8 S 4 A_ChangeVelocity(0,-2,-2,3)
HSN8 T 3 A_ChangeVelocity(0,-3,-2,3)
HSN8 U 4 A_ChangeVelocity(0,-4,-2,3)
HSN8 V 3 A_ChangeVelocity(0,-3,-2,3)
HSN8 W 4 A_ChangeVelocity(0,-2,-2,3)
goto Spawn+3
}
}
actor SearchBushLeafFX2 : SearchBushLeafFX1
{
States
{
Spawn:
TNT1 A 0
goto SearchBushLeafFX1::Spawn+2
}
}

actor SearchBush1
{
Translation "192:192=105:105"
PROJECTILE
+NOCLIP
-NOGRAVITY
-MISSILE

+MOVEWITHSECTOR
+DONTREFLECT
+DONTBLAST
RenderStyle "Translucent"
Alpha 0.3
Radius 16//32
Height 12//42
speed 0
scale 2.5
states
{
Spawn:
HSN8 X 0
HSN8 X 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,0,90,ACS_ExecuteWithResult(257))
HSN8 X 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
HSN8 X 0 A_JumpIfInTargetInventory("SearchBushFlag3",1,"Death")
HSN8 X 1
HSN8 X 0 A_JumpIf(momz==0,"SpawnLand")
goto Spawn+2

SpawnLand:
HSN8 Y 0 A_SpawnItemEx("SearchBushLeafFX1",random(1,9)*7,0,70+random(0,16),0,0,-2,random(0,17)*10,1)
HSN8 Y 0 A_SpawnItemEx("SearchBushLeafFX2",random(1,9)*7,0,70+random(0,16),0,0,-2,random(18,35)*10,1)
HSN8 YX 3
HSN8 Y 1 A_Jump(256,"SpawnWait")
wait

SpawnWait:
HSN8 Y 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
HSN8 Y 0 A_JumpIfInTargetInventory("SearchBushFlag3",1,"Death")
HSN8 Y 3
loop

Death:
TNT1 A 1
stop
}
}

actor SearchBush2 : SearchBush1
{
states
{
Spawn:
HSN8 X 0
HSN8 X 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,0,90,ACS_ExecuteWithResult(257))
HSN8 X 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
HSN8 X 1 A_JumpIfInTargetInventory("SearchBushFlag4",1,"Death")
HSN8 X 0 A_JumpIf(momz==0,"SpawnLand")
goto Spawn+2

SpawnWait:
HSN8 Y 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
HSN8 Y 0 A_JumpIfInTargetInventory("SearchBushFlag4",1,"Death")
HSN8 Y 3
loop
}
}

actor SearchBush3 : SearchBush1
{
states
{
Spawn:
HSN8 X 0
HSN8 X 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,0,90,ACS_ExecuteWithResult(257))
HSN8 X 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
HSN8 X 1 A_JumpIfInTargetInventory("SearchBushFlag1",1,"Death")
HSN8 X 0 A_JumpIf(momz==0,"SpawnLand")
goto Spawn+2

SpawnWait:
HSN8 Y 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
HSN8 Y 0 A_JumpIfInTargetInventory("SearchBushFlag1",1,"Death")
HSN8 Y 3
loop
}
}

actor SearchBush4 : SearchBush1
{
states
{
Spawn:
HSN8 X 0
HSN8 X 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,0,90,ACS_ExecuteWithResult(257))
HSN8 X 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
HSN8 X 1 A_JumpIfInTargetInventory("SearchBushFlag2",1,"Death")
HSN8 X 0 A_JumpIf(momz==0,"SpawnLand")
goto Spawn+2

SpawnWait:
HSN8 Y 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
HSN8 Y 0 A_JumpIfInTargetInventory("SearchBushFlag2",1,"Death")
HSN8 Y 3
loop
}
}

actor SearchBushDC : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("HomingSniperBoss",1,"InGame")
TNT1 A 0 A_GiveInventory("SearchBushFlag1",1)
TNT1 A 0 A_GiveInventory("SearchBushFlag2",1)
TNT1 A 0 A_GiveInventory("SearchBushFlag3",1)
TNT1 A 0 A_GiveInventory("SearchBushFlag4",1)
stop
InGame:
TNT1 A 0
stop
}
}


actor SearchmanMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("SearchManTargeter",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("SearchManTargeterB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("SearchManTargeterR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("SearchManTargeterO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("SearchManTargeterP",0,0,0,0)
goto Done
}
}

actor SearchmanMain0_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("HomingSniperB",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("HomingSniperBB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("HomingSniperBR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("HomingSniperBO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("HomingSniperBP",0,0,8,0)
goto Done
}
}

actor SearchmanMain1_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("HomingSniperB1",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("HomingSniperB1B",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("HomingSniperB1R",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("HomingSniperB1O",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("HomingSniperB1P",0,0,8,0)
goto Done
}
}

actor SearchmanMain2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("HomingSniperB2",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("HomingSniperB2B",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("HomingSniperB2R",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("HomingSniperB2O",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("HomingSniperB2P",0,0,8,0)
goto Done
}
}

actor SearchmanMain3_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("HomingSniperB3",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("HomingSniperB3B",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("HomingSniperB3R",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("HomingSniperB3O",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("HomingSniperB3P",0,0,8,0)
goto Done
}
}

actor SearchmanMain4_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("HomingSniperB4",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("HomingSniperB4B",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("HomingSniperB4R",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("HomingSniperB4O",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("HomingSniperB4P",0,0,8,0)
goto Done
}
}


actor SearchmanAlt_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("SearchFrisbee",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("SearchFrisbeeB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("SearchFrisbeeR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("SearchFrisbeeO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("SearchFrisbeeP",0,0,0,0)
goto Done
}
}


