actor GMOTAbarrel : actor replaces explosivebarrel
{
	Game Doom
	SpawnID 125
	Health 20
	Radius 10
	Height 42
	mass 200
	+SOLID
	+SHOOTABLE
	+NOBLOOD
	+ACTIVATEMCROSS
	+DONTGIB
	+NOICEDEATH
	+QUICKTORETALIATE
	+SEEINVISIBLE
	Painchance 256
	DeathSound "world/barrelx"
	states
	{
	spawn:
		BAR1 AB 6
		Loop
	Death:
		BEXP A 5 Bright
		BEXP B 5 Bright A_Scream
		BEXP C 5 Bright
		BEXP D 5 Bright a_explode (128,128,1,1,0)
		BEXP C 0 Radius_Quake (3,20,0,80,0)
		TNT1 A 0 A_RadiusThrust (2000,300,1)
		BEXP E 10 Bright
		TNT1 A 1050 Bright A_BarrelDestroy
		TNT1 A 5 A_Respawn
		Wait
	Pain.Barrelgrab:
		TNT1 A 0
		BAR1 A 3
		TNT1 A 0 A_JumpIfInTargetInventory ("FatalDrawtoken",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("BFGArmed",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("SentinelForm",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("BarrelToken",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("GoldenBarrelToken",1,"NoGrab")
		TNT1 A 1 A_GiveToTarget ("BarrelToken",1)
		TNT1 A 1050 Bright A_BarrelDestroy
		TNT1 A 5 A_Respawn
		Wait
	NoGrab:
		TNT1 A 0
		BAR1 A 1
		TNT1 A 0 HealThing (20,20)
		TNT1 A 0 A_CheckFloor ("lilJump")
		BAR1 A 1 
		goto spawn
	LilJump:
		BAR1 A 1
		TNT1 A 0
		Bar1 A 1 ThrustThingZ (0,30,0,0)
		goto spawn
	}
}	



actor DroppedBarrel
{
	projectile
	+notimefreeze
    +FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+thruactors
	+bounceonwalls
	+bright
	species "friendly"
	-nogravity
	radius 12
	speed 13
	damage (0)
	height 20
	deathsound "bomberknight/bombbounce"
    gravity 1
	states
	{
	spawn:
		BAR1 A 1
		loop
	death:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx ("NoRespawnBarrel",0,0,2,0,0,2)
		TNT1 A 1
		stop
	}
}



actor NoRespawnBarrel : GMOTABarrel
{
	states
	{
	Death:
		BEXP A 5 Bright
		BEXP B 5 Bright A_Scream
		BEXP C 5 Bright
		BEXP D 5 Bright A_Explode (128,128,1,1,0)
		BEXP C 0 Radius_Quake (3,20,0,80,0)
		TNT1 A 0 A_RadiusThrust (2000,300,1)
		BEXP E 10 Bright
		TNT1 A 2 Bright 
		TNT1 A 2 
		Stop
	Pain.Barrelgrab:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag ("QUICKTORETALIATE",0)
		BAR1 A 3
		TNT1 A 0 A_JumpIfInTargetInventory ("FatalDrawtoken",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("BFGArmed",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("SentinelForm",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("BarrelToken",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("GoldenBarrelToken",1,"NoGrab")
		TNT1 A 1 A_GiveToTarget ("BarrelToken",1)
		TNT1 A 5 
		stop
	}
}




actor BarrelToken : inventory
{
	inventory.maxamount 1
}


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


//=======================
//=====Golden barrel=====
//=======================


actor GoldenBarrel : actor 
{
	Health 999
	Radius 10
	Height 42
	mass 200
	+SOLID
	+SHOOTABLE
	+NODAMAGE
	+NOBLOOD
	+ACTIVATEMCROSS
	+DONTGIB
	+NOICEDEATH
	+QUICKTORETALIATE
	+DOHARMSPECIES
	+Bright
	+FORCERADIUSDMG
	//+ISMONSTER
	//+SEEINVISIBLE
	Painchance 256
	DeathSound "world/barrelx"


	var int User_NukeTimer;
	var int User_OCSplodeTimer;
	var int User_FatalTimer;
	states
	{
	spawn:
		GDB1 A 6
		Loop
	Death:
		BEXP A 5 Bright
		BEXP B 5 Bright A_Scream
		BEXP C 5 Bright
		BEXP D 5 Bright
		BEXP C 0 Radius_Quake (3,20,0,80,0)
		TNT1 A 0 A_RadiusThrust (2000,300,1)
		BEXP E 10 Bright
		Stop
	Pain.Barrelgrab:
		TNT1 A 0
		GDB1 A 1
		TNT1 A 0 A_JumpIfInTargetInventory ("FatalDrawtoken",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("BFGArmed",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("SentinelForm",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("BarrelToken",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("GoldenBarrelToken",1,"NoGrab")
		TNT1 A 1 A_GiveToTarget ("GoldenBarrelToken",1)
		Stop
	Pain.Dazer:
		TNT1 A 0
		TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_SetInvulnerable
		GDB1 A 3 A_SetScale (0.70)
		GDB1 A 2 A_SetScale (1.30)
		TNT1 A 0 Thing_SetTranslation(0, 4242) 
		GDB1 A 1 A_SetScale (1.30)
		TNT1 A 0 A_SetScale (3)
		TNT1 A 0 A_FadeOut (0.20)
		TNT1 A 0 A_SetDamageType ("Dazer")
		TNT1 A 0 Thing_SetTranslation(0, 0)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_Explode (1,300,0,1,300)
		TNT1 A 0 A_PlaySound ("Subweapons/BoomerangFlash",0,1,0,0.70)
		TNT1 A 0 Radius_Quake(2,10,0,20,0)
		TNT1 AAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx ("FlashBoltParticle", frandom(-150,150),frandom(-150,150),frandom(-85,85), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx ("SpinningBurntGoldenBarrel",0,0,0,frandom(-25,25),frandom(-14,14),frandom(15,35),0, SXF_NOCHECKPOSITION)
		BFL1 CDDEEFF 2 A_SpawnItemEx ("CoinDebris",random(-16,16),random(-16,16),random(-10,10),random(-100,100)/5.0,random(-100,100)/5.0,random(-100,100)/5.0,0,160)
		stop
	Pain.BlazIce:
		TNT1 A 0
		TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_PlaySound ("swordtech/freezedeath",0)
		FDGB A 3 Thing_SetTranslation(0, 4242) 
		FDGB A 3 Thing_SetTranslation(0, 4240) 
		FDGB A 66 
		FDGB A 2 Thing_SetTranslation(0, 4242) 
		TNT1 A 0 A_SetScale (5)
		TNT1 A 0 A_FadeOut (0.20)
		TNT1 A 0 A_SetDamageType ("BlazIce")
		TNT1 A 0 Thing_SetTranslation(0, 0)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_Explode (30,260,0,30,260)
		TNT1 A 0 A_RadiusGive ("SlowedEffect",260,RGF_MONSTERS,1)
		TNT1 A 0 A_PlaySound ("swordtech/iceshatter",0)
		TNT1 AAAAAAAAAA 0 A_SpawnItemEx ("icefragment",0,0,0,random(-10,10),random(-10,10),10) 
		TNT1 AAAAAAAAAAAAAA 0 A_SpawnItemEx ("icefragment",0,0,0,random(-4,13),random(-8,13),8) 
		TNT1 A 0 Radius_Quake(2,10,0,20,0)
		TNT1 A 0 A_SpawnItemEx ("SpinningBurntGoldenBarrel",0,0,0,frandom(-25,25),frandom(-14,14),frandom(15,35),0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAA 0 A_SpawnItemEx ("TreatSpawner",random(-8,8),random(-8,8),random(-6,6),random(-100,100)/10.0,random(-100,100)/10.0,random(-100,100)/10.0,0,160)
		TNT1 AAAAAAAAA 0 A_SpawnItemEx ("IceParticle",random(-8,8),random(-8,8),0,random(-100,100)/7.0,random(-100,100)/7.0,random(-100,100)/7.0,0,SXF_NOCHECKPOSITION)
		ICHT ABCDE 1 A_SpawnItemEx ("IceParticle",random(-8,8),random(-8,8),0,random(-100,100)/7.0,random(-100,100)/7.0,random(-100,100)/7.0,0,SXF_NOCHECKPOSITION)
		stop
	Pain.SuperKick:
		TNT1 A 0
		TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelImpact",1,"Pain.GoldenBarrel")
		GDB1 A 1
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelImpact",1,"Pain.GoldenBarrel")
		GDB1 A 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx ("KustamKickedGoldenBarrel",0,0,10,-120,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_PlaySound("Kustam/SuperKickHIT", 5)
		TNT1 A 0 A_PlaySound("Kustam/SuperKickHIT", 6)
		TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx ("KustamParticle",random(-8,8),random(-8,8),random(-10,10),random(-120,120)/15.0,random(-130,130)/12.0,random(-110,110)/17.0,0,160)
		TNT1 A 0 A_Stop
		KSPK BCDEFG 1
		stop
	Pain.KustamKick:
		TNT1 A 0
		TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_SetInvulnerable
		GDB1 A 1
		GDB1 A 1 A_FaceTarget
		TNT1 A 0 A_PlaySound("Kustam/Kick", 5)
		TNT1 A 0 A_PlaySound("Kustam/KickEcho", 6)
		TNT1 A 0 A_PlaySound("Kustam/KickEcho", 7)
		TNT1 A 0 Radius_Quake (3,3,0,10,0)
		TNT1 A 0 A_SpawnItemEx ("SlayerThrownGoldenBarrel",0,0,5,-45,0,10,0,SXF_NOCHECKPOSITION)	
		TNT1 A 0 A_SetScale (1.50)
		KSPK A 2
		stop
	Pain.BFUG:
	Pain.TossedBarrel:
		TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_SetInvulnerable
		GDB1 A 2 Thing_SetTranslation(0, 4242) 
		GDB1 A 2 A_SetScale (1.80)
		TNT1 A 0 A_SetDamageType ("GoldenBarrel")
		TNT1 A 0 A_PlaySound ("GoldenBarrel/Crit",0,1,0,0.40)
		TNT1 A 0 A_SpawnItemEx ("GoldenCritsplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS)
		TNT1 A 0 A_Explode (300,200,0,0,200)
		TNT1 A 1 A_SpawnItemEx ("SpinningBurntGoldenBarrel",0,0,0,frandom(-25,-14),frandom(-14,14),frandom(15,35),0, SXF_NOCHECKPOSITION)
		stop
	Pain.GoldenBarrel:
		TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_SetInvulnerable
		GDB1 A 2 Thing_SetTranslation(0, 4242) 
		TNT1 A 0 A_SetDamageType ("GoldenBarrel")
		GDB1 A 2 A_SetScale (2.50)		
		TNT1 A 1 A_SpawnItemEx ("GoldenNuke",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_PlaySound ("Treeboom",0,1,0,0.3)
		
	NukeLoop:
		TNT1 A 0 A_Explode (10, 1250, 1, 0, 400)
		TNT1 A 0 A_Explode (120, 1250, 0, 0, 500)
		TNT1 A 0 Radius_Quake (4,5,0,150,0)
		TNT1 A 1 A_RadiusThrust (2800,220,RTF_AFFECTSOURCE,170)
		TNT1 A 0 A_PlaySound("cyberdemony/blowingup", 7, 1, 0, 0.3)
		TNT1 AA 0 A_SpawnItemEx ("GoldMMBossExplosionSlow", frandom(-120,120),frandom(-120,120),frandom(20,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AA 0 A_SpawnItemEx ("GoldMMBossExplosionSlow", frandom(-240,240),frandom(-240,240),frandom(50,150), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AA 0 A_SpawnItemEx ("GoldMMBossExplosionSlow", frandom(-360,360),frandom(-360,360),frandom(150,300), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx ("GoldMMBossExplosion", frandom(-120,120),frandom(-120,120),frandom(12,120), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx ("GoldMMBossExplosion", frandom(-240,240),frandom(-240,240),frandom(50,200), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx ("GoldMMBossExplosion", frandom(-360,360),frandom(-360,360),frandom(120,400), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SetUserVar("User_NukeTimer", User_NukeTimer+1)
		TNT1 A 0 A_JumpIf (User_NukeTimer >= 60, "NukeStop")
		loop

	Pain.FatalSlash:
		TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_FaceTarget
		FDGB A 2 A_SpawnItemEx ("CosmeticFatalSlash",10,0,10,0,0,0,0,SXF_NOCHECKPOSITION)
		FDGB A 4
		FDGB A 15 
	RandomWait:
		FDGB A 1 A_Jump (20,"split")
		loop
	Split:
		FDGB AABBCC 5
		FDGB DE 2 
		TNT1 A 0 A_Explode (20,300,0,0,300)
		TNT1 A 0 A_PlaySound("cyberdemony/blowingup", 7, 1, 0, 0.7)
		FDGB F 3 bright  A_SpawnItemEx ("SmolGoldBarrelExplosion", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		TNT1 A 0 A_Explode (20,300,0,0,300)
		TNT1 A 0 A_PlaySound("cyberdemony/blowingup", 7, 1, 0, 0.7)
		FDGB G 3 bright  A_SpawnItemEx ("SmolGoldBarrelExplosion", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		TNT1 A 0 A_Explode (20,300,0,0,300)
		FDGB H 3 bright  A_SpawnItemEx ("SmolGoldBarrelExplosion", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		TNT1 A 0 A_Explode (20,300,0,0,300)
		TNT1 A 0 A_PlaySound("cyberdemony/blowingup", 7, 1, 0, 0.7)
		FDGB I 3 bright  A_SpawnItemEx ("SmolGoldBarrelExplosion", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		TNT1 A 0 A_Explode (20,300,0,0,300)
		FDGB J 3 bright  A_SpawnItemEx ("SmolGoldBarrelExplosion", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		TNT1 A 0 A_Explode (20,300,0,0,300)
		TNT1 A 0 A_PlaySound("cyberdemony/blowingup", 7, 1, 0, 0.7)
		FDGB J 1 bright  A_SpawnItemEx ("SmolGoldBarrelExplosion", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		TNT1 A 0 A_Explode (20,300,0,0,300)
		FDGB J 1 bright  A_SpawnItemEx ("SmolGoldBarrelExplosion", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		TNT1 A 0 A_Explode (20,300,0,0,300)
		FDGB J 1 bright  A_SpawnItemEx ("SmolGoldBarrelExplosion", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		TNT1 A 0 A_Explode (20,300,0,0,300)
		FDGB J 1 bright  A_SpawnItemEx ("SmolGoldBarrelExplosion", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		TNT1 A 0 A_Explode (20,300,0,0,300)
		FDGB J 1 bright  A_SpawnItemEx ("SmolGoldBarrelExplosion", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
	FatalLoop:
		FDGB J 1 bright 
		TNT1 A 0 A_Explode (20,300,0,0,300)
		TNT1 A 1 bright A_SpawnItemEx ("SmolGoldBarrelExplosion", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION, 80)
		FDGB J 1 bright 
		TNT1 A 0 A_Explode (20,300,0,0,300)
		TNT1 A 0 A_PlaySound("cyberdemony/blowingup", 7, 1, 0, 0.7)
		TNT1 A 1 bright A_SpawnItemEx ("SmolGoldBarrelExplosion", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION, 80)
		FDGB J 1 bright 
		TNT1 A 0 A_Explode (20,300,0,0,300)
		TNT1 A 1 bright A_SpawnItemEx ("SmolGoldBarrelExplosion", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION, 80)
		FDGB J 1 bright 
		TNT1 A 0 A_Explode (20,300,0,0,300)
		TNT1 A 0 A_PlaySound("cyberdemony/blowingup", 7, 1, 0, 0.7)
		TNT1 A 1 bright A_SpawnItemEx ("SmolGoldBarrelExplosion", frandom(-20,20),frandom(-20,20),frandom(5,30), 0,0,0, 0, SXF_NOCHECKPOSITION, 80)
		TNT1 A 0 A_SetUserVar("User_FatalTimer", User_FatalTimer+1)
		TNT1 A 0 A_JumpIf (User_FatalTimer >= 12, "Pain.TossedBarrel")
		loop

	NukeStop:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 20
		stop
	Pain.SentinelArm:
		TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_SetInvulnerable
		GDB1 A 2 A_SetScale (0.80)
		TNT1 A 0 ThrustThingZ (0,40,0,0)
		GDB1 A 1 A_SetScale (1.20)
		GDB1 A 1 A_SetScale (1)
		GDB1 A 2 Thing_SetTranslation(0, 4242)
		GDB1 A 2 A_SetScale (1.80)
		TNT1 A 0 A_SetDamageType ("GoldenBarrel")
		TNT1 A 0 A_PlaySound ("Kustam/OverclockExplode",0,1,0,0.50)
		TNT1 A 0 A_SpawnItemEx ("GoldenCritsplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS)
	OCExplodeLoop:
		TNT1 AA 0 A_SpawnItemEx ("GoldMMBossExplosionSlow", frandom(-124,124),frandom(-124,124),frandom(-60,60), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 A_Explode (50,300,0,0,300)
		TNT1 A 0 A_PlaySound ("Kustam/HVolleyHit",0,1,0,0.80)
		TNT1 A 6
		TNT1 A 0 A_Explode (50,300,0,0,300)
		TNT1 A 0 A_SetUserVar("User_OCSplodeTimer", User_OCSplodeTimer+1)
		TNT1 A 0 A_JumpIf (User_OCSplodeTimer >= 15, "OCExplodeStop")
		loop
	OCExplodeStop:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx ("SpinningBurntGoldenBarrel",0,0,0,frandom(-25,-14),frandom(-14,14),frandom(15,35),0, SXF_NOCHECKPOSITION)
		stop
	NoGrab:
		TNT1 A 0
		GDB1 A 1
		TNT1 A 0 HealThing (20,20)
		TNT1 A 0 A_CheckFloor ("lilJump")
		GDB1 A 1 
		goto spawn
	LilJump:
		GDB1 A 1
		TNT1 A 0
		GDB1 A 1 ThrustThingZ (0,30,0,0)
		goto spawn
	}
}	


actor DroppedGoldenBarrel
{
	projectile
	+notimefreeze
    +FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+thruactors
	+bounceonwalls
	+bright
	species "friendly"
	-nogravity
	radius 12
	height 20
	speed 13
	damage (0)
	deathsound "bomberknight/bombbounce"
    gravity 1
	states
	{
	spawn:
		GDB1 A 1
		loop
	death:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx ("GoldenBarrel",0,0,2,0,0,2,0,SXF_NOCHECKPOSITION)
		TNT1 A 1
		stop
	}
}




ACTOR GoldenBarrelHitFX
{
	+NOBLOCKMAP
	+NOGRAVITY
	+NOCLIP
	+NOTELEPORT
	+bright
	renderstyle add
	alpha 0.70
	scale 2
	States
	{
	Spawn:
		TNT1 A 0
		BZP1 ABCDEFG 1 
		stop
	Death:
		TNT1 A 0
		TNT1 A 1
		stop
	}
}



ACTOR GoldenCritsplosion : GoldenBarrelHitFX
{
	scale 2

	var int user_prcangle;
	States
	{
	Spawn:
		TNT1 A 0
		WRML C 3 bright
		TNT1 A 0
		BEXP C 0 Radius_Quake (4,25,0,100,0)
		TNT1 A 0 A_SpawnItemEx ("360SplashEffect",0,0,-1,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 AAAAAA 0 A_SpawnItemEx ("GoldMMBossExplosionSlow", frandom(-32,32),frandom(-32,32),frandom(-10,20), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAA 0 A_SpawnItemEx ("GoldMMBossExplosionSlow", frandom(-32,32),frandom(-32,32),frandom(4,12), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAA 0 A_SpawnItemEx ("GoldMMBossExplosionSlow", frandom(-32,32),frandom(-32,32),frandom(-15,8), 0,0,0, 0, SXF_NOCHECKPOSITION)
		WRML EFGH 2 bright
		Stop
	Death:
		TNT1 A 0
		TNT1 A 1
		stop
	}
}



actor GoldenNuke : MortarBlastFX
{
	-clientsideonly
	+bright
	RenderStyle add
	alpha 0.90
	XScale 14
	Yscale 6

	States
	{
	spawn:
		TNT1 A 0
		WTFB ABCD 8
		WTFB EFGH 10
		WTFB IJ 12
		goto death
	death:
		TNT1 A 0
		TNT1 A 1
		stop
	}
}


ACTOR SmolGoldBarrelExplosion : GoldMMBossExplosion
{
	Scale 0.50
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx ("CoinDebris",random(-16,16),random(-16,16),random(-10,10),random(-100,100)/10.0,random(-100,100)/10.0,random(-100,100)/10.0,0,160)
		MMXP ABCDEFGHIJKL 1 Bright
		Stop
	}
}



actor SpinningGoldenBarrel
{
	projectile
	+DoomBounce
	+notimefreeze
    +FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+thruactors
	+bounceonwalls
	+SKYEXPLODE
	+bright
	species "friendly"
	-nogravity
	radius 14
	height 20
	speed 13
	damage (0)
	BounceCount 4
	SeeSound "GoldenBarrel/Bounce"
	DeathSound "GoldenBarrel/Bounce"
    gravity 1
	states
	{
	spawn:
		XBRL ABCDEFGH 1 
		loop
	death:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx ("GoldenBarrel",0,0,2,0,0,2,0,SXF_NOCHECKPOSITION)
		TNT1 A 1
		stop
	}
}

actor SpinningBurntGoldenBarrel : SpinningGoldenBarrel
{
	-DoomBounce
	+hexenbounce
	scale 0.80
	SeeSound "fatguard/miss"
	DeathSound "fatguard/miss"
	BounceCount 12
	states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 Thing_SetTranslation(0, 4241)
		Goto Flying
	Flying:
		XBRL ABCDEFGH 1 A_SpawnItemEx("LavaLazerSmoke",frandom(-15,15),frandom(-15,15),frandom(2,6),0,0,1,0,0,120)
		loop
	death:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx ("StunnedGoldenBarrel",0,0,2,0,0,2,0,SXF_NOCHECKPOSITION)
		TNT1 A 1
		stop
	}
}

Actor StunnedGoldenBarrel
{
	+notimefreeze
	+cannotpush
	+movewithsector
	+dontsplash
	+noblockmap
	+thruactors
	+dontblast
	-nogravity
	+FORCEXYBILLBOARD
	+LOOKALLAROUND
	+NOTELEPORT
	scale 0.80
	Gravity 1.2 
	Speed 5
	
	var int User_BarrelTimer;
	States
	{
	Spawn:
		TNT1 A 0
		4BRL A 1 Thing_SetTranslation(0, 4241)
		Goto Waiting
	Waiting:
		4BRL A 1 A_SpawnItemEx("LavaLazerSmoke",frandom(-15,15),frandom(-15,15),frandom(2,6),0,0,1,0,0,190)
		TNT1 A 0 A_SetUserVar("User_BarrelTimer", User_BarrelTimer+1)
		TNT1 A 0 A_JumpIf (User_BarrelTimer >= 120, "pop")
		Loop
	Pop:
		TNT1 A 0
		TNT1 A 0 A_PlaySound ("GoldenBarrel/Pop",0)
		4BRL A 3 A_SetScale (0.70)
		TNT1 A 1 A_SpawnItemEx ("PoppedGoldenBarrel",0,0,2,0,0,5,0,SXF_NOCHECKPOSITION)
		Stop
	death:
		TNT1 A 1
		stop
    }
}


actor PoppedGoldenBarrel : DroppedGoldenBarrel
{
	deathsound "bomberknight/bombbounce"
    gravity 1
	Scale 1.20
	states
	{
	spawn:
		GDB1 A 2
		GDB1 A 2 A_SetScale (0.90)
		GDB1 A 2 A_SetScale (1)
		Goto Flying
	Flying:
		GDB1 A 1
		loop
	}
}




actor GoldenBarrelToken : inventory
{
	inventory.maxamount 1
}


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


actor GMOTAwarp : TeleportFog replaces TeleportFog
{
	Scale 2
	States
	{
	Spawn:
		HWRP ABCD 1 bright
		Stop
	}
}


actor 360SplashEffect
{
	+thruspecies
	species "friendly"
	
	var int user_prcangle;
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 Radius_Quake (3,10,0,10,0)
		TNT1 A 0 A_SetUserVar("user_prcangle", 0)
	EmitLoop:
		TNT1 A 0 A_CustomMissile("hammerwaveeffect", 0,0, user_prcangle, CMF_AIMDIRECTION | CMF_TRACKOWNER)
		TNT1 A 0 A_SetUserVar("user_prcangle", user_prcangle+1)
		TNT1 A 0 A_JumpIf(user_prcangle > 359, "Death")
		Loop
	Death:
		TNT1 A 0
		TNT1 A 10
		stop
	}
}






/*Actor HookShot : FastProjectile
{
	MissileHeight 8
	MissileType "LoreShot2"
	Height 14
	Radius 10
	Projectile
	+HitTracer
	+forcePain
	MaxTargetRange 10
	MaxStepHeight 4
	Speed 40
	Damage (1)
	States
	{
		// The limited duration is intended to limit the range of the shot
		Spawn:
			LINK AAAAAAAAAA 2 A_PlaySound ("hookshot/loop", CHAN_BODY)
			Stop
		Crash:
			LINK A 0 A_PlaySound ("hookshot/hit/terrain")
			Goto RealDeath
		XDeath:
			LINK A 0 A_PlaySound ("hookshot/hit/flesh")
			Goto RealDeath
		RealDeath:
			CCLW A 0 ACS_NamedExecuteAlways("Hook_HitEnemy", 0, 0, 0, 0)
			LINK A 16
			Stop
		Death:
			CCLW A 0 A_PlaySound ("hookshot/hit/terrain")
			CCLW A 0 ACS_NamedExecuteAlways("Hook_HitWall", 0, 0, 0, 0)
			LINK A 16
			Stop
	}
}

Actor HookShooter : CustomInventory
{
	States
	{
		Pickup:
			TNT1 A 0 A_FireCustomMissile ("HookShot", 0, 0)
			Stop
	}
}*/