Actor BaseFX
{
 Speed 0
 +ClientsideOnly
 +ForceXYBillboard
 +NoBlockMap
 +NoInteraction
 +NoGravity
 +DONTSPLASH
 +ExplodeOnWater
 +NoTelestomp
 
 Radius 2
 Height 2
  States
  {
   Toaster:
   TNT1 A 0
   TNT1 A 1
   Stop
  }
}
Actor ShockFX : BaseFX
{
 -ClientsideOnly
 Scale 0.7
 Renderstyle Add
  States
   {
	Spawn:
	ERPS A 0
	Spawn2:
	"####" A 0
	"####" A 0 a_jump(182,"Anim")
	"####" A 0 A_PlaySound("plasma/trace1",0,0.4,0)
	GoTo Anim2
	Blank:
	"####" K 1 A_GiveInventory("Tic",1)
	"####" K 0 A_JumpIfInventory("Tic",10,"AnimFade")
	"####" A 0 a_jump(21,"Anim2","Anim3","Anim4","Anim5")
	GoTo Anim2
	Blank2:
	"####" K 1 A_GiveInventory("Tic",1)
	"####" K 0 A_JumpIfInventory("Tic",10,"AnimFade")
	"####" A 0 a_jump(21,"Anim","Anim3","Anim4","Anim5")
	GoTo Anim3
	Blank3:
	"####" K 1 A_GiveInventory("Tic",1)
	"####" K 0 A_JumpIfInventory("Tic",10,"AnimFade")
	"####" A 0 a_jump(21,"Anim2","Anim","Anim4","Anim5")
	GoTo Anim4
	Blank4:
	"####" K 1 A_GiveInventory("Tic",1)
	"####" K 0 A_JumpIfInventory("Tic",10,"AnimFade")
	"####" A 0 a_jump(21,"Anim2","Anim3","Anim","Anim5")
	GoTo Anim5
	Blank5:
	"####" K 1 A_GiveInventory("Tic",1)
	"####" K 0 A_JumpIfInventory("Tic",10,"AnimFade")
	"####" A 0 a_jump(21,"Anim2","Anim3","Anim4","Anim")
	GoTo Anim6
	Anim:
	"####" A 1 Bright
	"####" A 0 A_Jump(72,"Blank")
	GoTo Anim
	Anim2:
	"####" B 1 Bright
	"####" A 0 A_Jump(72,"Blank2")
	GoTo Anim3
	Anim3:
	"####" C 1 Bright
	"####" A 0 A_Jump(112,"Blank3")
	GoTo Anim4
	Anim4:
	"####" D 1 Bright
	"####" A 0 A_Jump(72,"Blank4")
	GoTo Anim5
	Anim5:
	"####" E 1 Bright
	"####" A 0 A_Jump(112,"Blank5")
	GoTo Anim6
	Anim6:
	"####" F 1 Bright
	"####" A 0 A_Jump(131,"Blank")
	GoTo AnimFade
	AnimFade:
	"####" FFECDFECDF 1 Bright A_FadeOUT
    Wait
   }
}

Actor ShockFXStorm : ShockFX
{States{Spawn: STRP A 0
GoTo Super::Spawn2 }}

Actor ShockFXChaos : ShockFX
{States{Spawn: CHLK A 0
GoTo Super::Spawn2 }}

Actor SkullStaffEmber : BaseFX
{
	Scale 0.8
	RenderStyle Add
	
	States
	{
		Spawn:
		    SKPX A 0
			SKPX AAAAABBBCC 1 Bright  A_SpawnItemEx("SkullStaffET",0,0,0)
			SKPX DE 3 Bright
		Stop
	}
}

Actor SkullStaffET : BaseFX
{
 Scale 0.25
 Alpha 0.8
 Renderstyle Add
  States
   {
    Spawn:
	 SKPF BBA 1 Bright
	 SKPF A 1 Bright A_FadeOut
	 Wait
  }
}

Actor SunProjectileParticle : BaseFX
{
	Scale 0.8
	RenderStyle Add
	States
	{
		Spawn:
		    LBPA A 0
			LBPA AAAAABBBCC 1 Bright  A_SpawnItemEx("SunProjectileParticleET",0,0,0)
			LBPA DDDEEE 1 Bright A_SpawnItemEx("SunProjectileParticleET",0,0,0)
		Stop
	}
}

Actor SunProjectileParticleET : BaseFX
{
 Scale 0.25
 Alpha 0.8
 Renderstyle Add
  States
   {
    Spawn:
	 SUNP BBA 1 Bright
	 SUNP A 1 Bright A_FadeOut
	 Wait
  }
}

Actor PhantomFireTrail : BaseFX
{
 Alpha 0.4
 Alpha 0.99
 Renderstyle Add
 +Bright
  States
   {
    Spawn:
     SKPJ E 0
	 SKPJ DDE 3
	 SKPJ F 0 A_SpawnItemEx("PhantomFireTSpark2",0,0,2,random(0,2),0,random(1,6),random(0,360))
	 SKPJ F 1 A_SpawnItemEx("PhantomFireTSpark",0,0,2,random(0,2),0,random(1,6),random(0,360))
	 SKPJ F 0 A_SpawnItemEx("PhantomFireTSpark2",0,0,-2,random(0,2),0,random(-6,-1),random(0,360))
	 SKPJ F 1 A_SpawnItemEx("PhantomFireTSpark",0,0,-2,random(0,2),0,random(-6,-1),random(0,360))
	 SKPJ FGH 3
	 SKPJ H 2 A_FadeOut(0.05)
	 Wait
  }
}
Actor PhantomFireTSpark : BaseFX
{
 Scale 0.75
 Alpha 0.8
 Renderstyle Add
 +Bright
  States
   {
    Spawn:
	 SKPJ AB 2 Bright
	 SKPJ AABB 1 Bright A_FadeOut
	 Wait
  }
}
Actor PhantomFireTSpark2 : BaseFX
{
 Scale 0.35
 Alpha 0.65
 Renderstyle Add
 +Bright
  States
   {
    Spawn:
	 SKPJ ABABAB 3 Bright
	 SKPJ AABB 1 Bright A_FadeOut
	 Wait
  }
}

Actor EtherBombTrace: BaseFX
{
 Scale 0.88
 Renderstyle Add
 +Bright
  States
   {
    Spawn:
	 SKPX ABC 2 Bright
	 SKPX CDDDE 1 Bright A_FadeOut
	 Wait
  }
}
 

Actor HellRocketTrail : BaseFX
{
 Scale 0.85
 Renderstyle Add
  States
   {
    Spawn:
	 HRKT BCD 3 Bright
	 HRKT EEEF 1 Bright A_FadeOut
	 Wait
  }
}
Actor RipperTrailA : BaseFX
{
 Scale 0.7
 Renderstyle Add
  States
   {
    Spawn:
	 RIP2 A 0
	 RIP2 BB 0 A_SpawnItemEx("RipperEmbers",random(-7,7),0,random(-7,7),random(0,1),0,random(-1,1),random(0,360))
	 RIP2 A 1  A_FadeOut
	 Wait
  }
}
Actor RipperTrailB : BaseFX
{
 Scale 0.7
 Renderstyle Add
  States
   {
    Spawn:
	 RIP2 A 0
	 RIP2 BB 0 A_SpawnItemEx("RipperEmbers",random(-7,7),0,random(-7,7),random(0,1),0,random(-1,1),random(0,360))
	 RIP2 B 1  A_FadeOut
	 Wait
  }
}

Actor RipperTrailA2 : BaseFX
{
 Scale 0.7
 Renderstyle Add
  States
   {
    Spawn:
	 RIP2 A 0
	 RIP2 BB 0 A_SpawnItemEx("RipperSmokes",random(-3,3),0,random(-3,3),0,0,random(1,2),random(0,360))
	 RIP2 A 1  A_FadeOut
	 Wait
  }
}
Actor RipperTrailB2 : BaseFX
{
 Scale 0.7
 Renderstyle Add
  States
   {
    Spawn:
	 RIP2 A 0
	 RIP2 BB 0 A_SpawnItemEx("RipperSmokes",random(-3,3),0,random(-3,3),0,0,random(1,2),random(0,360))
	 RIP2 B 1  A_FadeOut
	 Wait
  }
}
Actor RipperEmbers : BaseFX
{
 Scale 0.4
 Renderstyle Add
  States
   {
    Spawn:
	 RIP2 E 3 Bright
	 RIP2 E 0 Bright A_Jump(182,2,3,4,5,7,8)
	 RIP2 E 0 Bright A_Jump(182,2,3,4,5,7,8)
	 RIP2 EEEEEEEEEEEE 1 Bright
	 RIP2 FFFG 1 Bright A_FadeOut
	 Wait
  }
}
Actor RipperSmokes : BaseFX
{
 Scale 0.45
 Renderstyle Add
  States
   {
    Spawn:
	 WSMK ABC 2
	 WSMK DDE 1 A_FadeOut
	 Wait
  }
}

Actor FrostFangTrail : BaseFX
{
  Alpha 0.8
  Scale 0.6
  Renderstyle Add
  States
  {
  Spawn:
    FFFG A 0 
	FFFG AA 0 A_SpawnItemEx("FrostFangTrail2",random(-3,3),random(-4,4),random(-3,3),0,0,0,0,SXF_CLIENTSIDE,117)
	FFFG A 0 A_SpawnItemEx("FrostFangTrail2",random(-4,4),random(-4,4),random(-3,3),0,0,0,0,SXF_CLIENTSIDE,223)
    FFFG A 2 A_FadeOut(0.2)
    Loop
  }
}

Actor FrostFangTrail2 : BaseFX
{
 Scale 0.22
 -NoGravity
 -NoInteraction
 Gravity 0.02
 Alpha 0.4
 +Bright
 Renderstyle Add
  States
   {
    Spawn:
	 CRYT A 2
	 CRYT A 2 A_Jump(128,2,3,4,5)
	 CRYT BBBBB 1
	 CRYT A 0 A_Jump(128,2,3,4)
	 CRYT CCCC 1
	 CRYT D 3
	 CRYT D 1 A_FadeOut
	 Wait
  }
}


ACTOR FrostFangDFX
{
   Radius 3
   Height 4
   Scale 0.2
   Damage (0)
   PROJECTILE
   RENDERSTYLE Add
   damagetype "Player"
   BounceCount 3
   BounceFactor 0.8
   WallBounceFactor 1.1
   +ThruActors
   +ClientSideOnly
   -NoGravity
   +BounceOnFloors
   +BounceOnCeilings
   +BounceOnWalls
   +FORCEXYBILLBOARD
   +Bright
   Gravity 0.3
   States
   {
   Spawn:
      DPVF A 0  A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
      DPVF A 1  A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
	  DPVF "#" 0 A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
      DPVF A 1  A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
	  DPVF "#" 0 A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
      DPVF A 1  A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
	  DPVF A 0 A_SetTranslucent(0.9,1)
	  DPVF A 0 A_ScaleVelocity(0.9)
	  DPVF "#" 0 A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
      DPVF B 1  A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
	  DPVF "#" 0 A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
      DPVF B 1  A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
	  DPVF B 0 A_SetTranslucent(0.86,1)
	  DPVF B 0 A_ScaleVelocity(0.9)
	  DPVF "#" 0 A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
      DPVF B 1  A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
	  DPVF "#" 0 A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
      DPVF B 1  A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
	  DPVF C 0 A_SetTranslucent(0.8,1)
	  DPVF C 0 A_ScaleVelocity(0.85)
      DPVF CC 1  A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
	  DPVF C 0 A_SetTranslucent(0.7,1)
	  DPVF C 0 A_ScaleVelocity(0.85)
	  DPVF "#" 0 A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
      DPVF C 1  A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
	  DPVF A 0 A_SetTranslucent(0.5,1)
	  DPVF A 0 A_ScaleVelocity(0.85)
	  DPVF "#" 0 A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
      DPVF A 1  A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
	  DPVF A 0 A_ScaleVelocity(0.85)
      DPVF A 1  A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
	  DPVF A 0 A_SetTranslucent(0.45,1)
	  DPVF A 0 A_ScaleVelocity(0.85)
      DPVF A 1  A_SpawnItemEx("FrostFangDFXT",0,random(-2,2),random(-2,2),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE)
	  DPVF A 0 A_SetTranslucent(0.3,1)
	  DPVF A 0 A_ScaleVelocity(0.85)
      DPVF B 1  
	  DPVF B 0 A_SetTranslucent(0.15,1)
	  DPVF B 0 A_ScaleVelocity(0.85)
      DPVF BBC 1  
      Stop
   Death:
      DPVF "#" 1 A_FadeOut
      Wait
   }
}

Actor FrostFangDFXT : BaseFX
{
 Renderstyle Add
 +Bright
  States
   {
    Spawn:
	 FFTX ABCDEFG 2 A_FadeOut
	 Wait
  }
}


Actor ImpalerSmoke : BaseFX
{
 Renderstyle Add
 Alpha 0.99
 +Bright
  States
   {
    Spawn:
	 NFRG AABCCDEEFGHH 1
	 NFRG H 1 A_FadeOut
	 Wait
  }
}

Actor ImpalerTrail : BaseFX
{
 Renderstyle Add
 Alpha 0.7
 Scale 2
  States
   {
    Spawn:
	 NFRG H 0
	 NFRG G 0 A_SpawnItemEx("ImpalerSmoke2",random(3,-5),random(-2,2),random(-1,1),0,random(-1,1),random(-1,1),0,SXF_CLIENTSIDE,0)
	 NFRG G 1 A_FadeOut
	 Wait
  }
}

Actor ImpalerSmoke2 : BaseFX
{
 Renderstyle Add
 Alpha 0.6
 +Bright
  States
   {
    Spawn:
	 NFRG DDEFGHHH 1
	 NFRG H 1 A_FadeOut
	 Wait
  }
}

Actor ImpalerSmoke3 : BaseFX
{
 Renderstyle Add
 Alpha 0.85
 +Bright
  States
   {
    Spawn:
	 NFRG AABBCDEFGHH 1
	 NFRG H 1 A_FadeOut
	 Wait
  }
}
Actor ImpalerSmoke4 : BaseFX
{
 Renderstyle Add
 Alpha 0.85
 +Bright
  States
   {
    Spawn:
	 NFRG CDDEFGHH 1
	 NFRG H 1 A_FadeOut
	 Wait
  }
}


ACTOR ImpalerShard : FrostFangDFX
{
   Scale 0.8
   damagetype "Player"
   BounceCount 32
   ReactionTime 1
   Gravity 1.0
   Renderstyle Normal
   BounceSound "weapons/impalershardbounce"
   States
   {
   Spawn:
      MFRG AABBCCDD 1 A_SpawnItemEx("ImpalerSmoke3",0,0,0,random(0,1),0,random(0,2),random(0,360),SXF_CLIENTSIDE)
	  MFRG A 0 A_GiveInventory("Tic",1)
	  MFRG A 0 A_JumpIfInventory("Tic",2,1)
      Loop
	  MFRG EFGHIJK 2 A_SpawnItemEx("ImpalerSmoke4",0,0,0,random(0,1),0,random(0,2),random(0,360),SXF_CLIENTSIDE)
	  MFRG A 0 A_JumpIf(momz==0,2)
	  MFRG A 0 A_Jump(256,2)
	  MFRG A 0 A_Jump(225,"StillSmoke")
	  MFRG LMNOP 2 A_SpawnItemEx("ImpalerSmoke4",random(0,2),0,0,0,0,random(0,2),random(0,360),SXF_CLIENTSIDE) 
	  DryLoop:
	  MFRG QRST 2 A_SpawnItemEx("ImpalerSmoke2",random(0,2),0,0,0,0,random(0,2),random(0,360),SXF_CLIENTSIDE) 
	  MFRG A 0 A_GiveInventory("Tic",1)
	  MFRG A 0 A_JumpIfInventory("Tic",8,1)
	  Loop
	  MFRG A 0 A_CountDown
	  MFRG S 5
	  Stop
	  StillSmoke:
	  MFRG A 0 A_GiveInventory("Tic2",1)
	  MFRG A 0 A_CountDown
	  MFRG O 5
	  Stop
   Death:
	  MFRG A 0 A_JumpIfInventory("Tic2",1,"Death2")
      MFRG SSSSS 10 A_SpawnItemEx("ImpalerSmoke2",random(0,2),0,0,0,0,random(0,2),random(0,360),SXF_CLIENTSIDE) 
	  MFRG SSSS 35
      MFRG S 1 A_FadeOut
      Wait
   Death2:
	  MFRG A 0 A_TakeInventory("Tic2",999)
      MFRG SSSSSSSSSSSSSSSSSSSSSSSSS 3 A_SpawnItemEx("ImpalerSmoke2",random(0,2),0,0,0,0,random(0,2),random(0,360),SXF_CLIENTSIDE) 
      GoTo Death
   }
}


Actor ArcanistArrowTrail : BaseFX
{
Scale 0.85
renderstyle add
Gravity 0.5
-NoInteraction
-NoGravity
States
{
Spawn:
ETHR F 1 bright
ETHR F 1 bright A_SetScale(0.9,0.9)
ETHR F 1 bright A_SetScale(1.0,1.0)
ETHR F 1 bright A_SetScale(1.1,1.1)
ETHR G 1 bright A_SetScale(1.3,1.3)
ETHR G 1 bright A_SetScale(1.15,1.15)
ETHR G 1 bright A_SetScale(0.8,0.8)
ETHR G 1 Bright A_FadeOut
Wait
}
}

Actor EtherealShotTrail : BaseFX
{
Scale 0.1
renderstyle add
+Bright
States
{
Spawn:
EGLW A 0
EGLW A 1 A_SpawnItemEx("OnibiFX",random(-3,3),random(-3,3),0,random(0,-1),random(-1,1),random(0,1),0,SXF_CLIENTSIDE,199)
EGLW A 1 A_FadeOut
Wait
}
}

Actor OnibiFX : BaseFX
{
Scale 0.45
renderstyle add
Alpha 0.99
Gravity 0.01
-NoInteraction
-NoGravity
+Bright
States
{
Spawn:
ESFX A 0
ESFX A 0 A_PlaySound("weapons/onibispawn",0,0.6,0,ATTN_STATIC)
ESFX AABB  2 A_SpawnItemEx("OnibiFXTail",random(0,1),0,random(0,1),0,0,random(1,2),random(0,360),SXF_CLIENTSIDE)
ESFX ABABA 2 A_SpawnItemEx("OnibiFXTail",random(0,1),0,random(0,1),0,0,random(1,2),random(0,360),SXF_CLIENTSIDE)
ESFX A 0 A_Jump(172,4,6,8,10,14,20,26)
ESFX A 0 A_Jump(128,24,28,32,35)
ESFX AAABBAABABABAAAAAAABBBABAAABBABABAAABBBBBAABBABABABABBAABAABBABBAA 1 A_SpawnItemEx("OnibiFXTail2",random(0,1),0,random(0,1),0,0,random(1,2),random(0,360),SXF_CLIENTSIDE)
ESFX BCDEFG 2
Stop
}
}

Actor OnibiFXTail : BaseFX
{
Scale 0.3
Alpha 0.8
renderstyle add
+Bright
States
{
Spawn:
ESFX AABBCDDEFG 1
ESFX G 1 A_FadeOut
Wait
}
}
Actor OnibiFXTail2 : BaseFX
{
Scale 0.3
Alpha 0.8
renderstyle add
+Bright
States
{
Spawn:
ESFX A 0
ESFX A 0 A_Jump(225,2)
ESFX A 0 A_PlaySound("weapons/onibidrone",0,0.1,0,ATTN_STATIC)
ESFX AABBCDDEFG 1
ESFX G 1 A_FadeOut
Wait
}
}
