ACTOR MagaReimu : GenericBoss
{
  floatspeed 8
  Speed 8
  Health 10000
  Mass 0x7FFFFFFF
  +NORADIUSDMG
  +NOTIMEFREEZE
  +MISSILEMORE
  +NOTELEFRAG
  +QUICKTORETALIATE
  +DONTRIP
  +NOFEAR
  +NOICEDEATH
  Painchance 10
  MeleeRange 60
  DamageFactor "Melee", 0.05
  DamageFactor "Crush", 0.1
  DamageFactor "Acid", 0.05
  DamageFactor "Ice", 0.0
  DamageFactor "Fire", 0.0
  DamageFactor "Poison", 0.0
  DamageFactor "PoisonCloud", 0.0
  DamageFactor "Electric", 0.001
  DamageFactor "Disintegrate", 0.001
  DamageFactor "DrainLife", 0.0
  DamageFactor "Extreme", 0.0
  DamageFactor "Player", 0.0
  DamageFactor "Players", 0.02
  DamageFactor "PyroShot", 0.0
  DamageFactor "PlayerPyro", 0.0
  DamageFactor "PDTPuff", 0.0
  DamageFactor "Explosion", 0.1
  DamageFactor "NuclearFire", 0.01
  DamageFactor "BFG9500Ball", 0.25
  DamageFactor "BFGSplash", 0.25
  DamageFactor "UpBFG9500Ball", 0.25
  DamageFactor "UpBFGSplash", 0.15
  DamageFactor "PDTBFG", 0.03
  DamageFactor "PDTBFGTracer", 0.03
  DamageFactor "PlayerDevBall", 0.02
  DamageFactor "PlayerDevBall2", 0.02
  DamageFactor "PlayerDevTracer", 0.02
  DamageFactor "PlayerDBFG2", 0.65
  DamageFactor "PlayerDBFG10K2", 0.65
  DamageFactor "PlayerDBFGSplash2", 0.65
  DamageFactor "PlayerBHole", 0.05
  DamageFactor "PlayerNemesisPlasma", 0.01
  DamageFactor "Legendary", 0.015
  DamageFactor "LegendaryPlayer", 0.015
  DamageFactor "PlayerHellfire", 0.1
  DamageFactor "SuperWeapon", 0.0
  DamageFactor "LegendaryGuruPlayer", 0.015
  DamageFactor 0.5
  DamageFactor "SatanGuard", 0.0
  DamageFactor "AbyssalSatyr", 0.0
  DamageFactor "Moloch", 0.0
  DamageFactor "Exos", 0.0
  DamageFactor "ZombieDev", 0.0
  DamageFactor "Terminator", 0.0
  DamageFactor "AdvancedImp", 0.0
  DamageFactor "Legendary1", 0.0
  DamageFactor "LegendaryGuru", 0.0
  DamageFactor "UltimateLegendary", 0.0
  DamageFactor "Nobles", 0.0
  DamageFactor "VileFires", 0.0
  DamageFactor "Shadow", 0.0
  DamageFactor "DarkBruiserBFG10K", 0.0
  DamageFactor "Cybers", 0.0
  DamageFactor "Hell", 0.0
  DamageFactor "Commander", 0.0
  DamageFactor "Baby15K", 0.0
  DamageFactor "Cyber10K", 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 "UBDTR", 0.0
  DamageFactor "NobleComet", 0.0
  DamageFactor "CacoComet", 0.0
  DamageFactor "SoulToxic", 0.0
  DamageFactor "Cacolich", 0.0
  DamageFactor "CadaverRocket", 0.0
  DamageFactor "HellComet", 0.0
  DamageFactor "HFCyber", 0.0
  DamageFactor "DBFG2", 0.0
  DamageFactor "DBFG10K2", 0.0
  DamageFactor "DBFGSplash2", 0.0
  DamageFactor "MagaReimu", 0.0
  DamageFactor "Mainyu", 0.5
  Species "MagaReimu"
  ActiveSound "MReimu/Active"
  DeathSound "MReimu/Death"
  SeeSound "MReimu/Sight"
  Obituary "%o submitted %hself to Maga-Reimu."
  Tag "\c[d7]Maga-Reimu\c-"
  var int user_music;
  var int user_missile;
  var int user_rage;
  var int user_teleloop;
  var int user_summon;
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(ACS_NamedExecuteWithResult("Disable2hu") == 1, "Remove")
  SpawnLoop:
	TNT1 A 0 A_SetInvulnerable
	TNT1 A 0 A_Gravity
	TNT1 A 0 A_ChangeFlag("NODAMAGE",1)
	TNT1 A 0 A_ChangeFlag("FLOAT",0)
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
    MREI I 1 A_LookEx(LOF_FULLVOLSEESOUND,0,0,0,360,"See2")
	Loop
  Remove:
	TNT1 A 1
	TNT1 A 0 A_SpawnItemEx("Cyberdemon",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLEARCALLERTID|SXF_SETMASTER|SXF_TRANSFERPOINTERS|SXF_TRANSFERAMBUSHFLAG)
	TNT1 A 0 A_ChangeFlag("COUNTKILL", FALSE)
	TNT1 A 0
	Stop
  See2:
    MREI IJKL 4
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_NoGravity
	TNT1 A 0 A_ChangeFlag("NODAMAGE",0)
	TNT1 A 0 A_ChangeFlag("FLOAT",1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
    Goto See
  Idle:
	TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Taunt")
  Idle2:
	TNT1 A 0 A_Look
    MREI AAA 1 A_Wander
	TNT1 A 0 A_Look
    MREI BBB 1 A_Wander
	TNT1 A 0 A_Look
    MREI CCC 1 A_Wander
	TNT1 A 0 A_Look
    MREI DDD 1 A_Wander
	TNT1 A 0 A_Look
    MREI EEE 1 A_Wander
	TNT1 A 0 A_Look
    MREI FFF 1 A_Wander
	TNT1 A 0 A_Look
    MREI GGG 1 A_Wander
	TNT1 A 0 A_Look
    MREI HHH 1 A_Wander
	Loop
  Taunt:
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	TNT1 A 0 A_ChangeFlag("NODAMAGE",1)
	MRA1 LMN 3
	TNT1 A 0 A_PlaySound("MReimu/Taunt",2,1.0,0,ATTN_NONE)
	TNT1 A 0 A_TakeInventory("MarineKilled",1)
	MRA1 OPQRQRQRQRQRQRQRQPONML 3
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	TNT1 A 0 A_ChangeFlag("NODAMAGE",0)
	Goto Idle2
  See:
	TNT1 A 0 A_NoGravity
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_ChangeFlag("FLOAT",1)
	TNT1 A 0 A_ChangeFlag("NODAMAGE",0)
	//TNT1 A 0 A_RadiusGive("MainyuHateCheck",6000,RGF_MONSTERS)
	TNT1 A 0 A_JumpIf(user_music == 1,3)
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem2",1,3)
    TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,736)
	TNT1 A 0 A_Jump(256,2)
    TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,711)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_JumpIf(user_rage == 1,"SeeRage")
	TNT1 A 0 A_FadeIn(1.0)
	TNT1 A 0 A_JumpIfHealthLower(3000,"StartRage")
	TNT1 A 0 A_Jump(30,"Teleport","Teleport2")
    MREI AAABBBCCCDDD 1 A_Chase
	TNT1 A 0 A_Jump(30,"Teleport","Teleport2")
	MREI EEEFFFGGGHHH 1 A_Chase
    Loop
  SeeRage:
	TNT1 A 0 A_JumpIf(user_music == 1,3)
    TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,711)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_FadeIn(1.0)
	TNT1 A 0 A_Jump(50,"Teleport","Teleport2")
    MREI AABBCCDD 1 A_Chase
	TNT1 A 0 A_Jump(50,"Teleport","Teleport2")
	MREI EEFFGGHH 1 A_Chase
    Loop
  StartRage:
	TNT1 A 0 A_JumpIf(user_rage == 1,"SeeRage")
	TNT1 A 0 A_SetInvulnerable
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
    MRA1 AB 6
	TNT1 A 0 A_Playsound("MReimu/Rage",4,1.0,0,ATTN_NONE)
	TNT1 A 0 Radius_Quake(8,70,0,100,0)
	TNT1 A 0 ACS_NamedExecuteAlways("MReimuRage",0)
	TNT1 A 0 ACS_NamedExecuteAlways("MReimuRage2",0)
	TNT1 A 0 A_SetUserVar("user_rage",1)
	TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE",1)
	MRA1 JKJKJKJKJKJKJK 6
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	Goto SeeRage
  StartRage.Mainyu:
	TNT1 A 0 A_PlaySound("MReimu/SuperAttack2",5,1.0,0,ATTN_NONE)
	TNT1 A 0 A_SetTranslucent(1.0)
	TNT1 A 0 A_SetShootable
	TNT1 A 0 A_SetInvulnerable
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	TNT1 A 0 Radius_Quake(8,70,0,100,0)
    MRA3 ABCDEFGHIJ 3 A_SpawnItemEx("ELFiendFlameSpawner")
	TNT1 A 0 ACS_NamedExecuteAlways("MReimuRage",0)
	TNT1 A 0 ACS_NamedExecuteAlways("MReimuRage2",0)
	TNT1 A 0 A_SetUserVar("user_rage",1)
	TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE",1)
	MRA4 ABABABAB 2 A_SpawnItemEx("ELFiendFlameSpawner")
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	Goto See
  Teleport:
	MRA2 A 1 Bright A_UnSetShootable
	TNT1 A 0 A_PlaySound("MReimu/TeleportOut",7)
	TNT1 A 0 A_SpawnItemEx("MReimuTeleportEffect",0,0,40)
	//TNT1 AAAAAAAAA 0 A_SpawnItemEx("MReimuSmoke",0,0,32,random(-3,3),random(-3,3),random(-3,3),random(0, 360))
	MRA2 AADDEEFFGG 1 A_FadeOut(0.1,0)
	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)
	//TNT1 AAAAAAAAA 0 A_SpawnItemEx("MReimuSmoke",0,0,32,random(-3,3),random(-3,3),random(-3,3),random(0, 360))
	MRA2 HHFFEEDDAA 1 A_FadeIn(0.1)
	MRA2 A 1 Bright A_SetShootable
	Goto See
  Teleport2Afraid:
	TNT1 A 0 A_ChangeFlag("FRIGHTENED",1)
  Teleport2:
	MRA2 A 1 Bright A_UnSetShootable
	TNT1 A 0 A_PlaySound("MReimu/TeleportOut",7)
	TNT1 A 0 A_SpawnItemEx("MReimuTeleportEffect",0,0,40)
	//TNT1 AAAAAAAAA 0 A_SpawnItemEx("MReimuSmoke",0,0,32,random(-3,3),random(-3,3),random(-3,3),random(0, 360))
	MRA2 AADDEEFFGG 1 A_FadeOut(0.1,0)
	TNT1 A 0 A_SetUserVar("user_teleloop",random(0,100))
  Teleport2Loop:
	TNT1 A 0 A_JumpIf(user_teleloop >= 300,"Teleport2End")	 
	TNT1 A 0 A_SetUserVar("user_teleloop",user_teleloop+1)
	TNT1 AAA 0 A_Chase("Teleport2End","",CHF_NOPLAYACTIVE)
	TNT1 A 1 A_Chase("Teleport2End","",CHF_NOPLAYACTIVE)
	Loop
  Teleport2End:
	TNT1 A 0 A_ChangeFlag("FRIGHTENED",0)
	TNT1 A 0 A_PlaySound("MReimu/TeleportIn",7)
	TNT1 A 0 A_SpawnItemEx("MReimuTeleportEffect",0,0,40)
	//TNT1 AAAAAAAAA 0 A_SpawnItemEx("MReimuSmoke",0,0,32,random(-3,3),random(-3,3),random(-3,3),random(0, 360))
	MRA2 HHFFEEDDAA 1 A_FadeIn(0.1)
	MRA2 A 1 Bright A_SetShootable
	Goto See
  Pain:
	TNT1 A 0 A_Jump(30,"Teleport","Teleport2Afraid")
	TNT1 A 0 A_JumpIfHealthLower(2000,"Pain3")
	TNT1 A 0 A_JumpIfHealthLower(6000,"Pain2")
	TNT1 A 0 A_Playsound("Mreimu/pain1")
	TNT1 A 0 A_Jump(256,"PainFrame1","PainFrame2")
    Goto See
  Pain2:
	TNT1 A 0 A_Playsound("Mreimu/pain2")
	TNT1 A 0 A_Jump(256,"PainFrame1","PainFrame2")
    Goto See
  Pain3:
	TNT1 A 0 A_Playsound("Mreimu/pain3")
	TNT1 A 0 A_Jump(256,"PainFrame1","PainFrame2")
    Goto See
  PainFrame1:
	MREI M 8
    Goto See
  PainFrame2:
	MREI N 8
    Goto See
  CloneSummon:
	TNT1 A 0 A_JumpIf(user_summon >= 1,"MissileContinue")
	TNT1 A 0 A_ChangeFlag("NODAMAGE",1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
    TNT1 A 0 A_PlaySound("MReimu/SuperAttack1",2,1.0,0,ATTN_NONE)
    TNT1 A 0 A_PlaySound("MReimu/Cast2")
	TNT1 A 0 A_SpawnItemEx("MReimuCastEffect1")
	MRA1 LMNOP 4
	TNT1 A 0 A_PlaySound("superlaser",7,1.0,0,0.2)
	MRA1 QRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQR 3 A_CustomMissile("MReimuLaser",30)
    MRA1 SAB 6
	TNT1 A 0 A_Playsound("brain/spit",4,1.0,0,ATTN_NONE)
	TNT1 A 0 Radius_Quake(8,128,0,100,0)
	TNT1 A 0 A_SetUserVar("user_summon",1)
	MRA1 JKJKJKJKJKJKJK 6 A_SpawnItemEx("MReimuCastEffect3",0,0,60)
	TNT1 AAA 0 A_SpawnItemEx("MagaReimuClone",0,0,0,random(1,5),0,random(0,5),random(0,360),SXF_NOCHECKPOSITION|SXF_SETMASTER,0,tid)
	MRA1 JKJKJK 6 A_SpawnItemEx("MReimuCastEffect3",0,0,60)
	TNT1 A 0 A_ChangeFlag("NODAMAGE",0)
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	Goto See
  Melee:
	MRA1 A 0 A_playsound("MReimu/Melee",2)
    MRA1 B 4 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("MReimuDarkMatter2",0,16,30)
	MRA1 C 3 A_CustomMeleeAttack(200,"remhit","none","MagaReimu")
	MRA1 DEFGH 2
	Goto See
  Missile:
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem2",1,"CloneSummon")
  MissileContinue:
	TNT1 A 0 A_JumpIf(user_rage == 1,"MissileRage")
	TNT1 A 0 A_Jump(128,2)
	TNT1 A 0 A_JumpIfCloser(500,"GrabMelee")
    TNT1 A 0 A_Jump(60,"DarkMatterStorm","SuperLaser","Cut","Distortion")
    TNT1 A 0 A_Jump(256,"SkullShots","DarkMatter","SuperHomingBalls","CloseSwordSpawner","SpiralSwordSpawner","SuperBalls")
    Goto SuperHomingBalls
  MissileRage:
    TNT1 A 0 A_Jump(80,"DarkMatterStormRage","SuperLaser","Cut","Distortion")
    TNT1 A 0 A_Jump(256,"SkullShotsRage","DarkMatterRage","SuperHomingBallsRage","CloseSwordSpawner","SpiralSwordSpawner","SuperBalls")
    Goto SuperHomingBalls
  GrabMelee:
	MRA1 A 0 A_playsound("MReimu/Melee",2)
	MRA1 A 4
	TNT1 A 0 A_SetUserVar("user_missile",0)
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem",1,"FastGrabMeleeLoop")
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem2",1,"FastGrabMeleeLoop")
	TNT1 A 0 A_JumpIfInTargetInventory("AgilityRuneToken",1,"FastGrabMeleeLoop")
  GrabMeleeLoop:
	TNT1 A 0 A_JumpIf(user_missile >= 80,"GrabMeleeAttack")
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_SkullAttack(30)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_CustomMissile("MReimuGrabMelee",30)
	MRA1 B 1 A_Chase("GrabMeleeAttack",0,CHF_DONTMOVE)
	Loop
  FastGrabMeleeLoop:
	TNT1 A 0 A_JumpIf(user_missile >= 80,"GrabMeleeAttack")
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_SkullAttack(70)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_CustomMissile("MReimuGrabMelee",30)
	MRA1 B 1 A_Chase("GrabMeleeAttack",0,CHF_DONTMOVE)
	Loop
  GrabMeleeAttack:
	TNT1 A 0 A_PlaySound("MReimu/MeleeAttack")
	TNT1 A 0 A_SpawnItemEx("MReimuHomingSuperBallExplode",30,0,30)
	TNT1 A 0 A_CustomMissile("MReimuGrabMelee2",30)
	MRA1 C 3
	TNT1 A 0 A_RadiusThrust(1000,150)
	TNT1 A 0 A_Stop
	MRA1 DEFGH 3
	Goto See
  SkullShots:
    MRA2 ABCDEF 6
	TNT1 A 0 A_SetUserVar("user_missile",0)
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem",1,"SkullShotLoop2")
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem2",1,"SkullShotLoop3")
  SkullShotLoop:
	TNT1 A 0 A_JumpIf(user_missile >= 20,"SkullShotEnd")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	MRA2 G 0 bright A_CustomMissile("MReimuSkullShot",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	MRA2 G 4 bright A_CustomMissile("MReimuSkullShot",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	MRA2 G 0 bright A_CustomMissile("MReimuSkullShot",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	MRA2 H 4 bright A_CustomMissile("MReimuSkullShot",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	Loop
  SkullShotLoop2:
	TNT1 A 0 A_JumpIf(user_missile >= 30,"SkullShotEnd")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	MRA2 G 0 bright A_CustomMissile("MReimuSkullShot",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	MRA2 G 3 bright A_CustomMissile("MReimuSkullShot",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	MRA2 G 0 bright A_CustomMissile("MReimuSkullShot",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	MRA2 H 3 bright A_CustomMissile("MReimuSkullShotBounce",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	Loop
  SkullShotLoop3:
	TNT1 A 0 A_JumpIf(user_missile >= 30,"SkullShotEnd")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	MRA2 G 0 bright A_CustomMissile("MReimuSkullShot",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	MRA2 G 3 bright A_CustomMissile("MReimuSkullShotBounce",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	MRA2 G 0 bright A_CustomMissile("MReimuSkullShot",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	MRA2 H 3 bright A_CustomMissile("MReimuSkullShotBounce",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	Loop
  SkullShotsRage:
    MRA2 ABCDEF 6
	TNT1 A 0 A_SetUserVar("user_missile",0)
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem",1,"SkullShotLoop3")
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem2",1,"SkullShotLoop4")
	Goto SkullShotLoop2
  SkullShotLoop4:
	TNT1 A 0 A_JumpIf(user_missile >= 40,"SkullShotEnd")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	MRA2 G 0 bright A_CustomMissile("MReimuSkullShotBounce",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	MRA2 G 3 bright A_CustomMissile("MReimuSkullShotBounce",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	MRA2 G 0 bright A_CustomMissile("MReimuSkullShotBounce",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	MRA2 H 3 bright A_CustomMissile("MReimuSkullShotBounce",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	Loop
  SkullShotEnd:
	MRA2 IJ 6
	Goto See
  DarkMatter:
    TNT1 A 0 A_playsound("MReimu/Attack2",2)
    MRA1 AB 6
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem",1,"DarkMatter2")
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem2",1,"DarkMatter3")
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,0)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,15)
	MRA1 C 4 bright A_CustomMissile("MReimuDarkMatter",30,0,-15)
	MRA1 DEFG 3
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,0)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,5)
	MRA1 C 4 bright A_CustomMissile("MReimuDarkMatter",30,0,-5)
	MRA1 DEFG 3
    MRA1 AB 5
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 DEFGH 4
	Goto See
  DarkMatter2:
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,0)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,15)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,-30)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,30)
	MRA1 C 4 bright A_CustomMissile("MReimuDarkMatter",30,0,-15)
	MRA1 DEFG 3
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,0)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,5)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,10)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,-10)
	MRA1 C 4 bright A_CustomMissile("MReimuDarkMatter",30,0,-5)
	MRA1 DEFG 3
    MRA1 AB 5
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 DEFGH 4
	Goto See
  DarkMatter3:
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,0)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,15)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,-30)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,30)
	MRA1 C 4 bright A_CustomMissile("MReimuDarkMatter",30,0,-15)
	MRA1 DEFG 3
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,0)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,5)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,10)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,-10)
	MRA1 C 4 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,-5)
	MRA1 DEFG 3
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,0)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,15)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,-30)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,30)
	MRA1 C 4 bright A_CustomMissile("MReimuDarkMatter",30,0,-15)
	MRA1 DEFG 3
    MRA1 AB 5
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 DEFGH 4
	Goto See
  DarkMatterRage:
    TNT1 A 0 A_playsound("MReimu/Attack2",2)
    MRA1 AB 6
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem",1,"DarkMatter3")
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem2",1,"DarkMatter4")
	Goto DarkMatter2
  DarkMatter4:
	MRA1 C 0 A_CustomMissile("MReimuDarkMatterHoming",30,0,0)
	MRA1 C 0 A_CustomMissile("MReimuDarkMatter",30,0,15)
	MRA1 C 0 A_CustomMissile("MReimuDarkMatterHoming",30,0,-30)
	MRA1 C 0 A_CustomMissile("MReimuDarkMatterHoming",30,0,30)
	MRA1 C 4 bright A_CustomMissile("MReimuDarkMatter",30,0,-15)
	MRA1 DEFG 3
	MRA1 C 0 A_CustomMissile("MReimuDarkMatter",30,0,0)
	MRA1 C 0 A_CustomMissile("MReimuDarkMatterHoming",30,0,5)
	MRA1 C 0 A_CustomMissile("MReimuDarkMatter",30,0,10)
	MRA1 C 0 A_CustomMissile("MReimuDarkMatter",30,0,-10)
	MRA1 C 4 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,-5)
	MRA1 DEFG 3
	MRA1 C 0 A_CustomMissile("MReimuDarkMatterHoming",30,0,0)
	MRA1 C 0 A_CustomMissile("MReimuDarkMatter",30,0,15)
	MRA1 C 0 A_CustomMissile("MReimuDarkMatterHoming",30,0,-30)
	MRA1 C 0 A_CustomMissile("MReimuDarkMatterHoming",30,0,30)
	MRA1 C 4 bright A_CustomMissile("MReimuDarkMatter",30,0,-15)
	MRA1 DEFG 3
	MRA1 C 0 A_CustomMissile("MReimuDarkMatter",30,0,0)
	MRA1 C 0 A_CustomMissile("MReimuDarkMatterHoming",30,0,5)
	MRA1 C 0 A_CustomMissile("MReimuDarkMatter",30,0,10)
	MRA1 C 0 A_CustomMissile("MReimuDarkMatter",30,0,-10)
	MRA1 C 4 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,-5)
	MRA1 DEFG 3
    MRA1 AB 5
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatterHoming",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatterHoming",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatterHoming",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatterHoming",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatterHoming",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatterHoming",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 DEFGH 4
	Goto See
  SuperHomingBalls:
	TNT1 A 0 A_playsound("MReimu/Attack6",2)
	TNT1 A 0 A_PlaySound("MreimuBall/Cast")
	MRA2 ABCDEF 3
	MRA2 GHGHGH 5 Bright A_CustomMissile("MReimuHomingSuperBall",30,0,random(-40,40),CMF_OFFSETPITCH,random(0,15))
	MRA2 FEDCBA 3
	Goto See
  SuperHomingBallsRage:
	TNT1 A 0 A_playsound("MReimu/Attack6",2)
	TNT1 A 0 A_PlaySound("MreimuBall/Cast")
	MRA2 ABCDEF 3
	MRA2 GHGHGHGHGHGHGH 3 Bright A_CustomMissile("MReimuHomingSuperBall",30,0,random(-60,60),CMF_OFFSETPITCH,random(0,15))
	MRA2 FEDCBA 3
	Goto See
  CloseSwordSpawner:
	TNT1 A 0 A_playsound("MReimu/Attack4",2)
	TNT1 A 0 A_PlaySound("MReimuSword/Cast")
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	MRA2 KLMNOPQ 3
	TNT1 A 0 A_SetUserVar("user_missile",0)
	TNT1 A 0 A_JumpIf(user_missile >= 360,"CloseSwordSpawnerContinue")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+20)
	TNT1 A 0 A_CustomMissile("MReimuSwordSpawner1",30,0,user_missile)
	Goto CloseSwordSpawner+11
  CloseSwordSpawnerContinue:
	MRA2 STUSTUSTUSTUSTUSTUSTUSTUSTUSTUVW 3
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	Goto See
  SpiralSwordSpawner:
	TNT1 A 0 A_playsound("MReimu/Attack4",2)
	TNT1 A 0 A_PlaySound("MReimuSword/Cast")
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	MRA2 KLMNOPQ 3
	TNT1 A 0 A_SetUserVar("user_missile",0)
	TNT1 A 0 A_JumpIf(user_missile >= 360,"SpiralSwordSpawnerContinue")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+20)
	TNT1 A 0 A_CustomMissile("MReimuSwordSpawnerSpiral",30,0,user_missile)
	Goto SpiralSwordSpawner+11
  SpiralSwordSpawnerContinue:
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	MRA2 STUSTUSTUVW 4
	Goto See
  SuperBalls:
    TNT1 A 0 A_playsound("MReimu/Attack5",2)
    MRA1 AB 6
	MRA1 CCCCDDDD 1 bright A_CustomMissile("MReimuSuperBall",30,0,random(-15,15))
	MRA1 EFGB 3
	MRA1 CCCCDDDD 1 bright A_CustomMissile("MReimuSuperBall",30,0,random(-15,15))
	MRA1 EFGB 3
	MRA1 CCCCDDDD 1 bright A_CustomMissile("MReimuSuperBall",30,0,random(-15,15))
	MRA1 EFGB 3
	MRA1 CCCCDDDD 1 bright A_CustomMissile("MReimuSuperBall",30,0,random(-15,15))
	MRA1 EFGH 3
	Goto See
  DarkMatterStorm:
    TNT1 A 0 A_playsound("MReimu/Attack3",2)
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
    MRA1 LMNOP 6
	TNT1 A 0 A_SetUserVar("user_missile",0)
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem",1,"DarkMatterStormLoop2")
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem2",1,"DarkMatterStormLoop3")
  DarkMatterStormLoop:
	TNT1 A 0 A_JumpIf(user_missile >= 4,"DarkMatterStormEnd")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 Radius_Quake(10,8,0,24,0)
	MRA1 QQ 2 bright A_SpawnItemEx("MReimuDarkMatterRain",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	MRA1 RR 2 bright A_SpawnItemEx("MReimuDarkMatterRain",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	Loop
  DarkMatterStormLoop2:
	TNT1 A 0 A_JumpIf(user_missile >= 4,"DarkMatterStormEnd")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 Radius_Quake(10,8,0,24,0)
	MRA1 QQ 2 bright A_SpawnItemEx("MReimuDarkMatterRain",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	MRA1 RR 2 bright A_SpawnItemEx("MReimuDarkMatterRain2",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	Loop
  DarkMatterStormLoop3:
	TNT1 A 0 A_JumpIf(user_missile >= 4,"DarkMatterStormEnd")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 Radius_Quake(10,8,0,24,0)
	MRA1 QQ 2 bright A_SpawnItemEx("MReimuDarkMatterRain2",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	MRA1 RR 2 bright A_SpawnItemEx("MReimuDarkMatterRain2",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	Loop
  DarkMatterStormRage:
    TNT1 A 0 A_playsound("MReimu/Attack3",2)
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
    MRA1 LMNOP 6
	TNT1 A 0 A_SetUserVar("user_missile",0)
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem",1,"DarkMatterStormLoop3")
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem2",1,"DarkMatterStormLoop4")
	Goto DarkMatterStormLoop2
  DarkMatterStormLoop4:
	TNT1 A 0 A_JumpIf(user_missile >= 6,"DarkMatterStormEnd")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 Radius_Quake(10,8,0,24,0)
	MRA1 QQ 2 bright A_SpawnItemEx("MReimuDarkMatterRain2",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	MRA1 RR 2 bright A_SpawnItemEx("MReimuDarkMatterRain2",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
	Loop
  DarkMatterStormEnd:
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
    MRA1 SL 6
	Goto See
  SuperLaser:
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
    TNT1 A 0 A_PlaySound("MReimu/SuperAttack3",2,1.0,0,ATTN_NONE)
    TNT1 A 0 A_PlaySound("MReimu/Cast2")
	TNT1 A 0 A_SpawnItemEx("MReimuCastEffect1")
	MRA1 LMNOP 4
	TNT1 A 0 A_PlaySound("superlaser",7,1.0,0,0.2)
	MRA1 QRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQRQR 3 A_CustomMissile("MReimuLaser",30)
    MRA1 PONML 6
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	Goto See
  Cut:
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	TNT1 A 0 A_SpawnItemEx("MReimuCutCast",0,0,70)
	TNT1 A 0 A_PlaySound("MReimu/CutCast")
	MRA1 A 60
	TNT1 A 0 A_SetUserVar("user_missile",0)
  CutLoop:
	TNT1 A 0 A_JumpIf(user_missile >= 6,"CutEnd")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	MRA1 BC 3
	//TNT1 A 0 A_VileTarget("MReimuCut")
	TNT1 A 0 A_RadiusGive("MReimuCutEffect",3000,RGF_PLAYERS|RGF_MONSTERS)
	TNT1 A 0 A_PlaySound("MReimu/CutAttack",6,1.0,0,0.3)
	//TNT1 A 0 A_VileAttack("MReimu/CutAttack",random(120,200),0,0,0.3,"Touhou")
	MRA1 CDEF 2
	Loop
  CutEnd:
	MRA1 H 10 A_ChangeFlag("NOPAIN",0)
	Goto See
  Distortion:
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	MRA1 LMN 6
	TNT1 A 0 A_VileTarget("MReimuDistortion")
	MRA1 N 20
    TNT1 A 0 A_playsound("MReimu/Attack1",2,1.0,0,ATTN_NONE)
	MRA1 N 30
	MRA1 OP 5
	TNT1 A 0 A_VileAttack("exile/voidend",300,50,200,4.0,"MagaReimu")
	MRA1 QRS 8
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	Goto See
  Death:
	TNT1 A 0
	TNT1 A 0 A_Quake(5,296,0,3000,0)
	TNT1 A 0 ThrustThingZ(0,2,0,1)
	TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
    TNT1 A 0 A_PlaySound("uroboros/death",6,1.0,0,ATTN_NONE)
	TNT1 A 0 A_RemoveChildren(1)
    MRA3 ABCDEFGHIJ 6
	TNT1 A 0 A_Scream
	TNT1 A 0 A_Stop
	MRA4 ABABABABABAB 6 bright A_SpawnItemEx("MReimuLightning",Random(1250,-1250),Random(1250,-1250),-1000,0,0,0,SXF_NOCHECKPOSITION,0,180)
	MRA4 CD 10 bright
	MRA4 EFEF 6 bright
	TNT1 A 0 A_UnsetSolid
    TNT1 A 0 A_Playsound("brain/spit",6,1.0,0,ATTN_NONE)
	MRA4 EF 6 bright A_FadeOut(0.05,0)
	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))
	MRA4 EF 6 bright A_FadeOut(0.05,0)
	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))
	MRA4 EF 6 bright A_FadeOut(0.05,0)
	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))
	MRA4 EF 6 bright A_FadeOut(0.05,0)
	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))
	MRA4 EF 6 bright A_FadeOut(0.05,0)
	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))
	MRA4 EF 6 bright A_FadeOut(0.05,0)
	TNT1 AA 0 A_SpawnItemEx("LegAmmoSphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
	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))
	MRA4 EF 6 bright A_FadeOut(0.05,0)
	TNT1 AA 0 A_SpawnItemEx("SkullOfPower",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
	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))
	MRA4 EF 6 bright A_FadeOut(0.05,0)
	TNT1 AA 0 A_SpawnItemEx("DemonicChalice",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
	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))
	MRA4 EF 6 bright A_FadeOut(0.05,0)
	TNT1 A 0 A_SpawnItemEx("NemSphereRandomizer",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
	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))
	MRA4 EF 6 bright A_FadeOut(0.05,0)
	TNT1 A 0 A_SpawnItemEx("DistortionRune",0,0,8,0,0,2,random(0,360),0,0)
	TNT1 A 0 A_NoBlocking
	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 A 30
	TNT1 A 1 A_KillMaster
    Stop
  }
}

ACTOR NemSphereRandomizer : RandomSpawner
{
DropItem "NemesisSphere", 256, 10
DropItem "NemesisSuperSphere", 256, 5
DropItem "NemesisMegaSphere", 256, 1
}

ACTOR MReimuSummonSmokeSpawner : LHellionSmokeSpawner
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
		TNT1 A 0 Bright A_CheckSight("Toaster")
		TNT1 AAAAAA 1 A_SpawnItemEx("NemesisLegNobleBall3Trail",random(-4,4),random(-4,4),random(0,4),random(-4,4),random(-4,4),random(3,10),random(0,359),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright
		Stop		
	}
}

ACTOR MReimuRageSmoke : AHellionSmoke
{
Alpha 0.25
Scale 0.8
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
		FRR1 ABCDEFGHIJKL 2 Bright A_FadeOut(0.03,1)
		Stop
	}
}

ACTOR MReimuRageSmokeSpawner : LHellionSmokeSpawner
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
		TNT1 A 0 Bright A_CheckSight("Toaster")
		TNT1 AAA 0 A_SpawnItemEx("MReimuRageSmoke",random(12,-12),random(12,-12),random(12,64),0,0,random(1,3),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright
		Stop		
	}
}

ACTOR MReimuSmoke : BFlanSmoke
{
  +NOTIMEFREEZE
} 

Actor MReimuLightning 
{
+NOGRAVITY
+ExtremeDeath
+NOCLIP
+FORCERADIUSDMG
+NOTIMEFREEZE
Renderstyle Add
Height 32
Radius 16
Scale 2
Damagetype "Touhou"
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySoundEx("BFlan/Lightning",7)    
	TNT1 A 0 Radius_Quake(175,8,512,1024,0)
	TNT1 AAA 0 A_CustomMissile("MReimuLightningBolt",30,0,random(0,360),2)
	TNT1 A 0 A_Explode(150,300)
	TNT1 AAA 0 A_CustomMissile("SmokeFX3",0,0,random(0,360),2,random(0,360))
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("WhiteLightningSpark",0,0,0,random(1,10),0,random(1,10),random(0,359),129)
	DV10 ABCBCAB 3 Bright
	Stop
    }     
}

Actor MReimuLightningBolt : LegendaryNecroBolt
{
  ReactionTime 35
  Damagetype "Touhou"
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(64,"Homing")
    LFX3 F 1 Bright A_Explode(16,100,0)
    LFX3 F 0 Bright A_CustomMissile("LegendaryNecroBolt2",0,0,0,6,90)
    LFX3 F 0 ThrustThing(random(0,255),1,0,0)
    LFX3 G 1 Bright A_Explode(16,100,0)
    LFX3 G 0 Bright A_CustomMissile("LegendaryNecroBolt2",0,0,0,6,90)
    LFX3 H 1 Bright A_Explode(16,100,0)
    LFX3 H 0 Bright A_CustomMissile("LegendaryNecroBolt2",0,0,0,6,90)
    LFX3 I 1 Bright A_Explode(16,100,0)
    LFX3 I 0 Bright A_CustomMissile("LegendaryNecroBolt2",0,0,0,6,90)
    LFX3 J 1 Bright A_Explode(16,100,0)
    LFX3 J 0 Bright A_CustomMissile("LegendaryNecroBolt2",0,0,0,6,90)
    LFX3 J 0 Bright A_CountDown
    Goto Spawn+2
  Homing:
    LFX3 F 1 Bright A_Explode(16,100,0)
    LFX3 F 0 Bright A_CustomMissile("LegendaryNecroBolt2",0,0,0,6,90)
    LFX3 F 0 A_SeekerMissile(2,2)
    LFX3 G 1 Bright A_Explode(16,100,0)
    LFX3 G 0 Bright A_CustomMissile("LegendaryNecroBolt2",0,0,0,6,90)
    LFX3 F 0 A_SeekerMissile(2,2)
    LFX3 H 1 Bright A_Explode(16,100,0)
    LFX3 H 0 Bright A_CustomMissile("LegendaryNecroBolt2",0,0,0,6,90)
    LFX3 F 0 A_SeekerMissile(2,2)
    LFX3 I 1 Bright A_Explode(16,100,0)
    LFX3 I 0 Bright A_CustomMissile("LegendaryNecroBolt2",0,0,0,6,90)
    LFX3 F 0 A_SeekerMissile(2,2)
    LFX3 J 1 Bright A_Explode(16,100,0)
    LFX3 J 0 Bright A_CustomMissile("LegendaryNecroBolt2",0,0,0,6,90)
    LFX3 F 0 A_SeekerMissile(2,2)
    LFX3 J 0 Bright A_CountDown
    Loop
  Death:
	TNT1 A 0 A_FadeOut(0.2)
    LFX3 F 2 Bright A_Explode(32,128,0)
	TNT1 A 0 A_FadeOut(0.2)
    LFX3 G 2 Bright A_Explode(32,128,0)
	TNT1 A 0 A_FadeOut(0.2)
    LFX3 H 2 Bright A_Explode(32,128,0)
	TNT1 A 0 A_FadeOut(0.2)
    LFX3 I 2 Bright A_Explode(32,128,0)
	TNT1 A 0 A_FadeOut(0.2)
    LFX3 J 2 Bright A_Explode(32,128,0)
    Stop
  }
}


ACTOR MReimuDarkMatter : PainLordDarkMatter
{
  Damagetype "MagaReimu"
  +NOTIMEFREEZE
}


ACTOR MReimuDarkMatterHoming : MReimuDarkMatter
{
  +SEEKERMISSILE
  States
  {
  Spawn:
	TNT1 A 0 A_SeekerMissile(5,5)
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB A 1 Bright
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB A 1 Bright
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB A 1 Bright
	TNT1 A 0 A_SeekerMissile(5,5)
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB B 1 Bright
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB B 1 Bright
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB B 1 Bright
	TNT1 A 0 A_SeekerMissile(5,5)
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB C 1 Bright
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB C 1 Bright
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB C 1 Bright
	Loop
  }
}


ACTOR MReimuDarkMatter2 : MReimuDarkMatter
{
  States
  {
  Spawn:
  Death:
	TNT1 A 0
	TNT1 A 0 A_Playsound("PainLord/Explode1",7)
	TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,Random(20,40),Random(4,-4),Random(4,-4),Random(4,8),0,128)
	TNT1 AAA 0 A_CustomMissile("BlueKaboom", 0, 0, random(0,360), 2, random(0,360))	
	TNT1 AAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_SpawnItemEx("PainLordDeathExplosionSpawner",0,0,0,0,0,0,0,32)
	TNT1 A 0 A_SpawnItemEx("ShadowVaporSpawnerDust",0,0,0,0,0,0,0,32)
	TNT1 A 0 A_Explode(130,200,1)
	TNT1 A 15 Radius_Quake(5,15,0,20,0)
	Stop
  }
}

ACTOR MReimuDarkMatterRain : RainCometSpawner
{
+NOTIMEFREEZE
Renderstyle Subtract
States
{
Spawn:
	TNT1 AAAAAAAAAAAAAAAAAAAA 1 A_Wander
	MMRA ABCDEFGHIJABCDEFGHIJ 2 Bright A_Wander
    TNT1 A 0 A_CustomMissile("FallingMReimuDarkmatter",-18,random(0,20),random(0,360),2)
	MMRA AAABBBCCC 1 Bright A_Wander
    TNT1 A 0 A_CustomMissile("FallingMReimuDarkmatter",-18,random(0,20),random(0,360),2)
	MMRA EEEFFFGGG 1 Bright A_Wander
    TNT1 A 0 A_CustomMissile("FallingMReimuDarkmatter",-18,random(0,20),random(0,360),2)
	MMRA HHHIIIJJJ 1 Bright A_Wander
	TNT1 A 0 A_CustomMissile("FallingMReimuDarkmatter",-18,random(0,20),random(0,360),2)
FadeOut:
	MMRA ABCDEFGHIJ 2 Bright A_FadeOut(0.06)
    Goto FadeOut
	}
}

ACTOR MReimuDarkMatterRain2 : RainCometSpawner
{
+NOTIMEFREEZE
Renderstyle Subtract
States
{
Spawn:
	TNT1 AAAAAAAAAAAAAAAAAAAA 1 A_Wander
	MMRA ABCDEFGHIJABCDEFGHIJ 2 Bright A_Wander
    TNT1 A 0 A_CustomMissile("FallingMReimuDarkmatterHoming",-18,random(0,20),random(0,360),2,-90)
	MMRA AAABBBCCC 1 Bright A_Wander
    TNT1 A 0 A_CustomMissile("FallingMReimuDarkmatterHoming",-18,random(0,20),random(0,360),2,-90)
	MMRA EEEFFFGGG 1 Bright A_Wander
    TNT1 A 0 A_CustomMissile("FallingMReimuDarkmatterHoming",-18,random(0,20),random(0,360),2,-90)
	MMRA HHHIIIJJJ 1 Bright A_Wander
	TNT1 A 0 A_CustomMissile("FallingMReimuDarkmatterHoming",-18,random(0,20),random(0,360),2,-90)
FadeOut:
	MMRA ABCDEFGHIJ 2 Bright A_FadeOut(0.06)
    Goto FadeOut
	}
}

ACTOR FallingMReimuDarkmatter : MReimuDarkMatter
{
  Radius 6
  Height 6
  Speed 5
  -FLOAT
  -NOGRAVITY
  +SPAWNCEILING
  +MTHRUSPECIES
  +DONTHURTSPECIES
  +DONTHARMSPECIES
  +FLOORCLIP
}

ACTOR FallingMReimuDarkmatterHoming : MReimuDarkMatterHoming
{
  Radius 6
  Height 6
  Speed 10
  +SPAWNCEILING
  +MTHRUSPECIES
  +DONTHURTSPECIES
  +DONTHARMSPECIES
  +FLOORCLIP
  States
  {
  Spawn:
	TNT1 A 0 A_SeekerMissile(5,5,SMF_CURSPEED|SMF_LOOK)
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB A 1 Bright
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB A 1 Bright
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB A 1 Bright
	TNT1 A 0 A_SeekerMissile(5,5,SMF_CURSPEED|SMF_LOOK)
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB B 1 Bright
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB B 1 Bright
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB B 1 Bright
	TNT1 A 0 A_SeekerMissile(5,5,SMF_CURSPEED|SMF_LOOK)
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB C 1 Bright
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB C 1 Bright
	TNT1 AAA 0 A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	DMGB C 1 Bright
	Loop
	}
}

ACTOR MReimuSkullShot : LegVileSkullShot
{
  Damage 8
  Damagetype "MagaReimu"
  ReactionTime 50
  +FORCERADIUSDMG
  States
  {
  Spawn:
	TNT1 A 0 A_SeekerMissile(5,5,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(30,100)
    RVSK ABCDEFGHIJKL 2 Bright A_Explode(10,100)
    Stop
  }
}

ACTOR MReimuSkullShotBounce : MReimuSkullShot
{
  Bouncetype Hexen
  Bouncecount 5
  BounceSound "Soul/Fire"
  ReactionTime 100
}

ACTOR MReimuHomingSuperBall : GenericSuperOrb
{
  Speed 20
  Damage 10
  Scale 0.15
  Renderstyle Subtract
  Damagetype "MagaReimu"
  SeeSound "MReimuBall/Spawn"
  DeathSound "MReimuBall/Explode"
  +SEEKERMISSILE
  +FORCERADIUSDMG
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_ScaleVelocity(1.05)
	TNT1 A 0 A_Weave(2,2,1.0,1.0)
    TNT1 AA 0 A_SpawnItemEx("DarkRedProjParticleSuperLarge",0,0,0,frandom(-10,0),frandom(-8,8),frandom(0,10),0)
    TNT1 AA 0 A_SpawnItemEx("Red2ProjParticleSuperLarge",0,0,0,frandom(-10,0),frandom(-8,8),frandom(0,10),0)
    MXT0 A 1 Bright A_SeekerMissile(1,1,SMF_LOOK|SMF_PRECISE)
    Loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_Quake(6,40,0,1500)
	TNT1 A 0 A_Explode(400,300)
	TNT1 A 0 A_SpawnItem("MReimuHomingSuperBallExplode")
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("DarkRedProjParticleSuperLarge2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("Red2ProjParticleSuperLarge2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
	TNT1 A 0 A_SetScale(ScaleX+0.1)
    MXT0 L 1 Bright A_FadeOut(0.03)
    Goto Death+4
  }
}

ACTOR MReimuHomingSuperBallExplode : BaseProjectileEffect
{
  Scale 1.0
  Renderstyle Subtract
  States
  {
  Spawn:
	MXP0 ABCDEFGHIJKLMNOPQRSTUVWX 2 Bright
    Stop
  }
}

ACTOR MReimuSuperBall : GenericSuperOrb
{
  Speed 20
  Damage 10
  Scale 1.0
  Renderstyle Subtract
  Damagetype "MagaReimu"
  DeathSound "MReimuBall2/Explode"
  +SEEKERMISSILE
  +FORCERADIUSDMG
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_ScaleVelocity(1.05)
	TNT1 A 0 A_Weave(2,2,1.0,1.0)
    TNT1 A 0 A_SpawnItemEx("DarkRedProjParticleSuperLarge",0,0,0,frandom(-2,0),frandom(-2,2),frandom(-2,2))
    TNT1 A 0 A_SpawnItemEx("BlackProjParticleSuperLarge",0,0,0,frandom(-2,0),frandom(-2,2),frandom(-2,2))
    MRBL A 1 Bright
    Loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_Quake(3,20,0,1000)
	TNT1 A 0 A_Explode(150,150)
	TNT1 A 0 A_SpawnItem("MReimuSuperBallExplode")
	TNT1 AAAAAA 0 A_SpawnItemEx("DarkRedProjParticleSuperLarge",0,0,0,frandom(-7,7),frandom(-7,7),frandom(-7,7),random(0,359))
	TNT1 AAAAAA 0 A_SpawnItemEx("BlackProjParticleSuperLarge",0,0,0,frandom(-7,7),frandom(-7,7),frandom(-7,7),random(0,359))
	TNT1 A 0 A_SetScale(ScaleX+0.1)
    CLBB I 1 Bright A_FadeOut(0.05)
    Goto Death+4
  }
}

ACTOR MReimuSuperBallExplode : BaseProjectileEffect
{
  Scale 1.5
  Renderstyle Subtract
  States
  {
  Spawn:
	MXP9 ABCDEFGHI 2 Bright
    Stop
  }
}

ACTOR MReimuSword
{
  Radius 1
  Height 1
  Projectile
  RenderStyle Subtract
  +NOCLIP
  +FLOORHUGGER
  +FORCERADIUSDMG
  Scale 0.3
  Obituary "%o submitted %hself to Maga-Reimu."
  DamageType "MagaReimu"
  SeeSound "MReimuSword/Attack"
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_SpawnItemEx("MReimuSwordSplash")
    MSW9 ABCD 1 Bright
	TNT1 A 0 A_RadiusThrust(100,20)
    MSW9 E 1 Bright A_Explode(50,140,0)
    MSW9 FGHIJKLM 1 Bright A_Explode(5,200,0)
    MSW9 NOPQRS 2 Bright
    Stop       
   }
}

ACTOR MReimuSwordSplash : BaseProjectileEffect
{
  Scale 0.5
  States
  {
  Spawn:
	MSW0 ABCDEFGHIJKLMN 1 Bright
    Stop
  }
}

ACTOR MReimuSwordSpawner1
{
  Radius 5
  Height 5
  Speed 60
  +RIPPER
  +FLOORHUGGER
  +BLOODLESSIMPACT
  +THRUSPECIES
  +NOCLIP
  +SEEKERMISSILE
  Species "Touhou"
  DamageType "Touhou"
  Obituary "%o submitted %hself to Maga-Reimu."
  Projectile
  MissileType MReimuSword
  Missileheight 0
  var int user_loop;
  States
  {
  Spawn: 
	TNT1 A 0
	TNT1 A 0 A_SetUserVar("user_loop",0)
	TNT1 A 0 A_JumpIf(user_loop >= 15,"Spawn2")	 
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+1)
    TNT1 AA 1 Bright
	TNT1 A 1 Bright A_MissileAttack
    Goto Spawn+2
  Spawn2: 
	TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_TARGET)
	TNT1 AAAAAA 0 A_SeekerMissile(90,90,SMF_CURSPEED)
	TNT1 A 0 A_SetUserVar("user_loop",0)
	TNT1 A 0 A_JumpIf(user_loop >= 15,"Death")	 
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+1)
    TNT1 AA 1 Bright
	TNT1 A 1 Bright A_MissileAttack
    Goto Spawn2+8
  Death:  
	TNT1 A 0
    TNT1 A 1
    Stop
  }
}

ACTOR MReimuSwordSpawnerSpiral : MReimuSwordSpawner1
{
  Speed 20
  -NOCLIP
  States
  {
  Spawn: 
	TNT1 A 0
    TNT1 AAAA 1 Bright A_Weave(5,0,10.0,0.0)
	TNT1 A 1 Bright A_MissileAttack
    Loop
  Death:  
    TNT1 A 1
    Stop
  }
}

ACTOR MReimuGrabMelee : PinkyLunge
{
  Damage 2
  Speed 0
  Species "MagaReimu"
  +RIPPER
  +EXTREMEDEATH
  +FORCERADIUSDMG
  +NOTIMEFREEZE
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("DarkRedProjParticleSuperLarge2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("Red2ProjParticleSuperLarge2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
	TNT1 A 1 A_Explode(2,250)
	Stop
  }
}

ACTOR MReimuGrabMelee2 : MReimuGrabMelee
{
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("DarkRedProjParticleSuperLarge2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("Red2ProjParticleSuperLarge2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
	TNT1 A 1 A_Explode(200,250)
	Stop
  }
}

Actor MReimuLaser : FastProjectile
{
  Speed 100
  Radius 13
  Height 8
  Damage (4)
  SeeSound ""
  Scale 2.0
  +THRUSPECIES
  +NODAMAGETHRUST
  +EXTREMEDEATH
  +RIPPER
  +FORCERADIUSDMG
  +BLOODLESSIMPACT
  +NOTIMEFREEZE
  Damagetype "MagaReimu"
  MissileType "MReimuLaserTrailSpawner"
  MissileHeight 8
  States
  {
    Spawn:
	  TNT1 A 0
	  TNT1 A 4 A_SpawnItemEx("MReimuLaserTrailDamager")
	  Loop
    Death:
      TNT1 A 0
	  TNT1 A 0 Radius_Quake(6,6,0,12,0)
	  TNT1 A 0 A_Explode(64,120,0,False,60)
	  TNT1 A 0 A_SpawnItemEx("MReimuLaserFlare")
	  TNT1 A 1
      Stop
  }
}

ACTOR MReimuLaserTrailDamager
{
  +THRUSPECIES
  +NOGRAVITY
  +NOCLIP
  +NODAMAGETHRUST
  +FORCERADIUSDMG
  +NOTIMEFREEZE
  Damagetype "MagaReimu"
  States
  {
    Spawn:
      TNT1 A 0
      TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 A_Explode(4,180,0,False,60)
      Stop
  }
}

ACTOR MReimuLaserTrailSpawner
{
  +CLIENTSIDEONLY
  +NOINTERACTION
  +NOTIMEFREEZE
  States
  {
    Spawn:
      TNT1 A 0
      TNT1 A 2 A_SpawnItemEx("MReimuLaserTrail",random(-3,3),0,random(-3,3),0,0,0,0,160)
      Stop
  }
}

ACTOR MReimuLaserTrail
{
  RenderStyle Subtract
  Scale 0.5
  Alpha 0.75
  +THRUSPECIES
  +CLIENTSIDEONLY
  +NOINTERACTION
  +NOTIMEFREEZE
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(256,"AltSpawn","AltSpawn2")
  AltSpawn:
	TNT1 A 0 A_JumpIf(ScaleX >= 6.0,"FadeOut")
	MRLZ ABC 1 A_SetScale(ScaleX+0.2)
	Loop
  AltSpawn2:
	TNT1 A 0 A_JumpIf(ScaleX >= 6.0,"FadeOut")
	MRLZ CAB 1 A_SetScale(ScaleX+0.2)
	Goto FadeOut
  FadeOut:
	MRLZ BAC 1 A_FadeOut
	Loop
  }
}

ACTOR MReimuLaserFlare
{
 +CLIENTSIDEONLY
 +NOINTERACTION
 Scale 0.5
 Alpha 1.0
 Renderstyle Subtract
 States
{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
    MRLZ D 2 Bright
  Continuous:
	TNT1 A 0 A_SetScale(ScaleX+0.05)
    MRLZ D 1 Bright A_FadeOut(0.02)
    Loop
  Toaster:
    TNT1 A 0
	Stop	
}
}

ACTOR MReimuCutEffect : CustomInventory
{  
  -COUNTITEM
  +INVENTORY.QUIET
  +INVENTORY.UNDROPPABLE
  +INVENTORY.ALWAYSPICKUP
  +INVENTORY.AUTOACTIVATE
  inventory.maxamount 0
  States
  {
  Pickup:
	TNT1 A 0 A_PlaySound("MReimu/CutAttack")
	TNT1 A 0 A_SpawnItemEx("MReimuSuperBallExplode",0,0,40)
	TNT1 A 0 A_SetBlend("Red",0.75,50)
	TNT1 A 1 Thing_Damage(0,random(200,300),0)
	Stop
	}
}

ACTOR MReimuDistortion : ArchVileFire
{
  RenderStyle Add
  Scale 0.5
  Alpha 1
  +DONTSPLASH
  var int user_loop;
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_PlaySound("MReimu/Distortion2",7,1.0,1)
	TNT1 A 0 A_JumpIf(user_loop >= 6,"Death")	 
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+1)
	TNT1 A 0 A_PlaySound("MReimu/Distortion",6)
	TNT1 A 0 A_SpawnItemEx("MReimuDistortionEffect",0,0,32,random(-3,3),random(-3,3),random(-3,3))
    TNT1 AA 1 A_Fire
	TNT1 A 0 A_SpawnItemEx("MReimuDistortionEffect",0,0,32,random(-3,3),random(-3,3),random(-3,3))
    TNT1 AA 1 A_Fire
	TNT1 A 0 A_SpawnItemEx("MReimuDistortionEffect",0,0,32,random(-3,3),random(-3,3),random(-3,3))
    TNT1 AA 1 A_Fire
	TNT1 A 0 A_SpawnItemEx("MReimuDistortionEffect",0,0,32,random(-3,3),random(-3,3),random(-3,3))
    TNT1 AA 1 A_Fire
	TNT1 A 0 A_SpawnItemEx("MReimuDistortionEffect",0,0,32,random(-3,3),random(-3,3),random(-3,3))
    TNT1 AA 1 A_Fire
    Loop
  Death:
	TNT1 AAAAAAAAAAAAAA 0 A_SpawnItemEx("WhiteNemesisKaboomNoSound",0,0,32,random(-15,15),random(-15,15),random(-6,6))
    TNT1 A 0 A_PlaySound("Lamia/Magic",7,1,0,0.4)
	TNT1 A 0 A_RadiusGive("MReimuWeaken",400,RGF_PLAYERS)
	TNT1 A 0 A_RadiusGive("MReimuDistortionBlind",400,RGF_PLAYERS)
	TNT1 A 1 //A_StopSound(7)
	Stop
	}
}

ACTOR PowerMReimuWeaken : PowerProtection
{
  DamageFactor "Normal", 3.0
}

ACTOR MReimuWeaken : PowerupGiver
{
  Inventory.MaxAmount 0
  Powerup.Colormap 1.0, 1.0, 0.9
  Powerup.Type "PowerMReimuWeaken"
  Powerup.Duration -30
  +INVENTORY.ADDITIVETIME
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
}

ACTOR MReimuDistortionBlind : CustomInventory
{  
  -COUNTITEM
  +INVENTORY.QUIET
  +INVENTORY.UNDROPPABLE
  +INVENTORY.ALWAYSPICKUP
  +INVENTORY.AUTOACTIVATE
  inventory.maxamount 0
  States
  {
  Pickup:
	TNT1 A 1 A_SetBlend("White",1.0,25)
	TNT1 A 0 A_Print("! DISTORTION !")
	TNT1 A 0 A_PlaySound("exile/voidend",7,1.0,0,0.5)
	Stop
	}
}

ACTOR MReimuCastEffect1 : BaseProjectileEffect
{
  Scale 0.35
  Renderstyle Subtract
  States
  {
  Spawn:
	MRCS ABCDEFGHIJKLMNOPQRSTU 2 Bright
    Stop
  }
}

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

ACTOR MReimuCastEffect2Black : MReimuCastEffect2
{
  Renderstyle Subtract
}

ACTOR MReimuCastEffect3 : BaseProjectileEffect
{
  Scale 0.4
  States
  {
  Spawn:
	MRC3 A 5 Bright
	MRC3 A 1 Bright A_FadeOut(0.1)
    Wait
  }
}

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

ACTOR MReimuCutCast : BaseProjectileEffect
{
  Scale 1.5
  Alpha 0.5
  States
  {
  Spawn:
	MCUT AAAAAAAAAA 1 Bright A_FadeIn(0.05)
	MCUT A 40 Bright
	MCUT A 1 Bright A_FadeOut(0.05)
    Wait
  }
}

ACTOR MReimuDistortionEffect : BaseProjectileEffect
{
  Scale 0.9
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_Jump(128,"YScale")
  XScale:
	TNT1 A 0 A_SetScale(ScaleX+0.1,ScaleY-0.05)
	MGDS A 1 Bright A_FadeOut(0.14)
	TNT1 A 0 A_SetScale(ScaleX+0.1,ScaleY-0.05)
	MGDS B 1 Bright A_FadeOut(0.14)
	TNT1 A 0 A_SetScale(ScaleX+0.1,ScaleY-0.05)
	MGDS C 1 Bright A_FadeOut(0.14)
	TNT1 A 0 A_SetScale(ScaleX+0.1,ScaleY-0.05)
	MGDS D 1 Bright A_FadeOut(0.14)
	TNT1 A 0 A_SetScale(ScaleX+0.1,ScaleY-0.05)
	MGDS E 1 Bright A_FadeOut(0.14)
	TNT1 A 0 A_SetScale(ScaleX+0.1,ScaleY-0.05)
	MGDS F 1 Bright A_FadeOut(0.14)
	TNT1 A 0 A_SetScale(ScaleX+0.1,ScaleY-0.05)
	MGDS G 1 Bright A_FadeOut(0.14)
    Stop
  YScale:
	TNT1 A 0 A_SetScale(ScaleX-0.05,ScaleY+0.1)
	MGDS A 1 Bright A_FadeOut(0.14)
	TNT1 A 0 A_SetScale(ScaleX-0.05,ScaleY+0.1)
	MGDS B 1 Bright A_FadeOut(0.14)
	TNT1 A 0 A_SetScale(ScaleX-0.05,ScaleY+0.1)
	MGDS C 1 Bright A_FadeOut(0.14)
	TNT1 A 0 A_SetScale(ScaleX-0.05,ScaleY+0.1)
	MGDS D 1 Bright A_FadeOut(0.14)
	TNT1 A 0 A_SetScale(ScaleX-0.05,ScaleY+0.1)
	MGDS E 1 Bright A_FadeOut(0.14)
	TNT1 A 0 A_SetScale(ScaleX-0.05,ScaleY+0.1)
	MGDS F 1 Bright A_FadeOut(0.14)
	TNT1 A 0 A_SetScale(ScaleX-0.05,ScaleY+0.1)
	MGDS G 1 Bright A_FadeOut(0.14)
    Loop
  }
}

Actor MagaReimuClone : MagaReimu
{
+NOTARGET
-COUNTKILL
+THRUSPECIES
-BOSS
+FLOAT
+NOGRAVITY
-MISSILEMORE
DamageFactor 0.8
PainChance "MagaReimuDeath", 256
SeeSound " "
DeathSound " "
ActiveSound " "
Tag "\c[d7]Maga-Reimu \c[z5](Clone)\c-"
States
  {
  Spawn:
    MREI JKJK 6
  Idle:
	TNT1 A 0 A_Stop
	TNT1 A 0 A_Look
    MREI AAA 1 A_Wander
	TNT1 A 0 A_Look
    MREI BBB 1 A_Wander
	TNT1 A 0 A_Look
    MREI CCC 1 A_Wander
	TNT1 A 0 A_Look
    MREI DDD 1 A_Wander
	TNT1 A 0 A_Look
    MREI EEE 1 A_Wander
	TNT1 A 0 A_Look
    MREI FFF 1 A_Wander
	TNT1 A 0 A_Look
    MREI GGG 1 A_Wander
	TNT1 A 0 A_Look
    MREI HHH 1 A_Wander
	Loop
  Teleport:
	MRA2 A 1 Bright A_UnSetShootable
	TNT1 A 0 A_PlaySound("MReimu/TeleportOut",7)
	TNT1 A 0 A_SpawnItemEx("MReimuTeleportEffect",0,0,40)
	//TNT1 AAAAAAAAA 0 A_SpawnItemEx("MReimuSmoke",0,0,32,random(-3,3),random(-3,3),random(-3,3),random(0, 360))
	MRA2 AADDEEFFGG 1 A_FadeOut(0.1,0)
	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)
	//TNT1 AAAAAAAAA 0 A_SpawnItemEx("MReimuSmoke",0,0,32,random(-3,3),random(-3,3),random(-3,3),random(0, 360))
	MRA2 HHFFEEDDAA 1 A_FadeIn(0.1)
	MRA2 A 1 Bright A_SetShootable
	Goto See
  See:
	//Goto See3
  //See3:
	TNT1 A 0 A_FadeIn(1.0)
	TNT1 A 0 A_Jump(30,"Teleport")
    MREI AAABBBCCCDDD 1 A_Chase
	TNT1 A 0 A_Jump(30,"Teleport")
	MREI EEEFFFGGGHHH 1 A_Chase
    Loop
  Melee:
	MRA1 A 0 A_playsound("MReimu/Melee",2)
    MRA1 B 4 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("MReimuDarkMatter2",0,16,30)
	MRA1 C 3 A_CustomMeleeAttack(200,"remhit","none","Extreme")
	MRA1 DEFGH 2
	Goto See
  Missile:
	TNT1 A 0 A_Jump(200,2)
	TNT1 A 0 A_JumpIfCloser(500,"GrabMelee")
    TNT1 A 0 A_Jump(256,"SkullShots","DarkMatter","SuperHomingBalls","CloseSwordSpawner","SpiralSwordSpawner","SuperBalls")
    Goto SuperHomingBalls
  SkullShots:
    TNT1 A 0 A_playsound("MReimu/Attack1",2)
    MRA2 ABCDEF 6
	TNT1 A 0 A_SetUserVar("user_missile",0)
  SkullShotLoop:
	TNT1 A 0 A_JumpIf(user_missile >= 5,"SkullShotEnd")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	MRA2 G 0 bright A_CustomMissile("MReimuSkullShot",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	MRA2 G 4 bright A_CustomMissile("MReimuSkullShot",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	MRA2 G 0 bright A_CustomMissile("MReimuSkullShot",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	MRA2 H 4 bright A_CustomMissile("MReimuSkullShot",30,0,random(-20,20),CMF_OFFSETPITCH,random(-4,4))
	Loop
  SkullShotEnd:
	MRA2 IJ 6
	Goto See
  DarkMatter:
    TNT1 A 0 A_playsound("MReimu/Attack2",2)
    MRA1 AB 6
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,0)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,15)
	MRA1 C 4 bright A_CustomMissile("MReimuDarkMatter",30,0,-15)
	MRA1 DEFG 3
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,0)
	MRA1 C 0 bright A_CustomMissile("MReimuDarkMatter",30,0,5)
	MRA1 C 4 bright A_CustomMissile("MReimuDarkMatter",30,0,-5)
	MRA1 DEFG 3
    MRA1 AB 5
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 CCC 0 A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 C 2 bright A_CustomMissile("MReimuDarkMatter",30,0,random(-30,30),CMF_OFFSETPITCH,frandom(-4,4))
	MRA1 DEFGH 4
	Goto See
  SuperHomingBalls:
	TNT1 A 0 A_PlaySound("MreimuBall/Cast")
	MRA2 ABCDEF 3
	MRA2 GHGHGH 5 Bright A_CustomMissile("MReimuHomingSuperBall",30,0,random(-40,40),CMF_OFFSETPITCH,random(0,15))
	MRA2 FEDCBA 3
	Goto See
  CloseSwordSpawner:
	TNT1 A 0 A_PlaySound("MReimuSword/Cast")
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	MRA2 KLMNOPQ 3
	TNT1 A 0 A_SetUserVar("user_missile",0)
	TNT1 A 0 A_JumpIf(user_missile >= 360,"CloseSwordSpawnerContinue")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+60)
	TNT1 A 0 A_CustomMissile("MReimuSwordSpawner1",30,0,user_missile)
	Goto CloseSwordSpawner+10
  CloseSwordSpawnerContinue:
	MRA2 STUSTUSTUSTUSTUSTUSTUSTUSTUSTUVW 3
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	Goto See
  SpiralSwordSpawner:
	TNT1 A 0 A_PlaySound("MReimuSword/Cast")
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	MRA2 KLMNOPQ 3
	TNT1 A 0 A_SetUserVar("user_missile",0)
	TNT1 A 0 A_JumpIf(user_missile >= 360,"SpiralSwordSpawnerContinue")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+60)
	TNT1 A 0 A_CustomMissile("MReimuSwordSpawnerSpiral",30,0,user_missile)
	Goto SpiralSwordSpawner+10
  SpiralSwordSpawnerContinue:
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	MRA2 STUSTUSTUVW 4
	Goto See
  SuperBalls:
    TNT1 A 0 A_playsound("MReimu/Attack2",2)
    MRA1 AB 6
	MRA1 CCCCDDDD 1 bright A_CustomMissile("MReimuSuperBall",30,0,random(-15,15))
	MRA1 EFGB 3
	MRA1 CCCCDDDD 1 bright A_CustomMissile("MReimuSuperBall",30,0,random(-15,15))
	MRA1 EFGB 3
	MRA1 CCCCDDDD 1 bright A_CustomMissile("MReimuSuperBall",30,0,random(-15,15))
	MRA1 EFGB 3
	MRA1 CCCCDDDD 1 bright A_CustomMissile("MReimuSuperBall",30,0,random(-15,15))
	MRA1 EFGH 3
	Goto See
  Pain:
	TNT1 A 0 A_Jump(60,"Teleport")
	TNT1 A 0 A_Playsound("Mreimu/pain1")
	TNT1 A 0 A_Jump(256,"PainFrame1","PainFrame2")
    Goto See
  PainFrame1:
	MREI M 8
    Goto See
  PainFrame2:
	MREI N 8
    Goto See
  Pain.MagaReimuDeath:
	TNT1 A 0 A_ChangeFlag("NODAMAGE",0)
	TNT1 A 0 A_Die
	Goto Death
  Death:
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("MReimuSmoke",0,0,32,random(-3,3),random(-3,3),random(-3,3),random(0, 360))
	MREI AAABBBCCCDDD 1 A_FadeOut(0.1,1)
	Stop
	}
}