Actor Shinenen
{ 
Monster
Health 1400
Height 64
Radius 24
Mass 1000
Speed 4
FloatSpeed 6
Scale 1.05
Bloodcolor "purple"
PainChance 50
MeleeRange 68
MeleeDamage 8
+BOSSDEATH
+Float
+NoGravity
+DontFall
-FLOORCLIP
+FASTMELEE
+MISSILEMORE
+DONTHURTSPECIES
+DONTHARMSPECIES
+DONTHARMCLASS
Species "Nobles"
Species "SatanGuard"
Damagefactor "Acid", 2.5
Damagefactor "Fire", 0.0
//No Infighting
DamageFactor "SatanGuard", 0.0
Damagefactor "Heterodox", 0.0
Damagefactor "Damned", 0.0
DropItem "BossLifeEssence", 196, 50
DropItem "BossLifeEssence", 196, 50
DropItem "HEMBossArmorBonusMax35", 196
DropItem "BerserkSphere", 40
SeeSound "Shin/sight"
ActiveSound "Shin/act"
MeleeSound "baron/melee"
PainSound "Shin/pain"
DeathSound "Shin/death"
Obituary "%o dragged into eternal nightmare by a Shin'en-en." 
HitObituary "%o's mind was reaved by a Shin'en-en."
Tag "\ctShin'en-en\c-"
States
	{
	Spawn:
		SHIN A 5 A_Look
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64)
		SHIN B 5 A_Look
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64)
		SHIN C 5 A_Look 
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64)
		Loop
	See:
		SHIN AAAA 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN BBBB 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN CCCC 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Loop
	Pain:
		SHIN Q 5 A_Pain
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN Q 2
		GoTo See
	Melee:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,"Melee2")
		SHIN EEEEE 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN FFFFGG 1 A_FaceTarget
		SHIN G 1 A_MeleeAttack
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN GFFEE 2
		GoTo See
	Melee2:
		SHIN IIIII 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN JJJJKK 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN K 1 A_MeleeAttack
		SHIN KJJII 2
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		GoTo See
	Missile:
		TNT1 A 0
		TNT1 A 0 A_JumpIfCloser(68,"Melee")
		TNT1 A 0 A_Jump(128,"Alt","Alt","Alt","Alt","SlowSpam","SlowSpam","Haunt")
		Goto Normal
	Normal:
		SHIN EEEEE 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN FFFFG 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("AdvisorBall",32,0,random(-20,20))
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("AdvisorBall",32,0,random(-20,20))
		SHIN GGG 1 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("AdvisorBall",32,0,random(-20,20))
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN GFFEE 2
		GoTo See
	Alt:
		SHIN IIIII 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN JJJJK 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN KKK 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("AdvisorBall",32,0,random(-20,20))
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN KKK 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("AdvisorBall",32,0,random(-20,20))
		SHIN KKK 1 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("AdvisorBall",32,0,random(-20,20))
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN KJJII 2
		GoTo See
	SlowSpam:
		SHIN M 4 Bright
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN M 4 Bright
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN M 4 Bright
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN N 4 Bright
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN N 4 Bright
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		SHIN O 3 Bright
		TNT1 A 0 A_SpawnItemEx("SlowBouncer",0,0,32,random(3,8),random(3,8),random(8,-8),random(0,360),SXF_SETMASTER)
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 5 Bright
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 5 Bright
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN O 5 Bright
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_KillChildren
		TNT1 A 0 A_Jump(42,"Haunt")
		SHIN N 5 Bright
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN M 5 Bright
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN M 5 Bright
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		GoTo See
	Haunt:
		SHIN OONMMM 5 Bright
		SHIN M 2 Bright
		TNT1 A 0 A_SpawnItemEx("HauntTargeter",22,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		SHIN M 2 Bright
		TNT1 A 0 A_SpawnItemEx("HauntTargeter",22,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		SHIN M 2 Bright
		TNT1 A 0 A_SpawnItemEx("HauntTargeter",22,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		SHIN M 2 Bright
		TNT1 A 0 A_SpawnItemEx("HauntTargeter",22,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		SHIN M 2 Bright
		TNT1 A 0 A_SpawnItemEx("HauntTargeter",22,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0)
		SHIN MNOO 5 Bright
		GoTo See
	Death:
		TNT1 AAA 0 A_CustomMissile("SmokeFX",47,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 A_CustomMissile("Kaboom19",random(43,63),0,random(0,360),2,random(0,360))
		SHIN R 4 Bright
		SHIN S 3 Bright A_Scream
		SHIN TUV 3 Bright
		SHIN W 3 Bright A_Fall
		TNT1 A 0 A_BossDeath
		SHIN XYZ 2
		SHIN Z 1 A_KillChildren
		TNT1 A 0 A_Killmaster
		TNT1 A 1 A_ChangeFlag(DONTFALL,0)
		TNT1 A 63000 CanRaise
		Stop
	Raise:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 1 A_ChangeFlag(DONTFALL,1)
		SHIN ZYXWVUTSR 5
		GoTo See
	}
}

Actor SlowBouncer : AdvisorBall
{
-SeekerMissile
+DONTHURTSPECIES
+DONTHARMSPECIES
Species ""
Species "Nobles"
Species "SatanGuard"
Damagetype ""
Damagetype "SatanGuard"
Speed 9
BounceCount 50
BounceFactor 1.0
WallBounceFactor 1.0
States
	{
	XDeath:
		TNT1 A 0 Bright
		SBS4 A 1 Bright A_SpawnItem("AdvisorBallDeath")
		TNT1 A 0 Bright A_Explode(20,78,0)
		TNT1 A 0 Bright A_GiveToTarget("Health",5)
		TNT1 A 0 Bright A_SpawnItemEx("PurpleParticleSpawner",0,0,1,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom8",0,0,random(0,360),2,random(0,360))
		TNT1 AAAA 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),2,random(0,360))
		TNT1 A 1 Bright
		Stop
	}
}

Actor Haunted : Inventory { Inventory.MaxAmount 1 }

Actor HauntTargeter : DShadowTargeter
{
Species ""
Species "Nobles"
Species "SatanGuard"
Damagetype ""
Damagetype "SatanGuard"
Obituary "%o's mind was reaved by a Shin'en-en."
States
	{
	See:
	Missile:
		TNT1 A 0 Bright A_JumpIfInTargetInventory("Haunted",1,"ClearTarget")
		TNT1 A 0 Bright A_GiveToTarget("Haunted",1)
		TNT1 AA 1 Bright A_FaceTarget
		TNT1 A 0 Bright A_VileTarget("HauntSpawner")
		TNT1 AAAAA 35 Bright
		TNT1 A 2 Bright
		TNT1 A 1 Bright A_TakeFromTarget("Haunted",1)
		Goto Death
	Death:
		TNT1 A 1 Bright
		Stop
	}
}

Actor HauntSpawner
{
+NOGRAVITY
+NOBLOCKMAP
+THRUACTORS
+NONSHOOTABLE
States
	{
	Spawn:
		TNT1 A 1
		TNT1 A 0 A_SpawnItemEx("Haunter",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER,0)
		TNT1 AAA 35
		TNT1 A 1 A_KillChildren
		Stop
	}
}

Actor Haunter : Shinenen
{
Health 500
MeleeDamage 1
+NoClip
-BossDeath
Obituary "%o was haunted to death by a Shin'en-en."
HitObituary "%o was haunted to death by a Shin'en-en."
Tag "\ctShin'en-en\c-"
States
	{
	Missile:
		TNT1 A 0
		TNT1 A 0 A_JumpIfCloser(68,"Melee")
		TNT1 A 0 A_Jump(128,"Alt")
		Goto Normal
	Normal:
		SHIN EEEEE 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN FFFFG 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("AdvisorBall",32,0,random(-20,20))
		SHIN GF 3
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN FF 3
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN EE 3
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		GoTo See
	Alt:
		SHIN IIIII 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN JJJJK 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN KKK 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("AdvisorBall",32,0,random(-20,20))
		SHIN KJ 3
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		SHIN JII 3
		TNT1 A 0 A_SpawnItemEx("ShinenenFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		GoTo See
	Death:
		TNT1 AAA 0 A_CustomMissile("SmokeFX",47,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 A_CustomMissile("Kaboom19",random(43,63),0,random(0,360),2,random(0,360))
		SHIN R 4 Bright
		SHIN S 3 Bright A_Scream
		SHIN TUV 3 Bright
		SHIN W 3 Bright A_Fall
		SHIN XYZ 2
		SHIN Z 1 A_KillChildren
		TNT1 A 1
		Stop
	Raise:
		Stop
	}
}

Actor ShinenenFire : AbyssalSatyrFlame
{
scale 0.3
+CLIENTSIDEONLY
+NONETID
}

Actor ShinenenFireSpawner : RedParticleSpawner
{
+NOINTERACTION
States
	{
	Spawn:
		TNT1 A 1 Bright
		TNT1 A 0 Bright A_PlaySound("monster/ambientfire")
		TNT1 A 0 Bright A_CheckSight("Toaster")
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 AAAAAA 0 Bright A_SpawnItemEx("ShinenenFire",random(-12,12),random(-12,12),random(25,50)-20,0,0,random(0,-5),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}