actor HazardTrapperWep_NormalBar : NormalBar{args 229, 93}
actor HazardTrapperWep_ScriptBar : ScriptBar{}

actor HazardTrapperWep : BaseMM8BDMWep
{
Weapon.AmmoUse 1
Weapon.AmmoGive 28
Weapon.SlotNumber 2
Inventory.Pickupmessage "$PU_HAZARDTRAPPER"
Obituary "$OB_HAZARDTRAPPER"
Tag "$TAG_HAZARDTRAPPER"
weapon.ammotype "HazardTrapperAmmo"
inventory.icon "HTPRICON"
States
{
SpawnLoop:
HTPR Z 1
loop
Ready:
HTPR A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_HAZARDTRAPPER)
TNT1 A 0 A_TakeInventory("WeaponCharge",9999)
HTPR A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
HTPR A 0 
goto DeselectSwap
Select:
HTPR A 0 
goto SelectSwap
FireR:
HTPR A 0 A_JumpIfNoAmmo("NoAmmo")
HTPR A 0 ACS_NamedExecuteWithResult("core_chargecolor", COLOR_HAZARDTRAPPER,TCLR_NONE)
HTPR A 0 A_TakeInventory("WeaponCharge",999)
HTPR A 0 A_PlaySoundEx("weapon/hazardtrapper","Weapon",0,0)
HTPR A 0 A_FireCustomMissile("HazardTrapper",0,1,8,4)
HTPR BC 3
HTPR A 7 
HTPR A 0 A_Refire
Goto Ready+1
Fire:
HTPR A 0 A_TakeInventory("WeaponCharge",999)
HTPR A 0 A_JumpIfNoAmmo("NoAmmo")
HPTR A 1 A_Refire("Hold")
goto FireR
Altfire:
HTPR A 0 A_JumpIfInventory("Vile_ClassAltfire", 1, "ClassAltfire")
HTPR A 0 A_JumpIf(CallACS("Vile_class_altfire"), "ClassAltfire")
HTPR A 1 A_JumpIfInventory("MM8BDMPlayer", 1, 1)
wait
HTPR A 0 A_TakeInventory("WeaponCharge",999)
HTPR A 0 A_JumpIfNoAmmo("NoAmmo")
HTPR A 0 A_JumpIfInventory("HazardTrapperAmmo", 1, "FireA")
goto NoAmmo
ClassAltfire:
DATK A 0 
goto Super::Altfire
FireA:
HTPR A 0 A_JumpIfNoAmmo("NoAmmo")
HTPR A 0 A_PlaySoundEx("weapon/hazardtrapper","Weapon",0,0)
HTPR A 0 ACS_NamedExecuteWithResult("core_chargecolor", COLOR_HAZARDTRAPPER,TCLR_NONE)
HTPR A 0 A_TakeInventory("WeaponCharge",999)
HTPR A 0 A_FireCustomMissile("HazardTrapper",0,1,8,4)
HTPR BC 3
HTPR A 7 
HTPR A 0 A_Refire
Goto Ready+1
Fire3:
HTPR A 0 A_TakeInventory("WeaponCharge",999)
HTPR A 0 ACS_NamedExecuteWithResult("core_chargecolor", COLOR_HAZARDTRAPPER,TCLR_NONE)
HTPR A 0 A_JumpIfInventory("HazardTrapperAmmo", 8, "Fire3r")
HTPR A 0 A_PlaySoundEx("weapon/hazardtrapper","Weapon",0,0)
HTPR A 0 ACS_NamedExecuteWithResult("core_chargecolor", COLOR_HAZARDTRAPPER,TCLR_NONE)
HTPR A 0 A_FireCustomMissile("HazardTrapper",0,1,8,4)
HTPR BC 3
HTPR A 7 
HTPR A 0 A_Refire
goto Ready+1
Fire3r:
HTPR A 0 A_TakeInventory("WeaponCharge",999)
HTPR A 0 A_PlaySoundEx("weapon/hazardtrapper","Weapon",0,0)
HTPR A 0 ACS_NamedExecuteWithResult("core_chargecolor", COLOR_HAZARDTRAPPER,TCLR_NONE)
HTPR A 0 A_FireCustomMissile("HazardTrapperCS",-8,1,8,4)
HTPR A 0 A_FireCustomMissile("HazardTrapperCS",-2,1,8,4)
HTPR A 0 A_FireCustomMissile("HazardTrapperCS",2,1,8,4)
HTPR A 0 A_FireCustomMissile("HazardTrapperCS",8,1,8,4)
HTPR A 0 A_FireCustomMissile("HazardTrapperCS",-4,1,8,4,0,-4)
HTPR A 0 A_FireCustomMissile("HazardTrapperCS",-4,1,8,4,0,4)
HTPR A 0 A_FireCustomMissile("HazardTrapperCS",4,1,8,4,0,-4)
HTPR A 0 A_FireCustomMissile("HazardTrapperCS",4,1,8,4,0,4)

//HTPR A 0 A_FireCustomMissile("HazardTrapperCS",16,1,8,4)
//HTPR A 0 A_FireCustomMissile("HazardTrapperCS",12,1,8,4)
//HTPR A 0 A_FireCustomMissile("HazardTrapperCS",8,1,8,4)
//HTPR A 0 A_FireCustomMissile("HazardTrapperCS",2,1,8,4)
//HTPR A 0 A_FireCustomMissile("HazardTrapperCS",-2,1,8,4)
//HTPR A 0 A_FireCustomMissile("HazardTrapperCS",-8,1,8,4)
//HTPR A 0 A_FireCustomMissile("HazardTrapperCS",-12,1,8,4)
//HTPR A 0 A_FireCustomMissile("HazardTrapperCS",-16,1,8,4)
HTP0 ABCDEF 2
HTPR A 3
HTPR A 0 A_Refire
goto Ready+1
Charge1:
HTPR A 0 A_JumpIfInventory("WeaponCharge",35,"Charge2Start")
HTPR D 1 ACS_NamedExecuteWithResult("core_chargecolor", COLOR_HAZARDTRAPPERCHARGE1,TCLR_CHARGE1)
HTPR D 0 A_Refire("Charge1.a")
Goto FireR
Charge1.a:
HTPR A 1 ACS_NamedExecuteWithResult("core_chargecolor", COLOR_HAZARDTRAPPER,TCLR_NONE)
HTPR A 0 A_GiveInventory("WeaponCharge", 1 + CallACS("core_checkrune", RUNE_RAGE))
HTPR D 0 A_Refire("Charge1")
Goto FireR
Charge2Start:
HTPR A 0 A_GunFlash("Sound.BusterCharge", GFF_NOEXTCHANGE)
Goto Charge2
Charge2:
HTPR A 1 ACS_NamedExecuteWithResult("core_chargecolor", COLOR_HAZARDTRAPPERCHARGE2,TCLR_CHARGE2)
HTPR D 0 A_Refire("Charge2.a")
Goto Fire3
Charge2.a:
HTPR E 1 ACS_NamedExecuteWithResult("core_chargecolor", COLOR_HAZARDTRAPPERCHARGE3,TCLR_CHARGE3)
HTPR D 0 A_Refire("Charge2.b")
Goto Fire3
Charge2.b:
HTPR F 1 ACS_NamedExecuteWithResult("core_chargecolor", COLOR_HAZARDTRAPPER,TCLR_NONE)
HTPR A 0 A_JumpIfInventory("WeaponCharge", 35, 2)
HTPR A 0 A_GiveInventory("WeaponCharge", 1 + CallACS("core_checkrune", RUNE_RAGE))
"####" "#" 0 A_JumpIfInventory("IsBot", 1, "BotFire")
HTPR A 0 A_Refire("Charge2")
Goto Fire3
BotFire:
"####" "#" 0 A_Jump(16, "Fire3")
"####" "#" 0 A_Refire("Charge2")
Goto Fire3
Hold:
HTPR A 0 A_JumpIfInventory("HazardTrapperAmmo", 1, "Hold2")
goto FireR
Hold2:
HTPR A 0 A_JumpIfInventory("WeaponCharge",18,"Charge")
HTPR A 1 A_GiveInventory("WeaponCharge", 1 + CallACS("core_checkrune", RUNE_RAGE))
HTPR A 0 A_Refire
Goto FireR
Charge:
HTPR A 0 A_JumpIfInventory("WeaponCharge",19,"Charge1")
HTPR A 0 A_PlaySoundEx("weapon/coilstart","Weapon")
Goto Charge1
NoAmmo:
HTPR A 1 ACS_NamedExecuteAlways("core_noammo",0)
Goto Ready+1
}
}

actor HazardTrapperAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
+INVENTORY.IGNORESKILL
}

actor HazardTrapper : BasicProjectile
{
PROJECTILE
-NOGRAVITY
+SLIDESONWALLS
+BOUNCEONWALLS
+BOUNCEONCEILINGS
+NOEXPLODEFLOOR
Damage (CallACS("vile_cbm_damage",17))
Speed 34
damagetype "HazardTrapper"
Obituary "$OB_HAZARDTRAPPER"
Height 14
Radius 14
Scale 2.5
var int user_blobspeed;
States
{
Spawn:
HZTR A 0
HZTR A 0 ThrustThingZ(0,20,0,1)
HZTR ABCB 5 A_CheckFloor("Spawn2")
goto Spawn+2
Spawn2:
HZTR D 0
HZTR DDD 1 A_JumpIf(z-floorz>8,"Down")
Spawn3:
HZTR E 1 A_JumpIf(z-floorz>8,"Down")
HZTR E 0 A_ScaleVelocity(0.88)
HZTR E 0 A_SetUserVar("user_blobspeed",velz)
HZTR E 0 A_JumpIf(momx < 0.2 && momy < 0.2,"StopMoving")
goto Spawn3
Down:
TNT1 A 0 
goto Spawn+2
StopMoving:
HZTR FFF 1 A_JumpIf(momx > 0.1 || momy > 0.1,"Spawn3")
HZTR FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 1 A_ScaleVelocity(0.88)
MMFX FGHI 3 A_Stop
stop
Death:
TNT1 A 0 A_JumpIf(ceilingz-z < 48, "XDeath")
TNT1 A 0 //A_SpawnItemEx("HazardTrapperWall",-6,0,32,0,0,user_blobspeed)//user_blobspeed
stop
XDeath:
Crash:
TNT1 A 0
stop
}
}

actor HazardTrapperCS : HazardTrapper
{
Damage (CallACS("vile_cbm_damage",9))
}


/*actor HazardTrapperWall
{
PROJECTILE
+NOGRAVITY
+SLIDESONWALLS
Damage (12)
Speed 28
damagetype "HazardTrapper"
Obituary "$OB_HAZARDTRAPPER"
Height 5
Radius 6
Scale 2.5
var int user_blobspeed;
States
{
Spawn:
PLY1 A 6 
PLY1 A 0 A_Changeflag("NOEXPLODEFLOOR",0)
Down:
PLY1 B 0 A_SetUserVar("user_blobspeed",velz)
PLY1 B 2 ThrustThingZ(0,3,1,1) 
loop
Death:
TNT1 A 0 A_JumpIf(ceilingz-z < 48, "CeilingDeath")
TNT1 A 0 A_SpawnItemEx("HazardTrapperFloor",6,0,0,user_blobspeed/2,0,user_blobspeed/2) //A_JumpIf(z-floorz!=0,"FloorSpawn")
stop
CeilingDeath:
TNT1 A 0 A_SpawnItemEx("HazardTrapperFloor",6,0,-16,user_blobspeed/2,0,0)
goto XDeath
XDeath:
Crash:
TNT1 A 0
stop
}
}

actor HazardTrapperFloor
{
PROJECTILE
-NOGRAVITY
+NOEXPLODEFLOOR
Damage (12)
Speed 28
damagetype "HazardTrapper"
Obituary "$OB_HAZARDTRAPPER"
Height 5
Radius 6
Scale 2.5
var int user_blobspeed;
States
{
Spawn:
PLY1 D 0
PLY1 D 1
Spawn2:
PLY1 DDD 1 A_JumpIf(z-floorz>8,"Down")
Spawn3:
PLY1 E 1 A_JumpIf(z-floorz>8,"Down")
PLY1 E 0 A_ScaleVelocity(0.90)
PLY1 E 0 A_SetUserVar("user_blobspeed",velx)
PLY1 E 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"Spawn3")
goto StopMoving
Down:
TNT1 A 0 
goto Spawn+1
StopMoving:
PLY1 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 1 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"Spawn3")
MMFX FGHI 3 A_Stop
stop
Death:
TNT1 A 0 A_JumpIf(ceilingz-z < 48, "XDeath")
TNT1 A 0 A_SpawnItemEx("HazardTrapperWall",-1,0,16,0,0,user_blobspeed/2)
stop
//Wall:
//TNT1 A 0 A_SpawnItemEx("HazardTrapperWall",-1,0,16,0,0,velz)
//stop
XDeath:
Crash:
TNT1 A 0
stop
}
}*/

/*actor HazardTrapper
{
PROJECTILE
-NOGRAVITY
+NOEXPLODEFLOOR
Damage (12)
Speed 27
damagetype "HazardTrapper"
Obituary "$OB_HAZARDTRAPPER"
Height 5
Radius 6
Scale 2.5
States
{
Spawn:
PLY1 A 0 ThrustThingZ(0,16,0,1)
PLY1 ABCB 5 A_CheckFloor("SendOff")
goto Spawn+1
SendOff:
TNT1 A 0 A_SpawnItemEx("HazardTrapperFloor",0,0,0,velx,0,0,0,SXF_NOCHECKPOSITION)
Death:
TNT1 A 0 A_JumpIf(ceilingz-z < 48, "XDeath")
TNT1 A 0 A_JumpIf(z-floorz!=0,"Air")
stop
Air:
TNT1 A 0 //A_SpawnItemEx("UpSnake0",-1,0,16,0,0,1) //This is just placeholder for when I make the wal 
stop
XDeath:
Crash:
TNT1 A 0
stop
}
}

actor HazardTrapperFloor
{
PROJECTILE
Damage (12)
-NOGRAVITY
+NOEXPLODEFLOOR
damagetype "HazardTrapper"
Obituary "$OB_HAZARDTRAPPER"
Height 5
Radius 6
Scale 2.5
Speed 23
States
{
Spawn:
PLY1 DDD 1 A_JumpIf(z-floorz>8,"Down")
Spawn2:
PLY1 E 1 A_JumpIf(z-floorz>8,"Down")
PLY1 A 0 A_JumpIf(velx<1,"StopMoving")
PLY1 A 0 A_ScaleVelocity(0.85)
loop
Down:
TNT1 A 0 A_SpawnItemEx("HazardTrapper",0,0,0,velx,0,velz)
stop
XDeath:
Crash:
TNT1 A 0
stop
StopMoving:
TNT1 A 0 A_SpawnItem("HazardTrapperStopped")
Death:
TNT1 A 0 //A_SpawnItemEx("UpSnake0",-1,0,16,0,0,1)
stop
}
}

actor HazardTrapperStopped
{
PROJECTILE
Damage (12)
-NOGRAVITY
+NOEXPLODEFLOOR
damagetype "HazardTrapper"
Obituary "$OB_HAZARDTRAPPER"
Height 5
Radius 6
Scale 2.5
Speed 23
States
{
Spawn:
PLY1 FF 70
PLY1 F 0 A_Die
Death:
MMFX FGHI 3 A_Stop
stop
}
}*/