ACTOR ShadowOrin : GenericBoss
{
Speed 28
Health 10000
Mass 1000
+NORADIUSDMG
+NOTIMEFREEZE
+MISSILEMORE
+MissileEvenMore
+NOTELEFRAG
+QUICKTORETALIATE
+BOSS
+NoGravity
+FLOAT
+NOICEDEATH
+DONTHARMSPECIES
Bloodcolor "cf 00 b0"
Painchance 40
Painchance "PlayerNemesisPlasma", 0
Species "Touhou"
Seesound "Remsee"
PainSound "remihurt"
Deathsound "Realdead"
DropItem "BossLifeEssence" 255 25
DropItem "BossArmorBonusMax" 255 1
DropItem "BigDustMana" 128 100
DropItem "BigDustMana" 128 100
DropItem "DemonicChalice" 128
DropItem "SkullOfPower" 128
DropItem "OccultSpellbook" 200
DropItem "LegendaryRune" 20
DamageFactor "PlayerFireSword", 0.5
DamageFactor "PDTBFG", 0.25
DamageFactor "PDTBFGTracer", 0.25
DamageFactor "Cyber10K", 0.0
DamageFactor "Legendary", 0.0
DamageFactor "LegendaryGuru", 0.3
DamageFactor "LegendaryGuruPlayer", 0.3
DamageFactor "LegendaryPlayer", 0.3
DamageFactor "BFGSplash", 0.25
DamageFactor "BFGSpray", 0.3
DamageFactor "PlayerDevBall", 0.15
DamageFactor "PlayerDevBall2", 0.15
DamageFactor "PlayerDevTracer", 0.125
DamageFactor "DBFG", 0.3
DamageFactor "DBFG10K", 0.3
DamageFactor "DBFG10K2", 0.4
DamageFactor "PlayerDBFG", 0.3
DamageFactor "PlayerDBFG2", 0.4
DamageFactor "PlayerDBFG10K", 0.3
DamageFactor "PlayerDBFG10K2", 0.4
DamageFactor "UltimateLegendary", 0.5
DamageFactor "Extreme", 0.0
DamageFactor "PyroShot", 0.0
DamageFactor "PlayerPyro", 0.0
DamageFactor "PDTPuff", 0.0
DamageFactor "Ice", 0.5
DamageFactor "Fire", 0.0
DamageFactor "FreezerBurn", 0.0
DamageFactor "SuperWeapon", 0.0
DamageFactor "DemolisherEx", 0.0
DamageFactor "DarkDemoEx", 0.0
DamageFactor "CerChainguns", 0.0
DamageFactor "CerEnergyBall", 0.0
DamageFactor "LegMind", 0.0
DamageFactor "BeheComet", 0.0
DamageFactor "NobleComet", 0.0
DamageFactor "CacoComet", 0.0
DamageFactor "CadaverRocket", 0.0
DamageFactor "HellComet", 0.0
DamageFactor "Legendary1", 0.0
DamageFactor 0.5
Tag "\c[I9]Shadow Orin\c-" 
Obituary "%o's Spirit was crushed under the heel of Shadow Orin"
var int user_music;
var int user_rage;
States
	{
	Spawn:
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("Disable2hu") == 1, "Remove")
	Idle:
		ORIN AB 3 A_Look
		ORIN BC 3
		ORIN CD 3 A_Look
		ORIN DE 3
		ORIN EF 3 A_Look
		TNT1 A 0 A_Jump(15, "IdleSwingArm1")
		TNT1 A 0 A_Jump(15, "IdleSwingArm2")
		Loop
	IdleSwingArm1:
        ORIA BCDEE 8 A_Look
        Goto Idle
    IdleSwingArm2:
        ORIA IJKLL 8 A_Look
        Goto Idle		
	Remove:
		TNT1 A 1
		TNT1 A 0 A_SpawnItemEx("SpiderMasterMind",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_ChangeFlag("COUNTKILL", FALSE)
		TNT1 A 0
		Stop
	See:
        TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_JumpIfHealthLower(6000, "Stage2See")
		TNT1 A 0 A_JumpIf(user_music == 1,3)
		TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,113)
		TNT1 A 0 A_SetUserVar("user_music",1)
		ORIN ABC 3 A_Chase
		ORIN DEF 3 A_Chase
		TNT1 A 0 A_Jump(40,"Teleport")
		TNT1 A 0 A_Jump(20,"RapidTeleport")
		Loop
	Stage2See:
	    TNT1 A 0 A_JumpIfHealthLower(3000, "Stage3Start")
        TNT1 A 0 A_JumpIf(user_music == 1,3)
		TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,113)
		TNT1 A 0 A_SetUserVar("user_music",1)
		ORIN ABC 3 A_Chase
		ORIN DEF 3 A_Chase
		TNT1 A 0 A_Jump(30,"Teleport")
		TNT1 A 0 A_Jump(10,"RapidTeleport")
		Loop
	Stage3Start:
        TNT1 A 0 A_Jumpif(User_Rage == 1,"Stage3See")
        TNT1 A 0 A_ChangeFlag("NOPAIN",1)
        TNT1 A 0 A_SetUserVar(User_Rage,1)
        Goto Stage3See
    Stage3See:
	    TNT1 A 0 A_SetTranslucent(1,0)
		TNT1 A 0 A_JumpIf(user_music == 1,3)
		TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,113)
		TNT1 A 0 A_SetUserVar("user_music",1)
		ORIN ABC 3 A_Chase
		ORIN DEF 3 A_Chase
		TNT1 A 0 A_Jump(50,"Teleport")
		TNT1 A 0 A_Jump(15,"CorpseHunter")
		Loop
	Teleport:
        TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
		ORIN A 1 Bright A_UnSetShootable
		TNT1 A 0 A_PlaySound("AdvisorTeleport",CHAN_WEAPON,1.0,0)
		ORIN AAABBBCCCDDD 1  A_FadeOut(0.1,0)
		ORIN B 2 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		ORIN EEFFFDDCCBBA 1 A_FadeIn(0.1)
		ORIN A 1 Bright A_SetShootable
		Goto See
	RapidTeleport:
	    TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
		ORIN A 1 Bright A_UnSetShootable
		TNT1 A 0 A_PlaySound("AdvisorTeleport",CHAN_WEAPON,1.0,0)
		ORIN AAABBBCCCDDD 1  A_FadeOut(0.1,0)
		ORIN B 2 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		ORIN EEFFFDDCCBBA 1 A_FadeIn(0.1)
		TNT1 A 0 A_Jump(100, "TeleportFinish")
		Goto RapidTeleport
	TeleportFinish:
        ORIN A 1 Bright A_SetShootable
		TNT1 A 0 A_ChangeFlag("NOPAIN",0)
		Goto See	
	Missile:
		TNT1 A 0 A_SetTranslucent(1,0)
		TNT1 A 0 A_JumpIfHealthLower(6000, "Stage2Missile")
		TNT1 A 0 A_JumpIfCloser(200, "ShadowLightning")
		TNT1 A 0 A_Jump(126,"ShadowBallLeft","BulletHell1","Seeker","Comets")
		Goto ShadowBall
	Stage2Missile:
        TNT1 A 0 A_JumpIfHealthLower(3000, "Stage3Missile")
		TNT1 A 0 A_JumpIfCloser(200, "ShadowLightning2")
		TNT1 A 0 A_Jump(126,"ShadowBallLeft","BulletHell2","Seeker2","Comets")
		TNT1 A 0 A_Jump(128,"Summoning")
		Goto ShadowBall
	Stage3Missile:
        TNT1 A 0 A_JumpIfCloser(200, "ShadowLightning2")
		TNT1 A 0 A_Jump(128,"FlameBurst","FlameSpread","BulletHell3","Seeker3","Summoning2")
		TNT1 A 0 A_Jump(150,"Comets")
		TNT1 A 0 A_Jump(60,"ShadowBulletHell")
		Goto FlameBurst
	ShadowBall:
	    TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
	    ORIA A 3 A_FaceTarget
		ORIA B 3 A_FaceTarget
	    ORIA F 3 A_FaceTarget
		ORIA G 3 A_CustomMissile("SuccubusShadowBall",45,7,0)
		ORIA F 3 A_FaceTarget
		ORIA G 3 A_CustomMissile("SuccubusShadowBall",45,7,0)
        ORIA F 3 A_FaceTarget
		ORIA G 3 A_CustomMissile("SuccubusShadowBall",45,7,0)
		TNT1 A 0 A_Jump(128,"ShadowBallLeft","ShadowBall")
        Goto See
    ShadowBallLeft:
	    TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
	    ORIA A 3 A_FaceTarget
		ORIA B 3 A_FaceTarget
	    ORIA F 3 A_FaceTarget
		ORIA L 3 A_CustomMissile("SuccubusShadowBall",45,0,0)
		ORIA F 3 A_FaceTarget
		ORIA L 3 A_CustomMissile("SuccubusShadowBall",45,0,0)
        ORIA F 3 A_FaceTarget
		ORIA L 3 A_CustomMissile("SuccubusShadowBall",45,0,0)
		TNT1 A 0 A_Jump(128,"ShadowBallLeft","ShadowBall")
        Goto See
    FlameBurst:
        TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
	    ORIA A 3 A_FaceTarget
		ORIA B 3 A_FaceTarget
	    ORIA F 3 A_FaceTarget
		ORIA L 3 A_CustomMissile("ShadFireAvatar",40,0,0)
		ORIA F 3 A_FaceTarget
		ORIA L 3 A_CustomMissile("ShadFireAvatar",40,0,0)
        ORIA F 3 A_FaceTarget
		ORIA L 3 A_CustomMissile("ShadFireAvatar",40,0,0)
        TNT1 A 0 A_Jump(128,"FlameBurst")
        Goto See
    FlameSpread:
	    TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
	    ORIA A 3 A_FaceTarget
		ORIA B 3 A_FaceTarget
	    ORIA F 3 A_FaceTarget
        ORIA L 0 Bright A_Custommissile ("ShadFireAvatar", 37, 0, 25)
	    TNT1 A 0 Bright A_Custommissile ("ShadFireAvatar", 37, 0, 13)
        TNT1 A 0 Bright A_Custommissile ("ShadFireAvatar", 37, 0, 0)	   
        TNT1 A 0 Bright A_Custommissile ("ShadFireAvatar", 37, 0, -13)
	    ORIA L 3 Bright A_Custommissile ("ShadFireAvatar", 37, 0, -25)
		TNT1 A 0 A_Jump(128,"FlameSpread")
		Goto See
	ShadowLightning:
	    TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
	    ORIA G 5 Bright A_FaceTarget
		ORIA F 8 Bright A_FaceTarget
		ORIA E 1 Bright A_PlaySound ("MageLightningFire")
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,15,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,15,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,0,2,45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,0,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,-15,2,45)
		ORIA E 7 Bright A_CustomMissile ("PurpleLiteBot",0,0,-15,2,-45)
		ORIA G 5 Bright A_FaceTarget
		ORIA F 8 Bright A_FaceTarget
		ORIA E 1 Bright A_PlaySound ("MageLightningFire")
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,15,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,15,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,0,2,45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,0,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,-15,2,45)
		ORIA E 7 Bright A_CustomMissile ("PurpleLiteBot",0,0,-15,2,-45)
		ORIA G 5 Bright A_FaceTarget
		ORIA F 8 Bright A_FaceTarget
		ORIA E 1 Bright A_PlaySound ("MageLightningFire")
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,15,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,15,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,0,2,45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,0,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,-15,2,45)
		ORIA E 14 Bright A_CustomMissile ("PurpleLiteBot",0,0,-15,2,-45)
		Goto See
    ShadowLightning2:
	    TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
	    ORIA G 5 Bright A_FaceTarget
		ORIA F 4 Bright A_FaceTarget
		ORIA E 1 Bright A_PlaySound ("MageLightningFire")
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,25,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,25,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,15,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,15,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,0,2,45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,0,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,-15,2,45)
		ORIA E 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,-15,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,-25,2,-45)
		ORIA E 7 Bright A_CustomMissile ("PurpleLiteBot",0,0,-25,2,-45)
		ORIA G 5 Bright A_FaceTarget
		ORIA F 4 Bright A_FaceTarget
		ORIA E 1 Bright A_PlaySound ("MageLightningFire")
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,25,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,25,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,15,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,15,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,0,2,45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,0,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,-15,2,45)
		ORIA E 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,-15,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,-25,2,-45)
		ORIA E 7 Bright A_CustomMissile ("PurpleLiteBot",0,0,-25,2,-45)
		ORIA G 5 Bright A_FaceTarget
		ORIA F 4 Bright A_FaceTarget
		ORIA E 1 Bright A_PlaySound ("MageLightningFire")
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,25,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,25,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,15,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,15,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,0,2,45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,0,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,-15,2,45)
		ORIA E 0 Bright A_CustomMissile ("PurpleLiteBot",0,0,-15,2,-45)
		ORIA G 0 Bright A_CustomMissile ("PurpleLiteTop",0,0,-25,2,-45)
		ORIA E 7 Bright A_CustomMissile ("PurpleLiteBot",0,0,-25,2,-45)
		Goto See	   		
	Seeker:
	    TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_FaceTarget
		ORIA B 3
		TNT1 A 0 A_FaceTarget
		ORIA C 3
		TNT1 A 0 A_FaceTarget
		ORIA D 3
		TNT1 A 0 A_FaceTarget
		ORIA EEE 3 A_CustomMissile("ShadowSkullAttack",45,0,random(-18,18),CMF_TRACKOWNER|CMF_CHECKTARGETDEAD,random(-4,4))
		ORIA EE 0 A_CustomMissile("ShadowSkullAttack",45,0,random(-18,18),CMF_TRACKOWNER|CMF_CHECKTARGETDEAD,random(-4,4))
		TNT1 A 0 A_Jump(128,"Seeker")
		Goto See
	Seeker2:
	    TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_FaceTarget
		ORIA B 3
		TNT1 A 0 A_FaceTarget
		ORIA C 3
		TNT1 A 0 A_FaceTarget
		ORIA D 3
		TNT1 A 0 A_FaceTarget
		ORIA EEE 3 A_CustomMissile("ShadowSkullAttack",45,0,random(-18,18),CMF_TRACKOWNER|CMF_CHECKTARGETDEAD,random(-4,4))
		ORIA EE 0 A_CustomMissile("ShadowSkullAttack",45,0,random(-18,18),CMF_TRACKOWNER|CMF_CHECKTARGETDEAD,random(-4,4))
		ORIA EE 0 A_CustomMissile("ShadowSkullAttack",45,0,random(-18,18),CMF_TRACKOWNER|CMF_CHECKTARGETDEAD,random(-4,4))
		TNT1 A 0 A_Jump(128,"Seeker2")
		Goto See
    Seeker3:
        TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_FaceTarget
		ORIA B 3
		TNT1 A 0 A_FaceTarget
		ORIA C 3
		TNT1 A 0 A_FaceTarget
		ORIA D 3
		TNT1 A 0 A_FaceTarget
		ORIA EEE 3 A_CustomMissile("ShadowSkullAttack",45,0,random(-18,18),CMF_TRACKOWNER|CMF_CHECKTARGETDEAD,random(-4,4))
		ORIA EE 0 A_CustomMissile("ShadowSkullAttack",45,0,random(-18,18),CMF_TRACKOWNER|CMF_CHECKTARGETDEAD,random(-4,4))
		ORIA EE 0 A_CustomMissile("ShadowSkullAttack",45,0,random(-18,18),CMF_TRACKOWNER|CMF_CHECKTARGETDEAD,random(-4,4))
		ORIA EE 0 A_CustomMissile("ShadowSkullAttack",45,0,random(-18,18),CMF_TRACKOWNER|CMF_CHECKTARGETDEAD,random(-4,4))
		ORIA EE 0 A_CustomMissile("ShadowSkullAttack",45,0,random(-18,18),CMF_TRACKOWNER|CMF_CHECKTARGETDEAD,random(-4,4))
		TNT1 A 0 A_Jump(128,"Seeker3")
		Goto See	
	BulletHell1:
	    TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_FaceTarget
		ORIA B 3
		TNT1 A 0 A_FaceTarget
		ORIA C 3
		TNT1 A 0 A_FaceTarget
		ORIA D 3
		TNT1 A 0 A_FaceTarget
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA EEE 3 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		TNT1 A 0 A_Jump(128, "BulletHell1")
		Goto See
	BulletHell2:
	    TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_FaceTarget
		ORIA B 3
		TNT1 A 0 A_FaceTarget
		ORIA C 3
		TNT1 A 0 A_FaceTarget
		ORIA D 3
		TNT1 A 0 A_FaceTarget
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA EEE 3 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		TNT1 A 0 A_Jump(128, "BulletHell2")
		Goto See
    BulletHell3:
	    TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
		TNT1 A 0 A_FaceTarget
		ORIA B 3
		TNT1 A 0 A_FaceTarget
		ORIA C 3
		TNT1 A 0 A_FaceTarget
		ORIA D 3
		TNT1 A 0 A_FaceTarget
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA E 0 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		ORIA EEE 3 A_CustomMissile("PhazoFastShot",45,0,random(-18,18),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		TNT1 A 0 A_Jump(128, "BulletHell3")
		Goto See			
	Comets:
	    TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
		ORIA H 3 A_FaceTarget
		ORIA I 3 A_FaceTarget
		ORIA J 3 A_FaceTarget
		ORIA JJJJJJJJJ 3 A_FaceTarget 
		TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,-10,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,-20,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,-30,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,0,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,10,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,20,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		ORIA G 8 A_CustomMissile("PArchonComet2",45,0,30,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_Jump(128, "Comets")
		Goto See
	ShadowBulletHell:
        TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0,0)
		ORIA H 3 A_FaceTarget
		ORIA I 3 A_FaceTarget
		ORIA J 3 A_FaceTarget
		ORIA JJJJJJJJJ 3 A_FaceTarget 
		TNT1 A 0 A_CustomMissile("ShadowBulletHell1",30,0,0,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
        Goto See		
	QuickComet:
	    ORIA JJJJJJJJJ 4 A_FaceTarget
 	    TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,-10,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,-20,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,-30,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,0,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,10,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,20,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		ORIA G 8 A_CustomMissile("PArchonComet2",45,0,30,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_ChangeFlag("NOPAIN",0)
		TNT1 A 0 A_ChangeFlag("Float",1)
		TNT1 A 0 A_Jump(128, "Comets")
		Goto See
	QuickComet2:
        ORIA JJJJJJJJJ 4 A_FaceTarget
 	    TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,-10,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,-20,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,-30,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,0,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,10,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("PArchonComet2",45,0,20,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		ORIA G 8 A_CustomMissile("PArchonComet2",45,0,30,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_Jump(128, "Comets")
		Goto See	
	Summoning:
        TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0)
        TNT1 A 0 A_ChangeFlag("NOPAIN",1)
		TNT1 A 0 A_ChangeFlag("Float",0)
		ORIA H 3 A_FaceTarget
		ORIA I 3 A_FaceTarget
		TNT1 A 0 A_JumpifInventory("OrinTokens",4,"QuickComet")
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItemEx("OrinMinionPortal",0,-50,10,0,0,0,0,SXF_SETMASTER|32)
		ORIA JJJJJJJJJ 5 A_FaceTarget
		TNT1 A 0 A_GiveInventory("OrinTokens",1)
		TNT1 A 0 A_UnSetInvulnerable
        TNT1 A 0 A_ChangeFlag("NOPAIN",0)
		TNT1 A 0 A_ChangeFlag("Float",1)
        Goto See
    Summoning2:
        TNT1 A 0 A_SpawnItem("PRedeYSmokeSpawner",0,0,0)
		TNT1 A 0 A_ChangeFlag("Float",0)
		ORIA H 3 A_FaceTarget
		ORIA I 3 A_FaceTarget
		TNT1 A 0 A_JumpifInventory("OrinTokens",4,"QuickComet2")
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItemEx("OrinMinionPortal",0,50,10,0,0,0,0,SXF_SETMASTER|32)
		TNT1 A 0 A_SpawnItemEx("OrinMinionPortal",0,-50,10,0,0,0,0,SXF_SETMASTER|32)
		ORIA JJJJJJJJJ 5 A_FaceTarget
		TNT1 A 0 A_GiveInventory("OrinTokens",2)
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_ChangeFlag("Float",1)
		Goto See
	CorpseHunter:
	    TNT1 A 0 A_SetTranslucent(1,0)
	    TNT1 A 0 A_SpawnItemEx("SoulSkullEffectThing",0,0,70)
		ORIA JJJJJJJJJ 6
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,0,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,20,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,40,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,60,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,80,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,100,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,120,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,140,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,160,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,180,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,200,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,220,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,240,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,260,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,280,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,300,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,320,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,340,0)
		TNT1 A 0 A_CustomMissile("LegVileResRadius",10,0,360,0)
	    Goto See
	Pain:
	    ORIN G 10 A_Pain
		TNT1 A 0 A_Jump(70,"Teleport")
		Goto See
	Death:
	    TNT1 A 0 A_SetTranslucent(1,0)
		TNT1 A 0 A_NoBlocking
		TNT1 A 0 A_ChangeFlag("LOWGRAVITY",1)
		TNT1 A 0 A_ChangeFlag("NOGRAVITY",0)
		TNT1 A 0 A_ChangeFlag("FLOAT",0)
		ORIN G 3 A_scream
		ORIN G 5 A_SpawnItemEx ("Edgy2huBossDeathFlame", 0, 0, 0, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
		ORIN HIHIHI 5 A_SpawnItemEx ("Edgy2huBossDeathFlame", 0, 0, 0, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
		TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",Random(10,-10),Random(10,-10),Random(20,60),0,0,0,0,128,0)
		TNT1 AAA 0 A_CustomMissile("BigRedBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
		TNT1 AAAAAAAAAAA 0 A_SpawnItemEx ("Edgy2huBossDeathFlame", 0, 0, 0, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
		TNT1 AAAAAAAAAAA 0 A_CustomMissile("Edgy2huBossDeathFlame3", random(5, 55), 0, random(0,360), CMF_AIMDIRECTION, frandom(-40, 70))
		Stop
	}
}

ACTOR ShadowSkullAttack : PhaseBaronBall
{
    Speed 18
	Damage 15
	seesound "Soul/Fire"
	deathsound "Soul/Hit"
	States
	{
	Spawn:
		PRIB ABC 2 Bright A_SeekerMissile(3,9)
		TNT1 A 0 A_CustomMissile("ShadowSkullTrail",0,0,0)
		Loop
	Death:
        PRIB DEFGHIJK 4 Bright
		PRIB L 1 Bright
		TNT1 A -1
		Stop
    }
}

Actor ShadowSkullTrail : ImpballTrail
{
	Projectile
	+NOCLIP
	Damage 0
	RenderStyle Add
	Alpha 0.45
	Scale 0.9
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 2
		PRBT ABCD 1
		PRBT ABCD 1 A_FadeOut(0.2)
		Wait
	}
}

ACTOR PORinTeleportEffect : BaseProjectileEffect
{
  Scale 1.0
  States
  {
  Spawn:
	PRTL ABCDEFGHI 1 Bright
	PRTL J 8 Bright
	PRTL IHGFEDCBA 1 Bright A_FadeOut(0.1)
    Stop
  }
}

Actor OrinTokens : Inventory
{
	Inventory.MaxAmount 4
}

Actor OrinMinionPortal : LegRedPortal
{
    Scale 0.6
	States
	{
    Spawn:	
	    TNT1 A 0 A_PlaySound("reedemer/charge")
	    LRD6 A 0 bright 
	Doing:
        LRD6 AAAA 10 bright
        TNT1 A 0 A_SpawnItemEx("TeleportFog",0,0,12)
	    TNT1 A 0 A_SpawnItemEx("RedSoul",0,0,10,0,0,0,0,SXF_TRANSFERPOINTERS)
        Stop
    Over:
        Stop	
	}
}

Actor SoulSkullEffectThing
{
    Scale 0.6
	RenderStyle "Translucent"
	Alpha 0.6
	+NOGRAVITY
	+NOTIMEFREEZE
	States
	{
	Spawn:
		SIBA AAABAAA 4 A_SetAngle(15+angle)
	Death:
	    SIGH BCDEFG 4
        TNT1 A -1		
		Stop
	}
}

Actor ShadowBulletHell1 : LegAvaBall1
{
    Species "Touhou"
    RenderStyle Translucent
    Scale 2.2
	States
	{
	Spawn:
		PRB2 ABC 1 Bright A_Explode(64,64,0)
		loop
	Death:
		PRB2 C 5 Bright
		PRB2 C 0 Bright A_CustomMissile("ShadowBulletHell2",10,0,0,2)
		PRB2 C 0 Bright A_CustomMissile("ShadowBulletHell2",10,0,60,2)
		PRB2 C 0 Bright A_CustomMissile("ShadowBulletHell2",10,0,120,2)
		PRB2 C 0 Bright A_CustomMissile("ShadowBulletHell2",10,0,180,2)
		PRB2 C 0 Bright A_CustomMissile("ShadowBulletHell2",10,0,240,2)
		PRB2 C 0 Bright A_CustomMissile("ShadowBulletHell2",10,0,300,2)
		PRB2 C 0 Bright A_CustomMissile("ShadowBulletHell2",10,0,320,2)
		PRB2 C 0 Bright A_CustomMissile("ShadowBulletHell2",10,0,340,2)
		PRB2 DFG 5 Bright A_Explode(128,128,0)
		stop
	}
}

Actor ShadowBulletHell2 : LegAvaBall2
{
    Species "Touhou"
	+DONTHARMSPECIES
    RenderStyle Translucent
	Alpha 0.5
	Scale 0.5
	States
	{
	Spawn:
		MSTR G 1 Bright
	    loop
	Death:
		MSTR G 4 Bright A_Explode
		MSTR G 0 Bright A_CustomMissile("ShadowBulletHell3",10,0,0,2)
		MSTR G 0 Bright A_CustomMissile("ShadowBulletHell3",10,0,60,2)
		MSTR G 0 Bright A_CustomMissile("ShadowBulletHell3",10,0,120,2)
		MSTR G 0 Bright A_CustomMissile("ShadowBulletHell3",10,0,180,2)
		MSTR G 0 Bright A_CustomMissile("ShadowBulletHell3",10,0,240,2)
		MSTR G 0 Bright A_CustomMissile("ShadowBulletHell3",10,0,300,2)
		MSTR G 4 bright
		stop
	}
}

Actor ShadowBulletHell3 : LegAvaBall3
{
    Species "Touhou"
	+DONTHARMSPECIES
    RenderStyle Translucent
	Scale 0.3
	Alpha 0.5
	States
	{
	Spawn:
		MSTR G 1 Bright
		loop
	Death:
		MSTR G 4 Bright A_Explode
		MSTR G 0 Bright A_CustomMissile("ShadowBulletHell4",10,0,0,2)
        MSTR G 0 Bright A_CustomMissile("ShadowBulletHell4",10,0,60,2)
        MSTR G 0 Bright A_CustomMissile("ShadowBulletHell4",10,0,120,2)
        MSTR G 0 Bright A_CustomMissile("ShadowBulletHell4",10,0,180,2)
        MSTR G 0 Bright A_CustomMissile("ShadowBulletHell4",10,0,240,2)
        MSTR G 0 Bright A_CustomMissile("ShadowBulletHell4",10,0,300,2)
        MSTR G 4 bright
        stop
	}
}

Actor ShadowBulletHell4 : LegAvaBall4
{
    Species "Touhou"
	+DONTHARMSPECIES
    RenderStyle Translucent
	Scale 0.15
	Alpha 0.5
	States
	{
	Spawn:
		MSTR G 1 Bright
		loop
	Death:
		MSTR G 3 Bright A_Explode
		MSTR G 3 Bright
		stop
	}
}
