ACTOR GenericWeakOrb 
{
  Radius 5
  Speed 10
  Height 6
  damage (1)
  Scale 0.35
  Damagetype "Touhou" 
  Species "Touhou"
  Projectile
  +strifedamage
  RenderStyle Add
  DeathSound "lildead"
  States 
  {
  Spawn:
    CLBA D 1 Bright
    Loop
  Death:
	TNT1 A 0
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("WhiteProjParticle",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),random(0,359))
    CLBA D 1 Bright A_FadeOut(0.2)
    Goto Death+1
  }
}

ACTOR GenericStrongOrb : GenericWeakOrb
{
  Radius 9
  Height 12
  Scale 0.8
  DeathSound "Orbpdeath"
  States
  {
  Spawn:
    CLBA D 1 Bright
    Loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("WhiteProjExplode")
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("WhiteProjParticleLarge",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),random(0,359))
    CLBA D 1 Bright A_FadeOut(0.2)
    Goto Death+2
  }
}

ACTOR GenericSuperOrb : GenericStrongOrb
{
  Scale 1
  Speed 20
  SeeSound "BIGMISSILE"
  DeathSound "FANTASYSEAL"
  +FORCERADIUSDMG
  States
  {
  Spawn:
    CLBB D 1 Bright A_SpawnItemEx("WhiteProjParticleSuperLarge2",0,0,0,0,frandom(-1,1),frandom(-1,1),random(0,359))
	TNT1 A 0 A_SpawnItemEx("WhiteProjParticleSuperLarge2",0,0,0,0,frandom(-1,1),frandom(-1,1),random(0,359))
    Loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_Explode(100,100)
	TNT1 A 0 A_SpawnItem("WhiteProjExplodeLarge")
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("WhiteProjParticleSuperLarge",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),random(0,359))
    CLBB D 1 Bright A_FadeOut(0.2)
    Goto Death+3
  }
}

ACTOR BaseProjectileEffect
{
  +NoInteraction
  +ClientSideOnly
  +ForceXYBillboard
  RenderStyle Add
}

ACTOR BaseProjectileParticle : BaseProjectileEffect
{
  Scale 0.02
  States
  {
  Spawn:
	TNT1 A 2
	TNT1 A 1 Bright
	Goto Spawn2
  Spawn2:
	"####" "#" 1 Bright A_FadeOut(0.1)
	"####" "#" 0 A_SetScale(ScaleX-0.002)
    Loop
  }
}

ACTOR BaseProjectileParticleLarge : BaseProjectileEffect
{
  Scale 0.05
  States
  {
  Spawn:
	TNT1 A 2
	TNT1 A 1 Bright
	Goto Spawn2
  Spawn2:
	"####" "#" 1 Bright A_FadeOut(0.1)
	"####" "#" 0 A_SetScale(ScaleX-0.004)
    Loop
  }
}

ACTOR BaseProjectileParticleSuperLarge : BaseProjectileEffect
{
  Scale 0.3
  States
  {
  Spawn:
	TNT1 A 2
	TNT1 A 1 Bright
	Goto Spawn2
  Spawn2:
	"####" "#" 1 Bright A_FadeOut(0.1)
	"####" "#" 0 A_SetScale(ScaleX-0.02)
    Loop
  }
}


ACTOR BaseProjectileParticleSuperLarge2 : BaseProjectileEffect
{
  Scale 0.5
  States
  {
  Spawn:
	TNT1 A 2
	TNT1 A 1 Bright
	Goto Spawn2
  Spawn2:
	"####" "#" 1 Bright A_FadeOut(0.075)
	"####" "#" 0 A_SetScale(ScaleX-0.03)
    Loop
  }
}

ACTOR BaseProjectileExplode : BaseProjectileEffect
{   
  Scale 0.1
  States
  {
  Spawn:
	TNT1 A 2
	TNT1 A 1 Bright
	Goto Spawn2
  Spawn2:
	"####" "#" 1 Bright A_FadeOut(0.1)
	"####" "#" 0 A_SetScale(ScaleX+0.05)
    Loop
  }
}

ACTOR BaseProjectileExplodeLarge : BaseProjectileEffect
{   
  Scale 0.1
  States
  {
  Spawn:
	TNT1 A 2
	TNT1 A 1 Bright
	Goto Spawn2
  Spawn2:
	"####" "#" 1 Bright A_FadeOut(0.075)
	"####" "#" 0 A_SetScale(ScaleX+0.1)
    Loop
  }
}

//-------------------------------------------
//             Scarlet
//-------------------------------------------
ACTOR ScarletProjParticle : BaseProjectileParticle
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA A 1 Bright
	Goto Spawn2
  }
}

ACTOR ScarletProjParticleLarge : BaseProjectileParticleLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA A 1 Bright
	Goto Spawn2
  }
}

ACTOR ScarletProjParticleSuperLarge : BaseProjectileParticleSuperLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA A 1 Bright
	Goto Spawn2
  }
}

ACTOR ScarletProjParticleSuperLarge2 : BaseProjectileParticleSuperLarge2
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA A 1 Bright
	Goto Spawn2
  }
}

ACTOR ScarletProjExplode : BaseProjectileExplode
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC A 1 Bright
	Goto Spawn2
  }
}

ACTOR ScarletProjExplodeLarge : BaseProjectileExplodeLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC A 1 Bright
	Goto Spawn2
  }
}



//-------------------------------------------
//             Red
//-------------------------------------------
ACTOR RedProjParticle : BaseProjectileParticle
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA B 1 Bright
	Goto Spawn2
  }
}

ACTOR RedProjParticleLarge : BaseProjectileParticleLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA B 1 Bright
	Goto Spawn2
  }
}

ACTOR RedProjParticleSuperLarge : BaseProjectileParticleSuperLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA B 1 Bright
	Goto Spawn2
  }
}

ACTOR RedProjParticleSuperLarge2 : BaseProjectileParticleSuperLarge2
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA B 1 Bright
	Goto Spawn2
  }
}

ACTOR RedProjExplode : BaseProjectileExplode
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC B 1 Bright
	Goto Spawn2
  }
}

ACTOR RedProjExplodeLarge : BaseProjectileExplodeLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC B 1 Bright
	Goto Spawn2
  }
}






//-------------------------------------------
//             Blue
//-------------------------------------------
ACTOR XBlueProjParticle : BaseProjectileParticle replaces BlueProjParticle
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA C 1 Bright
	Goto Spawn2
  }
}

ACTOR XBlueProjParticleLarge : BaseProjectileParticleLarge replaces BlueProjParticleLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA C 1 Bright
	Goto Spawn2
  }
}

ACTOR XBlueProjParticleSuperLarge : BaseProjectileParticleSuperLarge replaces BlueProjParticleSuperLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA C 1 Bright
	Goto Spawn2
  }
}

ACTOR BlueProjParticleSuperLarge2 : BaseProjectileParticleSuperLarge2
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA C 1 Bright
	Goto Spawn2
  }
}

ACTOR BlueProjExplode : BaseProjectileExplode
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC C 1 Bright
	Goto Spawn2
  }
}

ACTOR XBlueProjExplodeLarge : BaseProjectileExplodeLarge replaces BlueProjExplodeLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC C 1 Bright
	Goto Spawn2
  }
}






//-------------------------------------------
//             White
//-------------------------------------------
ACTOR WhiteProjParticle : BaseProjectileParticle
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA D 1 Bright
	Goto Spawn2
  }
}

ACTOR WhiteProjParticleLarge : BaseProjectileParticleLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA D 1 Bright
	Goto Spawn2
  }
}

ACTOR WhiteProjParticleSuperLarge : BaseProjectileParticleSuperLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA D 1 Bright
	Goto Spawn2
  }
}

ACTOR WhiteProjParticleSuperLarge2 : BaseProjectileParticleSuperLarge2
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA D 1 Bright
	Goto Spawn2
  }
}

ACTOR WhiteProjExplode : BaseProjectileExplode
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC D 1 Bright
	Goto Spawn2
  }
}

ACTOR WhiteProjExplodeLarge : BaseProjectileExplodeLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC D 1 Bright
	Goto Spawn2
  }
}


ACTOR NemesisWhiteProjParticle : WhiteProjParticle { +NOTIMEFREEZE }
ACTOR NemesisWhiteProjParticleLarge : WhiteProjParticleLarge { +NOTIMEFREEZE }
ACTOR NemesisWhiteProjParticleSuperLarge : WhiteProjParticleSuperLarge { +NOTIMEFREEZE }
ACTOR NemesisWhiteProjParticleSuperLarge2 : WhiteProjParticleSuperLarge2 { +NOTIMEFREEZE }
ACTOR NemesisWhiteProjExplode : WhiteProjExplode { +NOTIMEFREEZE }
ACTOR NemesisWhiteProjExplodeLarge : WhiteProjExplodeLarge { +NOTIMEFREEZE }





//-------------------------------------------
//             Orange
//-------------------------------------------
ACTOR OrangeProjParticle : BaseProjectileParticle
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA E 1 Bright
	Goto Spawn2
  }
}

ACTOR OrangeProjParticleLarge : BaseProjectileParticleLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA E 1 Bright
	Goto Spawn2
  }
}

ACTOR OrangeProjParticleSuperLarge : BaseProjectileParticleSuperLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA E 1 Bright
	Goto Spawn2
  }
}

ACTOR OrangeProjParticleSuperLarge2 : BaseProjectileParticleSuperLarge2
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA E 1 Bright
	Goto Spawn2
  }
}

ACTOR OrangeProjExplode : BaseProjectileExplode
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC E 1 Bright
	Goto Spawn2
  }
}

ACTOR OrangeProjExplodeLarge : BaseProjectileExplodeLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC E 1 Bright
	Goto Spawn2
  }
}






//-------------------------------------------
//             Yellow
//-------------------------------------------
ACTOR YellowProjParticle : BaseProjectileParticle
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA F 1 Bright
	Goto Spawn2
  }
}

ACTOR YellowProjParticleLarge : BaseProjectileParticleLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA F 1 Bright
	Goto Spawn2
  }
}

ACTOR YellowProjParticleSuperLarge : BaseProjectileParticleSuperLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA F 1 Bright
	Goto Spawn2
  }
}

ACTOR YellowProjParticleSuperLarge2 : BaseProjectileParticleSuperLarge2
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA F 1 Bright
	Goto Spawn2
  }
}

ACTOR YellowProjExplode : BaseProjectileExplode
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC F 1 Bright
	Goto Spawn2
  }
}

ACTOR YellowProjExplodeLarge : BaseProjectileExplodeLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC F 1 Bright
	Goto Spawn2
  }
}






//-------------------------------------------
//             Pink
//-------------------------------------------
ACTOR PinkProjParticle : BaseProjectileParticle
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA G 1 Bright
	Goto Spawn2
  }
}

ACTOR PinkProjParticleLarge : BaseProjectileParticleLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA G 1 Bright
	Goto Spawn2
  }
}

ACTOR PinkProjParticleSuperLarge : BaseProjectileParticleSuperLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA G 1 Bright
	Goto Spawn2
  }
}

ACTOR PinkProjParticleSuperLarge2 : BaseProjectileParticleSuperLarge2
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA G 1 Bright
	Goto Spawn2
  }
}

ACTOR PinkProjExplode : BaseProjectileExplode
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC G 1 Bright
	Goto Spawn2
  }
}

ACTOR PinkProjExplodeLarge : BaseProjectileExplodeLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC G 1 Bright
	Goto Spawn2
  }
}






//-------------------------------------------
//             Green
//-------------------------------------------
ACTOR GreenProjParticle : BaseProjectileParticle
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA H 1 Bright
	Goto Spawn2
  }
}

ACTOR GreenProjParticleLarge : BaseProjectileParticleLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA H 1 Bright
	Goto Spawn2
  }
}

ACTOR GreenProjParticleSuperLarge : BaseProjectileParticleSuperLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA H 1 Bright
	Goto Spawn2
  }
}

ACTOR GreenProjParticleSuperLarge2 : BaseProjectileParticleSuperLarge2
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA H 1 Bright
	Goto Spawn2
  }
}

ACTOR GreenProjExplode : BaseProjectileExplode
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC H 1 Bright
	Goto Spawn2
  }
}

ACTOR GreenProjExplodeLarge : BaseProjectileExplodeLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC H 1 Bright
	Goto Spawn2
  }
}






//-------------------------------------------
//             Purple
//-------------------------------------------
ACTOR PurpleProjParticle : BaseProjectileParticle
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA J 1 Bright
	Goto Spawn2
  }
}

ACTOR PurpleProjParticleLarge : BaseProjectileParticleLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA J 1 Bright
	Goto Spawn2
  }
}

ACTOR PurpleProjParticleSuperLarge : BaseProjectileParticleSuperLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA J 1 Bright
	Goto Spawn2
  }
}

ACTOR PurpleProjParticleSuperLarge2 : BaseProjectileParticleSuperLarge2
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA J 1 Bright
	Goto Spawn2
  }
}

ACTOR PurpleProjExplode : BaseProjectileExplode
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC J 1 Bright
	Goto Spawn2
  }
}

ACTOR PurpleProjExplodeLarge : BaseProjectileExplodeLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC J 1 Bright
	Goto Spawn2
  }
}





//-------------------------------------------
//             Cyan
//-------------------------------------------
ACTOR CyanProjParticle : BaseProjectileParticle
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA I 1 Bright
	Goto Spawn2
  }
}

ACTOR CyanProjParticleLarge : BaseProjectileParticleLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA I 1 Bright
	Goto Spawn2
  }
}

ACTOR CyanProjParticleSuperLarge : BaseProjectileParticleSuperLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA I 1 Bright
	Goto Spawn2
  }
}

ACTOR CyanProjParticleSuperLarge2 : BaseProjectileParticleSuperLarge2
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBA I 1 Bright
	Goto Spawn2
  }
}

ACTOR CyanProjExplode : BaseProjectileExplode
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC I 1 Bright
	Goto Spawn2
  }
}

ACTOR CyanProjExplodeLarge : BaseProjectileExplodeLarge
{
  States
  {
  Spawn:
	TNT1 A 2
	CLBC I 1 Bright
	Goto Spawn2
  }
}






//-------------------------------------------
//             Dark Purple/Blue
//-------------------------------------------
ACTOR DarkPurpleProjParticle : BaseProjectileParticle
{
  Renderstyle Subtract
  States
  {
  Spawn:
	TNT1 A 2
	CLBA K 1 Bright
	Goto Spawn2
  }
}

ACTOR DarkPurpleProjParticleLarge : BaseProjectileParticleLarge
{
  Renderstyle Subtract
  States
  {
  Spawn:
	TNT1 A 2
	CLBA K 1 Bright
	Goto Spawn2
  }
}

ACTOR DarkPurpleProjParticleSuperLarge : BaseProjectileParticleSuperLarge
{
  Renderstyle Subtract
  States
  {
  Spawn:
	TNT1 A 2
	CLBA K 1 Bright
	Goto Spawn2
  }
}

ACTOR DarkPurpleProjParticleSuperLarge2 : BaseProjectileParticleSuperLarge2
{
  Renderstyle Subtract
  States
  {
  Spawn:
	TNT1 A 2
	CLBA K 1 Bright
	Goto Spawn2
  }
}






//-------------------------------------------
//             Dark Red
//-------------------------------------------
ACTOR DarkRedProjParticle : BaseProjectileParticle
{
  Renderstyle Subtract
  States
  {
  Spawn:
	TNT1 A 2
	CLBA I 1 Bright
	Goto Spawn2
  }
}

ACTOR DarkRedProjParticleLarge : BaseProjectileParticleLarge
{
  Renderstyle Subtract
  States
  {
  Spawn:
	TNT1 A 2
	CLBA I 1 Bright
	Goto Spawn2
  }
}

ACTOR DarkRedProjParticleSuperLarge : BaseProjectileParticleSuperLarge
{
  Renderstyle Subtract
  States
  {
  Spawn:
	TNT1 A 2
	CLBA I 1 Bright
	Goto Spawn2
  }
}

ACTOR DarkRedProjParticleSuperLarge2 : BaseProjectileParticleSuperLarge2
{
  Renderstyle Subtract
  States
  {
  Spawn:
	TNT1 A 2
	CLBA I 1 Bright
	Goto Spawn2
  }
}






//-------------------------------------------
//             Black
//-------------------------------------------
ACTOR BlackProjParticle : BaseProjectileParticle
{
  +NOTIMEFREEZE
  Renderstyle Subtract
  States
  {
  Spawn:
	TNT1 A 2
	CLBA D 1 Bright
	Goto Spawn2
  }
}

ACTOR BlackProjParticleLarge : BaseProjectileParticleLarge
{
  +NOTIMEFREEZE
  Renderstyle Subtract
  States
  {
  Spawn:
	TNT1 A 2
	CLBA D 1 Bright
	Goto Spawn2
  }
}

ACTOR BlackProjParticleSuperLarge : BaseProjectileParticleSuperLarge
{
  +NOTIMEFREEZE
  Renderstyle Subtract
  States
  {
  Spawn:
	TNT1 A 2
	CLBA D 1 Bright
	Goto Spawn2
  }
}

ACTOR BlackProjParticleSuperLarge2 : BaseProjectileParticleSuperLarge2
{
  +NOTIMEFREEZE
  Renderstyle Subtract
  States
  {
  Spawn:
	TNT1 A 2
	CLBA D 1 Bright
	Goto Spawn2
  }
}





//-------------------------------------------
//             Red 2
//-------------------------------------------
ACTOR Red2ProjParticle : BaseProjectileParticle
{
  +NOTIMEFREEZE
  States
  {
  Spawn:
	TNT1 A 2
	CLBA L 1 Bright
	Goto Spawn2
  }
}

ACTOR Red2ProjParticleLarge : BaseProjectileParticleLarge
{
  +NOTIMEFREEZE
  States
  {
  Spawn:
	TNT1 A 2
	CLBA L 1 Bright
	Goto Spawn2
  }
}

ACTOR Red2ProjParticleSuperLarge : BaseProjectileParticleSuperLarge
{
  +NOTIMEFREEZE
  States
  {
  Spawn:
	TNT1 A 2
	CLBA L 1 Bright
	Goto Spawn2
  }
}

ACTOR Red2ProjParticleSuperLarge2 : BaseProjectileParticleSuperLarge2
{
  +NOTIMEFREEZE
  States
  {
  Spawn:
	TNT1 A 2
	CLBA L 1 Bright
	Goto Spawn2
  }
}

ACTOR Red2ProjExplode : BaseProjectileExplode
{
  +NOTIMEFREEZE
  States
  {
  Spawn:
	TNT1 A 2
	CLBC L 1 Bright
	Goto Spawn2
  }
}

ACTOR Red2ProjExplodeLarge : BaseProjectileExplodeLarge
{
  +NOTIMEFREEZE
  States
  {
  Spawn:
	TNT1 A 2
	CLBC L 1 Bright
	Goto Spawn2
  }
}