Actor DistortionRune : CustomInventory
{
  Inventory.PickupMessage "You feel an unknown power... The Distortion Rune is now yours."
  Inventory.PickupSound "legendarypowersphere/pickup"
  Inventory.Icon "DSRUB0"
  Inventory.MaxAmount 1
  Scale 0.16
  Renderstyle Add
  Tag "Distortion Rune"
  +INVBAR
  +COUNTITEM
  +INVENTORY.BIGPOWERUP
  +NOTIMEFREEZE
  +FLOAT
  +FLOATBOB
  States
  {
  Use:
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("INFGetClass") == 1,"Failed")
	TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,"Failed")
	TNT1 A 0 ACS_NamedExecuteWithResult("INFGetPlayerInfo",0)
	TNT1 A 0 ACS_NamedExecuteAlways("INFStartMagaMorph")
	TNT1 A 80 A_GiveInventory("MagaReimuMorphGiver")
	TNT1 A 0 A_PlaySound("MReimu/Sight",7,1.0,False,ATTN_NONE)
    Stop
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(ACS_NamedExecuteWithResult("NexusNoFloat") == 0,2)
	TNT1 A 0 A_ChangeFlag(FLOATBOB,0)
	DSRU A 5 Bright A_CustomMissile("WhiteSparkleSpawner", 0, 0, random(0,-360), 2, random(0,360))
	Wait
  Pickup:
    TNT1 A 1 A_StopSound
	Stop
  Failed:
    TNT1 A 0
    Fail
	}
}

ACTOR MagaReimuFlightGiver : PowerupGiver
{
  Powerup.Duration -190
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  +NOTIMEFREEZE
  Inventory.MaxAmount 1
  Powerup.Type Flight
}

ACTOR MagaReimuMorphGiver : PowerupGiver
{
  Powerup.Duration -190
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  +NOTIMEFREEZE
  Inventory.MaxAmount 1
  Powerup.Type "PowerMagaReimuPlayer"
}

ACTOR PowerMagaReimuPlayer : PowerMorph
{
  +NOTIMEFREEZE
  PowerMorph.PlayerClass "MagaReimu_Morph"
  PowerMorph.MorphFlash "Nothing"
  PowerMorph.UnMorphFlash "Nothing"
  PowerMorph.MorphStyle (MRF_FULLHEALTH|MRF_ADDSTAMINA|MRF_NEWTIDBEHAVIOUR|MRF_WHENINVULNERABLE|MRF_LOSEACTUALWEAPON|MRF_UNDOBYDEATH|MRF_UNDOBYDEATHSAVES)
}

ACTOR MagaReimu_Morph : PlayerPawn
{
  Speed 1
  Mass 300
  Radius 20
  Height 56
  Player.ViewHeight 41.0
  Health 10000
  Player.MaxHealth 10000
  Scale 0.7
  BloodColor "Red"
  Player.SoundClass "MReimuMorph"
  Player.DisplayName "Maga-Reimu"
  Player.AttackZOffset 0
  Player.MorphWeapon "MagaReimuMorphWeapon"
  DamageFactor "PlayerBHole", 0.0
  DamageFactor "PlayerPyro", 0.0
  DamageFactor "PDTPuff", 0.0
  DamageFactor "Player", 0.0
  DamageFactor "Players", 0.0
  DamageFactor "PlayerDevBall", 0.0
  DamageFactor "PlayerDevBall2", 0.0
  DamageFactor "PlayerDevTracer", 0.0
  DamageFactor "PlayerExplosive", 0.0
  DamageFactor "PDTBFG", 0.0
  DamageFactor "PDTBFGTracer", 0.0
  DamageFactor "LegendaryPlayer", 0.0
  DamageFactor "LegendaryGuruPlayer", 0.0
  DamageFactor "HFCyber", 0.0
  DamageFactor "Cyber10K", 0.0
  DamageFactor "Touhou", 0.0
  DamageFactor "Player2hu", 0.0
  DamageFactor 0.5
  DamageFactor "Legendary1", 0.0
  DamageFactor "Legendary", 0.0
  DamageFactor "LegendaryGuru", 0.0
  ActiveSound "MReimu/Active"
  DeathSound "MReimu/Pain3"
  PainSound "Mreimu/Pain2"
  SeeSound "MReimu/Sight"
  Species "Player"
  +THRUSPECIES
  +DONTHARMSPECIES
  +NORADIUSDMG
  +NOSKIN
  +DONTRIP
  +NOPAIN
  +BOSS
  +NOTIMEFREEZE
  -PICKUP
  //+FLOAT
  //+NOGRAVITY
  States
  {
  Spawn:
	TNT1 A 0 A_SetTranslucent(1)
    MREI A -1
    Loop
  See:
    MREI ABCDEFGH 3
    Loop
  Missile:
    MRA2 G 6
	Goto Spawn
  Melee:
    MRA2 H 6
    Goto Missile	
  Pain:
	MREI M 8 A_Pain
    Goto See
  Death: 
    MRA3 A 2 A_Scream
    MRA3 B 2 A_NoBlocking
    MRA3 CDEFGHIJ 2 
	MRA3 KLKLKLKLKL 2 A_SetTranslucent(Alpha-0.1)
    TNT1 A -1
    Stop
  }
}

Actor MagaReimuWeaponType : Inventory { Inventory.MaxAmount 10 }

Actor MagaReimuMorphWeapon : MorphedWeapon
{
Tag "Maga-Reimu"
States
{
  Ready:
    TNT1 A 1 A_WeaponReady
    Loop	
  Fire:
  	TNT1 A 1 Bright
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",10,2)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0
	Goto Fire10
  	TNT1 A 1 Bright
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",9,2)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0
	Goto Fire9
    TNT1 A 1 Bright
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",8,2)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0
	Goto Fire8
	TNT1 A 1 Bright
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",7,2)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0
	Goto Fire7
  	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",6,2)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0
	Goto Fire6
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",5,2)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0
	Goto Fire5
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",4,2)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0
	Goto Fire4
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",3,2)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0
	Goto Fire3
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",2,2)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0
	Goto Fire2
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",1,2)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0
	Goto Fire1
	TNT1 A 1 Bright A_Jump(256,"Fire0")
	Goto Ready
  Fire0:
    TNT1 A 2
	TNT1 AA 0 A_FireCustomMissile("PlayerSkullShot",random(-20,20),0,0,-4,0,frandom(-4,4))
    Goto Ready		
  Fire1:
    TNT1 A 4 A_PlaySound("MReimu/Melee",2)
	TNT1 A 0 A_FireCustomMissile("PlayerMeleeDarkMatter",0,0,0,-4)
	TNT1 A 0 A_CustomPunch(200,0,0)
	TNT1 A 20
    Goto Ready
  Fire2:
    TNT1 A 0 A_playsound("MReimu/Attack2",2)
    TNT1 AA 6
	TNT1 A 0 A_FireCustomMissile("PlayerDarkMatterBall",0,0,0,-4)
	TNT1 A 0 A_FireCustomMissile("PlayerDarkMatterBall",15,0,0,-4)
	TNT1 A 0 A_FireCustomMissile("PlayerDarkMatterBall",-15,0,0,-4)
	TNT1 A 0 A_FireCustomMissile("PlayerDarkMatterBall",30,0,0,-4)
	TNT1 A 0 A_FireCustomMissile("PlayerDarkMatterBall",-30,0,0,-4)
    TNT1 AAAA 3
	TNT1 A 0 A_FireCustomMissile("PlayerDarkMatterBall",0,0,0,-4)
	TNT1 A 0 A_FireCustomMissile("PlayerDarkMatterBall",5,0,0,-4)
	TNT1 A 0 A_FireCustomMissile("PlayerDarkMatterBall",-5,0,0,-4)
	TNT1 A 0 A_FireCustomMissile("PlayerDarkMatterBall",10,0,0,-4)
	TNT1 A 0 A_FireCustomMissile("PlayerDarkMatterBall",-10,0,0,-4)
    TNT1 AAAA 3
    TNT1 AA 5
	TNT1 AAAA 0 A_FireCustomMissile("PlayerDarkMatterBall",random(-15,15),0,0,-4,0,frandom(-3,3))
    TNT1 A 2
	TNT1 AAAA 0 A_FireCustomMissile("PlayerDarkMatterBall",random(-15,15),0,0,-4,0,frandom(-3,3))
    TNT1 A 2
	TNT1 AAAA 0 A_FireCustomMissile("PlayerDarkMatterBall",random(-15,15),0,0,-4,0,frandom(-3,3))
    TNT1 A 2
	TNT1 AAAA 0 A_FireCustomMissile("PlayerDarkMatterBall",random(-15,15),0,0,-4,0,frandom(-3,3))
    TNT1 AAAAA 4
    Goto Ready
  Fire3:
    TNT1 A 0 A_playsound("MReimu/Attack2",2)
    TNT1 AA 6
	TNT1 A 0 A_FireCustomMissile("PlayerDarkMatterBallHoming",0,0,0,-4)
	TNT1 A 0 A_FireCustomMissile("PlayerDarkMatterBallHoming",15,0,0,-4)
	TNT1 A 0 A_FireCustomMissile("PlayerDarkMatterBallHoming",-15,0,0,-4)
    TNT1 AAAA 3
	TNT1 A 0 A_FireCustomMissile("PlayerDarkMatterBallHoming",0,0,0,-4)
	TNT1 A 0 A_FireCustomMissile("PlayerDarkMatterBallHoming",5,0,0,-4)
	TNT1 A 0 A_FireCustomMissile("PlayerDarkMatterBallHoming",-5,0,0,-4)
    TNT1 AAAA 3
    TNT1 AA 5
	TNT1 AAAA 0 A_FireCustomMissile("PlayerDarkMatterBallHoming",random(-15,15),0,0,-4,0,frandom(-3,3))
    TNT1 A 2
	TNT1 AAAA 0 A_FireCustomMissile("PlayerDarkMatterBallHoming",random(-15,15),0,0,-4,0,frandom(-3,3))
    TNT1 AAAAA 4
    Goto Ready
  Fire4:
    TNT1 A 0 A_playsound("MReimu/Attack5",2)
	TNT1 AA 6
	TNT1 AAAAAAAA 1 A_FireCustomMissile("PlayerMReimuSuperBall",random(-10,10),0,-4)	
	TNT1 AAAA 3
	TNT1 AAAAAAAA 1 A_FireCustomMissile("PlayerMReimuSuperBall",random(-10,10),0,-4)	
	TNT1 AAAA 3
	TNT1 AAAAAAAA 1 A_FireCustomMissile("PlayerMReimuSuperBall",random(-10,10),0,-4)	
	TNT1 AAAA 3
	TNT1 AAAAAAAA 1 A_FireCustomMissile("PlayerMReimuSuperBall",random(-10,10),0,-4)	
	TNT1 AAAA 3
    Goto Ready	
  Fire5:
	TNT1 A 0 A_playsound("MReimu/Attack6",2)
	TNT1 A 0 A_PlaySound("MreimuBall/Cast")
	TNT1 AAAAAA 3
	TNT1 AAAAAAAA 4 A_FireCustomMissile("PlayerMReimuHomingSuperBall",random(-8,8),0,-4,random(0,8))
	TNT1 AAAAAA 3
    Goto Ready	
  Fire6:
	TNT1 A 0 A_playsound("MReimu/Attack4",2)
	TNT1 A 0 A_PlaySound("MReimuSword/Cast")
	TNT1 AAAAAAA 3
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",0,0)
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",20,0)
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",40,0)
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",60,0)
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",80,0)
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",100,0)
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",120,0)
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",140,0)
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",160,0)
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",180,0)
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",200,0)
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",220,0)
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",240,0)
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",260,0)
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",280,0)
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",300,0)
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",320,0)
	TNT1 A 0 A_FireCustomMissile("PlayerMReimuSwordSpawnerSpiral",340,0)
	TNT1 AAAAAAAAA 4
    Goto Ready
  Fire7:
    TNT1 A 0 A_playsound("MReimu/Attack3",2)
	TNT1 A 0 Radius_Quake(7,62,0,24,0)
    TNT1 AAAAA 6
	TNT1 AAAAAAAAAAAAAAAA 2 A_SpawnItemEx("PlayerMReimuDarkMatterRain2",Random(1250,-1250),Random(1250,-1250),0,0,0,0,SXF_NOCHECKPOSITION,0)
    TNT1 AA 6
    Goto Ready	
   Fire8:
    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")
	TNT1 AAAAA 4 
	TNT1 A 0 A_PlaySound("superlaser",7,1.0,0,0.2)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 3 A_FireCustomMissile("PlayerMReimuLaser",0,0,0,-4)
	TNT1 AAAAA 6 
   Goto Ready
   Fire9:
	TNT1 A 0 A_PlaySound("MReimu/CutCast")
	TNT1 A 0 A_SetBlend("Red",0.5,60)
   	TNT1 A 60  
	TNT1 AA 3
	TNT1 A 0 A_SetBlend("Red",0.5,10)
	TNT1 A 0 A_PlaySound("MReimu/CutAttack")
	TNT1 A 0 A_RadiusGive("PlayerMReimuCutEffect",3000,RGF_MONSTERS)
	TNT1 AAAA 2
	TNT1 AA 3
	TNT1 A 0 A_SetBlend("Red",0.5,10)
	TNT1 A 0 A_PlaySound("MReimu/CutAttack")
	TNT1 A 0 A_RadiusGive("PlayerMReimuCutEffect",3000,RGF_MONSTERS)
	TNT1 AAAA 2
	TNT1 AA 3
	TNT1 A 0 A_SetBlend("Red",0.5,10)
	TNT1 A 0 A_PlaySound("MReimu/CutAttack")
	TNT1 A 0 A_RadiusGive("PlayerMReimuCutEffect",3000,RGF_MONSTERS)
	TNT1 AAAA 2
	TNT1 AA 3
	TNT1 A 0 A_SetBlend("Red",0.5,10)
	TNT1 A 0 A_PlaySound("MReimu/CutAttack")
	TNT1 A 0 A_RadiusGive("PlayerMReimuCutEffect",3000,RGF_MONSTERS)
	TNT1 AAAA 2
	TNT1 AA 3
	TNT1 A 0 A_SetBlend("Red",0.5,10)
	TNT1 A 0 A_PlaySound("MReimu/CutAttack")
	TNT1 A 0 A_RadiusGive("PlayerMReimuCutEffect",3000,RGF_MONSTERS)
	TNT1 AAAA 2
	TNT1 AA 3
	TNT1 A 0 A_SetBlend("Red",0.5,10)
	TNT1 A 0 A_PlaySound("MReimu/CutAttack")
	TNT1 A 0 A_RadiusGive("PlayerMReimuCutEffect",3000,RGF_MONSTERS)
	TNT1 AAAA 2
	TNT1 AA 3
	TNT1 A 0 A_SetBlend("Red",0.5,10)
	TNT1 A 0 A_PlaySound("MReimu/CutAttack")
	TNT1 A 0 A_RadiusGive("PlayerMReimuCutEffect",3000,RGF_MONSTERS)
	TNT1 AAAA 2
	TNT1 AA 3
	TNT1 A 0 A_SetBlend("Red",0.5,10)
	TNT1 A 0 A_PlaySound("MReimu/CutAttack")
	TNT1 A 0 A_RadiusGive("PlayerMReimuCutEffect",3000,RGF_MONSTERS)
	TNT1 AAAA 2
	TNT1 AA 3
	TNT1 A 0 A_SetBlend("Red",0.5,10)
	TNT1 A 0 A_PlaySound("MReimu/CutAttack")
	TNT1 A 0 A_RadiusGive("PlayerMReimuCutEffect",3000,RGF_MONSTERS)
	TNT1 AAAA 2
	TNT1 AA 3
	TNT1 A 0 A_SetBlend("Red",0.5,10)
	TNT1 A 0 A_PlaySound("MReimu/CutAttack")
	TNT1 A 0 A_RadiusGive("PlayerMReimuCutEffect",3000,RGF_MONSTERS)
	TNT1 AAAA 2
   Goto Ready
   Fire10:
	TNT1 AAA 6 
    TNT1 A 0 A_FireCustomMissile("PlayerMReimuDistortion",0,0,0,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1
    TNT1 A 0 A_playsound("MReimu/Attack1",2,1.0,0,ATTN_NONE)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1
	TNT1 AAA 8 
   Goto Ready
  AltFire:
    TNT1 A 0
  	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",10,3)
	TNT1 A 0 A_GiveInventory("MagaReimuWeaponType",1)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_TakeInventory("MagaReimuWeaponType",10)
	TNT1 A 0
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",10,"Select10")
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",9,"Select9")
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",8,"Select8")
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",7,"Select7")
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",6,"Select6")
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",5,"Select5")
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",4,"Select4")
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",3,"Select3")
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",2,"Select2")
	TNT1 A 0 A_JumpIfInventory("MagaReimuWeaponType",1,"Select1")
	TNT1 A 1 Bright
	TNT1 A 1 Bright A_Jump(256,"Select0")
	Goto Ready
  Select0:
    TNT1 A 1 Bright A_Print("Infernal Skulls")//A_Print("Rockets")
    Goto AltDone	
  Select1:
    TNT1 A 1 Bright A_Print("Melee")//A_Print("Stomp")
    Goto AltDone
  Select2:
    TNT1 A 1 Bright A_Print("Dark Matter")//A_Print("SeekerComets")
    Goto AltDone
  Select3:
    TNT1 A 1 Bright A_Print("Homing Dark Matter")//A_Print("FloorStomp")
    Goto AltDone
  Select4:
    TNT1 A 1 Bright A_Print("Accelerators")//A_Print("FuelRockets")
    Goto AltDone
  Select5:
    TNT1 A 1 Bright A_Print("Dark Seal")//A_Print("Fire Balls")
    Goto AltDone
  Select6:
    TNT1 A 1 Bright A_Print("Abyssal Blade")//A_Print("BFG10K")
    Goto AltDone
  Select7:
    TNT1 A 1 Bright A_Print("Dark Matter Storm")//A_Print("Railgun")
    Goto AltDone	
  Select8:
    TNT1 A 1 Bright A_Print("Dark Beam")//A_Print("Pyrocannon")
    Goto AltDone
  Select9:
    TNT1 A 1 Bright A_Print("Force Tear")//A_Print("SoulsStorm")
    Goto AltDone
  Select10:
    TNT1 A 1 Bright A_Print("Distortion")//A_Print("UltimateCombo")
    Goto AltDone	
  AltDone:
	TNT1 A 12 Bright
    Goto Ready
  }
}

ACTOR PlayerSkullShot : MReimuSkullShot
{
  Damagetype "Player2hu"
  Species "Player"
  ReactionTime 0
  States
  {
  Spawn:
	TNT1 A 0 A_SeekerMissile(5,5,SMF_LOOK)
    IFX2 AA 1 Bright A_SpawnItemEx("HFCyberFlame",-10)
	Loop
  Death:
	TNT1 A 0 A_Setscale(1.0)
	TNT1 A 0 A_Explode(30,100,0)
    RVSK ABCDEFGHIJKL 2 Bright A_Explode(10,100,0)
    Stop
  }
}

ACTOR PlayerMeleeDarkMatter : PlayerDarkMatterBall
{
  +FORCERADIUSDMG
  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(400,200,0)
	TNT1 A 15 Radius_Quake(5,15,0,20,0)
	Stop
  }
}

ACTOR PlayerDarkMatterBallHoming : PlayerDarkMatterBall
{
  States
  {
  Spawn:
	TNT1 A 0 A_SeekerMissile(5,5,SMF_LOOK)
	DMGB AA 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB A 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB AA 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB A 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB AA 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB A 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	TNT1 A 0 A_SeekerMissile(5,5,SMF_LOOK)
	DMGB BB 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB B 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB BB 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB B 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB BB 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB B 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	TNT1 A 0 A_SeekerMissile(5,5,SMF_LOOK)
	DMGB CC 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB C 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB CC 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB C 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB CC 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB C 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	Loop
	}
}

ACTOR PlayerMReimuSuperBall : MReimuSuperBall
{
  Damagetype "Player2hu"
  Species "Player"
  States
  {
  Death:
	TNT1 A 0
	TNT1 A 0 A_Quake(3,20,0,1000)
	TNT1 A 0 A_Explode(150,150,0)
	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 PlayerMReimuHomingSuperBall : MReimuHomingSuperBall
{
  Damagetype "Player2hu"
  Species "Player"
  States
  {
  Death:
	TNT1 A 0
	TNT1 A 0 A_Quake(6,40,0,1500)
	TNT1 A 0 A_Explode(400,300,0)
	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 PlayerMReimuSwordSpawnerSpiral : MReimuSwordSpawnerSpiral
{
  MissileType "PlayerMReimuSword"
}

ACTOR PlayerMReimuSword : MReimuSword
{
  DamageType "Player2hu"
  Species "Player"
}

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

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

ACTOR PlayerFallingMReimuDarkmatterHoming : PlayerDarkMatterBallHoming
{
  Radius 6
  Height 6
  Speed 10
  +SPAWNCEILING
  +MTHRUSPECIES
  +DONTHURTSPECIES
  +DONTHARMSPECIES
  +FLOORCLIP
  States
  {
  Spawn:
	TNT1 A 0 A_SeekerMissile(5,5,SMF_CURSPEED|SMF_LOOK)
	DMGB AA 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB A 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB AA 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB A 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB AA 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB A 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	TNT1 A 0 A_SeekerMissile(5,5,SMF_CURSPEED|SMF_LOOK)
	DMGB BB 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB B 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB BB 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB B 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB BB 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB B 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	TNT1 A 0 A_SeekerMissile(5,5,SMF_CURSPEED|SMF_LOOK)
	DMGB CC 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB C 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB CC 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB C 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB CC 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB C 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	Loop
  }
}

Actor PlayerMReimuLaser : MReimuLaser
{
  Damagetype "Player2hu"
  MissileType "PlayerMReimuLaserTrailSpawner"
  MissileHeight 8
  States
  {
    Spawn:
	  TNT1 A 0
	  TNT1 A 4 A_SpawnItemEx("PlayerMReimuLaserTrailDamager")
	  Loop
  }
}

ACTOR PlayerMReimuLaserTrailDamager : MReimuLaserTrailDamager
{
  Damagetype "Player2hu"
}

ACTOR PlayerMReimuLaserTrailSpawner : MReimuLaserTrailSpawner
{
  Damagetype "Player2hu"
}

ACTOR PlayerMReimuCutEffect : 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 1 Thing_Damage(0,random(200,300),0)
	Stop
	}
}

ACTOR PlayerMReimuDistortion : MReimuDistortion
{
  +NOCLIP
  +THRUACTORS
  +SEEKERMISSILE
  +FORCERADIUSDMG
  Damagetype "Player2hu"
  var int user_loop;
  States
  {
  Spawn:
	TNT1 AAAA 0 NoDelay A_SeekerMissile(90,90,SMF_LOOK)
    TNT1 A 0 A_PlaySound("MReimu/Distortion2",7,1.0,1)
	TNT1 A 0 A_JumpIf(user_loop >= 10,"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_Warp(AAPTR_TRACER,0,0,0,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	TNT1 A 0 A_SpawnItemEx("MReimuDistortionEffect",0,0,32,random(-3,3),random(-3,3),random(-3,3))
    TNT1 AA 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	TNT1 A 0 A_SpawnItemEx("MReimuDistortionEffect",0,0,32,random(-3,3),random(-3,3),random(-3,3))
    TNT1 AA 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	TNT1 A 0 A_SpawnItemEx("MReimuDistortionEffect",0,0,32,random(-3,3),random(-3,3),random(-3,3))
    TNT1 AA 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	TNT1 A 0 A_SpawnItemEx("MReimuDistortionEffect",0,0,32,random(-3,3),random(-3,3),random(-3,3))
    TNT1 AA 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
    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,0.4)
	TNT1 A 0 A_PlaySound("exile/voidend",6,1.0,0,0.5)
	TNT1 A 0 A_Explode(3000,600,0,0,600)
	TNT1 A 0 A_RadiusGive("PlayerMReimuWeaken",600,RGF_MONSTERS)
	TNT1 A 1 //A_StopSound(7)
	Stop
	}
}

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