actor HomingSniperBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_8E"
dropitem "HomingSniperWepCDropped"
Weapon.AmmoUse 4
Weapon.AmmoGive 28
Obituary "$OB_HOMINGSNIPER"
Inventory.Pickupmessage "Now you're sHUT THE FUCK UP"
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
goto Ready1
Ready1:
HSN8 K 0 A_GiveInventory("WilyBanzaiAmmo",20)
HSN8 K 0 A_TakeInventory("CutterFlag",999)
HSN8 A 2 A_WeaponReady(WRF_ALLOWRELOAD)
loop
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
HSN8 A 1
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
HSN8 A 1
Loop

TakeAway:
HSN8 H 0 A_TakeInventory("CrossBlink",999)
HSN8 H 0 A_TakeInventory("CrossHairFrame",999)
HSN8 H 0 A_Refire("FireHoldC")
goto FireTheMissiles0

Fire:
HSN8 B 0 A_JumpIfInventory("PowerSearchSpeed",1,"AltfireStorm")
HSN8 A 0 A_JumpIfInventory("CutterFlag",1,"AltfireStorm")
TrueFire:
HSN8 B 1 A_JumpIfInventory("PowerRage_ST",1,"FireRedo3.a")
HSN8 H 0 A_GiveInventory("CutterFlag",1)
HSN8 B 0 A_Refire("FireRedo3.a")
goto FireTheMissiles0
FireHoldC:
HSN8 A 0 A_JumpIfInventory("CrossHairFrame",18,"TakeAway")
HSN8 A 0 A_JumpIfInventory("CrossBlink",18,"TakeAway")
HSN8 A 0 A_JumpIfInventory("WilyBanzaiAmmo",1,"FireHold")
goto FireTheMissiles0
FireHold:
HSN8 H 0 A_TakeInventory("WilyBanzaiAmmo",2)
HSN8 H 0 A_JumpIfInventory("LightTeamFlag",1,"FireB")
HSN8 H 0 A_JumpIfInventory("WilyTeamFlag",1,"FireR")
HSN8 H 0 A_JumpIfInventory("CossackTeamFlag",1,"FireO")
HSN8 H 0 A_JumpIfInventory("KingTeamFlag",1,"FireP")
TNT1 A 0 A_JumpIfNoAmmo("FireHoldNoAmmo")
HSN8 L 0 A_FireCustomMissile("SearchManTargeterFake",0,0,0,0)
HSN8 L 0 A_GiveInventory("SearchmanMain_CI",1)
FireHoldNoAmmo:
HSN8 L 1
HSN8 H 0 A_Refire("FireHoldC")
goto FireTheMissiles0
FireB:
TNT1 A 0 A_JumpIfNoAmmo("FireBNoAmmo")
HSN8 L 0 A_FireCustomMissile("SearchManTargeterFakeB",0,0,0,0)
HSN8 L 0 A_GiveInventory("SearchmanMain_CI",1)
FireBNoAmmo:
HSN8 L 1
HSN8 H 0 A_Refire("FireHoldC")
goto FireTheMissiles0
FireR:
TNT1 A 0 A_JumpIfNoAmmo("FireRNoAmmo")
HSN8 L 0 A_FireCustomMissile("SearchManTargeterFakeR",0,0,0,0)
HSN8 L 0 A_GiveInventory("SearchmanMain_CI",1)
FireRNoAmmo:
HSN8 L 1
HSN8 H 0 A_Refire("FireHoldC")
goto FireTheMissiles0
FireO:
TNT1 A 0 A_JumpIfNoAmmo("FireONoAmmo")
HSN8 L 0 A_FireCustomMissile("SearchManTargeterFakeO",0,0,0,0)
HSN8 L 0 A_GiveInventory("SearchmanMain_CI",1)
FireONoAmmo:
HSN8 L 1
HSN8 H 0 A_Refire("FireHoldC")
goto FireTheMissiles0
FireP:
TNT1 A 0 A_JumpIfNoAmmo("FireP")
HSN8 L 0 A_FireCustomMissile("SearchManTargeterFakeP",0,0,0,0)
HSN8 L 0 A_GiveInventory("SearchmanMain_CI",1)
FirePNoAmmo:
HSN8 L 1
HSN8 H 0 A_Refire("FireHoldC")
goto FireTheMissiles0
FireTheMissiles0:
HSN8 H 1 A_GiveInventory("SearchFireDelay",20)
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("weapon/searchshot","Weapon")
HSN8 I 0 A_GiveInventory("SearchmanMain4_CI",1)
HSN8 I 0 A_TakeInventory("SearchFireDelay",5)
HSN8 IJ 2
goto FireTheMissiles+4
Fire3:
HSN8 I 0 A_PlaySoundEx("weapon/searchshot","Weapon")
HSN8 I 0 A_GiveInventory("SearchmanMain3_CI",1)
HSN8 I 0 A_TakeInventory("SearchFireDelay",5)
HSN8 IJ 2
goto FireTheMissiles+3
Fire2:
HSN8 I 0 A_PlaySoundEx("weapon/searchshot","Weapon")
HSN8 I 0 A_GiveInventory("SearchmanMain2_CI",1)
HSN8 I 0 A_TakeInventory("SearchFireDelay",5)
HSN8 IJ 2
goto FireTheMissiles+2
Fire1:
HSN8 I 0 A_PlaySoundEx("weapon/searchshot","Weapon")
HSN8 I 0 A_GiveInventory("SearchmanMain1_CI",1)
HSN8 I 0 A_TakeInventory("SearchFireDelay",5)
HSN8 IJ 2
goto FireTheMissiles+1
Fire0:
HSN8 I 0 A_PlaySoundEx("weapon/searchshot","Weapon")
HSN8 I 0 A_GiveInventory("SearchmanMain0_CI",1)
//HSN8 I 0 A_TakeInventory("SearchFireDelay",5)
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 K 2
FireDelay:
HSN8 H 0 A_TakeInventory("SearchFireDelay",1)
HSN8 I 0 A_GiveInventory("SearchM2Cancel",1)
HSN8 H 1 A_WeaponReady(WRF_NOPRIMARY|WRF_ALLOWRELOAD)
HSN8 H 0 A_JumpIfInventory("SearchFireDelay",1,"FireDelay")
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_JumpIfInventory("SearchM2Cancel",1,"AltfireDiscDelayed")
HSN8 B 0 A_JumpIfInventory("PowerSearchSpeed",1,"BigAltfire")
HSN8 A 0 A_JumpIfInventory("CutterFlag",1,"BigAltfire")
Goto AltfireDisc
AltfireDiscDelayed:
HSN8 HDC 2 A_GiveInventory("VivifyDelay7",1)
AltfireDisc:
HSN8 A 0 A_GiveInventory("VivifyDelay7",1)
HSN8 B 0 A_TakeInventory("SearchFireDelay",999)
HSN8 A 0 A_GiveInventory("SearchmanAlt_CI",1)
HSN8 A 0 A_PlaySoundEx("weapon/dustbit","Weapon")
//HSN8 A 0 ACS_NamedExecute("BULL_SetState",0,2)
HSN8 BCEFGGGFECBA 2 A_GiveInventory("VivifyDelay7",1)
HSN8 A 0 A_ReFire("AltfireDisc")
goto Ready1

BigAltfire:
HSN8 KKKK 0 A_TakeInventory("SearchTargetID4",999)
HSN8 KKKK 0 A_TakeInventory("SearchTargetID3",999)
HSN8 KKKK 0 A_TakeInventory("SearchTargetID2",999)
HSN8 KKKK 0 A_TakeInventory("SearchTargetID1",999)
HSN8 KKKK 0 A_TakeInventory("SearchTargetID4CD",999)
HSN8 KKKK 0 A_TakeInventory("SearchTargetID3CD",999)
HSN8 KKKK 0 A_TakeInventory("SearchTargetID2CD",999)
HSN8 KKKK 0 A_TakeInventory("SearchTargetID1CD",999)
HSN8 A 0 A_JumpIfInventory("PowerSearchSpeed",1,"BigAltfireX")
goto AltfireEnd
BigAltfireX:
HSN8 A 0 A_GiveInventory("SearchmanAlt2_CI",1)
HSN8 A 0 A_PlaySoundEx("weapon/dustbit","Weapon")
HSN8 A 0 ACS_NamedExecute("BULL_SetState",0,4)
HSN8 BEGEBA 1 A_GiveInventory("SearchmanFloat_P",1)
Goto ReloadEnd

AltfireStorm:
HSN8 KKKK 0 A_TakeInventory("SearchTargetID4",999)
HSN8 KKKK 0 A_TakeInventory("SearchTargetID3",999)
HSN8 KKKK 0 A_TakeInventory("SearchTargetID2",999)
HSN8 KKKK 0 A_TakeInventory("SearchTargetID1",999)
HSN8 KKKK 0 A_TakeInventory("SearchTargetID4CD",999)
HSN8 KKKK 0 A_TakeInventory("SearchTargetID3CD",999)
HSN8 KKKK 0 A_TakeInventory("SearchTargetID2CD",999)
HSN8 KKKK 0 A_TakeInventory("SearchTargetID1CD",999)
HSN8 A 0 A_JumpIfInventory("SearchDeadlyCheck",1,"Ready1")
HSN8 A 0 A_JumpIfInventory("PowerSearchSpeed",1,"AltfireLeap")
HSN8 A 0 ACS_NamedExecute("BULL_SetState",0,5)
HSN8 "[" 2
HSN8 "]" 2
Goto AltfireHold
AltfireLeap:
TNT1 A 1 A_JumpIfInventory("SearchDeadlyCheck",1,"ReloadEnd")
Goto AltfireHold

AltfireHold:
HSN8 A 0 ACS_NamedExecute("BULL_SetState",0,2)
TNT1 A 0 A_JumpIfInventory("WilyBanzaiAmmo",7,1)
Goto AltfireEnd
HSN8 A 0 A_JumpIfInventory("PowerSearchSpeed",1,1)
Goto AltfireHold+4
HSN8 B 0 A_JumpIf(z-floorz==0,"AltfireEnd")
HSN8 A 0 A_GiveInventory("SearchmanFloat_P",1)
HSN8 G 0 A_PlaySoundEx("weapon/searchshot","Weapon")
HSN8 G 0 A_PlaySoundEx("weapon/searchdstorm","SoundSlot6")
HSN8 A 0 A_JumpIfInventory("PowerSearchSpeed",1,1)
Goto AltfireHold+9
HSN8 B 0 A_JumpIf(z-floorz==0,"AltfireEnd")
HSN8 G 0 A_GiveInventory("SearchmanMain6_CI",1)
Goto AltfireHold+10
HSN8 B 0 A_JumpIf(z-floorz==0,"AltfireEnd")
TNT1 AAAAAA 1 A_TakeInventory("WilyBanzaiAmmo",7)
HSN8 G 0 A_ReFire("AltfireHold")
AltfireEnd:
HSN8 B 0 A_JumpIfInventory("PowerSearchSpeed",1,1)
Goto AltfireEndX
HSN8 A 0 ACS_NamedExecute("BULL_SetState",0,3)
HSN8 B 0 A_GiveInventory("SearchDeadlyCheck",105)
HSN8 B 0 A_SpawnItemEx("SearchDeadlyChecker")
HSN8 G 1 //A_GiveInventory("WilyBanzaiAmmo",75)
HSN8 G 1 //A_GiveInventory("WilyBanzaiAmmo",75)
HSN8 F 1 //A_GiveInventory("WilyBanzaiAmmo",75)
HSN8 F 1 //A_GiveInventory("WilyBanzaiAmmo",75)
HSN8 B 0 A_WeaponReady(14)
HSN8 E 1 //A_GiveInventory("WilyBanzaiAmmo",75)
HSN8 E 1 //A_GiveInventory("WilyBanzaiAmmo",75)
HSN8 C 1// A_GiveInventory("WilyBanzaiAmmo",75)
HSN8 C 1 //A_GiveInventory("WilyBanzaiAmmo",75)
HSN8 B 1 //A_GiveInventory("WilyBanzaiAmmo",75)
HSN8 B 1 //A_GiveInventory("WilyBanzaiAmmo",75)
HSN8 G 0 A_TakeInventory("PowerSearchSpeed",1)
Goto Ready1

AltfireEndX:
HSN8 B 0 A_JumpIfInventory("WilyBanzaiAmmo",476,13)
Goto AltfireEndX+1
HSN8 B 0 A_JumpIfInventory("WilyBanzaiAmmo",392,11)
Goto AltfireEndX+2
HSN8 B 0 A_JumpIfInventory("WilyBanzaiAmmo",308,9)
Goto AltfireEndX+3
HSN8 B 0 A_JumpIfInventory("WilyBanzaiAmmo",224,7)
Goto AltfireEndX+4
HSN8 B 0 A_JumpIfInventory("WilyBanzaiAmmo",140,5)
Goto AltfireEndX+5
HSN8 B 0 A_JumpIfInventory("WilyBanzaiAmmo",56,3)
Goto AltfireEndX+6
HSN8 B 0 A_JumpIfInventory("WilyBanzaiAmmo",7,1)
Goto AltfireEndX+7
AltfireEndXX:
HSN8 B 0 A_GiveInventory("SearchDeadlyCheck",15)
HSN8 B 0 A_GiveInventory("SearchDeadlyCheck",15)
HSN8 B 0 A_GiveInventory("SearchDeadlyCheck",15)
HSN8 B 0 A_GiveInventory("SearchDeadlyCheck",15)
HSN8 B 0 A_GiveInventory("SearchDeadlyCheck",15)
HSN8 B 0 A_GiveInventory("SearchDeadlyCheck",15)
HSN8 B 0 A_GiveInventory("SearchDeadlyCheck",15)
HSN8 B 0 A_SpawnItemEx("SearchDeadlyChecker2")
HSN8 G 1 A_GiveInventory("WilyBanzaiAmmo",10)
HSN8 G 1 A_GiveInventory("WilyBanzaiAmmo",10)
HSN8 F 1 A_GiveInventory("WilyBanzaiAmmo",10)
HSN8 F 1 A_GiveInventory("WilyBanzaiAmmo",10)
HSN8 B 0 A_WeaponReady(14)
HSN8 E 1 A_GiveInventory("WilyBanzaiAmmo",10)
HSN8 E 1 A_GiveInventory("WilyBanzaiAmmo",10)
HSN8 C 1 A_GiveInventory("WilyBanzaiAmmo",10)
HSN8 C 1 A_GiveInventory("WilyBanzaiAmmo",10)
HSN8 B 1 A_GiveInventory("WilyBanzaiAmmo",10)
HSN8 B 1 A_GiveInventory("WilyBanzaiAmmo",10)
HSN8 G 0 A_TakeInventory("PowerSearchSpeed",1)
goto Ready1

Flash:
TNT1 A 0 A_JumpIfInventory("BushInvis",1,"FlashB")
TNT1 A 0 A_SetTranslucent(1.0)
TNT1 A 0 A_ChangeFlag("CANTSEEK",0)
TNT1 A 0 A_ChangeFlag("DONTIDENTIFYTARGET",0)
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 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 1 A_GiveInventory("DeadlyStormFlash_P",1)
loop
FlashB:
TNT1 A 0 A_ChangeFlag("DONTIDENTIFYTARGET",1)
TNT1 A 0 A_ChangeFlag("CANTSEEK",1)
TNT1 A 0 A_SetTranslucent(0.0)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==0,"BlueMines")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==1,"RedMines")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==2,"OrangeMines")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==3,"PurpleMines")
goto Flash+4
BlueMines:
TNT1 A 0 A_SpawnItemEx("BushVisualBlue",0,0,60,momx,momy,momz,0,9,0)
goto Flash+4
RedMines:
TNT1 A 0 A_SpawnItemEx("BushVisualRed",0,0,60,momx,momy,momz,0,9,0)
goto Flash+4
OrangeMines:
TNT1 A 0 A_SpawnItemEx("BushVisualOrange",0,0,60,momx,momy,momz,0,9,0)
goto Flash+4
PurpleMines:
TNT1 A 0 A_SpawnItemEx("BushVisualPurple",0,0,60,momx,momy,momz,0,9,0)
goto Flash+4
Flash1:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,3,1)
goto Flash+5
Flash2:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,3,2)
goto Flash+6
Flash3:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,3,3)
goto Flash+7
Flash4:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,3,4)
goto Flash+8

Reload:
HSN8 "#" 1 A_JumpIfInventory("SearchCDReset",1,"DelayCheck")
HSN8 "#" 0 A_JumpIfInventory("SearchDeadlyCheck",1,"DelayCheck")
HSN8 B 0 A_TakeInventory("SearchFireDelay",999)
HSN8 A 0 A_PlaySoundEx("weapon/searchdash","Weapon")
HSN8 D 0 A_GiveInventory("PowerSearchSpeed",1)
HSN8 A 0 ACS_NamedExecute("BULL_SetState",0,1)
HSN8 A 0 ThrustThingZ(0,80,0,1) 
HSN8 B 1 Offset(0,40) A_WeaponReady(WRF_NOSWITCH|WRF_NOBOB)
HSN8 C 1 Offset(0,48) A_WeaponReady(WRF_NOSWITCH|WRF_NOBOB)
HSN8 E 1 Offset(0,56) A_WeaponReady(WRF_NOSWITCH|WRF_NOBOB)
HSN8 F 1 Offset(0,64) A_WeaponReady(WRF_NOSWITCH|WRF_NOBOB)
HSN8 G 1 Offset(0,72) A_WeaponReady(WRF_NOSWITCH|WRF_NOBOB)
HSN8 G 1 Offset(0,80) A_WeaponReady(WRF_NOSWITCH|WRF_NOBOB)
HSN8 G 1 Offset(16,96) A_WeaponReady(WRF_NOSWITCH|WRF_NOBOB)
HSN8 G 1 Offset(32,112) A_WeaponReady(WRF_NOSWITCH|WRF_NOBOB)
TNT1 A 15 A_WeaponReady(WRF_NOSWITCH|WRF_NOBOB)
Goto ReloadEnd

DelayCheck:
HSN8 "#" 1 A_JumpIfInventory("SearchFireDelay",1,"FireDelay")
goto Ready1

ReloadEnd:
HSN8 B 0 A_JumpIfInventory("SearchCDReset",1,"ReloadEndCancel")
TNT1 A 9
HSN8 G 1 Offset(32,112)
HSN8 G 1 Offset(16,96)
HSN8 G 1 Offset(0,80)
HSN8 G 1 Offset(0,72)
HSN8 F 1 Offset(0,64)
HSN8 E 1 Offset(0,56)
HSN8 C 1 Offset(0,48)
HSN8 B 1 Offset(0,40)
HSN8 B 0 A_WeaponReady(14)
HSN8 B 0 A_GiveInventory("SearchDeadlyCheck",105)
HSN8 B 0 A_SpawnItemEx("SearchDeadlyChecker")
HSN8 D 1 A_TakeInventory("PowerSearchSpeed",999)
goto Ready1

ReloadEndCancel:
TNT1 A 9
HSN8 G 1 Offset(32,112)
HSN8 G 1 Offset(16,96)
HSN8 G 1 Offset(0,80)
HSN8 G 1 Offset(0,72)
HSN8 F 1 Offset(0,64)
HSN8 E 1 Offset(0,56)
HSN8 C 1 Offset(0,48)
HSN8 B 1 Offset(0,40)
HSN8 B 0 A_WeaponReady(14)
HSN8 D 1 A_TakeInventory("PowerSearchSpeed",999)
goto Ready1
}
}

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 SearchFireDelay : Inventory
{
inventory.amount 1
inventory.maxamount 20
}

actor SearchM2Cancel : Powerup
{
powerup.duration 6
}

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

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

actor SearchCDReset : Powerup
{
+INVENTORY.ADDITIVETIME
powerup.duration 20
}

actor SearchDeadlyCheck : Inventory
{
inventory.amount 1
inventory.maxamount 105
}

actor SearchDeadlyChecker : BasicHelper
{
reactiontime 106
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_TakeFromTarget("SearchDeadlyCheck",1)
HSN8 B 0 A_JumpIfInTargetInventory("SearchCDReset",1,"Death")
TNT1 A 1 A_Countdown
loop
Death:
TNT1 A 0 A_TakeFromTarget("SearchDeadlyCheck",105)
stop
}
}

actor SearchDeadlyChecker2 : BasicHelper
{
States
{
Spawn:
TNT1 A 0
HSN8 B 0 A_JumpIfInTargetInventory("SearchDeadlyCheck",105,"Spawn105")
HSN8 B 0 A_JumpIfInTargetInventory("SearchDeadlyCheck",90,"Spawn90")
HSN8 B 0 A_JumpIfInTargetInventory("SearchDeadlyCheck",75,"Spawn75")
HSN8 B 0 A_JumpIfInTargetInventory("SearchDeadlyCheck",60,"Spawn60")
HSN8 B 0 A_JumpIfInTargetInventory("SearchDeadlyCheck",45,"Spawn45")
HSN8 B 0 A_JumpIfInTargetInventory("SearchDeadlyCheck",30,"Spawn30")
HSN8 B 0 A_JumpIfInTargetInventory("SearchDeadlyCheck",15,"Spawn15")
stop
Spawn15:
HSN8 B 0 A_SpawnItemEx("SearchDeadlyChecker2_15",1)
stop
Spawn30:
HSN8 B 0 A_SpawnItemEx("SearchDeadlyChecker2_30",1)
stop
Spawn45:
HSN8 B 0 A_SpawnItemEx("SearchDeadlyChecker2_45",1)
stop
Spawn60:
HSN8 B 0 A_SpawnItemEx("SearchDeadlyChecker2_60",1)
stop
Spawn75:
HSN8 B 0 A_SpawnItemEx("SearchDeadlyChecker2_75",1)
stop
Spawn90:
HSN8 B 0 A_SpawnItemEx("SearchDeadlyChecker2_90",1)
stop
Spawn105:
HSN8 B 0 A_SpawnItemEx("SearchDeadlyChecker2_105",1)
stop
}
}

actor SearchDeadlyChecker2_15 : SearchDeadlyChecker { reactiontime 16 }
actor SearchDeadlyChecker2_30 : SearchDeadlyChecker { reactiontime 31 }
actor SearchDeadlyChecker2_45 : SearchDeadlyChecker { reactiontime 46 }
actor SearchDeadlyChecker2_60 : SearchDeadlyChecker { reactiontime 61 }
actor SearchDeadlyChecker2_75 : SearchDeadlyChecker { reactiontime 76 }
actor SearchDeadlyChecker2_90 : SearchDeadlyChecker { reactiontime 91 }
actor SearchDeadlyChecker2_105 : SearchDeadlyChecker { reactiontime 106 }

actor SearchmanFloat_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("PowerSearchFloatSpeed",1)
stop
}
}

actor DeadlyStormFlash_P : CustomInventory
{
States
{
Pickup:
//TNT1 A 0 A_JumpIfInventory("SearchCDReset",1,"Resetti")
TNT1 A 0 A_JumpIfInventory("PowerSearchFloatSpeed",1,"Floating")
stop
Floating:
TNT1 A 0 A_ChangeVelocity(momx,momy,-0.6,CVF_REPLACE)
stop
Resetti:
TNT1 A 0 A_TakeInventory("SearchDeadlyCheck",105)
stop
}
}

actor PowerSearchFloatSpeed : PowerSpeed
{
Speed 1.0
powerup.duration 6
+POWERSPEED.NOTRAIL
}

actor PowerSearchSpeed : PowerSpeed
{
Speed 1.5
Powerup.Duration 70
+POWERSPEED.NOTRAIL
}

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

actor SearchShotsFired : Inventory
{
inventory.amount 1
inventory.maxamount 4
}

actor HomingLockedVision : PowerDamage
{
powerup.duration 8
damagefactor "normal", 1.0
}

actor SearchTargetID1CD_RC : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"PickupR")
//TNT1 A 0 A_JumpIfInventory("BushInvis",1,"PickupR") (Un-commenting this line will result in faster tagging from inside bushes - Ecl1p5e
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_JumpIfInventory("BushInvis",1,"PickupR") (Un-commenting this line will result in faster tagging from inside bushes - Ecl1p5e
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_JumpIfInventory("BushInvis",1,"PickupR") (Un-commenting this line will result in faster tagging from inside bushes - Ecl1p5e
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_JumpIfInventory("BushInvis",1,"PickupR") (Un-commenting this line will result in faster tagging from inside bushes - Ecl1p5e
TNT1 A 0 A_GiveInventory("SearchTargetID4CD",1)
goto PickupR
PickupR:
TNT1 A 0 A_GiveInventory("SearchTargetID4CD",1)
stop
}
}

actor HomingCrosshairB
{
+NOGRAVITY
- SOLID
+DONTSPLASH
+DONTBLAST
+THRUGHOST
+THRUACTORS
//+CLIENTSIDEONLY
//+NONETID
+NOINTERACTION
Radius 1
Height 1
Scale 2.5
states
{
Spawn:
HSNC A 0
HSNC A 1 A_PlaySoundEx("weapon/SearchCross","Weapon")
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_PlaySoundEx("weapon/SearchCross","Weapon")
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_PlaySoundEx("weapon/SearchCross","Weapon")
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_PlaySoundEx("weapon/SearchCross","Weapon")
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_PlaySoundEx("weapon/SearchCross","Weapon")
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_PlaySoundEx("weapon/SearchCross","Weapon")
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 HomingCrosshairLockedB : HomingCrosshair
{
states
{
Spawn:
//HSNC L 0
//HSNC L 1
HSNC N 0
HSNC N 1
stop
}
}

actor HomingCrosshairLockedB2 : HomingCrosshairLockedB
{
-CLIENTSIDEONLY
+NONETID
//RenderStyle "Translucent"
//Alpha 0.3
}

actor HomingLockGiverB : CustomInventory
{
states
{
Pickup:
//TNT1 A 0 A_JumpIfInventory("isDead",1,"No")
TNT1 A 0 A_JumpIf(!(health>0),"No")
TNT1 A 0 A_JumpIfHealthLower(1,"No")
TNT1 A 0 A_JumpIfInventory("HomingLockedVision",1,"No")
TNT1 A 0 A_SpawnItemEx("HomingCrosshairLockedB",0,0,32,momx,momy,momz,0,8)
TNT1 A 0 A_GiveInventory("HomingLockedVision",1)
TNT1 A 0 A_SpawnItemEx("HomingLockHelper")
stop
No:
TNT1 A 0
stop
}
}

actor HomingLockGiverB2 : HomingLockGiverB
{
states
{
Pickup:
//TNT1 A 0 A_JumpIfInventory("isDead",1,"No")
TNT1 A 0 A_JumpIf(!(health>0),"No")
TNT1 A 0 A_JumpIfHealthLower(1,"No")
TNT1 A 0 A_SpawnItemEx("HomingCrosshairLockedB2",0,0,32,momx,momy,momz,0,8)
TNT1 A 0 A_GiveInventory("HomingLockedVision",1)
stop
}
}

actor HomingLockGiverBX : HomingLockGiverB
{
states
{
Pickup:
//TNT1 A 0 A_JumpIfInventory("isDead",1,"No")
TNT1 A 0 A_JumpIf(!(health>0),"No")
TNT1 A 0 A_JumpIfHealthLower(1,"No")
TNT1 A 0 A_SpawnItemEx("HomingCrosshairLockedB2",0,0,32,momx,momy,momz,0,8)
stop
}
}

actor HomingLockHelper : BasicHelper
{
Reactiontime 7
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Death")
TNT1 A 1 A_GiveToTarget("HomingLockGiverBX",1)
goto Spawn
Death:
TNT1 A 1
stop
}
}

actor SearchManTargeter //: FastProjectile
{
Translation "199:199=212:212","202:202=4:4"
+NOGRAVITY
+SKYEXPLODE
+DONTBLAST
+DONTREFLECT
+DONTSPLASH
+HITTRACER
+PUFFONACTORS
+PUFFGETSOWNER
Damage (0)
radius 16
height 16
//Speed 1000
//Speed 9001
States
{
Spawn:
TNT1 A 0
TNT1 A 1
XDeath:
//TNT1 A 0 A_Stop
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerplayer")==1,"Target1")
goto Crosshair
Target1:
TNT1 A 0 A_JumpIfInTargetInventory("SearchTargetID1",1,"Target2")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",1)!=0,1)
goto Crosshair
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,-1,1)
goto Crosshair
Target2:
TNT1 A 0 A_JumpIfInTargetInventory("SearchTargetID2",1,"Target3")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",1)!=0,1)
goto Crosshair
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,-1,2)
goto Crosshair
Target3:
TNT1 A 0 A_JumpIfInTargetInventory("SearchTargetID3",1,"Target4")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",1)!=0,1)
goto Crosshair
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,-1,3)
goto Crosshair
Target4:
TNT1 A 0 A_JumpIfInTargetInventory("SearchTargetID4",1,"Crosshair")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",1)!=0,1)
goto Crosshair
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,-1,4)
goto Crosshair


/*
XDeath:
//TNT1 A 0 A_Stop
TNT1 A 0 A_JumpIfInTargetInventory("SearchTargetID1",1,"Target2")
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,0,1)
goto Crosshair
Target2:
TNT1 A 0 A_JumpIfInTargetInventory("SearchTargetID2",1,"Target3")
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,0,2)
goto Crosshair
Target3:
TNT1 A 0 A_JumpIfInTargetInventory("SearchTargetID3",1,"Target4")
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,0,3)
goto Crosshair
Target4:
TNT1 A 0 A_JumpIfInTargetInventory("SearchTargetID4",1,"Crosshair")
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,0,4)
goto Crosshair
*/
Death:
//TNT1 A 0 A_Stop
CrossHair:
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",33,"FrameReset")
TNT1 A 0 A_GiveToTarget("CrossHairFrame",1)
TNT1 A 0 A_JumpIfInTargetInventory("CrossBlink",16,"WhiteReset")
TNT1 A 0 A_GiveToTarget("CrossBlink",1)
TNT1 A 0 A_JumpIfInTargetInventory("CrossBlink",8,"White")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",33,"CrossHair9")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",29,"CrossHair8")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",25,"CrossHair7")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",21,"CrossHair6")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",17,"CrossHair5")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",13,"CrossHair4")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",9,"CrossHair3")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",5,"CrossHair2")
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairB",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair2:
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairB2",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair3:
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairB3",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair4:
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairB4",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair5:
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairB5",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair6:
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairB6",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair7:
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairB7",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair8:
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairB8",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair9:
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairB9",8,0,8,0,0,0,0,1)
goto CrosshairEnd
FrameReset:
TNT1 A 0 //A_TakeFromTarget("CrossHairFrame",999)
goto CrossHair+1
WhiteReset:
TNT1 A 0// A_TakeFromTarget("CrossBlink",999)
goto CrossHair+3

White:
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",33,"CrossHair9W")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",29,"CrossHair8W")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",25,"CrossHair7W")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",21,"CrossHair6W")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",17,"CrossHair5W")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",13,"CrossHair4W")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",9,"CrossHair3W")
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",5,"CrossHair2W")
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairBW",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair2W:
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairB2W",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair3W:
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairB3W",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair4W:
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairB4W",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair5W:
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairB5W",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair6W:
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairB6W",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair7W:
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairB7W",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair8W:
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairB8W",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair9W:
TNT1 A 0 //A_SpawnItemEx("HomingCrosshairB9W",8,0,8,0,0,0,0,1)
goto CrosshairEnd

CrosshairEnd:
TNT1 A 2
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 SearchManTargeterFake : FastProjectile
{
+BRIGHT
PROJECTILE
Translation "199:199=212:212","202:202=4:4"
+SKYEXPLODE
+DONTBLAST
+DONTREFLECT
+DONTSPLASH
+CLIENTSIDEONLY
Damage (0)
radius 16
height 16
Speed 1000
//Speed 9001
States
{
Spawn:
TNT1 A 0
TNT1 A 1
wait

XDeath:
//TNT1 A 0 A_Stop
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerplayer")==1,"Target1")
goto Crosshair
Target1:
TNT1 A 0 A_JumpIfInTargetInventory("SearchTargetID1",1,"Target2")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",1)!=0,1)
goto Crosshair
TNT1 A 0 //ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,-1,1)
goto Crosshair
Target2:
TNT1 A 0 A_JumpIfInTargetInventory("SearchTargetID2",1,"Target3")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",1)!=0,1)
goto Crosshair
TNT1 A 0 //ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,-1,2)
goto Crosshair
Target3:
TNT1 A 0 A_JumpIfInTargetInventory("SearchTargetID3",1,"Target4")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",1)!=0,1)
goto Crosshair
TNT1 A 0 //ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,-1,3)
goto Crosshair
Target4:
TNT1 A 0 A_JumpIfInTargetInventory("SearchTargetID4",1,"Crosshair")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",1)!=0,1)
goto Crosshair
TNT1 A 0 //ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,-1,4)
goto Crosshair


/*
XDeath:
//TNT1 A 0 A_Stop
TNT1 A 0 A_JumpIfInTargetInventory("SearchTargetID1",1,"Target2")
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,0,1)
goto Crosshair
Target2:
TNT1 A 0 A_JumpIfInTargetInventory("SearchTargetID2",1,"Target3")
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,0,2)
goto Crosshair
Target3:
TNT1 A 0 A_JumpIfInTargetInventory("SearchTargetID3",1,"Target4")
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,0,3)
goto Crosshair
Target4:
TNT1 A 0 A_JumpIfInTargetInventory("SearchTargetID4",1,"Crosshair")
TNT1 A 0 ACS_NamedExecuteAlways("cbm_Searchman_ACS",0,0,4)
goto Crosshair
*/
Death:
//TNT1 A 0 A_Stop
CrossHair:
TNT1 A 0 A_JumpIfInTargetInventory("CrossHairFrame",18,"FrameReset")
TNT1 A 0 A_GiveToTarget("CrossHairFrame",1)
TNT1 A 0 A_JumpIfInTargetInventory("CrossBlink",8,"WhiteReset")
TNT1 A 0 A_GiveToTarget("CrossBlink",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_SpawnItemEx("HomingCrosshairB",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair2:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB2",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair3:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB3",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair4:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB4",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair5:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB5",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair6:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB6",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair7:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB7",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair8:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB8",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair9:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB9",8,0,8,0,0,0,0,1)
goto CrosshairEnd
FrameReset:
TNT1 A 0 A_TakeFromTarget("CrossHairFrame",999)
goto CrossHair+1
WhiteReset:
TNT1 A 0 A_TakeFromTarget("CrossBlink",999)
goto CrossHair+3

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)
goto CrosshairEnd
CrossHair2W:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB2W",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair3W:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB3W",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair4W:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB4W",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair5W:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB5W",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair6W:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB6W",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair7W:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB7W",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair8W:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB8W",8,0,8,0,0,0,0,1)
goto CrosshairEnd
CrossHair9W:
TNT1 A 0 A_SpawnItemEx("HomingCrosshairB9W",8,0,8,0,0,0,0,1)
goto CrosshairEnd

CrosshairEnd:
TNT1 A 2
stop
}
}

actor SearchManTargeterFakeB : SearchManTargeterFake{Translation "199:199=74:74","202:202=205:205"}
actor SearchManTargeterFakeR : SearchManTargeterFake{Translation "199:199=41:41","202:202=171:171"}
actor SearchManTargeterFakeO : SearchManTargeterFake{Translation "199:199=128:128","202:202=104:104"}
actor SearchManTargeterFakeP : SearchManTargeterFake{Translation "199:199=232:232","202:202=229:229"}

/*cbm_Searchman_ACS,0,a,b

a
0: Lock on from crossheir
1: Give target from owner
2: Home on target

b
target number*/

actor HomingSniperB
{
Translation "192:192=228:228","198:198=194:194","204:204=103:103"
PROJECTILE
Damagetype "SearchM_Shot"
Obituary "$OB_HOMINGSNIPERYD"
+DONTSEEKINVISIBLE//
+SEEKERMISSILE
+SCREENSEEKER
damage (12+pitch)
Radius 9
Height 9
speed 33
scale 3
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
HMNG AB 2
loop

SpawnCore:
HMNG AABB 1 A_SeekerMissile(2,10,3,50,9)
Goto Primed
Primed:
HMNG A 1 A_SeekerMissile(2,10,3,50,9)
HMNG A 0 A_JumpIfTargetInLOS("See",0,1)
HMNG A 1 A_SeekerMissile(2,10,3,50,9)
HMNG A 0 A_JumpIfTargetInLOS("See",0,1)
HMNG B 1 A_SeekerMissile(2,10,3,50,9)
HMNG B 0 A_JumpIfTargetInLOS("See",0,1)
HMNG B 1 A_SeekerMissile(2,10,3,50,9)
HMNG B 0 A_JumpIfTargetInLOS("See",0,1)
loop
See:
HMNG B 0 A_SeekerMissile(2,10,6)
HMNG A 1
HMNG B 0 A_ScaleVelocity(2.0)
Goto FastMode
FastMode:
HMNG AB 2
HMNG B 0 A_SpawnItemEx("HomingSniperBFX",0,0,0,momx*10,momy*10,momz*10,0,11)
HMNG AB 2
HMNG B 0 A_SpawnItemEx("HomingSniperBFX",0,0,0,momx*10,momy*10,momz*10,0,11)
HMNG AB 2
HMNG 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:
HMNG B 0
goto SpawnCore
}
}

actor HomingSniperB1
{
var int user_B;
Translation "192:192=228:228","198:198=194:194","204:204=103:103"
PROJECTILE
Damagetype "SearchM_LockShot"
Obituary "$OB_HOMINGSNIPERYD"
+DONTBLAST
+DONTREFLECT
damage (10)
Radius 5
Height 5
speed 27
scale 3
states
{
Spawn:
HMNG B 0
TNT1 A 0 //ACS_NamedExecuteAlways("BULL_Tidifier", 0)
//HMNG B 0 A_GiveInventory("SearchTargetID",ACS_NamedExecuteWithResult("cbm_Searchman_ACS",1,1))
HMNG B 0 Thing_ChangeTID(0,ACS_NamedExecuteWithResult("cbm_Searchman_ACS",1,1)+1299)
Spawn2:
HMNG B 0
HMNG A 1
HMNG B 0 A_JumpIf(TID==1299,"Unlock")
Spawn3:
HMNG B 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_Searchman_ACS",2,TID-1299)==0,"Unlock")
HMNG B 0 A_ChangeVelocity(cos(pitch)*32,0,-sin(pitch)*32,3)
HMNG A 1
HMNG B 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_Searchman_ACS",2,TID-1299)==0,"Unlock")
HMNG B 0 A_ChangeVelocity(cos(pitch)*32,0,-sin(pitch)*32,3)
HMNG B 1 A_SpawnItemEx("SearchHomingSniperFX",0,0,0,0,0,0,0,1)
HMNG C 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_Searchman_ACS",2,TID-1299)==0,"Unlock")
HMNG C 0 A_ChangeVelocity(cos(pitch)*32,0,-sin(pitch)*32,3)
HMNG B 1 
HMNG B 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_Searchman_ACS",2,TID-1299)==0,"Unlock")
HMNG B 0 A_ChangeVelocity(cos(pitch)*32,0,-sin(pitch)*32,3)
HMNG A 1 A_SpawnItemEx("SearchHomingSniperFX",0,0,0,0,0,0,0,1)
HMNG B 0 A_JumpIf(user_B>=6,"Spawn3")
HMNG B 0 A_GiveInventory("WeaponCharge",1)
HMNG B 0 A_JumpIfInventory("WeaponCharge",5,"SpawnP")
loop
SpawnP:
HMNG B 0 A_SetUserVar("user_B",user_B+1)
HMNG 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
{
states
{
Spawn:
HMNG B 0
//HMNG B 0 A_GiveInventory("SearchTargetID",ACS_NamedExecuteWithResult("cbm_Searchman_ACS",1,2))
HMNG B 0 Thing_ChangeTID(0,ACS_NamedExecuteWithResult("cbm_Searchman_ACS",1,2)+1299)
goto Spawn2
}
}

actor HomingSniperB2B : HomingSniperB2{Translation "192:192=205:205","198:198=74:74","204:204=205:205"}
actor HomingSniperB2R : HomingSniperB2{Translation "192:192=171:171","198:198=41:41","204:204=171:171"}
actor HomingSniperB2O : HomingSniperB2{Translation "192:192=104:104","198:198=128:128","204:204=104:104"}
actor HomingSniperB2P : HomingSniperB2{Translation "192:192=229:229","198:198=232:232","204:204=229:229"}

actor HomingSniperB3 : HomingSniperB1
{
states
{
Spawn:
HMNG B 0
//HMNG B 0 A_GiveInventory("SearchTargetID",ACS_NamedExecuteWithResult("cbm_Searchman_ACS",1,3))
HMNG B 0 Thing_ChangeTID(0,ACS_NamedExecuteWithResult("cbm_Searchman_ACS",1,3)+1299)
goto Spawn2
}
}

actor HomingSniperB3B : HomingSniperB3{Translation "192:192=205:205","198:198=74:74","204:204=205:205"}
actor HomingSniperB3R : HomingSniperB3{Translation "192:192=171:171","198:198=41:41","204:204=171:171"}
actor HomingSniperB3O : HomingSniperB3{Translation "192:192=104:104","198:198=128:128","204:204=104:104"}
actor HomingSniperB3P : HomingSniperB3{Translation "192:192=229:229","198:198=232:232","204:204=229:229"}

actor HomingSniperB4 : HomingSniperB1
{
states
{
Spawn:
HMNG B 0
//HMNG B 0 A_GiveInventory("SearchTargetID",ACS_NamedExecuteWithResult("cbm_Searchman_ACS",1,4))
HMNG B 0 Thing_ChangeTID(0,ACS_NamedExecuteWithResult("cbm_Searchman_ACS",1,4)+1299)
goto Spawn2
}
}

actor HomingSniperB4B : HomingSniperB4{Translation "192:192=205:205","198:198=74:74","204:204=205:205"}
actor HomingSniperB4R : HomingSniperB4{Translation "192:192=171:171","198:198=41:41","204:204=171:171"}
actor HomingSniperB4O : HomingSniperB4{Translation "192:192=104:104","198:198=128:128","204:204=104:104"}
actor HomingSniperB4P : HomingSniperB4{Translation "192:192=229:229","198:198=232:232","204:204=229:229"}

actor SearchHomingSniperFX : BasicClientSide
{
states
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
TNT1 A 1
SpawnLOOP:
HSN8 NOP 2
stop
}
}

actor HomingSniperStorm
{
Translation "192:192=228:228", "198:198=194:194", "202:202=210:210", "204:204=103:103"
PROJECTILE
Damagetype "DMGNoHitstun"
Obituary "$OB_HOMINGSNIPERYDS"
+DONTBLAST
+DONTREFLECT
damage (0)
Radius 5
Height 5
speed 60
scale 3
states
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
HMNG A 1
SpawnLOOP:
HMNG AB 2 A_SpawnItemEx("SearchHomingSniperFX",0,0,0,0,0,0,0,1)
loop

Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_PlaySoundEx("weapon/napalm", "Weapon")
TNT1 A 0 A_Explode(10,80,0,0,24)
TNT1 A 1 A_SpawnItemEx("BasicBoom5FX_Y",0,0,0,0,0,0,0,1+28)
stop
}
}

actor HomingSniperStormB : HomingSniperStorm{Translation "192:192=205:205","198:198=74:74", "202:202=205:205", "204:204=205:205"}
actor HomingSniperStormR : HomingSniperStorm{Translation "192:192=171:171","198:198=41:41", "202:202=171:171", "204:204=171:171"}
actor HomingSniperStormO : HomingSniperStorm{Translation "192:192=104:104","198:198=128:128", "202:202=104:104", "204:204=104:104"}
actor HomingSniperStormP : HomingSniperStorm{Translation "192:192=229:229","198:198=232:232", "202:202=229:229", "204:204=229:229"}

actor HomingSniperStorm2: HomingSniperStorm
{
States
{
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_PlaySoundEx("weapon/napalm", "Weapon")
TNT1 A 0 A_Explode(10,80,0,0,24)
TNT1 A 1 A_SpawnItemEx("BasicBoom5FX_Y",0,0,0,0,0,0,0,1+28)
stop
}
}

actor HomingSniperStorm2B : HomingSniperStorm2{Translation "192:192=205:205","198:198=74:74", "202:202=205:205", "204:204=205:205"}
actor HomingSniperStorm2R : HomingSniperStorm2{Translation "192:192=171:171","198:198=41:41", "202:202=171:171", "204:204=171:171"}
actor HomingSniperStorm2O : HomingSniperStorm2{Translation "192:192=104:104","198:198=128:128", "202:202=104:104", "204:204=104:104"}
actor HomingSniperStorm2P : HomingSniperStorm2{Translation "192:192=229:229","198:198=232:232", "202:202=229:229", "204:204=229:229"}

actor SearchFrisbee
{
Translation "204:204=42:42","195:195=230:230","192:192=105:105"
PROJECTILE
Damagetype "SearchM_Disc"
Obituary "$OB_SEARCHDISC"
//SeeSound "item/protoreflect"
BounceSound "weapon/SearchDiscBounceMini"//item/protoreflect
//Bouncetype Doom
//-ALLOWBOUNCEONACTORS
+BOUNCEONFLOORS//
+BOUNCEONWALLS//
+BOUNCEONCEILINGS//
+CANBOUNCEWATER
bouncefactor 1.0
wallbouncefactor 1.0
Bouncecount 4
reactiontime 20
Damage (12)
Height 12
Radius 12
speed 44
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
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 SearchFrisbee2 : SearchFrisbee
{
Scale 3
Damage (18)
Speed 52
Height 16
Radius 16
+HITTRACER
Obituary "$OB_EMPSEARCHDISC"
BounceSound "wep_L/SearchDiscBounce"
//+USEBOUNCESTATE
//+SEEKERMISSILE
//+LOOKALLAROUND
//+BOUNCEONACTORS
//+DOOMBOUNCE
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
HSNC Q 0 A_CountDown
HSNC XXXYYY 1 A_SpawnItemEx("SearchFrisbee2FX",0,0,0,0,0,0,0,1)//A_SpawnItemEx("SearchBushLeafFX1",random(-8,8),0,random(-8,8),1,0,-2,random(0,359),1)
loop
XDeath:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerenemy")==1,1)
goto Death
TNT1 A 0 A_TakeFromTarget("SearchDeadlyCheck",105)
XMFX Q 0 A_GiveToTarget("SearchCDReset",1)
goto Death
//Bounce:
//HSN8 A 0 A_FaceTracer
//HSN8 A 0 A_SeekerMissile(90,90,SMF_LOOK,256,4)
//HSN8 Q 1
//goto SpawnLoop
}
}

actor SearchFrisbee2B : SearchFrisbee2{Translation "192:192=205:205","204:204=205:205","195:195=74:74"}
actor SearchFrisbee2R : SearchFrisbee2{Translation "192:192=171:171","204:204=171:171","195:195=41:41"}
actor SearchFrisbee2O : SearchFrisbee2{Translation "192:192=104:104","204:204=104:104","195:195=128:128"}
actor SearchFrisbee2P : SearchFrisbee2{Translation "192:192=229:229","204:204=229:229","195:195=232:232"}

actor SearchFrisbee2FX : BasicClientside
{
scale 2
alpha 0.80
states
{
Spawn:
TNT1 AA 0
TNT1 A 1
SpawnLOOP:
HSNC XXXYYY 3 A_FadeOut(0.25)
loop
}
}

actor BushVisual
{
-SOLID
+NOGRAVITY
+NOINTERACTION
+CLIENTSIDEONLY
//+NONETID
RenderStyle "Translucent"
Alpha 0.6
scale 2.5
states
{
Spawn:
SEAR I 0
SEAR I 1
stop
}
}

actor BushVisualBlue : BushVisual
{
VisibleToTeam 0
}

actor BushVisualRed : BushVisual
{
VisibleToTeam 1
}

actor BushVisualOrange : BushVisual
{
VisibleToTeam 2
}

actor BushVisualPurple : BushVisual
{
VisibleToTeam 3
}




actor SearchBusher : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
inventory.icon "BushIcon"
Tag "$TAGC_8E2"
inventory.pickupmessage "I must be a member of the Viet Cong the way I'm in that bush!"
scale 2.0
+INVBAR
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","SoundSlot6")
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",100,0,150,0,0,-2,0,1)
TNT1 A 0 A_SpawnItemEx("SearchBush1",200,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",100,0,150,0,0,-2,0,1)
TNT1 A 0 A_SpawnItemEx("SearchBush2",200,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",100,0,150,0,0,-2,0,1)
TNT1 A 0 A_SpawnItemEx("SearchBush3",200,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",100,0,150,0,0,-2,0,1)
TNT1 A 0 A_SpawnItemEx("SearchBush4",200,0,150,0,0,-2,0,1)
fail
No:
TNT1 A 0
fail
}
}

actor SearchBushBusy : Powerup
{
powerup.duration 45
+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 SearchBushChecker : BasicHelper
{
+NONETID
RenderStyle None
States
{
Spawn:
TNT1 A 0
TNT1 A 0 //A_JumpIfCloser(82,"GiveStealth")
TNT1 A 0 //A_RadiusGive("BushInvis",82,2)
TNT1 A 0 A_JumpIfTargetInLOS("GiveStealth",0,0,82)
TNT1 A 1 //A_JumpIfInTargetLOS("GiveStealth",0,0,82)
stop
GiveStealth:
TNT1 A 0 //A_Log("In Bush Range")
TNT1 A 1 A_GiveToTarget("BushInvis",1)
stop
}
}

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

+MOVEWITHSECTOR
+DONTREFLECT
+DONTBLAST
RenderStyle "Translucent"
Alpha 0.3
Radius 32//32
Height 12//42
speed 0
scale 2.5
states
{
Spawn:
HSN8 X 0
HSN8 X 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
HSN8 X 0 A_JumpIfInTargetInventory("SearchBushFlag3",1,"Death")
HSN8 X 1 A_SpawnItemEx("SearchBushChecker",0,0,42,0,0,0,0,1024)
HSN8 X 0 A_JumpIf(momz==0,"SpawnLand")
loop

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 YYYXXX 1 A_SpawnItemEx("SearchBushChecker",0,0,42,0,0,0,0,1024)
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 YYY 1 A_SpawnItemEx("SearchBushChecker",0,0,42,0,0,0,0,1024)
loop

Death:
TNT1 A 1
stop
}
}

actor SearchBush2 : SearchBush1
{
states
{
Spawn:
HSN8 X 0
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_SpawnItemEx("SearchBushChecker",0,0,42,0,0,0,0,1024)
HSN8 X 0 A_JumpIf(momz==0,"SpawnLand")
loop

SpawnWait:
HSN8 Y 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
HSN8 Y 0 A_JumpIfInTargetInventory("SearchBushFlag4",1,"Death")
HSN8 YYY 1 A_SpawnItemEx("SearchBushChecker",0,0,42,0,0,0,0,1024)
loop
}
}

actor SearchBush3 : SearchBush1
{
states
{
Spawn:
HSN8 X 0
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_SpawnItemEx("SearchBushChecker",0,0,42,0,0,0,0,1024)
HSN8 X 0 A_JumpIf(momz==0,"SpawnLand")
loop

SpawnWait:
HSN8 Y 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
HSN8 Y 0 A_JumpIfInTargetInventory("SearchBushFlag1",1,"Death")
HSN8 YYY 1 A_SpawnItemEx("SearchBushChecker",0,0,42,0,0,0,0,1024)
loop
}
}

actor SearchBush4 : SearchBush1
{
states
{
Spawn:
HSN8 X 0
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_SpawnItemEx("SearchBushChecker",0,0,42,0,0,0,0,1024)
HSN8 X 0 A_JumpIf(momz==0,"SpawnLand")
loop

SpawnWait:
HSN8 Y 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
HSN8 Y 0 A_JumpIfInTargetInventory("SearchBushFlag2",1,"Death")
HSN8 YYY 1 A_SpawnItemEx("SearchBushChecker",0,0,42,0,0,0,0,1024)
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)
TNT1 A 0 A_FireBullets(0,0,-1,0,"SearchManTargeter",FBF_EXPLICITANGLE|FBF_NORANDOM|FBF_NORANDOMPUFFZ)
goto Done
FireB:
TNT1 A 0 A_FireBullets(0,0,-1,0,"SearchManTargeterB",FBF_EXPLICITANGLE|FBF_NORANDOM|FBF_NORANDOMPUFFZ)
goto Done
FireR:
TNT1 A 0 A_FireBullets(0,0,-1,0,"SearchManTargeterR",FBF_EXPLICITANGLE|FBF_NORANDOM|FBF_NORANDOMPUFFZ)
goto Done
FireO:
TNT1 A 0 A_FireBullets(0,0,-1,0,"SearchManTargeterO",FBF_EXPLICITANGLE|FBF_NORANDOM|FBF_NORANDOMPUFFZ)
goto Done
FireP:
TNT1 A 0 A_FireBullets(0,0,-1,0,"SearchManTargeterP",FBF_EXPLICITANGLE|FBF_NORANDOM|FBF_NORANDOMPUFFZ)
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 SearchmanMain5_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("HomingSniperStorm",frandom(-3,3),0,0,64,0,frandom(-6,0))
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("HomingSniperStormB",frandom(-3,3),0,0,64,0,frandom(-6,0))
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("HomingSniperStormR",frandom(-3,3),0,0,64,0,frandom(-6,0))
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("HomingSniperStormO",frandom(-3,3),0,0,64,0,frandom(-6,0))
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("HomingSniperStormP",frandom(-3,3),0,0,64,0,frandom(-6,0))
goto Done
}
}

actor SearchmanMain6_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("HomingSniperStorm2",frandom(-1,1),0,random(-12,12),random(0,12),0,frandom(-1,1))
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("HomingSniperStorm2B",frandom(-1.5,1.5),0,0,0,0,frandom(-1.5,1.5))
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("HomingSniperStorm2R",frandom(-1.5,1.5),0,0,0,0,frandom(-1.5,1.5))
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("HomingSniperStorm2O",frandom(-1.5,1.5),0,0,0,0,frandom(-1.5,1.5))
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("HomingSniperStorm2P",frandom(-1.5,1.5),0,0,0,0,frandom(-1.5,1.5))
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
}
}

actor SearchmanAlt2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("SearchFrisbee2",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("SearchFrisbee2B",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("SearchFrisbee2R",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("SearchFrisbee2O",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("SearchFrisbee2P",0,0,0,0)
goto Done
}
}
