//==================================
// Black Hole Generator
//==================================

Actor BlackHoleGenerator : Weapon
{
Weapon.AmmoUse 150
Weapon.AmmoGive 100
Weapon.AmmoType "NewCell"
+WEAPON.NOAUTOAIM
Inventory.PickupSound "BHole/pickup"
Weapon.UpSound "BHole/up"
Weapon.PreferredSkin "BFG10K-Marine"
Inventory.PickupMessage "You got the Black Hole Generator!"
Obituary "%o got disintegrated by %k's Black Hole Generator."
Tag "Black Hole Generator"
States
{
Spawn:
	DCAN A -1
	Stop
Select:
	DMAT A 1 A_Raise
	Loop
Deselect:
	DMAT A 1 A_Lower
	Loop
Ready:
	DMAT A 1 A_WeaponReady
	Loop
Fire:
	DMAT A 30 A_PlayWeaponSound("DMC/Charge")
	DMAT A 10 Bright
	TNT1 A 0 A_PlayWeaponSound("DMC/Fire")
	TNT1 A 0 A_GunFlash
	DMAT B 4 Bright A_FireCustomMissile("DMBall",0,1,0,0)
	DMAT CD 4 Bright
	DMAT A 10
	Goto Ready
Flash:
	TNT1 A 4 A_Light2
	TNT1 A 3 A_Light1
	TNT1 A 0 A_Light0
	Stop
}
}

Actor DMBall
{
Radius 13
Height 8
Speed 17
Damage 10
Scale 0.3
Projectile
+RIPPER
+FORCEXYBILLBOARD
+NODAMAGETHRUST
+FORCERADIUSDMG
+MTHRUSPECIES
+DONTHURTSPECIES
+DONTHARMSPECIES
Species "Player"
Damagetype "Marine"
Renderstyle Translucent
Alpha 0.75
DeathSound "DMBall/Impact"
Decal BHoleDecal
States
{
Spawn:
	VOIP ABCDEF 2 Bright A_SpawnItem("DMBTrail",0,0,0)
	VOIP AA 1 Bright A_RadiusThrust(-220,130)
	TNT1 A 0 A_Explode(10,90,0)
	TNT1 A 0 A_SpawnItem("DMBTrail",0,0,0)
	VOIP BB 1 Bright A_RadiusThrust(-220,150)
	TNT1 A 0 A_Explode(10,90,0)
	TNT1 A 0 A_SpawnItem("DMBTrail",0,0,0)
	VOIP CC 1 Bright A_RadiusThrust(-220,150)
	TNT1 A 0 A_Explode(10,90,0)
	TNT1 A 0 A_SpawnItem("DMBTrail",0,0,0)
	VOIP DD 1 Bright A_RadiusThrust(-220,150)
	TNT1 A 0 A_Explode(10,90,0)
	TNT1 A 0 A_SpawnItem("DMBTrail",0,0,0)
	VOIP EE 1 Bright A_RadiusThrust(-220,150)
	TNT1 A 0 A_Explode(10,90,0)
	TNT1 A 0 A_SpawnItem("DMBTrail",0,0,0)
	VOIP FF 1 Bright A_RadiusThrust(-220,150)
	TNT1 A 0 A_Explode(10,90,0)
	TNT1 A 0 A_SpawnItem("DMBTrail",0,0,0)
	Goto Spawn+6
Death:
	TNT1 A 0 A_SpawnItem("BlackHole",0,0,0)
	TNT1 A 0 A_SetScale(1.2)
	VORX ABCDEFGH 2 Bright
	Stop
}
}

Actor DMBTrail
{
+NOGRAVITY
+FORCEXYBILLBOARD
RenderStyle Translucent
Alpha 0.70
Scale 0.7
States
{
Spawn:
	VORX ABCDEFGH 2 Bright A_FadeOut(0.1)
	Stop
}
}

Actor BlackHole
{
Radius 20
Height 20
Speed 0
Projectile
+NOCLIP
+NODAMAGETHRUST
+BLOODLESSIMPACT
+FORCEXYBILLBOARD
+FORCERADIUSDMG
+MTHRUSPECIES
+DONTHURTSPECIES
+DONTHARMSPECIES
+FRIENDLY
Species "Player"
Damagetype "Marine"
RenderStyle Translucent
Alpha 0.85
Scale 1.5
ReactionTime 30
Obituary "%o got absorved by the darkness."
States
{
Spawn:
	TNT1 A 0 A_CountDown
	TNT1 A 0 A_PlaySoundEx("BHole/Suck","Voice",1)
	BHOL A 1 Light("BHOLE_1") A_RadiusThrust(-230,250,RTF_NOIMPACTDAMAGE)
	TNT1 A 0 A_Explode(15,100)
	BHOL B 1 Light("BHOLE_1") A_RadiusThrust(-230,250,RTF_NOIMPACTDAMAGE)
	TNT1 A 0 A_Explode(15,100)
	BHOL C 1 Light("BHOLE_1") A_RadiusThrust(-230,250,RTF_NOIMPACTDAMAGE)
	TNT1 A 0 A_Explode(15,100)
	BHOL D 1 Light("BHOLE_1") A_RadiusThrust(-230,250,RTF_NOIMPACTDAMAGE)
	TNT1 A 0 A_Explode(15,100)
	BHOL E 1 Light("BHOLE_1") A_RadiusThrust(-230,250,RTF_NOIMPACTDAMAGE)
	TNT1 A 0 A_Explode(15,100)
	BHOL F 1 Light("BHOLE_1") A_RadiusThrust(-230,250,RTF_NOIMPACTDAMAGE)
	TNT1 A 0 A_Explode(15,100)
	BHOL G 1 Light("BHOLE_1") A_RadiusThrust(-230,250,RTF_NOIMPACTDAMAGE)
	TNT1 A 0 A_Explode(15,100)
	BHOL H 1 Light("BHOLE_1") A_RadiusThrust(-230,250,RTF_NOIMPACTDAMAGE)
	TNT1 A 0 A_Explode(15,100)
	BHOL I 1 Light("BHOLE_1") A_RadiusThrust(-230,250,RTF_NOIMPACTDAMAGE)
	TNT1 A 0 A_Explode(15,100)
	Loop
Death:
	TNT1 A 0 A_StopSoundEx("Voice")
	TNT1 A 0 A_SpawnItem("BHSmoke",0,0,0)
	TNT1 A 0 A_SpawnItem("BHExplosion",0,0,0)
	TNT1 A 0 A_PlaySound("BHole/Explosion")
	BHOL A 1 Light("BHOLE_2") A_FadeOut(0.08)
	BHOL B 1 Light("BHOLE_3") A_FadeOut(0.08)
	BHOL C 1 Light("BHOLE_4") A_FadeOut(0.08)
	BHOL D 1 Light("BHOLE_5") A_FadeOut(0.08)
	BHOL E 1 Light("BHOLE_6") A_FadeOut(0.08)
	BHOL F 1 Light("BHOLE_7") A_FadeOut(0.08)
	BHOL G 1 Light("BHOLE_8") A_FadeOut(0.08)
	BHOL H 1 Light("BHOLE_9") A_FadeOut(0.08)
	BHOL I 1 Light("BHOLE_10") A_FadeOut(0.08)
	Stop
}
}

Actor BHSmoke : DMBTrail
{
Scale 2.2
+NOCLIP
+NOGRAVITY
+FORCEXYBILLBOARD
States
{
Spawn:
	BHXP ABCDEFGHIJKLMNO 2 A_FadeOut(0.03)
	Stop
}
}

Actor BHExplosion
{
+NOCLIP
+NOGRAVITY
+FORCEXYBILLBOARD
States
{
Spawn:
	DBX3 A 1 Light("BHEXP_1") Bright A_SetScale(1.2)
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Light("BHEXP_2") Bright A_SetScale(1.4)
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Light("BHEXP_3") Bright A_SetScale(1.6)
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Light("BHEXP_4") Bright A_SetScale(1.8)
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Light("BHEXP_5") Bright A_SetScale(2.0)
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Light("BHEXP_6") Bright A_SetScale(2.2)
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Light("BHEXP_7") Bright A_SetScale(2.4)
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Bright A_SetScale(2.6)
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Bright A_SetScale(2.8)
	TNT1 A 0 A_FadeOut(0.13)
	DBX3 A 1 Bright A_SetScale(3.0)
	TNT1 A 0 A_FadeOut(0.13)
	Stop
}
}
