//------------------------------------------------------------------------------------------------------------------------
//	PlasmaElemental
//
//
//	Taken from ZDoom Monster Pack
//	Idea by the Ultimate Doomer
//	Sprites by TheDarkArchon
//	Modified by M@@@H!aK (death types etc.)
//------------------------------------------------------------------------------------------------------------------------
Actor Satanic_PlasmaElemental : Cacodemon 5011
{ 
	Health 		450
	Speed 		8
	Radius		31
	Height 		56
	PainChance 	128
	Mass 		400
	SeeSound 	"Pain/Sight"
	PainSound 	"Pain/Pain"
	DeathSound 	"Pain/Death"
	ActiveSound "Pain/Active"
	DamageFactor NoDamage,	 		0
	PainChance "Turn", 255
	PainChance "Fire", 				0
	PainChance "Posession", 		255
	Obituary "%o was fried by a Plasma Elemental."
	MONSTER
	-FRIENDLY
	+NOGRAVITY
	+FLOAT
	+DROPOFF
	+MISSILEMORE
	+MISSILEEVENMORE
	States 
	{
	Spawn:
		PLEM A 0 Thing_Hate(0,669,3)
		PLEM A 10 A_Look
		Goto Spawn+1
	See:
		PLEM I 0 A_JumpIfInventory("Satanic_IsPosessed",1,1)
		Goto StandardSee
		PLEM A 0
		Goto PosessedMove
	PosessedMove:
		PLEM A 0 A_JumpIfInventory("Satanic_PosessedFire",1,1)
		Goto PosessedStandardMove
		PLEM A 0
		Goto PosessedFire
	PosessedFire:
		PLEM D 2
		PLEM E 2
		PLEM F 1 A_CustomMissile("Satanic_ElementalPlasma",32.0,0,0.0,2,-pitch)
		PLEM F 1 A_CustomMissile("Satanic_ElementalPlasma",32.0,0,0.0,2,-pitch)
		PLEM F 1 A_CustomMissile("Satanic_ElementalPlasma",32.0,0,0.0,2,-pitch)
		PLEM F 1 A_CustomMissile("Satanic_ElementalPlasma",32.0,0,0.0,2,-pitch)
		PLEM A 3
		PLEM A 0 A_TakeInventory("Satanic_PosessedFire",1)
		Goto See
	PosessedStandardMove:
		PLEM AAAAAABBBBBBCCCCCCDDDDDD 1 ACS_Execute(803,0,48,45,7)
		PLEM A 0 A_JumpIfInventory("Satanic_IsPosessed",1,1)
		Goto Spawn+1
		PLEM A 0
		Goto See
	StandardSee:
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,"Wander",AAPTR_PLAYER1)
		PLEM A 3 A_Chase
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,"Wander",AAPTR_PLAYER1)
		PLEM A 3 A_Chase
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,"Wander",AAPTR_PLAYER1)
		PLEM B 3 A_Chase
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,"Wander",AAPTR_PLAYER1)
		PLEM B 3 A_Chase
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,"Wander",AAPTR_PLAYER1)
		PLEM C 3 A_Chase
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,"Wander",AAPTR_PLAYER1)
		PLEM C 3 A_Chase
		Loop
	Wander:
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,1,AAPTR_PLAYER1)
		Goto See
		PLEM A 3 A_Wander
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,1,AAPTR_PLAYER1)
		Goto See
		PLEM A 3 A_Wander
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,1,AAPTR_PLAYER1)
		Goto See
		PLEM B 3 A_Wander
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,1,AAPTR_PLAYER1)
		Goto See
		PLEM B 3 A_Wander
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,1,AAPTR_PLAYER1)
		Goto See
		PLEM C 3 A_Wander
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,1,AAPTR_PLAYER1)
		Goto See
		PLEM C 3 A_Wander
		Goto See
	Melee:
	Missile: 
		PLEM D 5 A_FaceTarget 
		PLEM E 5 A_FaceTarget 
		PLEM F 1 A_FaceTarget 
		PLEM F 1 A_CustomMissile ("Satanic_ElementalPlasma", 22, 0, 0) 
		PLEM F 1 A_CustomMissile ("Satanic_ElementalPlasma", 22, 0, 0) 
		PLEM F 1 A_CustomMissile ("Satanic_ElementalPlasma", 22, 0, 0) 
		PLEM F 1 A_CustomMissile ("Satanic_ElementalPlasma", 22, 0, 0) 
		Goto See 
	Pain.Turn:
		TNT1 A 0 A_PlaySound("Satanic/Weapons/BellRing",CHAN_WEAPON)
		TNT1 A 0 ACS_Execute(824,0,20,0,0)
		PLEM G 3
		TNT1 A 0 A_ChangeFlag("Friendly",1)
		PLEM G 6 A_Pain
		Goto See
	Pain.Posession:
		PLEM G 0
		PLEM G 0 ACS_ExecuteAlways(791,0,40,0,0)
		PLEM G 0 A_GiveInventory("Satanic_IsPosessed",1)
		PLEM G 0 Thing_ChangeTID(0,669)
		PLEM G 0 ACS_ExecuteAlways(802,0,48,0,0)
		Goto See
	Pain.DrainHealthEver:
		PLEM G 0
		PLEM G 0 ACS_ExecuteAlways(772,0,5,0,0)	
	Pain:
		PLEM H 0 A_JumpIfInventory("Satanic_IsPosessed",1,1)
		Goto Pain+2
		PLEM H 0
		Goto See
		PLEM G 3
		PLEM G 6 A_Pain
		Goto See
	Death:
		PLEM I 0 A_JumpIfInventory("Satanic_IsPosessed",1,1)
		Goto ActualDeath
		PLEM I 0 ACS_ExecuteAlways(801,0,0,0,0)
		PLEM I 0 ChangeCamera(0, 0, 0) 
		Goto ActualDeath
	Death.DrainMana:
		PLEM I 0 A_JumpIfInventory("Satanic_IsPosessed",1,1)
		Goto ActualDeathDrainMana
		PLEM I 0 ACS_ExecuteAlways(801,0,0,0,0)
		PLEM I 0 ChangeCamera(0, 0, 0) 
		Goto ActualDeathDrainMana
	Death.DrainHealthEver:
	Death.DrainHealth:
		PLEM I 0 A_JumpIfInventory("Satanic_IsPosessed",1,1)
		Goto ActualDeathDrainHealth
		PLEM I 0 ACS_ExecuteAlways(801,0,0,0,0)
		PLEM I 0 ChangeCamera(0, 0, 0) 
		Goto ActualDeathDrainHealth
	Death.DemonFire:
	Burn:
		PLEM I 0 A_JumpIfInventory("Satanic_IsPosessed",1,1)
		Goto ActualBurn
		PLEM I 0 ACS_ExecuteAlways(801,0,0,0,0)
		PLEM I 0 ChangeCamera(0, 0, 0) 
		Goto ActualBurn
	ActualDeath: 
		PLEM H 8 A_SpawnItem("Satanic_SmokeSpawner")
		PLEM I 8 A_Scream 
		PLEM JK 8 BRIGHT A_SpawnItem("Satanic_SmokeSpawner")
		PLEM L 8 BRIGHT A_NoBlocking  
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -180) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -160) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -140) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -120) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -100) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -80) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -60) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -40) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -20) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 0) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 20) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 40) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 60) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 80)
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 100) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 120)
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 140) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 160)
		PLEM M 8 A_SpawnItem("Satanic_SmokeSpawner")
		Stop 
	ActualDeathDrainMana: 
		PLEM H 0 ACS_ExecuteAlways(779,0,15,0,0)
		PLEM H 8 A_SpawnItem("Satanic_SmokeSpawner")
		PLEM I 8 A_Scream 
		PLEM JK 8 BRIGHT A_SpawnItem("Satanic_SmokeSpawner")
		PLEM L 8 BRIGHT A_NoBlocking  
		PLEM M 8 A_SpawnItem("Satanic_SmokeSpawner")
		Stop 
	ActualDeathDrainHealth: 
		PLEM H 0 ACS_ExecuteAlways(772,0,25,0,0)
		PLEM H 8 A_SpawnItem("Satanic_SmokeSpawner")
		PLEM I 8 A_Scream 
		PLEM JK 8 BRIGHT A_SpawnItem("Satanic_SmokeSpawner")
		PLEM L 8 BRIGHT A_NoBlocking  
		PLEM M 8 A_SpawnItem("Satanic_SmokeSpawner")
		Stop 
	ActualBurn:
		PLEM H 0 A_CustomMissile("Satanic_HellfireDeviceBoltSecondary",Random(0,64),0,Random(-360,360),0,0)
		PLEM H 0 A_CustomMissile("Satanic_HellfireDeviceBoltSecondary",Random(0,64),0,Random(-360,360),0,0)
		PLEM H 0 A_CustomMissile("Satanic_HellfireDeviceBoltSecondary",Random(0,64),0,Random(-360,360),0,0)
		PLEM H 0 A_CustomMissile("Satanic_HellfireDeviceBoltSecondary",Random(0,64),0,Random(-360,360),0,0)
		PLEM H 0 A_CustomMissile("Satanic_HellfireDeviceBoltSecondary",Random(0,64),0,Random(-360,360),0,0)
		PLEM H 0 A_CustomMissile("Satanic_FireStarter",6,Random(-20,20),Random(-360,360),0)         
		PLEM H 0 A_CustomMissile("Satanic_FireStarter",6,Random(-20,20),Random(-360,360),0)
		PLEM H 8 A_SpawnItem("Satanic_SmokeSpawner")
		PLEM I 8 A_Scream 
		PLEM JK 8 BRIGHT A_SpawnItem("Satanic_SmokeSpawner")
		PLEM L 8 BRIGHT A_NoBlocking  
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -180) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -160) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -140) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -120) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -100) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -80) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -60) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -40) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, -20) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 0) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 20) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 40) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 60) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 80)
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 100) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 120)
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 140) 
		PLEM L 0 A_CustomMissile ("Satanic_ElementalPlasma", 32, 0, 160)
		PLEM M 8 A_SpawnItem("Satanic_SmokeSpawner")
		Stop 
	} 
} 

Actor Satanic_ElementalPlasma
{
	Radius 	13	
	Height 	8
	Speed 	25
	Damage 	3
	Decal PlasmaScorch
	DamageType DemonFire
	RenderStyle Add
	Alpha 		0.75
	SeeSound 	"baby/attack"
	DeathSound 	"baby/shotx"
	PROJECTILE
	+RANDOMIZE
	States
	{
	Spawn:
		APLS AB 5 BRIGHT
		Loop
	Death:
		APBX ABCDE 5 BRIGHT
		Stop
	}
}