actor meatball : Painelemental replaces painelemental
{
	SeeSound "meatball/see"
	PainSound "meatball/pain"
	ActiveSound "meatball/idle"
	DeathSound "meatball/die"
	states
	{
	Missile:
		TNT1 A 0
		TNT1 A 0 a_jumpifcloser (300,"decide")
		PAIN D 5 A_FaceTarget
		PAIN E 5 A_FaceTarget
		PAIN F 5 Bright A_FaceTarget
		PAIN F 0 Bright A_PainAttack
		Goto See
	decide:
		TNT1 A 0
		TNT1 A 0 a_jump (80,"barrelbelch")
		PAIN D 5 A_FaceTarget
		PAIN E 5 A_FaceTarget
		PAIN F 5 Bright A_FaceTarget
		PAIN F 0 Bright A_PainAttack
		Goto See
	
	BarrelBelch:
		PAIN D 10 A_FaceTarget
		PAIN E 8 A_FaceTarget
		PAIN E 5 A_FaceTarget
		PAIN F 5 Bright A_FaceTarget
		TNT1 A 0 a_playsound ("meatball/belch",CHAN_VOICE)
		PAIN F 0 Bright A_custommissile ("painbarrelshot",32,0,0,CMF_OFFSETPITCH,10)
		PAIN E 9 
		Goto See
	Death:
		PAIN H 8 Bright
		PAIN I 8 Bright A_Scream
		PAIN JK 3 Bright
		PAIN L 2 Bright A_PainDie
		TNT1 A 0 Radius_Quake (2,10,0,20,0)
		TNT1 A 0 A_SpawnItemEx("MonsterFireExplosion",0,0,30)
		TNT1 AAAAAAAAAAAA 0 Bright A_SpawnItemEx("MonsterFireTrail",frandom(-21,21),frandom(-21,21),frandom(-21,21),frandom(-1,1),frandom(-1,1),frandom(0,1))
		TNT1 AAAAAAAAAAA 0 Bright A_SpawnItemEx("MonsterFireEmber2",frandom(-16,16),frandom(-16,16),frandom(-16,16),frandom(-1,1),frandom(-1,1),frandom(0,1))
		TNT1 AAAAAAAAAAA 0 Bright A_SpawnItemEx("MonsterFireSmoke2",frandom(-4,4),frandom(-4,4),frandom(-4,4),frandom(-1,1),frandom(-1,1),frandom(0,1))
		TNT1 AAAAAAAAA 0 Bright A_SpawnItemEx("MonsterFireSmoke",frandom(-4,4),frandom(-4,4),frandom(-4,4),0,0,frandom(1,2))
		PAIN M 2 Bright
		Stop	
	Death.CALinkedBomb:
	Death.CALinked:
		TNT1 A 0
		PAIN H 8 Bright
		PAIN I 8 Bright A_Scream
		PAIN JK 3 Bright A_PainDie
		TNT1 A 0 A_stopsound (CHAN_VOICE)
		TNT1 A 0 a_playsound ("Malefactors/LinkedHurt",0,0.80)
		TNT1 A 1 a_spawnitemex ("CALinkedKill",0,0,35)
		TNT1 A 0 a_playsound ("Malefactors/LinkedDeath",0,1,0,0.90)
		TNT1 A 1
		stop
	Death.CABladeBeam:
		TNT1 A 0
		TNT1 A 0 a_facetarget
		TNT1 A 0 a_scream
		TNT1 A 0 a_noblocking
		TNT1 A 0 a_spawnitemex ("MalefactorMeatballTop",0,0,36,random(-3,3),random(-3,3),random (1,2),0,SXF_NOCHECKPOSITION)
		TNT1 AAA 0 a_spawnitemex ("MalefactorSkullTop",0,random (-3,3),16,random(-3,3),random(-3,3),random (1,2),0,SXF_NOCHECKPOSITION)
		

		TNT1 A 0 a_playsound ("Malefactors/BladeBeamDeath1",0,1,0,0.90)
		8DX8 B random (1,2)
		TNT1 A 0 a_nogravity
		8DX8 B 2 a_scalevelocity (0.40)
		8DX8 B 2 
		8DX8 B 2 a_scalevelocity (0.40)
		TNT1 A 0 a_stopsound (CHAN_VOICE)
		TNT1 A 0 a_stop
		8DX8 B random (36,40)
		TNT1 A 0 a_gravity
		8DX8 B 1 thrustthingz (0,1,0,0)
	HalfFalling:
		8DX8 B 1 A_JumpIf(Abs(VelZ) <= 0.01, "SlicedStop")
		loop
	SlicedStop:
		TNT1 A 0
		TNT1 AAA 0 a_spawnitemex("BigFireDebris",0,0,random(3,8),random(-8,8),random(-7,7),random(6,7),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_playsound ("Malefactors/BladeBeamExplosion",0,0.60,0)
		TNT1 A 1 A_SpawnItemEx("MonsterFireExplosion",0,0,30)
		stop
	}
}

actor painbarrelshot 
{
	projectile
    +FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+bloodlessimpact
	+bounceonceilings
	+bounceonwalls
	-nogravity
	radius 12
	bouncecount 2
    gravity 0.8
	damage (8)
	scale 0.50
	speed 20
	states
	{
	spawn:
		BAR1 A 1 bright a_spawnitemex ("MonsterVentTrail")
		TNT1 A 0 A_SpawnItemEx("MonsterFireTrail",frandom(-2,2),frandom(-2,2),frandom(-2,2))
		TNT1 A 0 A_SpawnItemEx("MonsterFireSmoke",frandom(-4,4),frandom(-4,4),frandom(-4,4))
		TNT1 A 0 a_spawnitemex ("MonsterFire",Frandom(-5,5),Frandom(-5,5),Frandom(-5,5),Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,Frandom(-50,50)/20.0,0,160)
		loop
	Death:
		TNT1 A 0 a_changeflag ("nogravity", 1)
		TNT1 A 0 a_playsound ("imp/shotx",0,0.60,0,1.40)
		TNT1 A 0 a_spawnitemex ("painbarrel",0,0,5,0,0,5,0,SXF_NOCHECKPOSITION)
		BAL1 CDE 2 bright
		BAL1 E 1 a_fadeout (0.10)
		wait
	}
}

	

actor painbarrel : explosivebarrel
{
	-solid
}


actor MalefactorMeatballTop : MalefactorRiflemanTorso
{
	gravity 0.80
    States
    {
    Spawn:
		TNT1 A 0
		8DX8 A 6
		TNT1 A 0 a_scalevelocity (0.30)
		8DX8 A 6
		TNT1 A 0 a_scalevelocity (0.50)
		8DX8 A 6
		TNT1 A 0 a_stop
		8DX8 A 10
		TNT1 A 0 a_changeflag ("NOGRAVITY",0)
		TNT1 A 0 a_changeflag ("HEXENBOUNCE",0)
	Falling:
		8DX8 A 1
		TNT1 A 0 A_CheckFloor ("Death")
		loop
	Death:
		TNT1 AAA 0 a_spawnitemex("BigFireDebris",0,0,random(3,8),random(-8,8),random(-7,7),random(6,7),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_playsound ("Malefactors/BladeBeamExplosion",0,0.60,0)
		TNT1 A 1 A_SpawnItemEx("MonsterFireExplosion",0,0,30)
		stop
    }
}
	