actor GMOTAbarrel : actor replaces explosivebarrel
{
	Game Doom
	SpawnID 125
	Health 20
	Radius 10
	Height 42
	mass 200
	+SOLID
	+SHOOTABLE
	+NOBLOOD
	+ACTIVATEMCROSS
	+DONTGIB
	+NOICEDEATH
	+QUICKTORETALIATE
	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 2
		TNT1 A 0 A_JumpIfInTargetInventory ("IAmKustam",1,"KustamGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("IAmDoomSlayer",1,"SlayerGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("IAmLordBlaz",1,"BlazGrab")
		TNT1 A 0 HealThing (20,20)
		BAR1 A 2 ThrustThingZ (0,20,0,0)
		goto spawn
	BlazGrab:
		TNT1 A 0
		BAR1 A 1
		TNT1 A 0 A_JumpIfInTargetInventory ("FatalDrawtoken",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("BlazBarrel",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("BlazGoldenBarrel",1,"NoGrab")
		TNT1 A 1 A_GiveToTarget ("BlazBarrelGiver",1)
		TNT1 A 1050 Bright A_BarrelDestroy
		TNT1 A 5 A_Respawn
		Wait
	SlayerGrab:
		TNT1 A 0
		BAR1 A 1
		TNT1 A 0 A_JumpIfInTargetInventory ("BFGArmed",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("SlayerBarrel",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("SlayerGoldenBarrel",1,"NoGrab")
		TNT1 A 1 A_GiveToTarget ("SlayerBarrelGiver",1)
		TNT1 A 1050 Bright A_BarrelDestroy
		TNT1 A 5 A_Respawn
		Wait
	KustamGrab:
		TNT1 A 0
		BAR1 A 1
		TNT1 A 0 A_JumpIfInTargetInventory ("SentinelForm",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("KustamBarrel",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("KustamGoldenBarrel",1,"NoGrab")
		TNT1 A 1 A_GiveToTarget ("KustamBarrelGiver",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
	BlazGrab:
		TNT1 A 0
		BAR1 A 1
		TNT1 A 0 A_JumpIfInTargetInventory ("FatalDrawtoken",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("BlazBarrel",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("BlazGoldenBarrel",1,"NoGrab")
		TNT1 A 1 A_GiveToTarget ("BlazBarrelGiver",1)
		TNT1 A 5
		stop
	SlayerGrab:
		TNT1 A 0
		BAR1 A 1
		TNT1 A 0 A_JumpIfInTargetInventory ("BFGArmed",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("SlayerBarrel",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("SlayerGoldenBarrel",1,"NoGrab")
		TNT1 A 1 A_GiveToTarget ("SlayerBarrelGiver",1)
		TNT1 A 5
		stop
	KustamGrab:
		TNT1 A 0
		BAR1 A 1
		TNT1 A 0 A_JumpIfInTargetInventory ("SentinelForm",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("KustamBarrel",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("KustamGoldenBarrel",1,"NoGrab")
		TNT1 A 1 A_GiveToTarget ("KustamBarrelGiver",1)
		TNT1 A 5
		stop
	}
}



actor GMOTABarrelGiver : custominventory
{
	+INVENTORY.AUTOACTIVATE
	states
	{
	spawn:
		TNT1 A 1
		loop
	pickup:
	use:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory ("IamLordBlaz",1,"Blaz")
		TNT1 A 0 A_JumpIfInventory ("IamDoomSlayer",1,"DoomSlayer")
		TNT1 A 0 A_JumpIfInventory ("IamKustam",1,"Kustam")
		TNT1 A 1
		stop
	Blaz:
		TNT1 A 0
		TNT1 A 1 A_GiveInventory ("BlazBarrel",1)
		stop
	DoomSlayer:
		TNT1 A 0
		TNT1 A 1 A_GiveInventory ("SlayerBarrel",1)
		stop
	Kustam:
		TNT1 A 0
		TNT1 A 1 A_GiveInventory ("KustamBarrel",1)
		stop
	}
}



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


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


actor GoldenBarrel : actor 
{
	Game Doom
	SpawnID 125
	Health 999
	Radius 10
	Height 42
	mass 200
	+SOLID
	+SHOOTABLE
	+NODAMAGE
	+NOBLOOD
	+ACTIVATEMCROSS
	+DONTGIB
	+NOICEDEATH
	+QUICKTORETALIATE
	+Bright
	painchance 256
	DeathSound "world/barrelx"
	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 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
		Stop
	pain.Barrelgrab:
		TNT1 A 0
		GDB1 A 2
		TNT1 A 0 A_JumpIfInTargetInventory ("IAmKustam",1,"KustamGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("IAmDoomSlayer",1,"SlayerGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("IAmLordBlaz",1,"BlazGrab")
		TNT1 A 0 HealThing (20,20)
		GDB1 A 2 ThrustThingZ (0,20,0,0)
		goto spawn
	BlazGrab:
		TNT1 A 0
		GDB1 A 1
		TNT1 A 0 A_JumpIfInTargetInventory ("FatalDrawtoken",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("BlazBarrel",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("BlazGoldenBarrel",1,"NoGrab")
		TNT1 A 1 A_GiveToTarget ("BlazGoldenBarrelGiver",1)
		TNT1 A 1050 Bright A_BarrelDestroy
		TNT1 A 5 A_Respawn
		Wait
	SlayerGrab:
		TNT1 A 0
		GDB1 A 1
		TNT1 A 0 A_JumpIfInTargetInventory ("BFGArmed",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("SlayerBarrel",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("SlayerGoldenBarrel",1,"NoGrab")
		TNT1 A 1 A_GiveToTarget ("SlayerGoldenBarrelGiver",1)
		TNT1 A 5
		Stop
	KustamGrab:
		TNT1 A 0
		GDB1 A 1
		TNT1 A 0 A_JumpIfInTargetInventory ("SentinelForm",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("KustamBarrel",1,"NoGrab")
		TNT1 A 0 A_JumpIfInTargetInventory ("KustamGoldenBarrel",1,"NoGrab")
		TNT1 A 1 A_GiveToTarget ("KustamGoldenBarrelGiver",1)
		TNT1 A 5
		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
	+CLIENTSIDEONLY
	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 SpinningGoldenBarrel
{
	projectile
	+DoomBounce
	+notimefreeze
    +FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+thruactors
	+bounceonwalls
	+SKYEXPLODE
	+bright
	species "friendly"
	-nogravity
	radius 12
	height 20
	speed 13
	damage (0)
	BounceCount 4
	seesound "fatguard/miss"
    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 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
	}
}*/