/*

==MAGMAULER==
The old UAC Plasma Rifle has been rebuilt into
some kind of lava gun. While it doesn't travel
nowhere near as far as the old plasma bolts, the
lava spewed out completely melts demons. You're
not quite sure why the front of it is shaped like
a dragon, and you're pretty sure you've heard this
thing growl a few times...

Best keep your fingers away from the front end.
*/


actor Magmauler : Rend
{
	Weapon.SelectionOrder 600
	Weapon.AmmoType "SlayerMettle"
	Weapon.AmmoUse 1
	Inventory.RestrictedTo "DoomSlayer"
	-UNDROPPABLE
	-CHEATNOTWEAPON
	Tag "Magmauler"
	states
	{
	spawn:
		LAUN A 1
		loop
	select:
		TNT1 A 0
		TNT1 A 0 A_PlaySound ("DoomSlayer/WrathEquip")
		TNT1 A 1 A_GunFlash ("GadgetStarter",GFF_NOEXTCHANGE)
	draw:
		TNT1 AAAAAA 0 A_Raise
		TNT1 A 0 A_GiveInventory ("UsingSlayerGun",1)
		TNT1 A 0 A_JumpIfInventory ("BarrelToken",1, "BarrelGet")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelGet")
		TNT1 A 0 A_GiveInventory ("UsingSlayerGun",1)
		TNT1 A 1 A_Raise
		loop
	ready:
		TNT1 A 0
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerEquip",0)
		MMG1 ABCD 1 A_WeaponReady
		MMG1 E 1 A_WeaponReady
		MMG1 F 1 A_WeaponReady
		Goto RealReady
	QuietReady:
		MMG1 ABCD 1 A_WeaponReady
		MMG1 E 1 A_WeaponReady
		MMG1 F 1 A_WeaponReady
		Goto RealReady
		
	RealReady:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory ("BarrelToken",1, "BarrelGet")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelGet")
		TNT1 A 0 A_JumpIfInventory ("BFGReady", 1, "DrawBFG")
		MMG1 F 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory ("BFGReady", 1, "DrawBFG")
		loop
	deselect:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory ("MagmaulerDecay",999)
		TNT1 A 0 A_TakeInventory ("MagmaulerSmokeStack",999)
		TNT1 A 0 A_JumpIfHealthLower (1, "DeadLower")
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerDown",0)
		TNT1 A 0 A_PlaySound ("doomslayer/holster",0)
		TNT1 A 0 A_StopSound (7)
		MMG4 ABCDE 1
	holster:
		TNT1 A 0
		TNT1 AAAAAAAA 0 A_Lower
		TNT1 A 0 A_StopSound (7)
		TNT1 A 1 A_Lower
		loop

	Fire:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory ("BarrelToken", 1, "BarrelToss")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelToss")
		TNT1 A 0 A_JumpIfInventory ("BFGArmed", 1, "FireBFG")
		TNT1 A 0 A_JumpIfInventory ("SlayerMettle",4,"FirstLavaShot")
		MMG2 A 2
		Goto LavaEnd
	
	FirstLavaShot:
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerStart",CHAN_WEAPON)
		MMG2 A 2 
		TNT1 A 0 A_Quake(2, 2, 0, 10)
		TNT1 AAAAAAAAAA 0 A_FireCustomMissile("MagmaulerEmber1", Frandom(-10,10),0,0,-1,0,Frandom(-3,3))
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerLavaSpray",0,0.50)
		TNT1 AA 0 A_FireCustomMissile("InfernoBall", Frandom(-8,8),1,0,-2,0,Frandom(-8,8))
		MMG2 B 1 Bright A_FireCustomMissile ("InfernoBall",0,1,-1,-2)
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerLavaLoop",7,1,1)
		Goto LavaSpew1
	LavaSpew1:
		TNT1 A 0 A_Quake(1, 2, 0, 10)
		MMG2 C 1 Bright A_FireCustomMissile ("InfernoBall",0,1,-1,-2)
		TNT1 AA 0 A_FireCustomMissile("MagmaulerEmber1", Frandom(-10,10),0,0,-3,0,Frandom(-3,3))
		TNT1 A 0 A_JumpIfNoAmmo ("LavaEnd")
		TNT1 A 0 A_ReFire ("LavaSpew2")
		TNT1 A 0 A_StopSound (7)
		Goto LavaEnd	
	LavaSpew2:
		MMG2 D 1 Bright A_FireCustomMissile ("InfernoBall",0,0,-1,-2)
		TNT1 A 0 A_JumpIfNoAmmo ("LavaEnd")
		TNT1 A 0 A_ReFire ("LavaSpew3")
		TNT1 A 0 A_StopSound (7)
		Goto LavaEnd
	LavaSpew3:
		TNT1 A 0 A_Quake(1, 2, 0, 10)
		MMG2 E 1 Bright A_FireCustomMissile ("InfernoBall",0,1,-1,-2)
		TNT1 A 0 A_FireCustomMissile("MagmaulerEmber1", Frandom(-10,10),0,0,-4,0,Frandom(-3,3))
		TNT1 A 0 A_JumpIfNoAmmo ("LavaEnd")
		TNT1 A 0 A_ReFire ("LavaSpew4")
		TNT1 A 0 A_StopSound (7)
		Goto LavaEnd
	LavaSpew4:
		MMG2 F 1 Bright A_FireCustomMissile ("InfernoBall",0,0,-1,-2)
		TNT1 A 0 A_GiveInventory ("MagmaulerDecay", 1)
		TNT1 A 0 A_JumpIfInventory ("MagmaulerDecay",20,"SmokeBelchStart")
		TNT1 A 0 A_JumpIfNoAmmo ("LavaEnd")
		TNT1 A 0 A_ReFire ("LavaSpew1")
		TNT1 A 0 A_StopSound (7)
		Goto LavaEnd
	
	SmokeBelchStart:
		MMG6 C 1 A_StopSound (7)
		MMG6 DE 1 
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerPressureOut",0,0.50)
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerHiss",0,0.70)
		Goto SmokeBelch
	SmokeBelch:
		MMG6 D 1 A_WeaponReady (WRF_NOPRIMARY|WRF_NOBOB)
		TNT1 A 0 A_FireCustomMissile ("MagmaulerSmokeSpawner",0,0,0,0,0,0)
		MMG6 E 1 A_WeaponReady (WRF_NOPRIMARY|WRF_NOBOB)
		TNT1 A 0 A_FireCustomMissile ("MagmaulerSmokeSpawner",0,0,0,0,0,0)
		TNT1 A 0 A_TakeInventory ("MagmaulerDecay",3)
		TNT1 A 0 A_JumpIfInventory ("MagmaulerDecay",1,"SmokeBelch")
		Goto LavaEnd
	
	
	LavaEnd:
		TNT1 A 0 A_StopSound (7)
		MMG3 A 6
		TNT1 A 0 A_TakeInventory ("MagmaulerDecay",999)
		TNT1 A 0 A_StopSound (7)
		MMG3 B 2
		MMG3 C 3
		MMG3 D 1
		MMG3 E 1
		TNT1 A 0 A_JumpIfInventory ("ATKringpowerup",1,"MightyChomp")
		MMG3 F 1
		TNT1 A 0 A_FireCustomMissile ("MagmaulerChomp",0,0,0,-1)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_Quake(3, 2, 0, 10)
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerChomp",0)
		MMG3 GHH 1
		MMG3 I 4
		MMG3 J 2
		MMG3 K 2	
		MMG1 F 1 A_WeaponReady
		goto RealReady
	MightyChomp:
		MMG3 F 1
		TNT1 A 0 A_FireCustomMissile ("MightyMagmaulerChomp",0,0,0,-1)
		TNT1 A 0 A_Recoil (-2)
		TNT1 A 0 A_Quake(3, 2, 0, 10)
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerChomp",0)
		MMG3 GHH 1
		MMG3 I 4
		MMG3 J 2
		MMG3 K 2	
		MMG1 F 1 A_WeaponReady
		goto RealReady


	Altfire:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory ("MagmaulerDecay",999)
		TNT1 A 0 A_TakeInventory ("MagmaulerSmokeStack",999)
		TNT1 A 0 A_JumpIfInventory ("BarrelToken", 1, "BarrelCancel")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelCancel")
		TNT1 A 0 A_JumpIfInventory ("BFGArmed", 1, "HolsterBFG")
		MMG5 ABCDD 1
		TNT1 A 0 A_PlaySound ("doomslayer/SwordUp")
		TNT1 A 0 A_Jump (256, "StartSlash")
		Goto AltfireEnd
	BarrelGet:
		TNT1 A 0
		TNT1 A 0 A_ClearReFire
		MMG5 ABCDD 1
		TNT1 A 0 A_PlaySound ("doomslayer/holster",0)
		TNT1 A 0 A_TakeInventory ("UsingSlayerGun",99)
		TNT1 A 2
		TNT1 A 0 A_Jump (256, "BarrelStart")
		Goto ToolEnd


	AltfireEnd:
		TNT1 A 0 A_PlaySound ("doomslayer/SwordDown")
		TNT1 A 4 A_WeaponReady
		goto QuietReady
	ToolEnd:
		TNT1 A 1 A_ClearReFire
		TNT1 A 4 A_WeaponReady
		goto QuietReady
		
	}
}
	
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


//======================
//=Magmauler Projectile=
//======================


actor InfernoBall
{
	Projectile
    //+notimefreeze
	+FORCEXYBILLBOARD	
	+THRUSPECIES
	+BRIGHT
	+Randomize
	+PAINLESS
	+HITTRACER
	species "friendly"
	Radius 11
	Height 8
	Speed 45
	Gravity 0.70
	Damage (12)
	renderstyle add
	scale 0.80
	alpha 0.95
	ProjectileKickBack 600
	
	var int User_LavaFall;	
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 ThrustThingZ (0,2,0,1)
		TNT1 A 0 A_JumpIfInTargetInventory ("MagmaulerDecay",20,"PowerDown10")
		TNT1 A 0 A_JumpIfInTargetInventory ("MagmaulerDecay",18,"PowerDown9")
		TNT1 A 0 A_JumpIfInTargetInventory ("MagmaulerDecay",16,"PowerDown8")
		TNT1 A 0 A_JumpIfInTargetInventory ("MagmaulerDecay",14,"PowerDown7")
		TNT1 A 0 A_JumpIfInTargetInventory ("MagmaulerDecay",12,"PowerDown6")
		TNT1 A 0 A_JumpIfInTargetInventory ("MagmaulerDecay",10,"PowerDown5")
		TNT1 A 0 A_JumpIfInTargetInventory ("MagmaulerDecay",8,"PowerDown4")
		TNT1 A 0 A_JumpIfInTargetInventory ("MagmaulerDecay",6,"PowerDown3")
		TNT1 A 0 A_JumpIfInTargetInventory ("MagmaulerDecay",4,"PowerDown2")
		TNT1 A 0 A_JumpIfInTargetInventory ("MagmaulerDecay",2,"PowerDown1")
		TNT1 A 1 A_Jump (70,"PainfulFlight")
		Goto Flight
	PowerDown1:
		TNT1 A 0 A_ScaleVelocity (0.90)
		TNT1 A 0 A_SetScale (0.90,0.90)
		TNT1 A 1 A_Jump (70,"PainfulFlight")
		Goto Flight
	PowerDown2:
		TNT1 A 0 A_ScaleVelocity (0.80)
		TNT1 A 0 A_SetScale (0.80,0.80)
		TNT1 A 1 A_Jump (70,"PainfulFlight")
		Goto Flight
	PowerDown3:
		TNT1 A 0 A_ScaleVelocity (0.70)
		TNT1 A 0 A_SetScale (0.70,0.70)
		TNT1 A 1 A_Jump (70,"PainfulFlight")
		Goto Flight
	PowerDown4:
		TNT1 A 0 A_ScaleVelocity (0.60)
		TNT1 A 0 A_SetScale (0.60,0.60)
		TNT1 A 1 A_Jump (70,"PainfulFlight")
		Goto Flight
	PowerDown5:
		TNT1 A 0 A_ScaleVelocity (0.50)
		TNT1 A 0 A_SetScale (0.50,0.50)
		TNT1 A 1 A_Jump (70,"PainfulFlight")
		Goto Flight
	PowerDown6:
		TNT1 A 0 A_ScaleVelocity (0.40)
		TNT1 A 0 A_SetScale (0.40,0.40)
		TNT1 A 1 A_Jump (70,"PainfulFlight")
		Goto Flight
	PowerDown7:
		TNT1 A 0 A_ScaleVelocity (0.30)
		TNT1 A 0 A_SetScale (0.30,0.30)
		TNT1 A 1 A_Jump (70,"PainfulFlight")
		Goto Flight
	PowerDown8:
		TNT1 A 0 A_ScaleVelocity (0.20)
		TNT1 A 0 A_SetScale (0.20,0.20)
		TNT1 A 1 A_Jump (70,"PainfulFlight")
		Goto Flight
	PowerDown9:
		TNT1 A 0 A_ScaleVelocity (0.10)
		TNT1 A 0 A_SetScale (0.10,0.10)
		TNT1 A 1 A_Jump (70,"PainfulFlight")
		Goto Flight
	PowerDown10:
		TNT1 A 0 A_ScaleVelocity (0.05)
		TNT1 A 0 A_SetScale (0.05,0.05)
		TNT1 A 1 A_Jump (70,"PainfulFlight")
		Goto Flight


	PainfulFlight:
		TNT1 A 0
		FX04 A 1 A_ChangeFlag ("PAINLESS", 0)
		goto Flight

	Flight:
		FX04 A 1
		TNT1 A 0 A_SpawnItemEx("LavaLazerEmber3",frandom(-6,6),frandom(-6,6),frandom(-6,6),0,0,frandom(0,1),0,SXF_NOCHECKPOSITION,190)
		TNT1 A 0 A_SetUserVar("User_LavaFall", User_LavaFall+1)
		TNT1 A 0 A_JumpIf (User_LavaFall <= 6, "Flight")
		TNT1 A 0 A_Gravity
		Goto DropFlight
	DropFlight:
		FX04 A 1
		TNT1 A 0 A_SpawnItemEx("LavaLazerEmber3",frandom(-6,6),frandom(-6,6),frandom(-6,6),0,0,frandom(0,1),0,SXF_NOCHECKPOSITION,190)
		loop
	death:
		TNT1 A 0
		TNT1 A 0 A_NoGravity
		TNT1 A 0 A_Stop
		TNT1 A 0 A_CheckCeiling ("CeilingRain")
		TNT1 AA 0 A_SpawnItemEx("LavaLazerTrail",frandom(-8,8),frandom(-8,8),frandom(-8,8),frandom(-4,4),frandom(-4,4),frandom(0,1))
		TNT1 AA 0 A_SpawnItemEx("LavaLazerEmber3",frandom(-16,16),frandom(-16,16),frandom(-16,16),frandom(-6,6),frandom(-6,6),frandom(0,1))
		TNT1 AAAAA 0 A_SpawnItemEx("MagmaulerSpatter1",frandom(-1,1),frandom(-1,1),frandom(-2,2),frandom(-8,8),frandom(-8,8),frandom(1,5),0,SXF_NOCHECKPOSITION,90)
		TNT1 A 0 A_FadeOut (0.60)
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerLavaSplat",0)
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerLavaHit",0)
		MGL1 A random(1,2) A_SetScale (scalex * frandom(0.80,1.40),scaley * frandom(0.80,1.40))
		MGL1 B random(1,2) 
		MGL1 C random(1,3)
		MGL1 CDEF random (1,2)
		stop
	CeilingRain:
		TNT1 AAAAA 0 A_SpawnItemEx("MagmaulerSpatter1",frandom(-1,1),frandom(-1,1),frandom(-4,-2),frandom(-8,8),frandom(-8,8),frandom(-4,-1),0,SXF_NOCHECKPOSITION,90)
		TNT1 A 0 A_FadeOut (0.60)
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerLavaSplat",0)
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerLavaHit",0)
		MGL1 A random(1,2) A_SetScale (scalex * frandom(0.80,1.40),scaley * frandom(0.80,1.40))
		MGL1 B random(1,2) 
		MGL1 C random(1,3)
		MGL1 CDEF random (1,2)
		stop
		
	Xdeath:
		TNT1 A 0
		TNT1 A 0 A_NoGravity
		TNT1 A 0 A_Stop
		TNT1 AA 0 A_SpawnItemEx("LavaLazerTrail",frandom(-8,8),frandom(-8,8),frandom(-8,8),frandom(-4,4),frandom(-4,4),frandom(0,1))
		TNT1 AA 0 A_SpawnItemEx("LavaLazerEmber3",frandom(-16,16),frandom(-16,16),frandom(-16,16),frandom(-6,6),frandom(-6,6),frandom(0,1))
		TNT1 A 0 A_GiveInventory ("GMOTAFireDamage",1, AAPTR_TRACER)
		TNT1 A 0 A_GiveInventory ("SlayerToolCharger",1, AAPTR_TARGET)
		TNT1 AAAAA 0 A_SpawnItemEx("MagmaulerSpatter1",frandom(-1,1),frandom(-1,1),frandom(-2,2),frandom(-8,8),frandom(-8,8),frandom(1,5),0,SXF_NOCHECKPOSITION,90)
		TNT1 A 0 A_GiveInventory ("MagmaulerLavaWeight",1,AAPTR_TRACER)
		TNT1 A 0 A_FadeOut (0.60)
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerLavaSplat",0)
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerLavaHit",0)
		MGL1 A random(1,2) A_SetScale (scalex * frandom(0.80,1.40),scaley * frandom(0.80,1.40))
		MGL1 B random(1,2) 
		MGL1 C random(1,3)
		MGL1 CDEF random (1,2)
		stop
	}
}


actor MagmaulerLavaWeight : custominventory
{
	+inventory.alwayspickup
	+INVENTORY.AUTOACTIVATE
	states
	{
	pickup:
		TNT1 A 0
		TNT1 A 0 A_JumpIfHealthLower(1,"death")
		TNT1 A 0 A_JumpIf(Z >= FloorZ+5,"SkyHit")
		TNT1 A 1 
		stop
	death:
		TNT1 A 0
		TNT1 A 1
		stop
	SkyHit:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 1 ThrustThingZ (0,25,1,0)
		stop
	}
}


//------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------

//======================
//Magmauler melee
//======================

ACTOR MagmaulerChomp : fastprojectile
{  
	+notimefreeze
	Radius 8
	Height 6
	PROJECTILE
	RENDERSTYLE Translucent
	speed 120
	damage (60)
	ALPHA 0.90
	+bright
	+dontblast
	+LOOKALLAROUND
	+bloodsplatter
	+FORCEXYBILLBOARD
	+thruspecies
	+DONTREFLECT
	+NOEXTREMEDEATH
	//decal sweepdecal
	species "friendly"
	scale 0.70
	States
	{
	Spawn:
		TNT1 A 1
		Stop
	xdeath:
		TNT1 A 0
		TNT1 A 1
		MCH1 A 1
		TNT1 A 0 A_PlaySound("DoomSlayer/MagmaulerChompHit",0)
		TNT1 A 0 A_GiveInventory ("SlayerMPCharger",1, AAPTR_TARGET)
		TNT1 A 0 A_GiveInventory ("SlayerMPCharger2",1, AAPTR_TARGET)
		TNT1 AAA 0 A_GiveInventory ("SlayerToolCharger",1, AAPTR_TARGET)
		MCH1 BCCDDEEE 1
		stop
	Death:
		TNT1 A 0
		VFX2 A 0
		TNT1 A 1
		TNT1 A 0 A_SpawnDebris ("bladespark")  
		TNT1 A 2 A_PlaySound("Doomslayer/swordwall",0)
		Stop 
	Crash:
		TNT1 A 0
		VFX2 A 0
		TNT1 A 1
		TNT1 A 0 A_SpawnDebris ("bladespark")
		TNT1 A 2 A_PlaySound("Doomslayer/swordwall",0)
		Stop
	}
}


ACTOR MightyMagmaulerChomp : MagmaulerChomp
{  
	damage (180)
	scale 0.70
	States
	{
	Spawn:
		TNT1 A 1
		Stop
	xdeath:
		TNT1 A 0
		TNT1 A 1
		MCH1 A 1
		TNT1 A 0 A_PlaySound("DoomSlayer/MagmaulerChompHit",0)
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerLavaSplat",0)
		TNT1 A 0 A_PlaySound ("Doomslayer/wrathnormal",CHAN_VOICE,0.60,0,1.20)
		TNT1 A 0 A_GiveInventory ("SlayerMPCharger",1, AAPTR_TARGET)
		TNT1 A 0 A_GiveInventory ("SlayerMPCharger2",1, AAPTR_TARGET)
		TNT1 AAAA 0 A_GiveInventory ("SlayerToolCharger",1, AAPTR_TARGET)
		TNT1 AAAAA 0 A_SpawnItemEx("MagmaulerSpatter1",frandom(-1,1),frandom(-1,1),frandom(-2,2),frandom(-8,8),frandom(-8,8),frandom(1,5),0,SXF_NOCHECKPOSITION)
		WRML B 2 bright A_Explode (10,180,0,1)
		TNT1 A 0 Radius_Quake (2,6,0,10,0)
		TNT1 AAAAAAAA 0 Bright A_SpawnItemEx("LavaLazerTrail",frandom(-21,21),frandom(-21,21),frandom(10,31),frandom(-6,6),frandom(-4,8),frandom(2,3))
		TNT1 AAAAAAAA 0 Bright A_SpawnItemEx("LavaLazerEmber2",frandom(-16,16),frandom(-16,16),frandom(16,26),frandom(-1,1),frandom(-7,6),frandom(3,5))
		TNT1 AAAAAAAA 0 Bright A_SpawnItemEx("LavaLazerSmoke2",frandom(-4,4),frandom(-4,4),frandom(4,8),frandom(-4,6),frandom(-5,6),frandom(2,5))
		TNT1 AAAAAAA 0 Bright A_SpawnItemEx("LavaLazerSmoke",frandom(-4,4),frandom(-4,4),frandom(4,8),frandom(-4,6),frandom(-5,6),frandom(2,6))
		WRML C 1 bright
		WRML EFGH 1 bright
		stop
	}
}



//------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------

//======================
//Magmauler spatters
//======================


ACTOR MagmaulerSpatter1
{
	Radius 2
	Height 4
	Speed 8
	Xscale 0.20
	Yscale 0.20
	PROJECTILE
	-NOGRAVITY
	+THRUACTORS
	+DONTSPLASH
	+DOOMBOUNCE
	+BOUNCEONWALLS
	+BOUNCEONCEILINGS
	-BOUNCEONFLOORS
	+Bright
	+FORCEXYBILLBOARD
	Gravity 0.75
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("silence", CHAN_VOICE)
		TNT1 A 1 A_SetScale (scalex * frandom(1.10,1.60),scaley * frandom(1.10,1.60))
		MGL2 A 1
		Goto Flight
	Flight:
		MGL2 A 1 
		MGL2 A 1 A_SpawnItemEx ("MagmaulerSpatterTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		Loop
	Death:
		TNT1 A 1 A_SpawnItemEx ("MagmaulerHazard",0,0,3,0,0,0,0,SXF_NOCHECKPOSITION)
		Stop
	}
}


Actor MagmaulerSpatter2 : MagmaulerSpatter1
{
	Xscale 0.10
	Yscale 0.10
	states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("silence", CHAN_VOICE)
		TNT1 A 1 A_SetScale (scalex * frandom(1.10,1.60),scaley * frandom(1.10,1.60))
		MGL2 A 1
		Goto Flight
	Flight:
		MGL2 A 1 
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_Jump (256, "Dead1","Dead2")
		goto Dead1
	Dead1:
		MGL2 B 1
		TNT1 AA 0 A_SpawnItemEx ("MagmaulerEmber1",0,0,0,random(-6,6),random(-6,6),random(2,4),0,SXF_NOCHECKPOSITION,80)
		MGL2 B 1
		MGL2 CD 2
		MGL2 D 1 A_FadeOut (0.02)
		wait
 	Dead2:
		MGL2 B 1
		TNT1 AA 0 A_SpawnItemEx ("MagmaulerEmber1",0,0,0,random(-6,6),random(-6,6),random(2,4),0,SXF_NOCHECKPOSITION,80)
		MGL2 B 1
		MGL2 EF 2
		MGL2 F 1 A_FadeOut (0.02)
		wait
	}
}

//======================
//Magmauler hazard
//======================


Actor MagmaulerHazard
{
	projectile
	speed 0
	radius 6
	height 12
	Xscale 0.20
	Yscale 0.20
	+BRIGHT
	+notimefreeze
	+floorhugger
	-nogravity
	+thruspecies
	+FORCEXYBILLBOARD
	+PAINLESS
	+HITTRACER
	species "Friendly"
	damage (random(2,5))
	ProjectileKickBack 1200
	states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_SetScale (scalex * frandom(0.80,1.60),scaley * frandom(0.80,1.60))
		TNT1 A 0 A_Jump (30,"RollForPain")
		TNT1 A 0 A_Jump (256, "Dead1","Dead2")
		goto Dead1
	RollForPain:
		TNT1 A 0
		TNT1 A 1 A_ChangeFlag ("PAINLESS",0)
		TNT1 A 0 A_Jump (256, "Dead1","Dead2")
	Dead1:
		MGL2 B 1
		TNT1 AAAA 0 A_SpawnItemEx ("MagmaulerEmber1",0,0,0,random(-6,6),random(-6,6),random(2,4),0,SXF_NOCHECKPOSITION,80)
		MGL2 B 1
		MGL2 CD 2
		MGL2 D Random(250,300)
		MGL2 D 1 A_FadeOut (0.02)
		wait
 	Dead2:
		MGL2 B 1
		TNT1 AAA 0 A_SpawnItemEx ("MagmaulerEmber1",0,0,0,random(-6,6),random(-6,6),random(2,4),0,SXF_NOCHECKPOSITION,80)
		MGL2 B 1
		MGL2 EF 2
		MGL2 F Random(250,300)
		MGL2 F 1 A_FadeOut (0.02)
		wait
	Death:
		TNT1 A 0
		TNT1 A 1
		stop
	Xdeath:
		TNT1 A 0
		TNT1 AA 0 A_SpawnItemEx("LavaLazerSmoke2",frandom(-2,2),frandom(-2,2),frandom(1,2),frandom(-1,1),frandom(-1,1),frandom(3,6))
		TNT1 A 0 A_GiveInventory ("GMOTAFireDamage",1, AAPTR_TRACER)
		TNT1 AAAAA 0 A_SpawnItemEx("MagmaulerSpatter2",frandom(-1,1),frandom(-1,1),frandom(-2,2),frandom(-8,8),frandom(-8,8),frandom(1,5),0,SXF_NOCHECKPOSITION,90)
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerLavaSplat",0,0.90,0,1.80)
		TNT1 A 0 A_PlaySound ("DoomSlayer/MagmaulerLavaHit",0,0.80,0,1.80)
		MGL1 A random(1,2) A_SetScale (scalex * frandom(0.80,1.40),scaley * frandom(0.80,1.40))
		MGL1 B random(1,2) 
		MGL1 C random(1,3)
		MGL1 CDEF random (1,2)
		stop
	}
}


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


//=================
//=Visual Effects==
//=================



ACTOR MagmaulerSpatterTrail
{
	+NOINTERACTION
	+NOCLIP
    +BRIGHT
	+clientsideonly
	Radius 1
	Height 1
	Renderstyle Add
	Alpha 0.50
	Scale 0.50
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1
		MGL2 A 1 A_SetScale(0.40)
		MGL2 A 1 A_SetScale(0.30)
		MGL2 A 1 A_SetScale(0.20)
		MGL2 A 1 A_SetScale(0.10)
		Stop
	Death:
		TNT1 A 1
		Stop
	}
}



ACTOR MagmaulerEmber1
{
	Projectile
	speed 40
	+NOBLOCKMAP
	-NOGRAVITY
	+ALLOWPARTICLES
	+RANDOMIZE
	+NOTELEPORT
	+BRIGHT
	+PAINLESS
	Damage (0)
	RenderStyle Add
	Alpha 0.5
	Scale 0.1
	Gravity 0.90
	Mass 5
	States
	{
	spawn:
		LVLZ A 25
		LVLZ A 1 A_FadeOut(0.02)
		wait
	Death:
		TNT1 A 1
		stop
	}
}

ACTOR MagmaulerSmokeSpawner
{
	projectile
	RenderStyle Translucent
	speed 20
	-SOLID
	+NOBLOCKMAP
	+NOGRAVITY
	+NOCLIP
	+DONTSPLASH
	+NOTELEPORT
	+clientsideonly
	States
	{
	Spawn:
        TNT1 A 0
        TNT1 A 1 a_stop
        TNT1 AA 0 A_SpawnItemEx("LavaLazerSmoke",frandom(2,5),frandom(-0.1,0.1),frandom(-1.5,-1.5),frandom(0.5,5),frandom(-0.5,0.5),frandom(-0.5,0.5),0,32)
        TNT1 A 1 A_SpawnItemEx("LavaLazerSmoke",frandom(3,7),frandom(-0.1,0.1),frandom(-1.5,-1.5),frandom(0.5,9),frandom(-0.5,0.5),frandom(-0.5,0.5),0,32)
        TNT1 AA 0 A_SpawnItemEx("LavaLazerSmoke",frandom(2,3),frandom(-0.1,0.1),frandom(-1.5,-1.5),frandom(0.5,6),frandom(-0.5,0.5),frandom(-0.5,0.5),0,32)
        TNT1 A 1 A_SpawnItemEx("LavaLazerSmoke",frandom(4,5),frandom(-0.1,0.1),frandom(-1.5,-1.5),frandom(0.5,8),frandom(-0.5,0.5),frandom(-0.5,0.5),0,32)
		Stop
	}
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


//=================
//=====Tokens======
//=================




actor MagmaulerDecay : inventory
{inventory.maxamount 20}

actor MagmaulerSmokeStack : inventory
{inventory.maxamount 20}
