actor DocBusterBoss : BaseMM8BDMWep
{
tag "$TAGC_3I"
dropitem "DocScannerWepCDropped"//DocCarry
Weapon.AmmoUse 1
Weapon.AmmoGive 3
Weapon.SlotNumber 1
Obituary "$OB_DOCBUSTER"
Inventory.Pickupmessage "Power up! \ciD\c-iverse \ciO\c-perations \ciC\c-ircuit \ciRobot\c-!"
weapon.ammotype "DocVirusAmmo"
States
{
Spawn:
C_03 I 1
loop
Ready:
DOCR A 0 ACS_ExecuteAlways(998,0,DYE_DOCROBOT)
Goto Ready2
Ready2:
DOCR A 1 A_WeaponReady
wait
Deselect:
DOCR AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
DOCR A 1 A_Lower
Loop
Select:
DOCR AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
DOCR A 1 A_Raise
Loop
Fire:
DOCR A 0 A_PlaySoundEx("weapon/pshot","weapon")
DOCR A 0 A_GiveInventory("DocRobotMain_CI",1)
DOCR BC 4
DOCR A 6
DOCR A 0 A_Refire
Goto Ready2
Altfire:
DOCR A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_user1_check")==1,"Fire")
DOCR A 0 A_JumpIfInventory("DocVirusAmmo",56,"AltfireScan")
DOCR A 1
Goto Ready2
AltfireScan:
DOCR A 0 A_PlaySoundEx("Wep/DocScanCheck","Body")
DOCR A 0 A_SpawnItemEx("DocScanner",0,0,33,cos(-pitch)*1,0,sin(-pitch)*1,0,1)
DOCR D 1 A_SpawnItemEx("DocScannerLaserFX_H",0,0,43,cos(-pitch)*15,0,sin(-pitch)*15,0,1)
DOCR A 1 A_TakeInventory("DocVirusAmmo",4)
DOCR A 0 A_JumpIfInventory("PowerRage_ST",1,5)
DOCR DADADADAD 1
Goto Ready2
NoAmmo:
DOCR A 1
Goto Ready2
}
}

actor DocVirusAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 56
+INVENTORY.IGNORESKILL
}

actor DocRobotJump_F : Inventory
{
inventory.amount 1
inventory.maxamount 999
}
actor DocRobotSpeed_F : DocRobotJump_F{}

actor DocRobotSpawnStart_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("Once",1)
TNT1 A 0 //ACS_ExecuteAlways(981,0,0)
TNT1 A 0 ACS_NamedExecuteAlways("cbm_CopyWepAmmoSet",0,2,3)
TNT1 A 0 ACS_NamedExecuteAlways("cbm_DocStatsModifier",0,1)
TNT1 A 0 A_SpawnItemEx("DocAmmoGiver")
stop
}
}

actor DocShotB
{
Translation "204:204=215:215"
PROJECTILE
damagetype "DocRobot_Shot"
Obituary "$OB_DOCBUSTER"
+FORCEXYBILLBOARD
+BRIGHT
damage (150)
Radius 7
Height 7
speed 45
scale 2.5
States
{
Spawn:
W_0D B 1
loop
}
}

actor DocShotBB : DocShotB{translation "204:204=205:205"}
actor DocShotBR : DocShotB{translation "204:204=171:171"}
actor DocShotBO : DocShotB{translation "204:204=104:104"}
actor DocShotBP : DocShotB{translation "204:204=229:229"}

actor DocScanner : FastProjectile
{
//PROJECTILE
damagetype "DocRobot_Scan"
Obituary "$OB_DOCSCANNER"
+DONTBLAST
+DONTREFLECT
+DONTSPLASH
+THRUGHOST
+HITTRACER
damage (30)
Radius 16
Height 16
speed 1
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_ScaleVelocity(180.0)
TNT1 A 1
TNT1 A 1
stop
Crash:
XDeath:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerplayer")==1,"DeathScan")
TNT1 A 1
stop
DeathScan:
TNT1 A 0 A_SpawnItemEx("DocScannerMarkFX_H",-6,0,8,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("DocScannerBitFX_H",-6,0,8,0,0,0,0,1025)
TNT1 A 10
stop
Death:
TNT1 A 1 A_SpawnItemEx("DocScannerGetFX_H",0,0,10,0,0,0,0,1)
stop
}
}

actor DocScannerLaserFX_H : BasicHelper
{
Speed 15
States
{
Spawn:
TNT1 A 0
TNT1 A 2 A_SpawnItemEx("DocScannerLaserFX",0,0,0,momx,momy,momz,0,41)
stop
}
}

actor DocScannerLaserFX
{
+MISSILE
+NOGRAVITY
+THRUACTORS
+DONTBLAST
+DONTREFLECT
+DONTSPLASH
+CLIENTSIDEONLY
+FORCEYBILLBOARD
+PAINLESS
+BRIGHT
ReactionTime 4
damage (0)
Radius 8
Height 8
speed 15
XScale 1.75
YScale 6.0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetScale(ScaleX+0.05,ScaleY+2)
TNT1 A 0 A_JumpIf(ScaleY>=52,"Death")
TNT1 A 0 A_SpawnItemEx("DocScannerLaserFX",0,0,0,momx,momy,momz,0,16384+41)
TNT1 A 0 A_Stop
goto Spawn1
Spawn1:
TNT1 A 0 A_CountDown
TNT1 A 0 A_Jump(256,"R_1","R_2","R_3","R_4","R_5","R_6")
R_1:
X_9A G 1
TNT1 A 1
goto Spawn1
R_2:
X_9A H 1
TNT1 A 1
goto Spawn1
R_3:
X_9A GH 1
goto Spawn1
R_4:
X_9A HG 1
goto Spawn1
R_5:
X_9A GG 1
goto Spawn1
R_6:
X_9A HH 1
goto Spawn1

Death:
TNT1 A 1
stop
}
}
//This entire marker animation is accurate to Copy...frame wise
actor DocScannerBitFX_H : BasicHelper
{
var int user_TID;
var int user_Tracer;
var int user_ScannerMemory;
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetUserVar("user_TID",ACS_NamedExecuteWithResult("core_gettarget",0))
TNT1 A 0 A_SetUserVar("user_Tracer",ACS_NamedExecuteWithResult("core_gettracer",0))
TNT1 A 0 A_PlaySoundEx("Wep/DocScanHit","weapon")
TNT1 A 0 ACS_NamedExecuteAlways("cbm_DocScannerFetch",0,user_Tracer,user_TID,0)
TNT1 A 4 A_GiveToTarget("DocVirusAmmoDelay",1)
goto Spawn1
Spawn1:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_GiveInventory("WeaponCharge",1)
TNT1 A 0 A_GiveToTarget("DocVirusAmmoDelay",1)
TNT1 A 8 A_SpawnItemEx("DocScannerBitFX",0,0,-58,0,0,0,0,1)
TNT1 A 0 A_JumpIfInventory("WeaponCharge",4,"SpawnEnd")
goto Spawn2
Spawn2:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_GiveToTarget("DocVirusAmmoDelay",1)
TNT1 A 10 A_SpawnItemEx("DocScannerBitFX",0,0,6,0,0,0,0,1)
goto Spawn1
SpawnEnd:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 10 A_GiveToTarget("DocVirusAmmoDelay",1)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_GiveToTarget("DocVirusAmmoDelay",1)
TNT1 A 12 ACS_NamedExecuteAlways("cbm_DocScannerFetch",0,user_Tracer,user_TID,52)
stop
}
}


actor DocScannerGetSnd_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_PlaySoundEx("KirbyNES/GetPower","SoundSlot7")
TNT1 A 0 A_SpawnItemEx("DocScannerGetSnd_H")
stop
}
}

actor DocScannerGetSnd_H : BasicHelper
{
States
{
Spawn:
TNT1 A 4
TNT1 AAAAAAAA 4 A_GiveToTarget("DocScannerGetFX_P",1)
stop
}
}

actor DocScannerGetNoSnd_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_PlaySoundEx("KirbyNES/NoPower","SoundSlot7")
TNT1 A 0 A_SpawnItemEx("DocScannerGetNoSnd_H",0,0,28,0,0,0,0,1)
stop
}
}

actor DocScannerGetNoSnd_H : BasicClientSide
{
ReactionTime 7
States
{
Spawn:
TNT1 A 1
TNT1 AAA 0 A_SpawnItemEx("MagicMDeath_Confetti",random(-16,16),random(-16,16),Random(8,16),random(-3,3),random(-3,3),random(1,-1),0,1)
TNT1 A 0 A_CountDown
Loop
}
}


actor DocScannerGetFX_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("DocScannerGetFX",frandom(2,16)*4,0,frandom(1,18)*4,0,0,0,random(0,17)*20,1)
stop
}
}

actor DocScannerGetFX_H : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("DocScannerGetFX",0,0,0,0,0,0,0,1)
stop
}
}
actor DocScannerGetFX : BasicClientSide
{
+BRIGHT
States
{
Spawn:
TNT1 A 0
DOCR IJ 2
stop
}
}

actor DocScannerMarkFX_H : BasicClientSide
{
States
{
Spawn:
TNT1 A 0
TNT1 AA 2 A_SpawnItemEx("DocScannerMarkFX1",random(-4,4),random(-4,4),random(-4,4),0,0,0,0,1)
goto Spawn1
Spawn1:
//TNT1 A 0 A_SpawnItemEx("DocScannerBitFX",0,0,-58,0,0,0,0,1)
TNT1 A 0 A_GiveInventory("WeaponCharge",1)
TNT1 A 2 A_SpawnItemEx("DocScannerMarkFX3",random(-4,4),random(-4,4),random(-4,4),0,0,0,0,1)
TNT1 A 2 A_SpawnItemEx("DocScannerMarkFX1",random(-4,4),random(-4,4),random(-4,4),0,0,0,0,1)
TNT1 A 2 A_SpawnItemEx("DocScannerMarkFX2",random(-4,4),random(-4,4),random(-4,4),0,0,0,0,1)
TNT1 A 2 A_SpawnItemEx("DocScannerMarkFX1",random(-4,4),random(-4,4),random(-4,4),0,0,0,0,1)
TNT1 A 0 A_JumpIfInventory("WeaponCharge",4,"SpawnEnd")
goto Spawn2
Spawn2:
//TNT1 A 0 A_SpawnItemEx("DocScannerBitFX",0,0,6,0,0,0,0,1)
TNT1 A 2 A_SpawnItemEx("DocScannerMarkFX1",random(-4,4),random(-4,4),random(-4,4),0,0,0,0,1)
TNT1 A 2 A_SpawnItemEx("DocScannerMarkFX3",random(-4,4),random(-4,4),random(-4,4),0,0,0,0,1)
TNT1 AAA 2 A_SpawnItemEx("DocScannerMarkFX1",random(-4,4),random(-4,4),random(-4,4),0,0,0,0,1)
goto Spawn1
SpawnEnd:
TNT1 A 2 A_SpawnItemEx("DocScannerMarkFX1",random(-4,4),random(-4,4),random(-4,4),0,0,0,0,1)
TNT1 A 2 A_SpawnItemEx("DocScannerMarkFX3",random(-4,4),random(-4,4),random(-4,4),0,0,0,0,1)
TNT1 A 2 A_SpawnItemEx("DocScannerMarkFX1",0,0,0,0,0,0,0,1)

TNT1 AAAA 1 A_SpawnItemEx("DocScannerMarkFX1",0,0,0,0,0,0,0,1)
TNT1 A 3
TNT1 AAAA 1 A_SpawnItemEx("DocScannerMarkFX1",0,0,0,0,0,0,0,1)
TNT1 A 3
TNT1 AAAA 1 A_SpawnItemEx("DocScannerMarkFX1",0,0,0,0,0,0,0,1)
stop
}
}


actor DocScannerMarkFX1 : BasicClientSide
{
+BRIGHT
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"S_1","S_2","S_3")
S_1:
DOCR N 1
stop
S_2:
DOCR O 1
stop
S_3:
DOCR P 1
stop
}
}
actor DocScannerMarkFX2 : BasicClientSide
{
+BRIGHT
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"S_1","S_2","S_3")
S_1:
DOCR Q 1
stop
S_2:
DOCR R 1
stop
S_3:
DOCR S 1
stop
}
}
actor DocScannerMarkFX3 : BasicClientSide
{
+BRIGHT
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"S_1","S_2","S_3")
S_1:
DOCR T 1
stop
S_2:
DOCR U 1
stop
S_3:
DOCR V 1
stop
}
}

actor DocScannerBitFX : BasicExplosion
{
+BRIGHT
var int user_TID;
var int user_S;
ReactionTime 1
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("Wep/DocScanCheck","weapon")//DocScanHit
DOCR K 0 A_SetUserVar("user_TID",ACS_ExecuteWithResult(257))
DOCR K 0 //A_LogInt(user_TID)
DOCR K 0 //A_Log("TID")
goto Spawn2
//RIP clean method that caused divide by zero fakeouts due to bad lag
Spawn2:
DOCR K 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",24,user_TID))
DOCR K 0 A_FaceTarget(360,90)
DOCR K 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR K 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",23,user_TID))
DOCR K 0 A_FaceTarget(360,90)
DOCR K 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR K 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",22,user_TID))
DOCR K 0 A_FaceTarget(360,90)
DOCR K 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR K 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",21,user_TID))
DOCR K 0 A_FaceTarget(360,90)
DOCR K 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR K 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",20,user_TID))
DOCR K 0 A_FaceTarget(360,90)
DOCR K 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR K 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",19,user_TID))
DOCR K 0 A_FaceTarget(360,90)
DOCR K 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR K 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",18,user_TID))
DOCR K 0 A_FaceTarget(360,90)
DOCR K 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR K 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",17,user_TID))
DOCR K 0 A_FaceTarget(360,90)
DOCR K 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)


DOCR L 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",16,user_TID))
DOCR L 0 A_FaceTarget(360,90)
DOCR L 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR L 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",15,user_TID))
DOCR L 0 A_FaceTarget(360,90)
DOCR L 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR L 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",14,user_TID))
DOCR L 0 A_FaceTarget(360,90)
DOCR L 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR L 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",13,user_TID))
DOCR L 0 A_FaceTarget(360,90)
DOCR L 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR L 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",12,user_TID))
DOCR L 0 A_FaceTarget(360,90)
DOCR L 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR L 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",11,user_TID))
DOCR L 0 A_FaceTarget(360,90)
DOCR L 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR L 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",10,user_TID))
DOCR L 0 A_FaceTarget(360,90)
DOCR L 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR L 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",9,user_TID))
DOCR L 0 A_FaceTarget(360,90)
DOCR L 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)


DOCR M 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",8,user_TID))
DOCR M 0 A_FaceTarget(360,90)
DOCR M 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR M 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",7,user_TID))
DOCR M 0 A_FaceTarget(360,90)
DOCR M 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR M 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",6,user_TID))
DOCR M 0 A_FaceTarget(360,90)
DOCR M 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR M 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",5,user_TID))
DOCR M 0 A_FaceTarget(360,90)
DOCR M 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR M 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",4,user_TID))
DOCR M 0 A_FaceTarget(360,90)
DOCR M 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR M 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",3,user_TID))
DOCR M 0 A_FaceTarget(360,90)
DOCR M 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR M 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",2,user_TID))
DOCR M 0 A_FaceTarget(360,90)
DOCR M 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)
DOCR M 0 A_SetUserVar("user_S",ACS_NamedExecuteWithResult("cbm_DocDistSpeedReturn",1,user_TID))
DOCR M 0 A_FaceTarget(360,90)
DOCR M 1 A_ChangeVelocity(cos(pitch)*user_S,0,sin(pitch)*user_S,3)

DOCR M 1 A_CountDown
wait

Death:
TNT1 A 1
stop
}
}


actor DocVirusAmmo_RC : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"PickupR")
TNT1 A 0 A_GiveInventory("DocVirusAmmo",1)
stop
PickupR:
TNT1 A 0 A_GiveInventory("DocVirusAmmo",2)
stop
}
}

actor DocVirusAmmoDelay : Powerup
{
Powerup.Duration 20
}

actor DocAmmoGiver_RC : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInTargetInventory("PowerRage_ST",1,"PickupR")
TNT1 A 0 A_GiveInventory("CutterFlag",1)
goto PickupVirus
PickupR:
TNT1 A 0 A_GiveInventory("CutterFlag",2)
goto PickupVirus
PickupVirus:
TNT1 A 0 A_JumpIfInTargetInventory("DocVirusAmmoDelay",1,"No")
TNT1 A 0 A_JumpIfInventory("VivifyDelay10",1,"No")
TNT1 A 0 A_GiveInventory("VivifyDelay10",1)
TNT1 A 0 A_GiveToTarget("DocVirusAmmo_RC",1)
stop
No:
TNT1 A 0
stop
}
}

actor DocAmmoGiver : BasicHelper
{
+NOTIMEFREEZE
+SERVERSIDEONLY
States
{
Spawn:
TNT1 A 0
goto Spawn1
Spawn1:
TNT1 A 0
TNT1 A 1
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("DocBusterBoss",1,1)
goto Death
TNT1 A 0 A_GiveInventory("DocAmmoGiver_RC",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",53,"DocAmmo2")
loop

DocAmmo2:
TNT1 A 0 A_GiveToTarget("DocAmmo22",1)
TNT1 A 0 //A_JumpIfInTargetInventory("EnergyBalancerActive",1,2)
TNT1 A 0 A_TakeInventory("CutterFlag",999)
goto Spawn1
TNT1 A 0 A_TakeInventory("CutterFlag",27)
goto Spawn1

}
}

actor DocAmmoGiverOld : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 1
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("DocBusterBoss",1,1)
goto Death
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",127,2)
TNT1 A 0 A_JumpIfInventory("CutterFlag",126,"DocAmmo2")
TNT1 A 0 A_JumpIfInventory("CutterFlag",169,2)
TNT1 A 0 A_JumpIfInventory("CutterFlag",168,"DocAmmo1p5")
TNT1 A 0 A_JumpIfInventory("CutterFlag",253,2)
TNT1 A 0 A_JumpIfInventory("CutterFlag",252,"DocAmmo0and2")
TNT1 A 0 A_JumpIfInventory("CutterFlag",337,2)
TNT1 A 0 A_JumpIfInventory("CutterFlag",336,"DocAmmo1p5")
TNT1 A 0 A_JumpIfInventory("CutterFlag",379,2)
TNT1 A 0 A_JumpIfInventory("CutterFlag",378,"DocAmmo2")
TNT1 A 0 A_JumpIfInventory("CutterFlag",504,"DocAmmo0and1p5and2")
goto Spawn+1
DocAmmo0and2:
TNT1 A 0 A_GiveToTarget("DocAmmo0",1)
TNT1 A 0 A_GiveToTarget("DocAmmo2",1)
goto Spawn+1
DocAmmo1p5:
TNT1 A 0 A_GiveToTarget("DocAmmo1p5",1)
goto Spawn+1
DocAmmo2:
TNT1 A 0 A_GiveToTarget("DocAmmo2",1)
goto Spawn+1
DocAmmo0and1p5and2:
TNT1 A 0 A_GiveToTarget("DocAmmo0",1)
TNT1 A 0 A_GiveToTarget("DocAmmo1p5",1)
TNT1 A 0 A_GiveToTarget("DocAmmo2",1)
TNT1 A 0 A_TakeInventory("CutterFlag",999)
goto Spawn+1
Death:
TNT1 A 0
stop
}
}


actor DocAmmo0 : CustomInventory
{
States
{
Pickup:
EBAL E 0 ACS_NamedExecuteAlways("cbm_CopyWepAmmoRatioGive",0,2)
stop
}
}

actor DocAmmo1p5 : CustomInventory
{
States
{
Pickup:
EBAL E 0 ACS_NamedExecuteAlways("cbm_CopyWepAmmoRatioGive",0,3/* *0.5 */)
stop
}
}

actor DocAmmo2 : CustomInventory
{
States
{
Pickup:
EBAL E 0 ACS_NamedExecuteAlways("cbm_CopyWepAmmoRatioGive",0,4 /* *0.5 */)
stop
}
}

actor DocAmmo22 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 //A_PlaySound("item/energyup",3,1.0)
TNT1 A 0 ACS_NamedExecuteAlways("cbm_CopyWepAmmoRatioGive",0,8)
stop
}
}

actor DocRobotMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("DocShotB",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("DocShotBB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("DocShotBR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("DocShotBO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("DocShotBP",0,0,8,0)
goto Done
}
}
