actor DustCrusherBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_4F"
dropitem "DustCrusherWepCDropped"
Weapon.AmmoUse 2
Weapon.AmmoGive 0
Obituary "$OB_DUSTCRUSHER"
Inventory.Pickupmessage "Power up! Yo momma!"
weapon.ammotype "CrushEmAmmo"
+WEAPON.NOAUTOAIM
inventory.icon "DUSTSI"
States
{
Spawn:
C_04 F 1
loop
Ready:
DUSB A 0 ACS_ExecuteAlways(998,0,DYE_DUSTMAN)
DUSB X 2
Ready2:
DUSB A 12 A_WeaponReady
DUSB A 0 A_GiveInventory("CrushEmAmmo",1)
Goto Ready2
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
DUSB X 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
DUSB X 1 A_Raise
Loop
Fire:
DUSB A 0 A_JumpIfInventory("CrushEmAmmo",16,"FireJunk")
goto NoAmmoFire
FireJunk:
DUSB A 0 A_GiveInventory("VivifyDelay4",1)
DUSB A 0 A_JumpIfInventory("PowerRage_ST",1,"FireJunkR")
DUSB A 0 A_PlaySoundEx("weapon/shoomp","Weapon")
DUSB A 0 A_GiveInventory("DustmanMain1_CI",1)
DUSB A 0 A_TakeInventory("CrushEmAmmo",24)//16
//DUSB DDEEFGGFEEDD 1
//DUSB A 12//24
DUSB DDEEFF 1
DUSB G 10
DUSB IIJJKKLL 1 
DUSB A 0 A_Refire
Goto Ready2
FireJunkR:
DUSB A 0 A_PlaySoundEx("weapon/shoomp","Weapon")
DUSB A 0 A_GiveInventory("DustmanMain1_CI",1)
DUSB A 0 A_TakeInventory("CrushEmAmmo",24)//16
//DUSB DDEEFGGFEEDD 1
//DUSB A 12//24
DUSB DEF 1
DUSB G 5
DUSB IJKL 1 
DUSB A 0 A_Refire
Goto Ready2
NoAmmoFire:
DUSB A 0 A_PlaySoundEx("weapon/dustbuster","Weapon")
//DUSB A 0 A_FireCustomMissile("DustShot",0,0,8,-24)
DUSB A 0 A_GiveInventory("DustmanMain3_CI",1)
DUSB B 1
DUSB C 3
DUSB B 2
DUSB A 2
//DUSB CB 3
//DUSB A 2 //8
DUSB A 0 A_ReFire
goto Ready2
AltFire:
DUSB M 1 A_GunFlash("Flash")
DUSB N 1
goto AltSuck
AltSuck:
//DUSB D 2 A_FireBullets (20, 20, 1, 0, "DustSucker", 0, 400)
DUSB M 0 A_FireCustomMissile("DustSucker",0,0,0,0)
DUSB M 0 A_FireCustomMissile("DustSuckerGrab",0,0,0,0)
TNT1 A 0 A_FireCustomMissile("DustSuckerGrabFX",0,0,0,24)
DUSB MMM 0 A_FireCustomMissile("DustSucker2",random(-15,15),0,random(-10,10),random(-10,10),0,random(-10,10))
DUSB N 3
DUSB M 0 A_Refire("AltSuck2")
DUSB N 2
Goto AltSuckEnd
AltSuck2:
DUSB M 0 A_FireCustomMissile("DustSucker",0,0,0,0)
DUSB M 0 A_FireCustomMissile("DustSuckerGrab",0,0,0,0)
TNT1 A 0 A_FireCustomMissile("DustSuckerGrabFX",0,0,0,24)
DUSB MMM 0 A_FireCustomMissile("DustSucker2",random(-15,15),0,random(-10,10),random(-10,10),0,random(-10,10))
DUSB O 3
DUSB M 0 A_Refire("AltSuck3")
DUSB O 2
Goto AltSuckEnd
AltSuck3:
DUSB M 0 A_FireCustomMissile("DustSucker",0,0,0,0)
DUSB M 0 A_FireCustomMissile("DustSuckerGrab",0,0,0,0)
TNT1 A 0 A_FireCustomMissile("DustSuckerGrabFX",0,0,0,24)
DUSB MMM 0 A_FireCustomMissile("DustSucker2",random(-15,15),0,random(-10,10),random(-10,10),0,random(-10,10))
DUSB P 3
DUSB M 0 A_Refire("AltSuck4")
DUSB P 2
Goto AltSuckEnd
AltSuck4:
DUSB M 0 A_FireCustomMissile("DustSucker",0,0,0,0)
DUSB M 0 A_FireCustomMissile("DustSuckerGrab",0,0,0,0)
TNT1 A 0 A_FireCustomMissile("DustSuckerGrabFX",0,0,0,24)
DUSB MMM 0 A_FireCustomMissile("DustSucker2",random(-15,15),0,random(-10,10),random(-10,10),0,random(-10,10))
DUSB O 3
DUSB M 0 A_Refire("AltSuck")
DUSB O 2
Goto AltSuckEnd
AltSuckEnd:
DUSB D 0 A_GunFlash("NoFlash")
DUSB NNNNMMMMMMMM 1
DUSB D 0 //A_StopSound(4)
Goto Ready2

Flash:
TNT1 A 0 A_PlaySound("weapon/DustVacuum1",1)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_JumpIfInventory("IsDead",1,"NoFlash")//34 A's
TNT1 A 1 A_PlaySound("weapon/DustVacuum2",1,1,1)
stop
NoFlash:
TNT1 A 1 A_PlaySound("weapon/DustVacuum3",1,1)
stop
}
}

actor DustBitterBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_4F2"
dropitem "DustCrusherWepCDropped"
Weapon.AmmoUse 2
Weapon.AmmoGive 0
Obituary "$OB_DUSTCRUSHER"
Inventory.Pickupmessage "Power up! Yo sucker!"
weapon.ammotype "CrushEmAmmo"
+WEAPON.NOAUTOAIM
inventory.icon "DustIcon"
States
{
Spawn:
C_04 F 1
loop
Ready:
DUSB Q 0 ACS_ExecuteAlways(998,0,DYE_DUSTMAN)
DUSB X 2
Ready2:
DUSB Q 12 A_WeaponReady
DUSB Q 0 A_GiveInventory("CrushEmAmmo",1)
goto Ready2
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
DUSB X 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
DUSB X 1 A_Raise
Loop

Fire:
DUSB Q 0 A_JumpIfInventory("CrushEmAmmo",1,"DustBitShot")
goto NoAmmoFire
DustBitShot:
DUSB Q 0 A_JumpIfInventory("PowerRage_ST",1,"DustBitShotR")
DUSB Q 0 A_PlaySoundEx("weapon/dustbit","Weapon")
DUSB Q 0 A_GiveInventory("DustmanMain2_CI",1)
//DUSB SB 3
//DUSB Q 4 //10
DUSB RS 2
DUSB SR 1
DUSB Q 4
DUSB Q 0 A_Refire
Goto Ready2
DustBitShotR:
DUSB Q 0 A_PlaySoundEx("weapon/dustbit","Weapon")
DUSB Q 0 A_GiveInventory("DustmanMain2_CI",1)
//DUSB SB 3
//DUSB Q 4 //10
DUSB RS 1
DUSB SR 1
DUSB Q 2
DUSB Q 0 A_Refire
Goto Ready2
NoAmmoFire:
DUSB Q 0 A_PlaySoundEx("weapon/dustbuster","Weapon")
//DUSB Q 0 A_FireCustomMissile("DustShot",0,0,8,-24)
DUSB Q 0 A_GiveInventory("DustmanMain3_CI",1)
DUSB R 1
DUSB S 3
DUSB R 2
DUSB Q 2
//DUSB CB 3
//DUSB A 2 //8
DUSB A 0 A_ReFire
goto Ready2

AltFire:
DUSB T 1 A_GunFlash("Flash")
DUSB U 1
goto AltSuck
AltSuck:
//DUSB D 2 A_FireBullets (20, 20, 1, 0, "DustSucker", 0, 400)
DUSB T 0 A_FireCustomMissile("DustSucker",0,0,0,0)
DUSB T 0 A_FireCustomMissile("DustSuckerGrab",0,0,0,0)
TNT1 A 0 A_FireCustomMissile("DustSuckerGrabFX",0,0,0,24)
DUSB TTT 0 A_FireCustomMissile("DustSucker2",random(-15,15),0,random(-10,10),random(-10,10),0,random(-10,10))
DUSB U 3
DUSB T 0 A_Refire("AltSuck2")
DUSB U 2
Goto AltSuckEnd
AltSuck2:
DUSB T 0 A_FireCustomMissile("DustSucker",0,0,0,0)
DUSB T 0 A_FireCustomMissile("DustSuckerGrab",0,0,0,0)
TNT1 A 0 A_FireCustomMissile("DustSuckerGrabFX",0,0,0,24)
DUSB TTT 0 A_FireCustomMissile("DustSucker2",random(-15,15),0,random(-10,10),random(-10,10),0,random(-10,10))
DUSB V 3
DUSB T 0 A_Refire("AltSuck3")
DUSB V 2
Goto AltSuckEnd
AltSuck3:
DUSB T 0 A_FireCustomMissile("DustSucker",0,0,0,0)
DUSB T 0 A_FireCustomMissile("DustSuckerGrab",0,0,0,0)
TNT1 A 0 A_FireCustomMissile("DustSuckerGrabFX",0,0,0,24)
DUSB TTT 0 A_FireCustomMissile("DustSucker2",random(-15,15),0,random(-10,10),random(-10,10),0,random(-10,10))
DUSB W 3
DUSB T 0 A_Refire("AltSuck4")
DUSB W 2
Goto AltSuckEnd
AltSuck4:
DUSB T 0 A_FireCustomMissile("DustSucker",0,0,0,0)
DUSB T 0 A_FireCustomMissile("DustSuckerGrab",0,0,0,0)
TNT1 A 0 A_FireCustomMissile("DustSuckerGrabFX",0,0,0,24)
DUSB TTT 0 A_FireCustomMissile("DustSucker2",random(-15,15),0,random(-10,10),random(-10,10),0,random(-10,10))
DUSB V 3
DUSB T 0 A_Refire("AltSuck")
DUSB V 2
Goto AltSuckEnd
AltSuckEnd:
DUSB D 0 A_GunFlash("NoFlash")
DUSB UTT 4
DUSB D 0 //A_StopSound(4)
Goto Ready2

Flash:
TNT1 A 0 A_PlaySound("weapon/DustVacuum1",1,1)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_JumpIfInventory("IsDead",1,"NoFlash")//34 A's
TNT1 A 1 A_PlaySound("weapon/DustVacuum2",1,1,1)
stop
NoFlash:
TNT1 A 1 A_PlaySound("weapon/DustVacuum3",1,1)
stop
}
}

actor CrushEmAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 224//56
+INVENTORY.IGNORESKILL
}

actor DustCrusherDust
{
//Translation "93:93=87:87"
Translation "199:199=87:87", "202:202=4:4", "198:198=87:87", "192:192=4:4"
PROJECTILE
damagetype "DustM_Crush"
Obituary "$OB_DUSTCRUSHER"
damage (35)
Radius 12
Height 12
speed 30
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
4DST A 0
4DST A 0 A_Jump(256,"A","B","C","D")
A:
4DST A 0 
4DST A 1 //A_SpawnItemEx("DustCrusherDustFXT",0,0,0,0,0,0,0,1)
loop
B:
4DST B 0 
4DST B 1 //A_SpawnItemEx("DustCrusherDustFXU",0,0,0,0,0,0,0,1)
loop
C:
4DST C 0 
4DST C 1 //A_SpawnItemEx("DustCrusherDustFXV",0,0,0,0,0,0,0,1)
loop
D:
4DST D 0 
4DST D 1 //A_SpawnItemEx("DustCrusherDustFXW",0,0,0,0,0,0,0,1)
loop
Crash:
XDeath:
TMFX A 0 A_PlaySoundEx("Weapon/BigDustBreak","Weapon")
TMFX ABCD 2
stop
Death:
TMFX A 0 A_PlaySoundEx("Weapon/BigDustBreak","Weapon")
TMFX A 0 A_SpawnItemEx("DustCrusherDustPickup",0,0,0,random(0,2),0,4,0,1)
TMFX A 0 A_SpawnItemEx("DustBit1Dust",0,0,0,31.5,0,0,45,1)
TMFX A 0 A_SpawnItemEx("DustBit2Dust",0,0,0,31.5,0,0,-45,1)
TMFX A 0 A_SpawnItemEx("DustBit3Dust",0,0,0,31.5,0,0,225,1)
TMFX A 0 A_SpawnItemEx("DustBit4Dust",0,0,0,31.5,0,0,-225,1)
TMFX ABCD 2
stop
}
}

actor DustCrusherDustB : DustCrusherDust{translation "202:202=205:205", "199:199=74:74", "192:192=205:205", "198:198=74:74"}
actor DustCrusherDustR : DustCrusherDust{translation "202:202=171:171", "199:199=41:41", "192:192=171:171", "198:198=41:41"}
actor DustCrusherDustO : DustCrusherDust{translation "202:202=104:104", "199:199=128:128", "192:192=104:104", "198:198=128:128"}
actor DustCrusherDustP : DustCrusherDust{translation "202:202=229:229", "199:199=232:232", "192:192=229:229", "198:198=232:232"}

actor DustCrusherDustFXT : BasicClientside
{
scale 2.5
alpha 0.80
states
{
Spawn:
DUSA T 1 A_FadeOut(0.25)
loop
}
}

actor DustCrusherDustFXU : BasicClientside
{
scale 2.5
alpha 0.80
states
{
Spawn:
DUSA [ 1 A_FadeOut(0.25)
loop
}
}

actor DustCrusherDustFXV : BasicClientside
{
scale 2.5
alpha 0.80
states
{
Spawn:
DUSA ] 1 A_FadeOut(0.25)
loop
}
}

actor DustCrusherDustFXW : BasicClientside
{
scale 2.5
alpha 0.80
states
{
Spawn:
DUSA ^ 1 A_FadeOut(0.25)
loop
}
}

actor DustBit1Dust
{
Translation "199:199=87:87", "202:202=4:4"
PROJECTILE
damagetype "DustM_CrushBit"
Obituary "$OB_DUSTCRUSHER"
ReactionTime 90
damage (15)
Radius 7
Height 7
speed 28
scale 2.5
states
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
DUSA U 4 
loop
}
}

actor DustBit2Dust : DustBit1Dust
{
states
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
DUSA V 4
loop
}
}

actor DustBit3Dust : DustBit1Dust
{
states
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
DUSA W 4
loop
}
}

actor DustBit4Dust : DustBit1Dust
{
states
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
DUSA X 4
loop
}
}



actor DustBitPew : DustBit1Dust
{
Translation "199:199=87:87", "202:202=4:4"
-THRUACTORS
damagetype "DustM_Shot"
damage (15)
Radius 8
Height 8
speed 34
states
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
DUSA U 0
DUSA U 0 A_Jump(256,"U","V","W","X")
U:
DUSA U 1
loop
V:
DUSA V 1
loop
W:
DUSA W 1
loop
X:
DUSA X 1
loop
Death:
TNT1 A 1
stop
}
}

actor DustBitPewB : DustBitPew{translation "202:202=205:205", "199:199=74:74"}
actor DustBitPewR : DustBitPew{translation "202:202=171:171", "199:199=41:41"}
actor DustBitPewO : DustBitPew{translation "202:202=104:104", "199:199=128:128"}
actor DustBitPewP : DustBitPew{translation "202:202=229:229", "199:199=232:232"}


actor DustShot
{
Translation "204:204=215:215"
PROJECTILE
damagetype "DustBuster"
Obituary "$OB_DUSTBUSTER"
damage (10)
Radius 6
Height 6
speed 28
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
TNT1 A 1
W_0D B 1
wait
}
}

actor DustShotB : DustShot{translation "204:204=205:205"}
actor DustShotR : DustShot{translation "204:204=171:171"}
actor DustShotO : DustShot{translation "204:204=104:104"}
actor DustShotP : DustShot{translation "204:204=229:229"}

actor DustBits : ScrapMetalBase
{
inventory.pickupmessage "Picked up some scrap metal."
States
{
Spawn2:
TNT1 A 1 A_Jump(256,"One","Two","Three","Four")
TNT1 A 1
loop
One:
DUST B 500
stop
Two:
DUST C 500
stop
Three:
DUST D 500
stop
Four:
DUST E 500
stop
}
}

actor DustCrusherDustPickup : ScrapMetalBase
{
States
{
Spawn2:
TNT1 A 1 A_Jump(256,"S_J","S_K","S_L","S_M","S_N","S_O","S_P")
TNT1 A 1
loop
S_J:
DUSA J 500
stop
S_K:
DUSA K 500
stop
S_L:
DUSA L 500
stop
S_M:
DUSA M 500
stop
S_N:
DUSA N 500
stop
S_O:
DUSA O 500
stop
S_P:
DUSA P 500
stop
}
}

actor DustSucker : BasicHelper
{
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIfInTargetInventory("CrushEmAmmo",224,2)
TNT1 A 3 ACS_ExecuteAlways(C_JAX_SUCKRECODE,0,700,10,2)
stop
TNT1 A 3 //ACS_ExecuteWithResult(C_JAX_SUCKRECODE,700,10,-1,-2)
stop
}
}

actor DustSuckerGrab : FastProjectile
{
PROJECTILE
+SKYEXPLODE
+DONTBLAST
+DONTSPLASH
+DONTREFLECT
Speed 650//450
Damage (0)
radius 12
height 12
States
{
Spawn:
TNT1 A 1
goto Death
Crash:
XDeath:
Death:
TNT1 A 0 A_Stop
TNT1 A 1 A_SpawnItemEx("DustGrabber")
stop
}
}

actor DustSucker2 : DustSuckerGrab
{
//+CLIENTSIDEONLY
//-PICKUP
States
{
Spawn:
//TNT1 A 0
TNT1 A 1
goto Death
Crash:
XDeath:
Death:
TNT1 A 0 A_Stop
TNT1 A 1 A_CustomMissile("VacuumParticle", 0, 0, 0, 0)
stop
}
}

actor DustGrabber : DustSuckerGrab
{
States
{
Spawn:
TNT1 A 1
Crash:
XDeath:
Death:
TNT1 A 0 A_Stop
TNT1 A 2 Thing_ChangeTID(0,(CallACS("cbm_GetPointerTID_147",2)+800))//A_SpawnItemEx("DustSuckerGrabber_H")
stop
}
}

actor DustSuckerGrabFX : DustGrabber
{
+CLIENTSIDEONLY
States
{
Spawn:
TNT1 A 1
Crash:
XDeath:
Death:
TNT1 A 1 A_JumpIf(CallACS("cbm_IsPointerClient",2)==1,"DeathClient")
TNT1 A 1
stop
DeathClient:
TNT1 A 1 A_SpawnItemEx("DustSuckerGrabFX2")
stop
}
}

actor DustSuckerGrabFX2 : BasicClientSide
{
Translation "4:4=197:197","192:192=95:95","198:198=5:5"
RenderStyle Add
Alpha 1.0
States
{
Spawn:
X_8E K 0
X_8E KL 1
stop
}
}

actor VacuumParticle
{
PROJECTILE
+CLIENTSIDEONLY
+DONTSPLASH
+DONTBLAST
//+NOINTERACTION
-SOLID
+NOGRAVITY
height 5
radius 5
Scale 2.5
Speed 45
States
{
Spawn:
COSS BBBBBBBBBBBBBBBB 1 A_JumpIfCloser(60,"Death")
stop
Death:
TNT1 A 1
stop
}
}


actor DustmanMain1_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("DustCrusherDust",0,0,0,4)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("DustCrusherDustB",0,0,0,4)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("DustCrusherDustR",0,0,0,4)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("DustCrusherDustO",0,0,0,4)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("DustCrusherDustP",0,0,0,4)
goto Done
}
}


actor DustmanMain2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("DustBitPew",0,1,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("DustBitPewB",0,1,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("DustBitPewR",0,1,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("DustBitPewO",0,1,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("DustBitPewP",0,1,8,0)
goto Done
}
}

actor DustmanMain3_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("DustShot",random(-3,3),0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("DustShotB",random(-3,3),0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("DustShotR",random(-3,3),0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("DustShotO",random(-3,3),0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("DustShotP",random(-3,3),0,8,0)
goto Done
}
}

