//====================================
// Indentation by MGO
//------------------------------------
//====================================

  actor DangerWrapBoss : BaseMM8BDMWep_CBM
  {
	Tag "$TAGC_7C"
	dropitem "DangerWrapWepCDropped"
	Weapon.AmmoUse 0
	Weapon.AmmoGive 28
	Obituary "$OB_DANGERWRAP"
	weapon.ammotype1 "BursterAmmo"
	weapon.ammotype2 "BursterAmmo"
	+WEAPON.NOAUTOAIM
	States
	{
		Spawn:
		C_07 C 1
		loop
		Ready:
		BURX A 0 ACS_ExecuteAlways(998,0,DYE_BURSTMAN)
		BURX A 0 A_GunFlash
		goto Ready1
		Ready1:
		BURX A 0 A_JumpIfInventory("BursterAmmo",7,"Ready3")
		BURX A 3 A_WeaponReady(8)
		BURX A 0 A_JumpIfInventory("BurstTrigger",1,2)
		BURX A 0 A_GiveInventory("BursterAmmo",1)
		BURX A 0
		loop
		Ready3:
		BURX A 3 A_WeaponReady
		BURX A 0 A_JumpIfInventory("BurstTrigger",1,2)
		BURX A 0 A_GiveInventory("BursterAmmo",1)
		BURX A 0
		loop

		Deselect:
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
		BURX A 1 A_Lower
		Loop
		Select:
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
		BURX A 1 A_Raise
		Loop

		Fire:
		BURX A 0 A_PlaySoundEx("weapon/wrapfire","Weapon")
		TNT1 A 0 A_JumpIfInventory("BursterAmmo",2,1)
		goto Fire0
		TNT1 A 0 A_GiveInventory("BurstM_FireCheck_P",1)
		BURX BCC 2
		BURX CCCCBA 1 
		BURX A 14
		goto Ready1
		Fire0:
		BURX B 0 A_GiveInventory("BurstM_FireCheck_P",1)
		BURX B 2
		BURX CCBA 1 
		BURX A 4
		goto Ready1

		NoAmmo:
		BURX A 0
		goto Ready1

		Altfire:
		BURX A 0 A_GiveInventory("VivifyDelay5",1)
		BURX A 0 A_Refire(1)
		BURX A 0 A_GiveInventory("BurstmanAlt_CI",1)
		BURX A 2 offset(0,42)
		BURX A 2 offset(0,52)
		BURX A 2 offset(0,62)
		BURX A 2 offset(0,72)
		BURX A 2 offset(0,62)
		BURX A 2 offset(0,52)
		BURX A 2 offset(0,42)
		goto Ready1

		Flash:
		TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
		TNT1 A 0 A_JumpIfInventory("DangerFly",1,"Flash.FlyStart")
		TNT1 A 1
		loop


		Flash.FlyStart:
		TNT1 A 0 A_SpawnItemEx("DangerBombTrappedFXWarper",0,0,0,0,0,0,0,1)
		TNT1 A 0 A_SetGravity(0.0)
		goto Flash.Fly
		Flash.Fly:
		TNT1 A 1 A_GiveInventory("Burstman_FlightThrust_P",1)
		TNT1 A 0 A_JumpIfInventory("IsDead",1,"Flash.FlyEnd")
		TNT1 A 0 A_JumpIfInventory("BurstItemFire",1,"Flash.FlyEnd")
		TNT1 A 0 A_JumpIfInventory("DangerFly",1,"Flash.Fly")
		goto Flash.FlyEnd

		Flash.FlyEnd:
		TNT1 A 0 A_GiveInventory("EnvironmentGravity",1)
		TNT1 A 0 A_TakeInventory("BurstItemFire",9)
		TNT1 A 0 A_TakeInventory("DangerFly",999)
		TNT1 A 0 A_SpawnItemEx("DangerTrappedFXPOP",0,0,-32,momx,momy,momz,0,9,0)
		TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
		TNT1 A 1 A_SpawnItemEx("BurstmanBubblePop_H",0,0,0,0,0,0,0,1)
		goto Flash.Land

		Flash.Land:
		TNT1 A 0 A_JumpIf(z-floorz==0,"Flash.LandEnd")
		TNT1 A 0 A_JumpIf(momz==0,"Flash.LandZ")
		TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
		TNT1 A 1 A_JumpIfInventory("DangerFly",1,"Flash.FlyStart")
		loop
		Flash.LandZ:
		TNT1 A 1 A_JumpIfInventory("DangerFly",1,"Flash.FlyStart")
		TNT1 A 0 A_JumpIf(z-floorz==0,"Flash.LandEnd")
		TNT1 A 0 A_JumpIf(momz==0,"Flash.LandEnd")
		goto Flash.Land+2
		Flash.LandEnd:
		TNT1 A 0 A_TakeInventory("BurstTrigger",99)
		goto Flash
	}
  }
  
//====================================
//Weapon Ammo & Inventory Items
//------------------------------------
//====================================

  actor BursterAmmo : Ammo //Basic ammo.
  {
  inventory.amount 1
  inventory.maxamount 28
  +INVENTORY.IGNORESKILL
  }

  actor DangerTrapRecover : Powerup //Prevents enemies from being spammed by alt.
  {
	powerup.duration 90
  }

  actor BurstTrigger : OnceC{} //Basic toggler.

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

  actor PowerBurstFlightSpeed : PowerSpeed //Makes burst go through the air while in bubble phase.
  {
  powerup.duration 3
  Speed 2.0
  +POWERSPEED.NOTRAIL
  }

  actor BurstBombStock : Inventory //Determines how many mines will be fired/dropped.
  {
  inventory.amount 1
  inventory.maxamount 3
  }

  actor BurstItemFire : Powerup //Used in the flash state.
  {
  Powerup.Duration 3
  }
  
  actor BurstItemFireD : Powerup //Anti spam measure.
  {
  +INVENTORY.ADDITIVETIME
  Powerup.Duration 3
  }

  actor BurstStockItem : CustomInventory
  {
	inventory.amount 1
	inventory.maxamount 1
	inventory.icon "BursIcon"
	scale 2.0
	Tag "$TAGC_7C2"
	inventory.pickupmessage "Bombs, bombers, bombests, you want it it your's my friend as long as you have enough screws."
	+INVBAR
	states
	{
		Spawn:
		BURX Z 1
		loop
		Use:
		//TNT1 A 0 A_JumpIfInventory("DangerFly",1,"Use3")
		TNT1 A 0 A_JumpIfInventory("BurstItemFireD",1,"No")
		TNT1 A 0 A_JumpIfInventory("BurstBombStock",1,"Use2")
		fail
		goto Use1
		Use1:
		TNT1 A 0 A_PlaySoundEx("weapon/crashland","SoundSlot6")
		TNT1 A 0 A_GiveInventory("BurstBombStock",2)
		TNT1 A 0 A_GiveInventory("BurstItemFireD_RC",1)
		fail
		Use2:
		TNT1 A 0 A_PlaySoundEx("weapon/crashland","SoundSlot6")
		TNT1 A 0 A_TakeInventory("BurstBombStock",1)
		TNT1 A 0 A_GiveInventory("BurstItemFireD_RC",1)
		fail
		Use3:
		TNT1 A 0 A_GiveInventory("BurstItemFire",1)
		fail

		No:
		TNT1 A 0
		fail
	}
  }

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

  actor Burstman_FlightThrust_P : CustomInventory
  {
	States
	{
		Pickup:
		TNT1 A 0 A_GiveInventory("BurstTrigger",1)
		TNT1 A 0 A_TakeInventory("DangerFly",1)
		TNT1 A 0 A_JumpIf(z-floorz==0,"P_SpeedDown")
		TNT1 A 0 A_JumpIf(momz==0,"P_SpeedDown")
		goto P_SpeedUp
		P_SpeedUp:
		TNT1 A 0 A_GiveInventory("PowerBurstFlightSpeed",1)
		goto P_ThrustCheck
		P_SpeedDown:
		TNT1 A 0 A_TakeInventory("PowerBurstFlightSpeed",1)
		goto P_ThrustCheck
		P_ThrustCheck:
		TNT1 A 0 A_JumpIfInventory("FlightDisableFlag",1,"No")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_JAX_CHECK_JUMP)==1,"P_ThrustUp")
		goto P_ThrustDown
		P_ThrustUp:
		TNT1 A 0 A_ChangeVelocity(momx,momy,(momz*0.75)+1.5,CVF_REPLACE)
		stop
		P_ThrustDown:
		TNT1 A 0 A_ChangeVelocity(momx,momy,(momz*0.75)-1.5,CVF_REPLACE)
		stop
		No:
		TNT1 A 0
		stop
	}
  }

actor BurstDangerWrap0
{
Translation "192:192=218:218"
PROJECTILE
damagetype "BurstM_Shot"
Obituary "$OB_DANGERBUBBLE"
+SKYEXPLODE
+EXPLODEONWATER
Damage (5)
Radius 16
Height 10
Speed 40
scale 2.5
States
{
Spawn:
BURX H 0
BURX HI 5
BURX HJ 5 ThrustThingZ(0,4,0,1)
Spawn2:
BURX HIHJ 5 ThrustThingZ(0,4,0,1)
loop
Death:
BURX T 5 A_PlaySoundEx("weapon/DangerWrapPop","Weapon")
stop
}
}

actor BurstDangerWrap0B : BurstDangerWrap0{translation "192:192=205:205"}
actor BurstDangerWrap0R : BurstDangerWrap0{translation "192:192=171:171"}
actor BurstDangerWrap0O : BurstDangerWrap0{translation "192:192=104:104"}
actor BurstDangerWrap0P : BurstDangerWrap0{translation "192:192=229:229"}

  actor BurstDangerWrap
  {
	Translation "192:192=218:218","198:198=73:73","202:202=210:210"
	PROJECTILE
	damagetype "BurstM_Shot"
	Obituary "$OB_DANGERWRAP"
	+SKYEXPLODE
	+BOUNCEONWALLS
	BounceCount 1
	Damage (0)
	Radius 16
	Height 10
	Speed 35
	scale 2.5
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		BURX K 0
		BURX KL 5
		BURX KM 5 ThrustThingZ(0,2,0,1)
		Spawn2:
		BURX KLKM 5 ThrustThingZ(0,2,0,1)
		loop

		Death:
		BURX T 0 A_Stop
		BURX T 0 A_ChangeFlag("NOGRAVITY",0)
		TNT1 A 0 A_PlaySoundEx("weapon/DangerWrapPop","Weapon")
		BURX T 0 A_JumpIf(z-ceilingz==0-10,"SpawnMineCeiling")
		BURX T 0 A_JumpIf(z-floorz==0,"SpawnMine")
		BURX T 2 A_SpawnItemEx("BurstDangerWrapMineT1",0,0,0,0,0,3,0,1)
		stop

		Crash:
		XDeath:
		BURX T 0 A_Stop
		BURX T 0 A_ChangeFlag("NOGRAVITY",0)
		BURX T 0 A_SpawnItemEx("BurstDangerWrapBoom",0,0,5,0,0,0,0,1)
		BURX T 2
		stop

		SpawnMine:
		BURX T 2 A_SpawnItemEx("BurstDangerWrapMine",0,0,0,0,0,8,0,1)
		stop
		SpawnMineCeiling:
		BURX T 2 A_SpawnItemEx("BurstDangerWrapMineT1",0,0,-13,0,0,0,0,1)
		stop
	}
  }


  actor BurstDangerWrapB : BurstDangerWrap{translation "192:192=205:205","198:198=74:74","202:202=205:205"}
  actor BurstDangerWrapR : BurstDangerWrap{translation "192:192=171:171","198:198=41:41","202:202=171:171"}
  actor BurstDangerWrapO : BurstDangerWrap{translation "192:192=104:104","198:198=128:128","202:202=104:104"}
  actor BurstDangerWrapP : BurstDangerWrap{translation "192:192=229:229","198:198=232:232","202:202=229:229"}

  actor BurstDangerWrap2 : BurstDangerWrap
  {
	Speed 30
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		BURX N 0
		BURX NO 5
		BURX NP 5 
		Spawn2:
		BURX NONP 5 
		loop

		Death:
		BURX T 0 A_Stop
		BURX T 0 A_ChangeFlag("NOGRAVITY",0)
		TNT1 A 0 A_PlaySoundEx("weapon/DangerWrapPop","Weapon")
		BURX T 0 A_JumpIf(z-ceilingz==0-10,"SpawnMineCeiling")
		BURX T 0 A_JumpIf(z-floorz==0,"SpawnMine")
		BURX T 0 A_SpawnItemEx("BurstDangerWrapMineT2",0,0,0,10,0,3,random(0,359),1)
		BURX T 2 A_SpawnItemEx("BurstDangerWrapMineT1",0,0,0,0,0,3,0,1)
		stop

		Crash:
		XDeath:
		BURX T 0 A_Stop
		BURX T 0 A_ChangeFlag("NOGRAVITY",0)
		BURX T 0 A_SpawnItemEx("BurstDangerWrapBoom2",0,0,5,0,0,0,0,1)
		BURX T 2
		stop

		SpawnMine:
		BURX T 0 A_SpawnItemEx("BurstDangerWrapMine2",0,0,0,10,0,8,random(0,359),1)
		BURX T 2 A_SpawnItemEx("BurstDangerWrapMine",0,0,0,0,0,8,0,1)
		stop
		SpawnMineCeiling:
		BURX T 0 A_SpawnItemEx("BurstDangerWrapMineT2",0,0,-13,10,0,0,random(0,359),1)
		BURX T 2 A_SpawnItemEx("BurstDangerWrapMineT1",0,0,-13,0,0,0,0,1)
		stop
	}
  }


  actor BurstDangerWrap2B : BurstDangerWrap2{translation "192:192=205:205","198:198=74:74","202:202=205:205"}
  actor BurstDangerWrap2R : BurstDangerWrap2{translation "192:192=171:171","198:198=41:41","202:202=171:171"}
  actor BurstDangerWrap2O : BurstDangerWrap2{translation "192:192=104:104","198:198=128:128","202:202=104:104"}
  actor BurstDangerWrap2P : BurstDangerWrap2{translation "192:192=229:229","198:198=232:232","202:202=229:229"}

  actor BurstDangerWrap3 : BurstDangerWrap
  {
	Speed 25
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		BURX Q 0
		BURX QR 5
		BURX QS 5 ThrustThingZ(0,-2,0,1)
		Spawn2:
		BURX QRQS 5 ThrustThingZ(0,-2,0,1)
		loop

		Death:
		BURX T 0 A_Stop
		BURX T 0 A_ChangeFlag("NOGRAVITY",0)
		TNT1 A 0 A_PlaySoundEx("weapon/DangerWrapPop","Weapon")
		BURX T 0 A_JumpIf(z-ceilingz==0-10,"SpawnMineCeiling")
		BURX T 0 A_JumpIf(z-floorz==0,"SpawnMine")
		BURX T 0 A_SpawnItemEx("BurstDangerWrapMineT3",0,0,0,10,0,3,random(0,179),1)
		BURX T 0 A_SpawnItemEx("BurstDangerWrapMineT2",0,0,0,10,0,3,random(180,359),1)
		BURX T 0 A_SpawnItemEx("BurstDangerWrapMineT1",0,0,0,0,0,3,0,1)
		BURX T 2
		stop

		Crash:
		XDeath:
		BURX T 0 A_Stop
		BURX T 0 A_ChangeFlag("NOGRAVITY",0)
		BURX T 0 A_SpawnItemEx("BurstDangerWrapBoom3",0,0,10,0,0,0,0,1)
		BURX T 2
		stop

		SpawnMine:
		BURX T 0 A_SpawnItemEx("BurstDangerWrapMine3",0,0,0,10,0,8,random(0,179),1)
		BURX T 0 A_SpawnItemEx("BurstDangerWrapMine2",0,0,0,10,0,8,random(180,359),1)
		BURX T 2 A_SpawnItemEx("BurstDangerWrapMine",0,0,0,0,0,8,0,1)
		stop
		SpawnMineCeiling:
		BURX T 0 A_SpawnItemEx("BurstDangerWrapMineT3",0,0,-13,10,0,0,random(0,179),1)
		BURX T 0 A_SpawnItemEx("BurstDangerWrapMineT2",0,0,-13,10,0,0,random(180,359),1)
		BURX T 2 A_SpawnItemEx("BurstDangerWrapMineT1",0,0,-13,0,0,0,0,1)
		stop
	}
  }

  actor BurstDangerWrap3B : BurstDangerWrap3{translation "192:192=205:205","198:198=74:74","202:202=205:205"}
  actor BurstDangerWrap3R : BurstDangerWrap3{translation "192:192=171:171","198:198=41:41","202:202=171:171"}
  actor BurstDangerWrap3O : BurstDangerWrap3{translation "192:192=104:104","198:198=128:128","202:202=104:104"}
  actor BurstDangerWrap3P : BurstDangerWrap3{translation "192:192=229:229","198:198=232:232","202:202=229:229"}

  actor BurstmanBubblePop_H : BasicHelper
  {
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInTargetInventory("BurstBombStock",2,"Spawn1")
		TNT1 A 0 A_JumpIfInTargetInventory("BurstBombStock",1,"Spawn2")
		goto Spawn3
		Spawn3:
		TNT1 A 0 A_JumpIfInTargetInventory("BursterAmmo",14,"Spawn3C")
		goto SpawnEnd
		Spawn3C:
		TNT1 A 0 A_SpawnItemEx("BurstDangerWrapMineT3",0,0,4,10,0,0,random(0,179),1)
		TNT1 A 0 A_SpawnItemEx("BurstDangerWrapMineT2",0,0,4,10,0,0,random(180,359),1)
		TNT1 A 0 A_SpawnItemEx("BurstDangerWrapMineT1",0,0,4,0,0,0,0,1)
		TNT1 A 0 A_TakeFromTarget("BursterAmmo",14)
		goto SpawnEnd
		Spawn2:
		TNT1 A 0 A_JumpIfInTargetInventory("BursterAmmo",7,"Spawn2C")
		goto SpawnEnd
		Spawn2C:
		TNT1 A 0 A_SpawnItemEx("BurstDangerWrapMineT2",0,0,4,10,0,0,random(0,359),1)
		TNT1 A 0 A_SpawnItemEx("BurstDangerWrapMineT1",0,0,4,0,0,0,0,1)
		TNT1 A 0 A_TakeFromTarget("BursterAmmo",7)
		goto SpawnEnd
		Spawn1:
		TNT1 A 0 A_SpawnItemEx("BurstDangerWrapMineT1",0,0,4,0,0,0,0,1)
		TNT1 A 0 A_TakeFromTarget("BursterAmmo",2)
		goto SpawnEnd
		SpawnEnd:
		TNT1 A 2
		stop
	}
  }
  
  actor BurstmanBubblePopDeath_H : BasicHelper
  {
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInTargetInventory("BurstBombStock",2,"Spawn1")
		TNT1 A 0 A_JumpIfInTargetInventory("BurstBombStock",1,"Spawn2")
		goto Spawn3
		Spawn3:
		TNT1 A 0 A_GiveToTarget("BurstBombStock",2)
		TNT1 A 0 A_SpawnItemEx("BurstDangerWrapMine3",0,0,4,10,0,8,random(0,179),1)
		TNT1 A 0 A_SpawnItemEx("BurstDangerWrapMine2",0,0,4,10,0,8,random(180,359),1)
		TNT1 A 0 A_SpawnItemEx("BurstDangerWrapMine",0,0,4,0,0,8,0,1)
		goto SpawnEnd
		Spawn2:
		TNT1 A 0 A_GiveToTarget("BurstBombStock",1)
		TNT1 A 0 A_SpawnItemEx("BurstDangerWrapMine2",0,0,4,10,0,8,random(0,359),1)
		TNT1 A 0 A_SpawnItemEx("BurstDangerWrapMine",0,0,4,0,0,8,0,1)
		goto SpawnEnd
		Spawn1:
		TNT1 A 0 A_SpawnItemEx("BurstDangerWrapMine",0,0,4,0,0,8,0,1)
		goto SpawnEnd
		SpawnEnd:
		TNT1 A 2
		stop
	}
  }


  actor BurstDangerWrapMine
  {
	PROJECTILE
	damagetype "BurstM_Boom"
	Obituary "$OB_DANGERWRAP"
	-NOGRAVITY
	+THRUACTORS
	+BOUNCEONFLOORS
	+BOUNCEONWALLS
	+BOUNCEONCEILINGS
	bouncefactor 0.5
	wallbouncefactor 0.85
	bouncecount 4
	reactiontime 1
	damage (0)
	Radius 15
	Height 12
	speed 10
	scale 2.5
	States
	{
		Spawn:
		BURX U 0
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		BURX U 0 A_JumpIf(Pitch>=2,"Spawn1")
		BURX U 0 A_SetPitch(pitch+1)
		BURX UUUVVV 1
		loop
		Spawn1:
		BURX U 0 A_ChangeFlag("THRUACTORS",0)
		BURX U 0 A_JumpIf(Pitch>=10,"Spawn2")
		BURX U 0 A_SetPitch(pitch+1)
		BURX UUUVVV 1
		goto Spawn1+1
		Spawn2:
		BURX U 0 A_JumpIf(Pitch>=15,"Spawn3a")
		BURX U 0 A_SetPitch(pitch+1)
		BURX UUVVUU 1
		BURX V 0 A_JumpIf(Pitch>=15,"Spawn3b")
		BURX V 0 A_SetPitch(pitch+1)
		BURX VVUUVV 1
		loop
		Spawn3a:
		BURX U 0 A_JumpIf(Pitch>=20,"SuperDeathU")
		BURX U 0 A_SetPitch(pitch+1)
		BURX UVUVUV 1
		loop
		Spawn3b:
		BURX V 0 A_JumpIf(Pitch>=20,"SuperDeathV")
		BURX V 0 A_SetPitch(pitch+1)
		BURX VUVUVU 1
		loop

		SpawnX:
		BURX W 0
		BURX W 0 A_JumpIf(Pitch>=2,"SpawnX1")
		BURX W 0 A_SetPitch(pitch+1)
		BURX WWWXXX 1
		loop
		SpawnX1:
		BURX W 0 A_ChangeFlag("THRUACTORS",0)
		BURX W 0 A_JumpIf(Pitch>=10,"SpawnX2")
		BURX W 0 A_SetPitch(pitch+1)
		BURX WWWXXX 1
		goto SpawnX1+1
		SpawnX2:
		BURX W 0 A_JumpIf(Pitch>=15,"SpawnX3a")
		BURX W 0 A_SetPitch(pitch+1)
		BURX WWXXWW 1
		BURX X 0 A_JumpIf(Pitch>=15,"SpawnX3b")
		BURX X 0 A_SetPitch(pitch+1)
		BURX XXWWXX 1
		loop
		SpawnX3a:
		BURX W 0 A_JumpIf(Pitch>=20,"SuperDeathW")
		BURX W 0 A_SetPitch(pitch+1)
		BURX WXWXWX 1
		loop
		SpawnX3b:
		BURX X 0 A_JumpIf(Pitch>=20,"SuperDeathX")
		BURX X 0 A_SetPitch(pitch+1)
		BURX XWXWXW 1
		loop

		SuperDeathU:
		BURX U 1 A_CountDown
		wait
		SuperDeathV:
		BURX V 1 A_CountDown
		wait
		SuperDeathW:
		BURX W 1 A_CountDown
		wait
		SuperDeathX:
		BURX X 1 A_CountDown
		wait

		SpawnMine:
		TNT1 A 0 A_JumpIf(Pitch>=20,"XDeath")
		TNT1 A 0 A_JumpIf(Mass==101,"SpawnMineX")
		TNT1 A 0 A_SpawnItemEx("BurstDangerWrapMineLand",0,0,0,0,0,0,0,513)
		stop
		SpawnMineX:
		TNT1 A 0 A_JumpIf(Pitch>=20,"XDeath")
		TNT1 A 0 A_SpawnItemEx("BurstDangerWrapMineLand2",0,0,0,0,0,0,0,513)
		stop

		Death:
		TNT1 A 0 A_JumpIf(z-floorz==0,"SpawnMine")
		goto XDeath
		Crash:
		XDeath:
		TNT1 A 0 A_Stop
		TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
		TNT1 A 4 A_SpawnItemEx("BurstDangerWrapBoom10",0,0,5,0,0,0,0,1)
		stop
	}
  }

  actor BurstDangerWrapMine2 : BurstDangerWrapMine
  {
	Mass 101
	States
	{
		Spawn:
		BURX W 0
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		goto SpawnX
	}
  }

  actor BurstDangerWrapMine3 : BurstDangerWrapMine
  {
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,1,2)
		BURX U 0
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		goto Super::Spawn
		BURX W 0 A_SetMass(101)
		goto SpawnX
	}
  }

  actor BurstDangerWrapMineT1 : BurstDangerWrapMine
  {
	-THRUACTORS
  }
  actor BurstDangerWrapMineT2 : BurstDangerWrapMine2
  {
	-THRUACTORS
  }
  actor BurstDangerWrapMineT3 : BurstDangerWrapMine3
  {
	-THRUACTORS
  }


  actor BurstDangerWrapMineLand : BurstDangerWrapMine
  {
	-THRUACTORS
	-BOUNCEONWALLS
	-BOUNCEONCEILINGS
	speed 0
	States
	{
		Spawn:
		BURX U 0
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		goto Spawn1+1

		Death:
		TNT1 A 0
		goto XDeath
	}
  }

  actor BurstDangerWrapMineLand2 : BurstDangerWrapMineLand
  {
	States
	{
		Spawn:
		BURX W 0
		goto SpawnX1+1
	}
  }

  actor BurstDangerWrapBoom : BasicExplosion
  {
	damagetype "BurstM_Boom"
	Obituary "$OB_DANGERWRAP"
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("BasicBoom5FX_Y",0,0,5,0,0,0,0,1+32)
		TNT1 A 0 A_PlaySoundEx("weapon/BurstExplode","Weapon")
		TNT1 A 4 A_Explode(15,128,0,0,48)
		stop
	}
  }
  
  actor BurstDangerWrapBoom2 : BasicExplosion
  {
	damagetype "BurstM_Boom"
	Obituary "$OB_DANGERWRAP"
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("BasicBoom5FX_Y",0,0,5,0,0,0,0,1+32)
		TNT1 A 0 A_PlaySoundEx("weapon/BurstExplode","Weapon")
		TNT1 A 4 A_Explode(25,128,0,0,48)
		TNT1 A 4 A_PlaySoundEx("weapon/BurstExplode","Weapon")
		stop
	}
  }
  
  actor BurstDangerWrapBoom3 : BasicExplosion
  {
	damagetype "BurstM_Boom"
	Obituary "$OB_DANGERWRAP"
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("BasicBoom5FX_Y",0,0,5,0,0,0,0,1+32)
		TNT1 A 0 A_PlaySoundEx("weapon/BurstExplode","Weapon")
		TNT1 A 4 A_Explode(35,128,0,0,48)
		TNT1 A 4 A_PlaySoundEx("weapon/BurstExplode","Weapon")
		TNT1 A 4 A_PlaySoundEx("weapon/BurstExplode","Weapon")
		stop
	}
  }
  
  actor BurstDangerWrapBoom10 : BurstDangerWrapBoom
  {
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("BasicBoom5FX_Y",0,0,5,0,0,0,0,1+32)
		TNT1 A 0 A_PlaySound("weapon/BurstExplode",1,0.8)
		TNT1 A 4 A_Explode(10,96,0,0,24)
		stop
	}
  }

  actor BurstDangerWrapBoomFX : BasicClientSide
  {
	States
	{
		Spawn:
		TNT1 A 0 A_SpawnItemEx("BasicBoom5FX_Y",0,0,5,0,0,0,0,1+32)
		stop
	}
  }

  actor DangerBubbleSpawner : FastProjectile
  {
	Translation "192:192=218:218", "198:198=73:73"
	+RIPPER
	+DONTBLAST
	+THRUGHOST
	+SKYEXPLODE
	+DONTREFLECT
	reactiontime 5
	damage (0)
	radius 8
	height 16
	speed 1000
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 1 A_CountDown
		loop
		
		Death:
		TNT1 A 0 A_SpawnItemEx("DangerTrapHelpX0",0,0,0,0,0,0,0,1)
		stop
	}
  }

  actor DangerBubbleSpawnerB : DangerBubbleSpawner{translation "192:192=205:205","198:198=74:74"}
  actor DangerBubbleSpawnerR : DangerBubbleSpawner{translation "192:192=171:171","198:198=41:41"}
  actor DangerBubbleSpawnerO : DangerBubbleSpawner{translation "192:192=104:104","198:198=128:128"}
  actor DangerBubbleSpawnerP : DangerBubbleSpawner{translation "192:192=229:229","198:198=232:232"}

  actor DangerTrapHelpX0
  {
	PROJECTILE
	+FLOORHUGGER
	+DONTBLAST
	+THRUACTORS
	Damage (0)
	Radius 8
	Height 16
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("DangerTrapHelpX1",0,0,0,0,0,0,0,1)
		stop
		Death:
		TNT1 A 1 A_SpawnItemEx("DangerTrapHelpX1",0,0,0,0,0,0,0,1)
		stop
	}
  }

  actor DangerTrapHelpX1 : DangerTrapHelpX0
  {
	-FLOORHUGGER
	Radius 32
	Height 32
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("DangerTrap",0,0,0,0,0,0,0,1)
		stop
		Death:
		TNT1 A 1 A_SpawnItemEx("DangerTrapHelpX2",-4,0,0,0,0,0,0,1)
		stop
	}
  }
  
  actor DangerTrapHelpX2 : DangerTrapHelpX1
  {
	States
	{
		Death:
		TNT1 A 1 A_SpawnItemEx("DangerTrapHelpX3",-4,0,0,0,0,0,0,1)
		stop
	}
  }
  
  actor DangerTrapHelpX3 : DangerTrapHelpX1{States{Death:TNT1 A 1 A_SpawnItemEx("DangerTrapHelpX4",-4,0,0,0,0,0,0,1)stop}}
  actor DangerTrapHelpX4 : DangerTrapHelpX1{States{Death:TNT1 A 1 A_SpawnItemEx("DangerTrapHelpX5",-4,0,0,0,0,0,0,1)stop}}
  actor DangerTrapHelpX5 : DangerTrapHelpX1{States{Death:TNT1 A 1 A_SpawnItemEx("DangerTrapHelpX6",-4,0,0,0,0,0,0,1)stop}}
  actor DangerTrapHelpX6 : DangerTrapHelpX1{States{Death:TNT1 A 1 A_SpawnItemEx("DangerTrapHelpX7",-4,0,0,0,0,0,0,1)stop}}
  actor DangerTrapHelpX7 : DangerTrapHelpX1{States{Death:TNT1 A 1 A_SpawnItemEx("DangerTrapHelpX8",-4,0,0,0,0,0,0,1)stop}}
  actor DangerTrapHelpX8 : DangerTrapHelpX1{States{Death:TNT1 A 1 A_SpawnItemEx("DangerTrapHelpX9",-4,0,0,0,0,0,0,1)stop}}
  actor DangerTrapHelpX9 : DangerTrapHelpX1{States{Death:TNT1 A 1 A_SpawnItemEx("DangerTrapHelpX10",-4,0,0,0,0,0,0,1)stop}}
  actor DangerTrapHelpX10: DangerTrapHelpX1{States{Death:TNT1 A 1 A_SpawnItemEx("DangerTrapHelpX11",-4,0,0,0,0,0,0,1)stop}}
  actor DangerTrapHelpX11: DangerTrapHelpX1{States{Death:TNT1 A 1 A_SpawnItemEx("DangerTrapHelpX12",-4,0,0,0,0,0,0,1)stop}}
  actor DangerTrapHelpX12: DangerTrapHelpX1{States{Death:TNT1 A 1 A_SpawnItemEx("DangerTrapHelpX13",-4,0,0,0,0,0,0,1)stop}}
  actor DangerTrapHelpX13: DangerTrapHelpX1{States{Death:TNT1 A 1 A_SpawnItemEx("DangerTrapHelpX14",-4,0,0,0,0,0,0,1)stop}}
  actor DangerTrapHelpX14: DangerTrapHelpX1{States{Death:TNT1 A 1 A_SpawnItemEx("DangerTrapHelpX15",-4,0,0,0,0,0,0,1)stop}}
  actor DangerTrapHelpX15: DangerTrapHelpX1{States{Death:TNT1 A 1 A_SpawnItemEx("DangerTrap",-4,0,0,0,0,0,0,1)stop}}


  actor DangerTrap
  {
	PROJECTILE
	Obituary "$OB_DANGERTRAP"
	damagetype "BurstM_Trap"
	+FORCEYBILLBOARD
	//+NOINTERACTION
	+DONTBLAST
	+RIPPER
	//+FLOORHUGGER

	damage (0)
	radius 32
	height 32
	scale 2.0
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("weapon/BurstBubAppear",5,1.0)
		TNT1 A 1 A_JumpIfCloser(16,"Fly")
		BMBU AAAAAA 1 A_JumpIfCloser(16,"Fly")
		TNT1 A 0 A_SpawnItemEx("DangerTrap0",0,0,0,0,0,0,0,1)
		stop
		Death:
		BMBU C 3
		stop
		Fly:
		TNT1 A 1 A_GiveToTarget("DangerFly",106)
		stop
	}
  }

  actor DangerTrap0 : DangerTrap
  {
	scale 2.5
	radius 32
	height 32
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		BMBU A 0
		BMBU A 0 ThrustThingZ(0,11,0,0)
		BMBU AAAAAA 1 A_JumpIfCloser(20,"Fly")
		TNT1 A 0 A_SpawnItemEx("DangerTrap1",0,0,0,0,0,0,0,1)
		stop
	}
  }

  actor DangerTrap1 : DangerTrap0
  {
	//-NOINTERACTION
	-RIPPER
	damage (10)

	scale 3.0
	radius 32
	height 32
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		BMBU B 0
		BMBU B 0 ThrustThingZ(0,9,0,0)
		BMBU BBBBBB 1 A_JumpIfCloser(24,"Fly")
		TNT1 A 0 A_SpawnItemEx("DangerTrap2",0,0,0,0,0,0,0,1)
		stop
	}
  }

  actor DangerTrap2 : DangerTrap1
  {
	scale 3.5
	radius 32
	height 32
	States
	{
		Spawn:
		BMBU B 0
		BMBU B 0 ThrustThingZ(0,7,0,0)
		BMBU BBBBBB 1 A_JumpIfCloser(28,"Fly")
		TNT1 A 0 A_SpawnItemEx("DangerTrap3",0,0,0,0,0,0,0,1)
		stop
	}
  }

  actor DangerTrap3 : DangerTrap2
  {
  scale 4.0
  radius 32
  height 32
	States
	{
		Spawn:
		BMBU B 0
		BMBU B 0 ThrustThingZ(0,5,0,0)
		BMBU BBBBBB 1 A_JumpIfCloser(32,"Fly")
		TNT1 A 0 A_SpawnItemEx("DangerTrap4",0,0,0,0,0,0,0,1)
		stop
	}
  }

  actor DangerTrap4 : DangerTrap3
  {
	scale 4.5
	radius 32
	height 36
	States
	{
		Spawn:
		BMBU B 0
		BMBU B 0 ThrustThingZ(0,3,0,0)
		BMBU BBBBBB 1 A_JumpIfCloser(36,"Fly")
		TNT1 A 0 A_SpawnItemEx("DangerTrap5",0,0,0,0,0,0,0,1)
		stop
	}
  }

  actor DangerTrap5 : DangerTrap4
  {
	scale 5.0
	radius 32
	height 40
	States
	{
		Spawn:
		BMBU B 0
		BMBU B 0 //A_LOG("DangerTrap5")
		Spawn2:
		BMBU B 0 ThrustThingZ(0,1,0,1)
		BMBU B 1 A_JumpIfCloser(40,"Fly")
		loop
	}
  }

actor DangerTrapped : BasicHelper
{
var int user_anim;
reactiontime 50
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetUserVar("user_anim",random(1,11))
TNT1 A 0 //A_SetArg(1,random(1,11))
TNT1 A 0 A_JumpIfInTargetInventory("DangerTrapRecover",1,"Death")
TNT1 A 0 A_GiveToTarget("DangerTrapRecover",1)
TNT1 A 0 A_TakeFromTarget("EndBossFlashStoppered",1)
goto Spawn2
Spawn2:
TNT1 A 0 A_JumpIf(user_anim>=4,"Spawn3")
TNT1 A 0 A_JumpIfInTargetInventory("EndBossFlashStoppered",1,"Death")
TNT1 A 1 A_GiveToTarget("DangerTrappedRise",1)
TNT1 A 0 A_CountDown
TNT1 A 0 A_SetUserVar("user_anim",user_anim+1)
loop
Spawn3:
TNT1 A 0 A_JumpIf(user_anim>=8,"Spawn4")
TNT1 A 0 A_JumpIfInTargetInventory("EndBossFlashStoppered",1,"Death")
TNT1 A 1 A_GiveToTarget("DangerTrappedRise2",1)
TNT1 A 0 A_CountDown
TNT1 A 0 A_SetUserVar("user_anim",user_anim+1)
loop
Spawn4:
TNT1 A 0 A_JumpIf(user_anim>=12,"Spawn5")
TNT1 A 0 A_JumpIfInTargetInventory("EndBossFlashStoppered",1,"Death")
TNT1 A 1 A_GiveToTarget("DangerTrappedRise3",1)
TNT1 A 0 A_CountDown
TNT1 A 0 A_SetUserVar("user_anim",user_anim+1)
loop
Spawn5:
TNT1 A 0 A_SetUserVar("user_anim",0)
goto Spawn2
Death:
TNT1 A 1 A_GiveToTarget("DangerTrappedPop",1)
stop
}
}

actor DangerTrappedRise : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_ChangeVelocity(0,0,2,CVF_REPLACE)
TNT1 A 0 A_SpawnItemEx("DangerTrappedFX",0,0,0,momx,momy,momz,0,9,0)
stop
}
}

actor DangerTrappedRise2 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_ChangeVelocity(0,0,2,CVF_REPLACE)
TNT1 A 0 A_SpawnItemEx("DangerTrappedFX2",0,0,0,momx,momy,momz,0,9,0)
stop
}
}

actor DangerTrappedRise3 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_ChangeVelocity(0,0,2,CVF_REPLACE)
TNT1 A 0 A_SpawnItemEx("DangerTrappedFX3",0,0,0,momx,momy,momz,0,9,0)
stop
}
}

actor DangerTrappedPop : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("DangerTrappedFXPOP",0,0,-32,momx,momy,momz,0,9,0)
stop
}
}

actor DangerTrappedFX : BasicClientSide
{
+NOTIMEFREEZE
States
{
Spawn:
BMBU D 0
BMBU D 1
stop
}
}

actor DangerTrappedFX2 : BasicClientSide
{
+NOTIMEFREEZE
States
{
Spawn:
BMBU E 0
BMBU E 1
stop
}
}

actor DangerTrappedFX3 : BasicClientSide
{
+NOTIMEFREEZE
States
{
Spawn:
BMBU F 0
BMBU F 1
stop
}
}


actor DangerBombTrappedFXWarper : ShieldWarper_CBM
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("cbm_clientwarper",0,73)
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,24)
Goto Shield
Shield:
BMBU D 0 A_JumpIfInTargetInventory("PowerRage_ST",1,3)
BMBU DDDD 1 A_Warp(AAPTR_TARGET,0,0,0,0,24)
BMBU E 0 A_JumpIfInTargetInventory("PowerRage_ST",1,3)
BMBU EEEE 1 A_Warp(AAPTR_TARGET,0,0,0,0,24)
BMBU F 0 A_JumpIfInTargetInventory("PowerRage_ST",1,3)
BMBU FFFF 1 A_Warp(AAPTR_TARGET,0,0,0,0,24)
loop
}
}

actor DangerTrappedFXPop : BasicExplosion
{
Translation "192:192=4:4"
scale 5.0
States
{
Spawn:
BMBU G 0
BMBU G 1 A_PlaySoundEx("classes/burstpop","Weapon")
stop
}
}

actor BurstM_FireCheck_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("BurstBombStock",2,"Fire1C")
TNT1 A 0 A_JumpIfInventory("BurstBombStock",1,"Fire2C")
goto Fire3C
Fire1C:
TNT1 A 0 A_JumpIfInventory("BursterAmmo",2,"Fire1")
goto Fire0
Fire2C:
TNT1 A 0 A_JumpIfInventory("BursterAmmo",7,"Fire2")
goto Fire1C
Fire3C:
TNT1 A 0 A_JumpIfInventory("BursterAmmo",14,"Fire3")
goto Fire2C
Fire0:
TNT1 A 0 A_GiveInventory("BurstmanMain0_CI",1)
stop
Fire1:
TNT1 A 0 A_TakeInventory("BursterAmmo",2,1)
TNT1 A 0 A_GiveInventory("BurstmanMain1_CI",1)
stop
Fire2:
TNT1 A 0 A_TakeInventory("BursterAmmo",7,1)
TNT1 A 0 A_GiveInventory("BurstmanMain2_CI",1)
stop
Fire3:
TNT1 A 0 A_TakeInventory("BursterAmmo",14,1)
TNT1 A 0 A_GiveInventory("BurstmanMain3_CI",1)
stop
}
}

actor BurstmanMain0_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("BurstDangerWrap0",0,1,-8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("BurstDangerWrap0B",0,1,-8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("BurstDangerWrap0R",0,1,-8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("BurstDangerWrap0O",0,1,-8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("BurstDangerWrap0P",0,1,-8,0)
goto Done
}
}

  actor BurstmanMain1_CI : TeamColor_CI
  {
	states
	{
		FireX:
		TNT1 A 0 A_FireCustomMissile("BurstDangerWrap",0,1,-8,0)
		goto Done
		FireB:
		TNT1 A 0 A_FireCustomMissile("BurstDangerWrapB",0,1,-8,0)
		goto Done
		FireR:
		TNT1 A 0 A_FireCustomMissile("BurstDangerWrapR",0,1,-8,0)
		goto Done
		FireO:
		TNT1 A 0 A_FireCustomMissile("BurstDangerWrapO",0,1,-8,0)
		goto Done
		FireP:
		TNT1 A 0 A_FireCustomMissile("BurstDangerWrapP",0,1,-8,0)
		goto Done
		Done:
		stop
	}
  }

  actor BurstmanMain2_CI : TeamColor_CI
  {
	states
	{
		FireX:
		TNT1 A 0 A_FireCustomMissile("BurstDangerWrap2",0,1,-8,0)
		goto Done
		FireB:
		TNT1 A 0 A_FireCustomMissile("BurstDangerWrap2B",0,1,-8,0)
		goto Done
		FireR:
		TNT1 A 0 A_FireCustomMissile("BurstDangerWrap2R",0,1,-8,0)
		goto Done
		FireO:
		TNT1 A 0 A_FireCustomMissile("BurstDangerWrap2O",0,1,-8,0)
		goto Done
		FireP:
		TNT1 A 0 A_FireCustomMissile("BurstDangerWrap2P",0,1,-8,0)
		goto Done
		Done:
		stop
	}
  }

  actor BurstmanMain3_CI : TeamColor_CI
  {
	states
	{
		FireX:
		TNT1 A 0 A_FireCustomMissile("BurstDangerWrap3",0,1,-8,0)
		goto Done
		FireB:
		TNT1 A 0 A_FireCustomMissile("BurstDangerWrap3B",0,1,-8,0)
		goto Done
		FireR:
		TNT1 A 0 A_FireCustomMissile("BurstDangerWrap3R",0,1,-8,0)
		goto Done
		FireO:
		TNT1 A 0 A_FireCustomMissile("BurstDangerWrap3O",0,1,-8,0)
		goto Done
		FireP:
		TNT1 A 0 A_FireCustomMissile("BurstDangerWrap3P",0,1,-8,0)
		goto Done
		Done:
		stop
	}
  }

  actor BurstmanAlt_CI : TeamColor_CI
  {
	states
	{
		FireX:
		TNT1 A 0 A_FireCustomMissile("DangerBubbleSpawner",0,0,0,0)
		goto Done
		FireB:
		TNT1 A 0 A_FireCustomMissile("DangerBubbleSpawnerB",0,0,0,0)
		goto Done
		FireR:
		TNT1 A 0 A_FireCustomMissile("DangerBubbleSpawnerR",0,0,0,0)
		goto Done
		FireO:
		TNT1 A 0 A_FireCustomMissile("DangerBubbleSpawnerO",0,0,0,0)
		goto Done
		FireP:
		TNT1 A 0 A_FireCustomMissile("DangerBubbleSpawnerP",0,0,0,0)
		goto Done
		Done:
		TNT1 A 0 A_TakeInventory("BursterAmmo",7)
		stop
	}
  }
