//Form 2: Undead/Vexed Shinki
ACTOR MakaiSlut
{
//Enemy Name: Shinki
//Monster Tier: Archvile
//Enemy Tier: Legendary (Touhou)
//Difficulty: Difficult (7/10)
//Music: Legendary Illusion - Infinite Being (Touhou 5 - Mystic Square)
  floatspeed 8
  Speed 8
  MONSTER
  Health 5000
  Radius 20
  Height 62
  Scale 0.7
  MinMissileChance 3000
  Mass 0x7FFFFFFF
  MeleeThreshold 35
  MeleeRange 65
  Species "Touhou"
  damagefactor "Touhou", 0.0
  +LOOKALLAROUND
  +FLOORCLIP
  +BOSS
  +NOBLOOD
  +Dontfall
  +nogravity
  +float
  +Neverfast
  +Missilemore
  +Missileevenmore
  +COUNTKILL
  +Dontmorph
  +NORADIUSDMG
  +NOBLOOD
  +DONTHURTSPECIES
  +NOICEDEATH
  Painchance 15
  Seesound ""
  painsound "touhou/pain"
  deathsound "touhou/rekt"
 DamageFactor "PDTBFG", 0.05
 DamageFactor "PDTBFGTracer", 0.05
 DamageFactor "Legendary", 0.0
 DamageFactor "LegendaryGuru", 0.0
 DamageFactor "LegendaryGuruPlayer", 0.0
 DamageFactor "LegendaryPlayer", 0.0
 DamageFactor "PlayerBHole", 0.0
 DamageFactor "BFGSplash", 0.25
 DamageFactor "BFGSpray", 0.25
 DamageFactor "PlayerDevBall", 0.025
 DamageFactor "PlayerDevBall2", 0.025
 DamageFactor "PlayerDTBFGRailgunSlug", 0.025
 DamageFactor "PlayerDevTracer", 0.025
 DamageFactor "PlayerDTRG", 0.2
 DamageFactor "SuperWeapon", 0.0
 DamageFactor "Extreme", 0.0
 DamageFactor "SatanGuard", 0.1
 DamageFactor "AbyssalSatyr", 0.1
 DamageFactor "Moloch", 0.1
 DamageFactor "Exos", 0.2
 DamageFactor "ZombieDev", 0.1
 DamageFactor "Terminator", 0.1
 DamageFactor "AdvancedImp", 0.1
 DamageFactor "Legendary1", 0.1
 DamageFactor "LegendaryGuru", 0.1
 DamageFactor "UltimateLegendary", 0.0
 DamageFactor "Nobles", 0.1
 DamageFactor "VileFires", 0.1
 DamageFactor "Shadow", 0.1
 DamageFactor "DarkBruiserBFG10K", 0.1
 DamageFactor "Cybers", 0.1
 DamageFactor "Hell", 0.1
 DamageFactor "Commander", 0.1
 DamageFactor "Baby15K", 0.1
 DamageFactor "Cyber10K", 0.1
 DamageFactor "DemolisherEx", 0.1
 DamageFactor "DarkDemoEx", 0.1
 DamageFactor "CerChainguns", 0.1
 DamageFactor "CerEnergyBall", 0.1
 DamageFactor "LegMind", 0.1
 DamageFactor "BeheComet", 0.1
 DamageFactor "UBDTR", 0.1
 DamageFactor "NobleComet", 0.1
 DamageFactor "CacoComet", 0.1
 DamageFactor "SoulToxic", 0.1
 DamageFactor "Cacolich", 0.1
 DamageFactor "CadaverRocket", 0.1
 DamageFactor "HellComet", 0.1
 DamageFactor "HFCyber", 0.1
 DamageFactor "DBFG2", 0.1
 DamageFactor "DBFG10K2", 0.1
 DamageFactor "DBFGSplash2", 0.1
 Damagefactor 0.5
 damagefactor "Terminator", 0.01
 damagefactor "T3rm", 0.01
 damagefactor "Term", 0.1
 damagefactor "Makai", 0.0
 DropItem "BossLifeEssence" 255 25
 DropItem "BossArmorBonusMax" 255 1
 DropItem "DemonicChalice" 128
 DropItem "SkullOfPower" 128
 DropItem "PainLordSoul" 128
 DropItem "PainLordSoul" 128
 dropitem "Shirosphere", 64
 dropitem "HellStaff" 64
 dropitem "FantasyStaff" 16
 DropItem "RingOfRegeneration" 30
 Obituary "%o got %p ass handed to %h and fried by the goddess of Makai, Shinki Margatroid!"
 tag "$NEMakai"
 var int user_music;
 var int user_angle;
 var int user_delay;
 var int user_RANDOMFIREEVERYWHERE;
 var int user_lowlag;
 var int user_loop;
 var int user_loop2;
  States
  {
  Spawn:
	MYST A 0
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetCVar",11) == 1, "BegoneThot")
	TNT1 A 0 ACS_NamedExecuteAlways("WimpyMode",0,2)
	TNT1 A 0 ACS_NamedExecuteAlways("ModifyMonster",0,2,1)
	TNT1 A 0 A_SetInvulnerable
	TNT1 A 0 A_ChangeFlag("NODAMAGE",1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
  SpawnLoop:
	MYST ABCDEFGHIJ 3 A_LookEX(LOF_FULLVOLSEESOUND,0,0,0,360,"See")
	Loop
  BegoneThot:
	TNT1 A 0 A_SpawnItemEx("Archvile",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_PlaySound("touhou/sight",7,1.0,0,ATTN_NONE)
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_ChangeFlag("NODAMAGE",0)
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
  See2:
	TNT1 A 0 A_JumpIf(user_lowlag == 1,"MoreSee")
	TNT1 A 0 A_JumpIfTargetInLOS("MoreSee",0,0,0,0)
	MYST ABCDEFGHIJ 3 A_Chase
	Loop
  MoreSee:
	TNT1 A 0 A_SetUserVar("user_lowlag",1)
	TNT1 A 0 A_JumpIf(user_music == 1,3)
	TNT1 A 0 ACS_NamedExecuteAlways("CFMusic",0,815)
	TNT1 A 0 A_SetUserVar("user_music",1)
	MYST ABCDEFGHIJ 3 A_Chase
	Loop
  Pain:
	TNT1 A 0 A_StopSound(7)
	MYST K 10 A_Pain
	Goto MoreSee
  Melee:
  Missile:
	MYST A 0 A_facetarget
	TNT1 A 0 ACS_NamedExecuteWithResult("ttkShinki",1)
	MYST A 1
	Wait
  SummonAllies:
	TNT1 A 0 A_GiveInventory("BossProtectionTierIII",1) //A_SetInvulnerable
	TNT1 A 0 ACS_NamedExecuteAlways("BossResistanceBuff")
	MYS2 ABCD 5
	TNT1 A 0 A_SpawnItemEx("ShinkiEnemySpawner",0,0,20,30,0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("ShinkiEnemySpawner",0,0,20,30,0,0,90,0)
	TNT1 A 0 A_SpawnItemEx("ShinkiEnemySpawner",0,0,20,30,0,0,180,0)
	TNT1 A 0 A_SpawnItemEx("ShinkiEnemySpawner",0,0,20,30,0,0,270,0)
	MYS2 E 35
	MYS2 F 5
	TNT1 A 0 ACS_NamedExecuteAlways("TakeResistance") //A_UnSetInvulnerable
	TNT1 A 0 ACS_NamedExecuteWithResult("ttkShinki",0)
	MYST A 1
	Wait
  Attack1:
	MYS2 GHI 7 A_Facetarget
	MYS2 JK 3 A_FaceTarget
	TNT1 A 0 A_SetUserVar("user_loop",0)
  Attack1Loop:
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall",30,0,0)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall",30,0,10)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall",30,0,-10)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall",30,0,15)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall",30,0,5)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall",30,0,-5)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall",30,0,-15)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall",30,0,-20)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall",30,0,2)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall",30,0,-2)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall",30,0,3)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall",30,0,-3)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall",30,0,4)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall",30,0,-5)
	MYS2 JKJK 3 A_FaceTarget
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+1)
	TNT1 A 0 A_JumpIf(user_loop < 4,"Attack1Loop")
	MYS2 O 0 A_Playsound("remishot",0)
	TNT1 A 0 A_SetUserVar("user_loop",0)
  Attack1Loop2:
	MYS2 O 0 A_CustomMissile("ShinkiDIBall",30,0,user_loop)
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+5)
	TNT1 A 0 A_JumpIf(user_loop < 360,"Attack1Loop2")
	MYS2 O 1 A_SetUserVar("user_loop",0)
	Goto MoreSee
  Attack2:
	TNT1 A 0 A_GiveInventory("BossProtectionTierIII",1) //A_SetInvulnerable
	TNT1 A 0 ACS_NamedExecuteAlways("BossResistanceBuff")
	MYS2 LPM 7 A_Facetarget
	MYS2 NO 3 A_FaceTarget
	TNT1 A 0 A_SetUserVar("user_loop",0)
  Attack2Loop:
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiSkullShot",30,23,10)
	MYS2 O 0 A_CustomMissile("ShinkiSkullShot",30,23,30)
	MYS2 O 0 A_CustomMissile("ShinkiSkullShot",30,-23,-30)
	MYS2 O 4 A_CustomMissile("ShinkiSkullShot",30,-23,-10)
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiSkullShot",30,23,10)
	MYS2 O 4 A_CustomMissile("ShinkiSkullShot",30,-23,-10)
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiSkullShot",30,23,10)
	MYS2 O 0 A_CustomMissile("ShinkiSkullShot",30,-23,-10)
	MYS2 E 4 A_SetUserVar("user_loop",user_loop+1)
	TNT1 A 0 A_JumpIf(user_loop < 6,"Attack2Loop")
	MYS2 L 5
	MYS2 L 5 A_SetUserVar("user_loop",0)
	TNT1 A 0 ACS_NamedExecuteAlways("TakeResistance") //A_UnSetInvulnerable
	Goto MoreSee
  Attack3:
	MYS2 ABCD 3 A_FaceTarget
	TNT1 A 0 A_SetUserVar("user_loop",0)
  Attack3Loop:
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,0)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,40)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,60)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,80)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,100)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,120)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,140)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,160)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,180)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,200)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,220)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,240)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,260)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,280)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,300)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,320)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,340)
	MYS2 E 10 A_SetUserVar("user_loop",user_loop+1)
	TNT1 A 0 A_JumpIf(user_loop < 2,"Attack3Loop")
	MYS2 F 5
	MYS2 F 5 A_SetUserVar("user_loop",0)
	Goto MoreSee
  Attack4:
	MYS2 GHI 7 A_Facetarget
	MYS2 JK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel",30,0,-20)
	MYS2 JKJK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel",30,0,40)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel",30,0,0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel",30,0,-20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel",30,0,-40)
	MYS2 JK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel",30,0,-20)
	MYS2 JKJK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,0)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,40)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,60)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,80)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,100)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,120)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,140)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,160)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,180)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,200)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,220)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,240)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,260)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,280)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,300)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,320)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,340)
	MYS2 JK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel",30,0,-20)
	MYS2 JKJK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel",30,0,0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel",30,0,-20)
	MYS2 L 3
	Goto MoreSee
  Attack5:
	TNT1 A 0 A_GiveInventory("BossProtectionTierIII",1) //A_SetInvulnerable
	TNT1 A 0 ACS_NamedExecuteAlways("BossResistanceBuff")
	MYS2 ABC 5 A_Facetarget
	MYS2 DE 7 A_FaceTarget
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,0)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,45)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,90)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,135)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,180)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,225)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,270)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,315)
	MYS2 E 35 A_FaceTarget
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,22.5)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,67.5)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,112.5)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,157.5)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,-22.5)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,-67.5)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,-112.5)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,-157.5)
	MYS2 F 5 A_FaceTarget
	TNT1 A 0 ACS_NamedExecuteAlways("TakeResistance") //A_UnSetInvulnerable
	Goto MoreSee
  Attack6:
	MYS2 ABCD 3 A_FaceTarget
	TNT1 A 0 A_SetUserVar("user_loop",0)
  Attack6Loop:
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,random(-20,20),CMF_ABSOLUTEANGLE)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,random(-20,20),CMF_ABSOLUTEANGLE)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,random(70,110),CMF_ABSOLUTEANGLE)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,random(70,110),CMF_ABSOLUTEANGLE)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,random(-110,-70),CMF_ABSOLUTEANGLE)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,random(-110,-70),CMF_ABSOLUTEANGLE)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,random(160,200),CMF_ABSOLUTEANGLE)
	MYS2 O 0 A_CustomMissile("ShinkiOrb",30,0,random(160,200),CMF_ABSOLUTEANGLE)
	MYS2 E 5 A_SetUserVar("user_loop",user_loop+1)
	TNT1 A 0 A_JumpIf(user_loop < 5,"Attack6Loop")
	MYS2 F 3
	MYS2 F 3 A_SetUserVar("user_loop",0)
	Goto MoreSee
  Attack7:
	TNT1 A 0 A_GiveInventory("BossProtectionTierIII",1) //A_SetInvulnerable
	TNT1 A 0 ACS_NamedExecuteAlways("BossResistanceBuff")
	MYS2 LPMN 5 A_FaceTarget
	MYS2 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 1 A_CustomMissile("LegendaryProjectile",30,0,random(-4,4),0,random(-4,4))
	MYS2 L 5 ACS_NamedExecuteAlways("TakeResistance") //A_UnSetInvulnerable
	Goto MoreSee
  Death:
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetCVar",53) == 1,"Death2")
	MYST M 70 A_PlaySound("uroboros/death",6,1.0,0,ATTN_NONE)
	TNT1 A 0 A_NoBlocking
	TNT1 A 0 A_Explode(256,256,0)
	MYST K 0 A_Scream
	TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("Red2huBossDeathFlame", Random(-8,8), Random(-8,8), Random(12,80), Random(8,38), 0, Random(3,43), Random(-180,180))
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("2huBossDeathFlame", Random(-8,8), Random(-8,8), Random(12,80), Random(8,38), 0, Random(3,43), Random(-180,180))
	TNT1 A 175
	TNT1 A 1 A_Jump(50,"Phase2")
	Stop
  Death2:
	MYST M 70 A_PlaySound("uroboros/death",6,1.0,0,ATTN_NONE)
	TNT1 A 0 A_NoBlocking
	TNT1 A 0 A_Explode(256,256,0)
	MYST K 0 A_Scream
	TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("Red2huBossDeathFlame", Random(-8,8), Random(-8,8), Random(12,80), Random(8,38), 0, Random(3,43), Random(-180,180))
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("2huBossDeathFlame", Random(-8,8), Random(-8,8), Random(12,80), Random(8,38), 0, Random(3,43), Random(-180,180))
	TNT1 A 175
	TNT1 A 1 A_Jump(128,"Phase2") //HDAN - Increases respawn chance from 25% to 50%
	Stop
  Phase2:
	//TNT1 A 0 ACS_NamedExecuteAlways("ShinkiTurnsIntoPhase2",0)
	TNT1 A 0 A_PlaySoundEx("brain/spit","Voice",0,2)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 A_GiveInventory("NemesisSoulEvent",1)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 A_GiveInventory("NemesisSoulEvent",1)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 A_GiveInventory("NemesisSoulEvent",1)
	TNT1 A 0 A_SpawnItemEx("NemesisLightning")
	MYS4 EEEEEEEEEEEE 2 Bright A_SpawnItemEx("VexedNemesisFlameSpawner")
	MYS4 F 10
	TNT1 A 0 A_SpawnItemEx("UndeadMakaiSlut",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 A 0
	Stop
  }
}

ACTOR UndeadMakaiSlut : MakaiSlut
{
//Enemy Name: Undead Shinki
//Monster Tier: Archvile
//Enemy Tier: Nemesis (Touhou)
//Difficulty: No Hopes (10/10)
//Music: Zatsuza -secret- (DoDonPachi DaiFukkatsu Black Label)
 floatspeed 14
 Speed 14
 Health 15000
 Mass 0x7FFFFFFF
 +ALWAYSFAST
 damagefactor 0.3
 dropitem "NemesisUltraSphere", 256
 dropitem "NemesisShirosphere", 256
 dropitem "LegendaryRune", 128
 dropitem "LegendaryRune", 128
 DropItem "DemonicChalice", 256
 DropItem "DemonicChalice", 64
 DropItem "SkullOfPower", 256
 DropItem "SkullOfPower", 64
 DropItem "RingOfRegeneration", 64
 DropItem "OccultSpellbook", 200
 DropItem "LegendaryTimeFreezeSphere", 128, 3
 DropItem "EnragedLegendaryPowerShard", 35, 1
 DropItem "NemesisArmor", 128, 1
 DropItem "LegendaryAmmoSphere", 88, 3
 dropitem "Nemesis", 16, 1
 Obituary "%o's soul was sent to the darkness by the undead resurrection of Shinki."
 Tag "$NEUnMakai"
 seesound ""
 var int user_fading;
 States
  {
  Spawn:
	MYS3 A 0
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetCVar",11) == 1, "BegoneThot")
	TNT1 A 0 ACS_NamedExecuteAlways("WimpyMode",0,2)
	TNT1 A 0 ACS_NamedExecuteAlways("ModifyMonster",0,2,1)
	TNT1 A 0 A_SetInvulnerable
	TNT1 A 0 A_ChangeFlag("NODAMAGE",1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
  SpawnLoop:
	MYS3 ABCDEFGHIJ 3 A_LookEX(LOF_FULLVOLSEESOUND,0,0,0,360,"Prepare")
	Loop
  BegoneThot:
	TNT1 A 0 A_SpawnItemEx("Archvile",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_ChangeFlag("COUNTKILL", FALSE)
	TNT1 A 0
	Stop
  Prepare:
	TNT1 A 0 A_PlaySound("touhou/sight",7,1.0,0,ATTN_NONE)
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_ChangeFlag("NODAMAGE",0)
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	TNT1 A 0 A_JumpIf(user_music == 1,3)
	TNT1 A 0 ACS_NamedExecuteAlways("CFMusic",0,816)
	TNT1 A 0 A_SetUserVar("user_music",1)
  See:
	MYS3 ABCDEFGHIJ 3 A_Chase
	Loop
  Teleport:
	MYS4 A 2 Bright ACS_NamedExecuteWithResult("ttk_fader",10,3)
	TNT1 A 0 A_PlaySound("MReimu/TeleportOut",7)
	TNT1 A 0 A_SpawnItemEx("MReimuTeleportEffect",0,0,40)
	MYS4 AABBCCDDEE 1
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 A 0 A_PlaySound("MReimu/TeleportIn",7)
	TNT1 A 0 A_SpawnItemEx("MReimuTeleportEffect",0,0,40)
	MYS4 EEEEEEEEEF 1
	MYS3 F 1 Bright
	TNT1 A 0 A_Jump(64,"Teleport")
	Goto See
  Pain:
	MYS3 K 10 A_Pain
	Goto See
  Melee:
	MYST A 1 A_facetarget
  Missile:
	TNT1 A 0 A_Jump(32,"Teleport")
	MYST A 1 A_Jump(32,"SummonAllies")
	MYST A 0 A_Jump(256,"Attack1", "Attack2","Attack3","Attack4","Attack5","Attack6","Attack7")
	Goto See
  SummonAllies:
	TNT1 A 0 A_GiveInventory("BossProtectionTierIII",1) //A_SetInvulnerable
	TNT1 A 0 ACS_NamedExecuteAlways("BossResistanceBuff")
	MYS4 ABCD 5
	TNT1 A 0 A_SpawnItemEx("ShinkiEnemySpawner",0,0,20,30,0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("ShinkiEnemySpawner",0,0,20,30,0,0,90,0)
	TNT1 A 0 A_SpawnItemEx("ShinkiEnemySpawner",0,0,20,30,0,0,180,0)
	TNT1 A 0 A_SpawnItemEx("ShinkiEnemySpawner",0,0,20,30,0,0,270,0)
	MYS4 E 10
	TNT1 A 0 ACS_NamedExecuteAlways("TakeResistance") //A_UnSetInvulnerable
	goto Missile
  Attack1:
	MYS4 GHI 7 A_Facetarget
	MYS4 JK 3 A_FaceTarget
	TNT1 A 0 A_SetUserVar("user_loop",0)
  Attack1Loop:
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall2",30,0,0)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall2",30,0,10)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall2",30,0,-10)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall2",30,0,15)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall2",30,0,5)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall2",30,0,-5)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall2",30,0,-15)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall2",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall2",30,0,-20)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall2",30,0,2)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall2",30,0,-2)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall2",30,0,3)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall2",30,0,-3)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall2",30,0,4)
	MYS2 O 0 A_CustomMissile("ShinkiDIBall2",30,0,-5)
	MYS4 JK 3 A_FaceTarget
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+1)
	TNT1 A 0 A_JumpIf(user_loop < 4,"Attack1Loop")
	MYS2 O 0 A_Playsound("remishot",0)
	TNT1 A 0 A_SetUserVar("user_loop",0)
  Attack1Loop2:
	MYS2 O 0 A_CustomMissile("ShinkiDIBall2",30,0,user_loop)
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+5)
	TNT1 A 0 A_JumpIf(user_loop < 360,"Attack1Loop2")
	MYS2 O 0 A_Playsound("remishot",0)
	TNT1 A 0 A_SetUserVar("user_loop",0)
	MYS4 JK 3 A_FaceTarget
	TNT1 A 0 A_SetUserVar("user_loop2",user_loop2+1)
	TNT1 A 0 A_JumpIf(user_loop2 < 2,"Attack1Loop")
	MYS4 L 3 A_SetUserVar("user_loop2",0)
	Goto See
  Attack2:
	TNT1 A 0 A_GiveInventory("BossProtectionTierIII",1) //A_SetInvulnerable
	TNT1 A 0 ACS_NamedExecuteAlways("BossResistanceBuff")
	MYS4 LPM 7 A_Facetarget
	MYS4 NO 3 A_FaceTarget
	MYS4 O 0 A_SetUserVar("user_loop",0)
  Attack2Loop:
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiSkullShot2",30,23,10)
	MYS2 O 0 A_CustomMissile("ShinkiSkullShot2",30,23,30)
	MYS2 O 0 A_CustomMissile("ShinkiSkullShot2",30,-23,-30)
	MYS4 O 2 A_CustomMissile("ShinkiSkullShot2",30,-23,-10)
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiSkullShot2",30,23,10)
	MYS4 O 2 A_CustomMissile("ShinkiSkullShot2",30,-23,-10)
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiSkullShot2",30,23,10)
	MYS4 O 2 A_CustomMissile("ShinkiSkullShot2",30,-23,-10)
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+1)
	TNT1 A 0 A_JumpIf(user_loop < 9,"Attack2Loop")
	MYS4 L 5 A_FaceTarget
	MYS4 L 5 A_SetUserVar("user_loop",0)
	TNT1 A 0 ACS_NamedExecuteAlways("TakeResistance") //A_UnSetInvulnerable
	Goto See
  Attack3:
	MYS4 ABCD 3 A_FaceTarget
	TNT1 A 0 A_SetUserVar("user_loop",0)
  Attack3Loop:
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,0)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,40)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,60)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,80)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,100)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,120)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,140)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,160)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,180)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,200)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,220)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,240)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,260)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,280)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,300)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,320)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,340)
	MYS4 E 5 A_FaceTarget
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+1)
	TNT1 A 0 A_JumpIf(user_loop < 4,"Attack3Loop")
	MYS4 E 5 A_FaceTarget
	MYS4 F 5 A_SetUserVar("user_loop",0)
	Goto See
  Attack4:
	MYS4 GHI 7 A_Facetarget
	MYS4 JK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,-20)
	MYS4 JK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,40)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,-20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,-40)
	MYS4 JK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,-20)
	MYS4 JK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,0)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,40)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,60)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,80)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,100)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,120)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,140)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,160)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,180)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,200)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,220)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,240)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,260)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,280)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,300)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,320)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,340)
	MYS4 JK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,-20)
	MYS4 JK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,-20)
	MYS4 JK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,-20)
	MYS4 JK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,40)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,-20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,-40)
	MYS4 JK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,-20)
	MYS4 JK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,0)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,40)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,60)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,80)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,100)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,120)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,140)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,160)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,180)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,200)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,220)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,240)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,260)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,280)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,300)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,320)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,340)
	MYS4 JK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,-20)
	MYS4 JK 3 A_FaceTarget
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,20)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,0)
	MYS2 O 0 A_CustomMissile("ShinkiLightTunnel2",30,0,-20)
	MYS4 L 3
	Goto See
  Attack5:
	TNT1 A 0 A_GiveInventory("BossProtectionTierIII",1) //A_SetInvulnerable
	TNT1 A 0 ACS_NamedExecuteAlways("BossResistanceBuff")
	MYS4 ABC 5 A_Facetarget
	MYS4 DE 7 A_FaceTarget
	MYS4 F 0 A_SetUserVar("user_loop",0)
  Attack5Loop:
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,0)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,22.5)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,45)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,67.5)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,90)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,112.5)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,135)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,157.5)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,180)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,-45)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,-22.5)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,-67.5)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,-112.5)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,-157.5)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,-90)
	MYS2 O 0 A_CustomMissile("UroLaser",30,0,-135)
	MYS4 E 10 A_FaceTarget
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+1)
	TNT1 A 0 A_JumpIf(user_loop < 3,"Attack5Loop")
	MYS4 E 10 A_FaceTarget
	MYS4 F 5 A_SetUserVar("user_loop",0)
	TNT1 A 0 ACS_NamedExecuteAlways("TakeResistance") //A_UnSetInvulnerable
	Goto See
  Attack6:
	MYS4 ABCD 3 A_FaceTarget
	MYS4 A 0 A_SetUserVar("user_loop",0)
  Attack6Loop:
	MYS2 O 0 A_Playsound("remishot",0)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,random(-20,20),CMF_ABSOLUTEANGLE)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,random(-20,20),CMF_ABSOLUTEANGLE)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,random(70,110),CMF_ABSOLUTEANGLE)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,random(70,110),CMF_ABSOLUTEANGLE)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,random(-110,-70),CMF_ABSOLUTEANGLE)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,random(-110,-70),CMF_ABSOLUTEANGLE)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,random(160,200),CMF_ABSOLUTEANGLE)
	MYS2 O 0 A_CustomMissile("ShinkiOrb2",30,0,random(160,200),CMF_ABSOLUTEANGLE)
	MYS4 E 5 A_SetUserVar("user_loop",user_loop+1)
	TNT1 A 0 A_JumpIf(user_loop < 5,"Attack6Loop")
	MYS4 F 3
	MYS4 F 3 A_SetUserVar("user_loop",0)
	Goto See
  Attack7:
	TNT1 A 0 A_GiveInventory("BossProtectionTierIII",1) //A_SetInvulnerable
	TNT1 A 0 ACS_NamedExecuteAlways("BossResistanceBuff")
	MYS4 LPMN 5 A_FaceTarget
	TNT1 A 0 A_PlaySound("MReimu/Cast1")
	TNT1 A 0 A_SpawnItemEx("MReimuCastEffect1")
	TNT1 A 0 A_PlaySound("superlaser",7,1.0,0)
	MYS4 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 3 A_CustomMissile("MReimuLaser",30)
	MYS4 L 5 ACS_NamedExecuteAlways("TakeResistance") //A_UnSetInvulnerable
	Goto See
  Death:
	MYS4 M 70 A_PlaySound("uroboros/death",6,1.0,0,ATTN_NONE) 
	TNT1 A 0 A_NoBlocking
	TNT1 A 0 A_Explode(256,256,0)
	MYST K 0 A_Scream
	UROB M 0 A_Playsound("uroboros/explode",7,1.0,0,ATTN_NONE)
	TNT1 AAA 0 A_SpawnItemEx("Red2huBossDeathFlame",0,0,20,random(-4,4),random(-4,4),random(0,3))
	TNT1 AAA 0 A_SpawnItemEx("Red2huBossDeathFlame3",0,0,20,random(-20,20),random(-20,20),random(0,20))
	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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("2huBossDeathFlame", Random(-8,8), Random(-8,8), Random(12,80), Random(8,38), 0, Random(3,43), Random(-180,180))
	Stop
  }
}

Actor ShinkiEnemySpawner
{
 Height 8
 Radius 25
 Speed 30
 Damage (0)
 +RIPPER
 +BLOODLESSIMPACT
 +NOTIMEFREEZE
 States
 {
  Spawn:
	TNT1 A 5
  Death:
	TNT1 A 0
	TNT1 AAAAAA 0 A_SpawnItemEx("BHellionSmokeSpawner",0,0,0,0,0,0,0,128)
	TNT1 A 2 A_SpawnItemEX("TeleportFog",0,0,0,0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("ShinkiFairySpawner")
	Stop
 }
}

actor ShinkiFairySpawner : RandomSpawner
{
 DropItem "ShinkiFairy1" 256 1
 DropItem "ShinkiFairy2" 256 1
 DropItem "ShinkiFairy3" 256 1
 DropItem "ShinkiFairy4" 256 1
}

ACTOR ShinkiFairy1 31232
{
 //$Category "Touhou Characters"
 floatspeed 8
 Speed 8
 fastspeed 10
 MONSTER
 Health 175
 Radius 24
 Height 56
 MinMissileChance 240
 Mass 200
 MeleeRange 64
 Species "Touhou"
 damagefactor "Touhou", 0.0
 +DONTHURTSPECIES
 +FLOORCLIP
 +DONTFALL
 +NOGRAVITY
 +FLOAT
 +NOICEDEATH
 Painchance 128
 damagefactor 0.5
 Painsound "touhou/pain"
 Deathsound "weapons/plasmax"
 tag "\c[l3]Shinki\c-'s \ckFairy\c-"
 Obituary "%o got wrecked by one of Shinki's fairies."
 HitObituary "%o was punched into oblivion by one of Shinki's fairies!"
 States
 {
  Spawn:
	FAR8 ABCD 3 A_LookEx(0,0,2048,2048)
	Loop
  See:
	FAR8 ABCD 3 A_Chase
	Loop
  Pain:
	FAR8 E 3 A_Pain
	Goto See
  Melee:
	FAR8 A 3
	FAR8 B 2 A_CustomMeleeAttack(69,"touhou/hit","none")
	FAR8 C 2
	Goto See
  Missile:
	FAR8 ABCDAB 4 A_FaceTarget
	FAR8 C 0 A_Playsound("remishot",0)
	FAR8 C 0 A_CustomMissile("ShinkiDIBall",15,0,-30)
	FAR8 C 0 A_CustomMissile("ShinkiDIBall",15,0,30)
	FAR8 C 0 A_CustomMissile("ShinkiDIBall",15,0,-15)
	FAR8 C 0 A_CustomMissile("ShinkiDIBall",15,0,15)
	FAR8 C 4 A_CustomMissile("ShinkiDIBall",15,0,0)
	FAR8 DABCD 4 A_FaceTarget
	Goto See
  Death:
	FAR8 E 3
	FAR8 E 1 A_ScreamAndUnblock
	FAR8 E 1 A_SetTranslucent(0.90)
	FAR8 E 1 A_SetTranslucent(0.80)
	FAR8 E 1 A_SetTranslucent(0.70)
	FAR8 E 1 A_SetTranslucent(0.60)
	FAR8 E 1 A_SetTranslucent(0.50)
	FAR8 E 1 A_SetTranslucent(0.40)
	FAR8 E 1 A_SetTranslucent(0.30)
	FAR8 E 1 A_SetTranslucent(0.20)
	FAR8 E 1 A_SetTranslucent(0.10)
	FAR8 E 1 A_SetTranslucent(0)
	Stop
 }
}

actor ShinkiFairy2 : ShinkiFairy1
{
 Health 300
 tag "\c[l3]Shinki\c-'s \cgFairy\c-"
 States
 {
  Spawn:
	FAR5 ABCD 3 A_LookEx(0,0,2048,2048)
	Loop
  See:
	FAR5 ABCD 3 A_Chase
	Loop
  Pain:
	FAR5 E 3 A_Pain
	Goto See
  Melee:
	FAR5 A 3
	FAR5 B 2 A_CustomMeleeAttack(69,"touhou/hit","none")
	FAR5 C 2
	Goto See
  Missile:
	FAR5 ABCDAB 4 A_FaceTarget
	FAR5 C 0 A_Playsound("remishot",0)
	FAR8 C 0 A_CustomMissile("ShinkiDIBall",15,0,-30)
	FAR8 C 0 A_CustomMissile("ShinkiDIBall",15,0,30)
	FAR8 C 0 A_CustomMissile("ShinkiDIBall",15,0,-15)
	FAR8 C 0 A_CustomMissile("ShinkiDIBall",15,0,15)
	FAR5 C 4 A_CustomMissile("ShinkiDIBall2",15,0,0)
	FAR5 DABCD 4 A_FaceTarget
	Goto See
  Death:
	FAR5 E 3
	FAR5 E 1 A_ScreamAndUnblock
	FAR5 E 1 A_SetTranslucent(0.90)
	FAR5 E 1 A_SetTranslucent(0.80)
	FAR5 E 1 A_SetTranslucent(0.70)
	FAR5 E 1 A_SetTranslucent(0.60)
	FAR5 E 1 A_SetTranslucent(0.50)
	FAR5 E 1 A_SetTranslucent(0.40)
	FAR5 E 1 A_SetTranslucent(0.30)
	FAR5 E 1 A_SetTranslucent(0.20)
	FAR5 E 1 A_SetTranslucent(0.10)
	FAR5 E 1 A_SetTranslucent(0)
	Stop
 }
}

actor ShinkiFairy3 : ShinkiFairy1
{
 Health 500
 +MISSILEMORE
 Tag "\c[l3]Shinki\c-'s \cvFairy\c-"
 States
 {
  Spawn:
	FAR4 ABCD 3 A_LookEx(0,0,2048,2048)
	Loop
  See:
	FAR4 ABCD 3 A_Chase
	Loop
  Pain:
	FAR4 E 3 A_Pain
	Goto See
  Melee:
	FAR4 A 3
	FAR4 B 2 A_CustomMeleeAttack(69,"touhou/hit","none")
	FAR4 C 2
	Goto See
  Missile:
	FAR4 ABCDAB 4 A_FaceTarget
	FAR4 C 0 A_Playsound("remishot",0)
	FAR4 C 0 A_CustomMissile("ShinkiDIBall",15,0,-30)
	FAR4 C 0 A_CustomMissile("ShinkiDIBall2",15,0,-15)
	FAR4 C 0 A_CustomMissile("ShinkiDIBall2",15,0,0)
	FAR4 C 0 A_CustomMissile("ShinkiDIBall2",15,0,15)
	FAR4 C 4 A_CustomMissile("ShinkiDIBall",15,0,30)
	FAR4 DABCD 4 A_FaceTarget
	Goto See
  Death:
	FAR4 E 3
	FAR4 E 1 A_ScreamAndUnblock
	FAR4 E 1 A_SetTranslucent(0.90)
	FAR4 E 1 A_SetTranslucent(0.80)
	FAR4 E 1 A_SetTranslucent(0.70)
	FAR4 E 1 A_SetTranslucent(0.60)
	FAR4 E 1 A_SetTranslucent(0.50)
	FAR4 E 1 A_SetTranslucent(0.40)
	FAR4 E 1 A_SetTranslucent(0.30)
	FAR4 E 1 A_SetTranslucent(0.20)
	FAR4 E 1 A_SetTranslucent(0.10)
	FAR4 E 1 A_SetTranslucent(0)
	Stop
 }
}

actor ShinkiFairy4 : ShinkiFairy1
{
  health 800
  +MISSILEMORE
  +MISSILEEVENMORE
  tag "\c[l3]Shinki\c-'s \cdFairy\c-"
  States
  {
  Spawn:
	FAR7 ABCD 3 A_LookEx(0,0,2048,2048)
	Loop
  See:
	FAR7 ABCD 3 A_Chase
	Loop
  Pain:
	FAR7 E 3 A_Pain
	Goto See
  Melee:
	FAR7 A 3
	FAR7 B 2 A_CustomMeleeAttack(69,"touhou/hit","none")
	FAR7 C 2
	Goto See
  Missile:
	FAR7 ABCDAB 4 A_FaceTarget
	FAR7 C 0 A_Playsound("remishot",0)
	FAR8 C 0 A_CustomMissile("ShinkiDIBall2",15,0,-30)
	FAR8 C 0 A_CustomMissile("ShinkiDIBall2",15,0,30)
	FAR8 C 0 A_CustomMissile("ShinkiDIBall2",15,0,-15)
	FAR8 C 0 A_CustomMissile("ShinkiDIBall2",15,0,15)
	FAR7 C 4 A_CustomMissile("ShinkiDIBall2",15,0,0)
	FAR7 DABCD 4 A_FaceTarget
	Goto See
  Death:
	FAR7 E 3
	FAR7 E 1 A_ScreamAndUnblock
	FAR7 E 1 A_SetTranslucent(0.90)
	FAR7 E 1 A_SetTranslucent(0.80)
	FAR7 E 1 A_SetTranslucent(0.70)
	FAR7 E 1 A_SetTranslucent(0.60)
	FAR7 E 1 A_SetTranslucent(0.50)
	FAR7 E 1 A_SetTranslucent(0.40)
	FAR7 E 1 A_SetTranslucent(0.30)
	FAR7 E 1 A_SetTranslucent(0.20)
	FAR7 E 1 A_SetTranslucent(0.10)
	FAR7 E 1 A_SetTranslucent(0)
	Stop
 }
}

actor ShinkiDIBall : DoomImpBall
{
 Damagetype "Touhou"
 Obituary "%o got %s ass handed to %h and fried by the goddess of Makai, Shinki Margatroid!"
 damage 10
 -RANDOMIZE
 speed 25
}

actor ShinkiDIBall2 : ShinkiDIBall
{
 Speed 40
 Obituary "%o's soul was sent to the darkness by the undead resurrection of Shinki."
 damage 20
 renderstyle subtract
}

ACTOR ShinkiSkullShot
{
  Radius 6
  Height 8
  Speed 60
  Damage 8
  Projectile 
  +SEEKERMISSILE
  +NOTIMEFREEZE
  +EXTREMEDEATH
  RenderStyle Add
  Scale 1.2
  Alpha 0.8
  SeeSound "Soul/Fire"
  DeathSound "Painlord/Explode2"
  Damagetype "Touhou"
  ReactionTime 50
  speed 20
  Obituary "%o got %s ass handed to %h and fried by the goddess of Makai, Shinki Margatroid!"
  States
  {
  Spawn:
	TNT1 A 0 A_SeekerMissile(2,2,SMF_LOOK)
	TNT1 A 0 A_Countdown
	IFX2 AA 1 Bright A_SpawnItemEx("HFCyberFlame",-10)
	Loop
  Death:
	TNT1 A 0 A_Setscale(1.0)
	TNT1 A 0 A_Explode(2,100)
	RVSK ABCDEFGHIJKL 2 Bright A_Explode(1,100)
	Stop
  }
}

actor ShinkiSkullShot2 : ShinkiSkullShot
{
 Speed 50
 Damage 3
 States
 {
  Spawn:
	TNT1 A 0 A_SeekerMissile(4,4,SMF_LOOK)
	TNT1 A 0 A_Countdown
	IFX2 AA 1 Bright A_SpawnItemEx("HFCyberFlame",-10)
	Loop
  Death:
	TNT1 A 0 A_Setscale(1.0)
	TNT1 A 0 A_Explode(6,100)
	RVSK ABCDEFGHIJKL 2 Bright A_Explode(3,100)
	Stop
 }
}

ACTOR ShinkiLightTunnel
{
 PROJECTILE
 Height 5
 Radius 5
 Speed 20
 Scale 1.5
 RenderStyle stencil
 stencilcolor "yellow"
 Decal "DoomImpScorch"
 Damage 4
 +FORCERADIUSDMG
 +NOTIMEFREEZE
 +THRUSPECIES
 +SEEKERMISSILE
 +RIPPER
 DamageType "Touhou"
 DeathSound "weapons/demontechex"
 Obituary "%o got %s ass handed to %h and fried by the goddess of Makai, Shinki Margatroid!"
 var int user_looptime;
 States
 {
  Spawn:
	TNT1 A 0 A_SetUserVar("user_looptime",0)
  TakeFlight:
	TNT1 A 0 A_JumpIf(user_looptime == 360,"Death")
	TNT1 A 0 A_SeekerMissile(2,2,SMF_LOOK,256,1024)
	BAL1 A 1 bright A_SpawnItemEX("ShinkiLightTunnelTracer",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SetUserVar("user_looptime",user_looptime+1)
	loop
  Death:
	TNT1 A 0 A_SpawnItem("YellowProjExplodeLarge")
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("YellowProjParticleSuperLarge",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),random(0,359))
	MISL B 8 bright A_Explode(64,100,1)
	MISL C 6 bright
	MISL D 4 bright
	Stop
 }
}

ACTOR ShinkiLightTunnelTracer : BFG9500Trail
{
 Scale 1.5
 RenderStyle stencil
 stencilcolor "yellow"
 +NOTIMEFREEZE
 States
 {
  Spawn:
	BAL1 AAAAAAAAAA 1 Bright A_Fadeout(0.1,0)
	stop
 }
}

actor ShinkiLightTunnel2 : ShinkiLightTunnel
{
 RenderStyle stencil
 stencilcolor "black"
 Damage 4
 Obituary "%o's soul was sent to the darkness by the undead resurrection of Shinki."
 speed 30
 States
 {
  Spawn:
	TNT1 A 0 A_SetUserVar("user_looptime",0)
  TakeFlight:
	TNT1 A 0 A_JumpIf(user_looptime == 360,"Death")
	TNT1 A 0 A_SeekerMissile(2,2,SMF_LOOK,256,1024)
	BAL1 A 1 bright A_SpawnItemEX("ShinkiLightTunnelTracer2",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	TNT1 A 0 A_SetUserVar("user_looptime",user_looptime+1)
	loop
  Death:
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("DarkPurpleProjParticleSuperLarge",0,0,0,frandom(-2,2),frandom(-2,2),frandom(-2,2),random(0,359))
	MISL B 8 bright A_Explode(64,100,1)
	MISL C 6 bright
	MISL D 4 bright
	Stop
 }
}

ACTOR ShinkiLightTunnelTracer2 : ShinkiLightTunnelTracer
{
 RenderStyle stencil
 stencilcolor "black"
}

ACTOR ShinkiOrb
{
 Radius 9
 Height 12
 Speed 30
 damage 6
 scale 0.75
 Damagetype "Touhou" 
 Species "Touhou"
 Projectile
 +strifedamage
 RenderStyle Add
 SeeSound " "
 DeathSound "Orbpdeath"
 +NOTIMEFREEZE
 States
 {
  Spawn:
	CLBB F 1 Bright A_SpawnItemEX("ShinkiOrbTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	Loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_Explode(40,100)
	TNT1 A 0 A_SpawnItem("YellowProjExplodeLarge")
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("YellowProjParticleSuperLarge",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),random(0,359))
  Fade:
	CLBB F 1 Bright A_FadeOut(0.2)
	Loop
 }
}

ACTOR ShinkiOrbTrail
{
 Scale 0.75
 RenderStyle Add
 Alpha 0.95
 +NOTELEPORT
 +NOGRAVITY
 +NOBLOCKMAP
 +NOTIMEFREEZE
 States
 {
  Spawn:
	CLBB FFFFFFFFFF 1 Bright A_Fadeout(0.1,0)
	stop
 }
}

ACTOR ShinkiOrb2 : ShinkiOrb
{
 Speed 50
 damage 12
 renderstyle "subtract"
 States
 {
  Spawn:
	CLBB F 1 Bright A_SpawnItemEX("ShinkiOrbTrail2",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	Loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_Explode(40,100)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("DarkPurpleProjParticleSuperLarge",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),random(0,359))
  Fade:
	CLBB F 1 Bright A_FadeOut(0.2)
	Loop
 }
}

ACTOR ShinkiDIBallF : ShinkiDIBall {Damagetype "Normal"}

ACTOR ShinkiLightTunnelF : ShinkiLightTunnel {Damagetype "Normal"}

ACTOR ShinkiOrbF : ShinkiOrb {Damagetype "Normal"}

ACTOR ShinkiSkullShotF : ShinkiSkullShot {Damagetype "Normal"}

actor ShinkiDIBall2F : ShinkiDIBall2 {Damagetype "Normal"}

actor ShinkiSkullShot2F : ShinkiSkullShot2 {Damagetype "Normal"}

actor ShinkiLightTunnel2F : ShinkiLightTunnel2 {Damagetype "Normal"}

ACTOR ShinkiOrb2F : ShinkiOrb2 {Damagetype "Normal"}

ACTOR ShinkiOrbTrail2 : ShinkiOrbTrail {Renderstyle "subtract"}

actor UroLaserF
{
 Radius 6
 Speed 100
 Height 6
 damage 5
 Scale 0.6
 RenderStyle Subtract
 Projectile
 +RIPPER
 +strifedamage
 +FORCEXYBILLBOARD
 Seesound "uroboros/laser"
 Missiletype "UroLaserTrail"
 MissileHeight 8
 Damagetype "Player"
 States
 {
  Spawn:
	TNT1 A 0
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("DarkPurpleProjParticleSuperLarge2",0,0,0,frandom(0,6),frandom(-6,6),frandom(-6,6))
	TNT1 A 1 Bright
	Loop
  Death:
	TNT1 A 1 Bright
	Stop
 }
}
