#include "actors/PLAYER.TXT"
#include "actors/PROJECTILES.TXT"
#include "actors/WEAPONS.TXT"
#include "actors/PROPS.TXT"
#include "actors/MONSTERS.TXT"
#include "actors/effects.txt"

actor SpeakOneLiner : CustomInventory
{
 	inventory.maxamount 1
 	-INVENTORY.INVBAR
 	+INVENTORY.AUTOACTIVATE
 	+INVENTORY.ALWAYSPICKUP
 	States
 	{
 	Spawn:
 		TNT1 A -1
 		stop
 	Use:
 		TNT1 A 0
 		TNT1 A 1 A_JumpIfInventory("BlueTeam", 1, "IsBlue")
		TNT1 A 1 A_JumpIfInventory("RedTeam", 1, "IsRed")
		TNT1 A 1 A_JumpIfInventory("GreenTeam", 1, "IsGreen")
		TNT1 A 1 A_JumpIfInventory("GoldTeam", 1, "IsGold")
 		goto Cancel

 	IsBlue:
 		TNT1 A 0
 		TNT1 A 0 A_JumpIfHealthLower(1, "Cancel")
 		TNT1 A 1 A_Jump(64, "SpeakBlue")
 		goto Cancel
	IsRed:
 		TNT1 A 0
 		TNT1 A 0 A_JumpIfHealthLower(1, "Cancel")
 		TNT1 A 1 A_Jump(64, "SpeakRed")
 		goto Cancel
	IsGreen:
 		TNT1 A 0
 		TNT1 A 0 A_JumpIfHealthLower(1, "Cancel")
 		TNT1 A 1 A_Jump(64, "SpeakGreen")
 		goto Cancel
	IsGold:
 		TNT1 A 0
 		TNT1 A 0 A_JumpIfHealthLower(1, "Cancel")
 		TNT1 A 1 A_Jump(64, "SpeakGold")
 		goto Cancel

 	SpeakBlue:
 		TNT1 A 0
 		TNT1 A 0 A_JumpIfHealthLower(1, "Cancel")
 		TNT1 A 1 A_PlaySoundEx("blue/kill", "SoundSlot5", 0, 0.3)
 		stop
	SpeakRed:
 		TNT1 A 0
 		TNT1 A 0 A_JumpIfHealthLower(1, "Cancel")
 		TNT1 A 1 A_PlaySoundEx("red/kill", "SoundSlot5", 0, 0.3)
 		stop
	SpeakGreen:
 		TNT1 A 0
 		TNT1 A 0 A_JumpIfHealthLower(1, "Cancel")
 		TNT1 A 1 A_PlaySoundEx("green/kill", "SoundSlot5", 0, 0.3)
 		stop
	SpeakGold:
 		TNT1 A 0
 		TNT1 A 0 A_JumpIfHealthLower(1, "Cancel")
 		TNT1 A 1 A_PlaySoundEx("gold/kill", "SoundSlot5", 0, 0.3)
 		stop

 	Cancel:
 		TNT1 A 0
 		TNT1 A 1 A_TakeInventory("SpeakOneLiner", 1)
 		TNT1 A 0
 		stop
 	}
}

actor OldBlood : Blood
{
	States
	{
		Spawn:
			BLUD ABCD 6
			Stop
	}
}

actor 64Blood : Blood replaces Blood
{
	SpawnID 130
	Mass 5
	+NOBLOCKMAP
	+NOTELEPORT
	-ALLOWPARTICLES
	+NOGRAVITY
	Scale 0.25
	Alpha 0.5
	States
	{
		Spawn:
			BLUD A 0 A_Jump(256, "Spawn1", "Spawn2", "Spawn3")
			goto Spawn1
		Spawn1:
			BLUD AAAAAA 0 A_CustomMissile("64Blood2",0,0,random(-180,180),2,random(-90,45))
			BLOD C 0 A_SpawnItemEx ("AeniBloodEffectSpawner", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION, 0)
			BLOD C 0 A_SpawnItemEx ("AeniBlood2", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION, 0)
			BLUD ABCD 6
			Goto Spray
		Spawn2:
			BLUD AAAAAAAA 0 A_CustomMissile("64Blood3",0,0,random(-180,180),2,random(-90,45))
			BLOD C 0 A_SpawnItemEx ("AeniBloodEffectSpawner", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION, 0)
			BLOD C 0 A_SpawnItemEx ("AeniBlood2", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION, 0)
			BLUD D 24
			Goto Spray
		Spawn3:
			BLUD AAAAAAAAAA 0 A_CustomMissile("64Blood2",0,0,random(-180,180),2,random(-90,45))
			BLUD AAAAAAAAAA 0 A_CustomMissile("64Blood3",0,0,random(-180,180),2,random(-90,45))
			BLOD C 0 A_SpawnItemEx ("AeniBloodEffectSpawner", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION, 0)
			BLOD C 0 A_SpawnItemEx ("AeniBlood2", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION, 0)
			BLUD ABCD 6
			Goto Spray
	}
}

actor 64Blood2 : 64Blood
{
	Yscale 0.70
	XScale 0.75
	+NOGRAVITY
	SPEED 1
	Projectile
	States
	{
		Spawn:
			BLUD ABCD 6
			Stop
	}
}

actor 64Blood3 : 64Blood
{
	Yscale 0.70
	XScale 0.75
	Projectile
	+NOGRAVITY
	SPEED 1
	States
	{
		Spawn:
			BLUD D 24
			Stop
	}
}


ACTOR AeniBlood2 : 64Blood
{
  Scale 0.6
  alpha 1.0
  +CLIENTSIDEONLY
  States
  {
  Spawn:
    BLOD A 0
    BLOD AAA 1 A_Jump(128,"Spawn2")
	
  Spawn2:
	BLOD A 0 A_PlaySound("flesh/hit")
    BLOD AAABBBCCCCCC 1 A_Fadeout(0.08)
    Stop
  }
}

ACTOR AeniBloodSpray : AeniBlood2
{
  //-NOGRAVITY
  //Gravity 0.09
  yScale 0.8
  xscale 1.25
  alpha 0.8
  +CLIENTSIDEONLY
  States
  {
  Spawn:
    BL0D A 0 
	BLOD A 0 A_PlaySound("flesh/hit")
    BL0D A 0 A_Jump(128,"Spawn2","Spawn3")
    BL0D A 0 A_Jump(256,"Spawn1")
	//BL0D A 35
	//Stop
	
  Spawn1:
	BL0D A 0 //A_PlaySound("flesh/hit")
    BL0D A 1
    BL0D ABBBCCCCC 1 A_Fadeout(0.09)
	Stop
	
  Spawn2:
	BL0D A 0 //A_PlaySound("flesh/hit")
    BL0D ABB 1
    BL0D CCCC 1 A_Fadeout(0.2)
    Stop
		
  Spawn3:
	BL0D A 0 //A_PlaySound("flesh/hit")
    BL0D AABBCCCC 1 A_Fadeout(0.1)
    Stop
  }
}

ACTOR AeniBlood_StupidNetcode : AeniBlood2
{
  States
  {
  Spawn:
  Spray:
    BLOD C 0
    BLOD C 0 A_FaceTarget
    BLOD C 0 A_Jump(176,"Spawn2")
    BLOD C 0 A_Jump(256,"Spawn1")
	//BL0D A 35
	//Stop
	
  Spawn1:
    BLOD C 0 A_SpawnItemEx ("AeniBloodEffectSpawner", 0,0,0, 0,0,0, angle, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_ABSOLUTEANGLE|SXF_TRANSFERTRANSLATION|SXF_TRANSFERPOINTERS, 0)
    BLOD C 0 A_SpawnItemEx ("AeniBlood2", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION|SXF_TRANSFERPOINTERS, 0)
	Stop
	
  Spawn2:	
    BLOD C 0 A_SpawnItemEx ("AeniSprayEffectSpawner", 0,0,0, 0,0,0, angle, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_ABSOLUTEANGLE|SXF_TRANSFERTRANSLATION|SXF_TRANSFERPOINTERS, 0)
    BLOD C 0 A_SpawnItemEx ("AeniBloodSpray", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION|SXF_TRANSFERPOINTERS, 0)
    Stop
  }
}


ACTOR AeniBloodEffectSpawner : 64Blood
{
  +NOTELEPORT
  Radius 1
  Height 1
  +NOBLOCKMAP
  +NOTELEPORT
  +NOGRAVITY
  +NOCLIP
  -SOLID
  -SHOOTABLE
  +DONTSPLASH
  RENDERSTYLE NONE
  States
  {
  Spawn:
    TNT1 A 0
      TNT1 AAAA 0 Bright A_SpawnItemEx ("BludEffect1", 0,0,0, random(-65,65)*0.01,random(-65,65)*0.01,random(-65,65)*0.01, 0, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION, 0)
      BLOD A 0 A_Jump(144, "Death")
      TNT1 AAAA 0 Bright A_SpawnItemEx ("BludEffect1b", 0,0,0, random(-30,30)*0.01,random(-30,30)*0.01,random(-30,30)*0.01, 0, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION, 0)
	  BLOD A 0 A_Jump(128, "Death")
	  
	  BLOD A 0 A_PlaySound("flesh/gush")
      TNT1 AAAA 1 Bright A_CustomMissile("BludEffect3",0,0,random(-180,180),2,random(-90,45))
	  BLOD A 0 A_Jump(64, "Death")
	  BLOD A 0 A_PlaySound("flesh/gush")
      TNT1 AAAA 1 Bright A_CustomMissile("BludEffect4",0,0,random(-180,180),2,random(-90,60))
	  BLOD A 0 A_Jump(32, "Death")
	  BLOD A 0 A_PlaySound("flesh/gush")
      TNT1 AAAA 1 Bright A_CustomMissile("BludEffect2",0,0,random(-180,180),2,random(-90,75))
      Stop
  Death:
    TNT1 AA 0
	Stop
  }
}

ACTOR AeniSprayEffectSpawner : AeniBloodEffectSpawner
{
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 AAAAA 1 A_Jump(112, "Spray")
	Goto Spray
  }
}

ACTOR BludEffect1 
{
	+NOTELEPORT
  Radius 1
  Height 1
  Speed 0//1
  Damage 0
  Projectile
  -RANDOMIZE
  -NOCLIP
  +THRUACTORS
  +DONTSPLASH
  +NOPAIN
  +PAINLESS
  RenderStyle Translucent
  Alpha 0.51
  scale 0.75
  States
  {
  Spawn:
    BLOD A 0
    BLOD A 0 A_Jump(64, "Death")
	
  Prefade:
    BLOD A 0 A_Jump(32, "WhichSpawn")
    BLOD A 0 A_FadeOut(0.01)
    Loop
	
  WhichSpawn:
    BLOD A 0 A_Jump(96, "Spawn2", "Spawn3")
	
  Spawn1:
    BLOD AAAABBBBCCCCCCCC 2 A_FadeOut(0.04)
    stop	
  Spawn2:
    BLOD AAABBBCCCCCCC 2 A_FadeOut(0.05)
    stop	
  Spawn3:
    BLOD AABBCCCCCC 2 A_FadeOut(0.06)
    stop
	
  Death:
  XDeath:
  Crash:
    BLOD C 0 A_Stop
    BLOD C 1 A_FadeOut(0.15)
	Loop
  }
}

ACTOR BludEffect1b : BludEffect1
{
  Alpha 0.51
  scale 1.25
  States
  {
  Spawn:
    BLOD A 0
    BLOD A 0 A_Jump(64, "Death")
	
  Prefade:
    BLOD A 0 A_Jump(20, "WhichSpawn")
    BLOD A 0 A_FadeOut(0.01)
    Loop	


  WhichSpawn:
    BLOD ABC 1 A_FadeOut(0.07)
    BLOD A 0 A_Jump(128, "Spawn2", "Spawn3")
	
  Spawn1:
    BLOD C 3 A_FadeOut(0.01)
    BLOD C 0 A_Jump(10, "Death")
	Loop
  Spawn2:
    BLOD C 2 A_FadeOut(0.01)
    BLOD C 0 A_Jump(6, "Death")
	Loop
  Spawn3:
    BLOD C 1 A_FadeOut(0.01)
    BLOD C 0 A_Jump(2, "Death")
	Loop
	
  Death:
  XDeath:
  Crash:
    BLOD C 0 A_Stop
    BLOD C 1 A_FadeOut(0.15)
	Loop
  }
}

ACTOR BludEffect2 : BludEffect1
{
  Speed 4
  -NOGRAVITY
  Gravity 0.5
  Alpha 0.85
  scale 0.3
}

ACTOR BludEffect3 : BludEffect1
{
  Speed 8
  -NOGRAVITY
  Gravity 0.5
  Alpha 0.85
  scale 0.1
}

ACTOR BludEffect4 : BludEffect1
{
  Speed 6
  -NOGRAVITY
  Gravity 0.5
  Alpha 0.85
  scale 0.2
}

actor nightmareblood : Aeniblood2
{
  States
  {
  Spawn:
  Spray:
    BLOD C 0
    BLOD C 0 A_FaceTarget
    BLOD C 0 A_SpawnItemEx ("nightmareblood2", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION|SXF_TRANSFERPOINTERS, 0)
	Stop
  }
}
actor hkblood : Aeniblood2
{
  States
  {
  Spawn:
  Spray:
    BLOD C 0
    BLOD C 0 A_FaceTarget
    BLOD C 0 A_SpawnItemEx ("hkblood2", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION|SXF_TRANSFERPOINTERS, 0)
	Stop
  }
}
actor Baronblood : Aeniblood2
{
  States
  {
  Spawn:
  Spray:
    BLOD C 0
    BLOD C 0 A_FaceTarget
    BLOD C 0 A_SpawnItemEx ("baronblood2", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION|SXF_TRANSFERPOINTERS, 0)
	Stop
  }
}


actor nightmareblood2 : AeniBlood_StupidNetcode
{
Bloodcolor "7B 5A 84"
  States
  {
  Spawn2:	
    BLOD C 0 A_SpawnItemEx ("AeniSprayEffectSpawner_NM", 0,0,0, 0,0,0, angle, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_ABSOLUTEANGLE|SXF_TRANSFERTRANSLATION|SXF_TRANSFERPOINTERS, 0)
    BLOD C 0 A_SpawnItemEx ("AeniBloodSpray", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION|SXF_TRANSFERPOINTERS, 0)
	BLUD AAAAAA 0 A_CustomMissile("BludEffect2_NM",0,0,random(-180,180),2,random(-90,45))
    Stop
  }
}
actor hkblood2 : AeniBlood_StupidNetcode
{
  States
  {
  Spawn2:	
    BLOD C 0 A_SpawnItemEx ("AeniSprayEffectSpawner_HK", 0,0,0, 0,0,0, angle, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_ABSOLUTEANGLE|SXF_TRANSFERTRANSLATION|SXF_TRANSFERPOINTERS, 0)
    BLOD C 0 A_SpawnItemEx ("AeniBloodSpray", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION|SXF_TRANSFERPOINTERS, 0)
    Stop
  }
}
actor Baronblood2 : AeniBlood_StupidNetcode
{
  States
  {
  Spawn2:	
    BLOD C 0 A_SpawnItemEx ("AeniSprayEffectSpawner_BH", 0,0,0, 0,0,0, angle, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_ABSOLUTEANGLE|SXF_TRANSFERTRANSLATION|SXF_TRANSFERPOINTERS, 0)
    BLOD C 0 A_SpawnItemEx ("AeniBloodSpray", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION|SXF_TRANSFERPOINTERS, 0)
    Stop
  }
}


ACTOR AeniSprayEffectSpawner_NM : AeniBloodEffectSpawner
{
Bloodcolor "7B 5A 84"
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 AAAAA 1 A_Jump(112, "Spray")
	Goto Spray
  Spray:
	  BLOD A 0 A_Jump(127, "Death")
      TNT1 AAA 1 Bright A_SpawnItemEx("BludEffect4_NM", 0,0,0, 0,0,0, random(-180,180), SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION|SXF_ABSOLUTEANGLE) //A_CustomMissile("BludEffect4",0,0,random(-180,180),2,random(-90,45))
	  BLOD A 0 A_Jump(16, "Death")
      TNT1 AAA 1 Bright A_SpawnItemEx("BludEffect3_NM", 0,0,0, 0,0,0, random(-180,180), SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION|SXF_ABSOLUTEANGLE)//A_CustomMissile("BludEffect3",0,0,random(-180,180),2,random(-90,60))
	  BLOD A 0 A_Jump(8, "Death")
      TNT1 AAAA 1 Bright A_SpawnItemEx("BludEffect2_NM", 0,0,0, 0,0,0, random(-180,180), SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION|SXF_ABSOLUTEANGLE)//A_CustomMissile("BludEffect2",0,0,random(-180,180),2,random(-90,75))
      Stop
  }
}
ACTOR BludEffect2_NM : BludEffect2
{
States
 {
  Spawn1:
    BLNM AAAABBBBCCCCCCCC 2 A_FadeOut(0.04)
    stop	
  Spawn2:
    BLNM AAABBBCCCCCCC 2 A_FadeOut(0.05)
    stop	
  Spawn3:
    BLNM AABBCCCCCC 2 A_FadeOut(0.06)
    stop
 }
}

ACTOR BludEffect3_NM : BludEffect3
{
States
 {
  Spawn1:
    BLNM AAAABBBBCCCCCCCC 2 A_FadeOut(0.04)
    stop	
  Spawn2:
    BLNM AAABBBCCCCCCC 2 A_FadeOut(0.05)
    stop	
  Spawn3:
    BLNM AABBCCCCCC 2 A_FadeOut(0.06)
    stop
 }
}

ACTOR BludEffect4_NM : BludEffect4
{
States
 {
  Spawn1:
    BLNM AAAABBBBCCCCCCCC 2 A_FadeOut(0.04)
    stop	
  Spawn2:
    BLNM AAABBBCCCCCCC 2 A_FadeOut(0.05)
    stop	
  Spawn3:
    BLNM AABBCCCCCC 2 A_FadeOut(0.06)
    stop
 }
}


ACTOR AeniSprayEffectSpawner_HK : AeniBloodEffectSpawner
{
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 AAAAA 1 A_Jump(112, "Spray")
	Goto Spray
  Spray:
	  BLOD A 0 A_Jump(127, "Death")
      TNT1 AAA 1 Bright A_SpawnItemEx("BludEffect4_HK", 0,0,0, 0,0,0, random(-180,180), SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION|SXF_ABSOLUTEANGLE) //A_CustomMissile("BludEffect4",0,0,random(-180,180),2,random(-90,45))
	  BLOD A 0 A_Jump(16, "Death")
      TNT1 AAA 1 Bright A_SpawnItemEx("BludEffect3_HK", 0,0,0, 0,0,0, random(-180,180), SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION|SXF_ABSOLUTEANGLE)//A_CustomMissile("BludEffect3",0,0,random(-180,180),2,random(-90,60))
	  BLOD A 0 A_Jump(8, "Death")
      TNT1 AAAA 1 Bright A_SpawnItemEx("BludEffect2_HK", 0,0,0, 0,0,0, random(-180,180), SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION|SXF_ABSOLUTEANGLE)//A_CustomMissile("BludEffect2",0,0,random(-180,180),2,random(-90,75))
      Stop
  }
}
ACTOR BludEffect2_HK : BludEffect2
{
}
ACTOR BludEffect3_HK : BludEffect3
{
}
ACTOR BludEffect4_HK : BludEffect4
{
}


ACTOR AeniSprayEffectSpawner_BH : AeniBloodEffectSpawner
{
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 AAAAA 1 A_Jump(112, "Spray")
	Goto Spray
  Spray:
	  BLOD A 0 A_Jump(127, "Death")
      TNT1 AAA 1 Bright A_SpawnItemEx("BludEffect4_BH", 0,0,0, 0,0,0, random(-180,180), SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION|SXF_ABSOLUTEANGLE) //A_CustomMissile("BludEffect4",0,0,random(-180,180),2,random(-90,45))
	  BLOD A 0 A_Jump(16, "Death")
      TNT1 AAA 1 Bright A_SpawnItemEx("BludEffect3_BH", 0,0,0, 0,0,0, random(-180,180), SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION|SXF_ABSOLUTEANGLE)//A_CustomMissile("BludEffect3",0,0,random(-180,180),2,random(-90,60))
	  BLOD A 0 A_Jump(8, "Death")
      TNT1 AAAA 1 Bright A_SpawnItemEx("BludEffect2_BH", 0,0,0, 0,0,0, random(-180,180), SXF_NOCHECKPOSITION|SXF_CLIENTSIDE|SXF_TRANSFERTRANSLATION|SXF_ABSOLUTEANGLE)//A_CustomMissile("BludEffect2",0,0,random(-180,180),2,random(-90,75))
      Stop
  }
}
ACTOR BludEffect2_BH : BludEffect2
{
}
ACTOR BludEffect3_BH : BludEffect3
{
}
ACTOR BludEffect4_BH : BludEffect4
{
}


ACTOR Gibs1
{
	Projectile
	Radius 8
	Height 8
	Speed 0
	Damage 0
	Gravity 0.75
	BounceType "Doom"
	BounceFactor 0.7
	XScale 0.75
	YScale 0.70
	+MOVEWITHSECTOR
	+SKYEXPLODE
	-NOGRAVITY
	-ACTIVATEIMPACT
	-ACTIVATEPCROSS
	States
	{
	Spawn:
		GIBS A 5 A_SpawnItemEx("OldBlood", 0, 0, 0,  random(-3,3), random(-3,3), 0, random(-360,360), SXF_CLIENTSIDE, 0)
		loop
	Death:
		GIBS A 1500
		Stop
	}
}

ACTOR Gibs2 : Gibs1
{
	States
	{
	Spawn:
		GIBS B 5 A_SpawnItemEx("OldBlood", 0, 0, 0,  random(-3,3), random(-3,3), 0, random(-360,360), SXF_CLIENTSIDE, 0)
		loop
	Death:
		GIBS B 1500
		Stop
	}
}

ACTOR Gibs3 : Gibs1
{
	States
	{
	Spawn:
		GIBS C 5 A_SpawnItemEx("OldBlood", 0, 0, 0,  random(-3,3), random(-3,3), 0, random(-360,360), SXF_CLIENTSIDE, 0)
		loop
	Death:
		GIBS C 1500
		Stop
	}
}

ACTOR Gibs4 : Gibs1
{
	States
	{
	Spawn:
		GIBS D 5 A_SpawnItemEx("OldBlood", 0, 0, 0,  random(-3,3), random(-3,3), 0, random(-360,360), SXF_CLIENTSIDE, 0)
		loop
	Death:
		GIBS D 1500
		Stop
	}
}

ACTOR Gibs5 : Gibs1
{
	States
	{
	Spawn:
		GIBS E 5 A_SpawnItemEx("OldBlood", 0, 0, 0,  random(-3,3), random(-3,3), 0, random(-360,360), SXF_CLIENTSIDE, 0)
		loop
	Death:
		GIBS E 1500
		Stop
	}
}

Actor ZombieGibs1 : Gibs1
{	
States
	{
	Spawn:
		GIB2 A 5 A_SpawnItemEx("OldBlood", 0, 0, 0,  random(-3,3), random(-3,3), 0, random(-360,360), SXF_CLIENTSIDE, 0)
		loop
	Death:
		GIB2 A 1500
		Stop
	}
}

Actor ZombieGibs2 : Gibs1
{	
States
	{
	Spawn:
		GIB2 B 5 A_SpawnItemEx("OldBlood", 0, 0, 0,  random(-3,3), random(-3,3), 0, random(-360,360), SXF_CLIENTSIDE, 0)
		loop
	Death:
		GIB2 B 1500
		Stop
	}
}

Actor ZombieGibs3 : Gibs1
{	
States
	{
	Spawn:
		GIB2 C 5 A_SpawnItemEx("OldBlood", 0, 0, 0,  random(-3,3), random(-3,3), 0, random(-360,360), SXF_CLIENTSIDE, 0)
		loop
	Death:
		GIB2 C 1500
		Stop
	}
}

Actor ZombieGibs4 : Gibs1
{	
States
	{
	Spawn:
		GIB2 D 5 A_SpawnItemEx("OldBlood", 0, 0, 0,  random(-3,3), random(-3,3), 0, random(-360,360), SXF_CLIENTSIDE, 0)
		loop
	Death:
		GIB2 D 1500
		Stop
	}
}

Actor ZombieGibs5 : Gibs1
{	
States
	{
	Spawn:
		GIB2 E 5 A_SpawnItemEx("OldBlood", 0, 0, 0,  random(-3,3), random(-3,3), 0, random(-360,360), SXF_CLIENTSIDE, 0)
		loop
	Death:
		GIB2 E 1500
		Stop
	}
}

ACTOR Snow
{
	Radius 2
	Height 1
	Speed 0
	Damage 0
	Alpha 0.9
	Gravity 0.1
	Scale 0.25
	RenderStyle Translucent
	+NOBLOCKMAP
	+DROPOFF
	+MISSILE
	+NOTELEPORT
	+CLIENTSIDEONLY
	+DONTSPLASH
	+FORCEXYBILLBOARD
	+FLOATBOB
	-ACTIVATEIMPACT
	-ACTIVATEPCROSS
	States
	{
	Spawn:
		SNOW A 0
		SNOW A 0 A_Jump(127, "Snow2")
		goto Snow1
	Snow1:
		SNOW AAAAAABBBBBBCCCCCCDDDDDDEEEEEE 1 A_CStaffMissileSlither
		loop
	Snow2:
		SNOW AAAAAABBBBBBCCCCCCDDDDDDEEEEEE 1 A_BishopMissileWeave
		loop
	Death:
		TNT1 AA 1
		Stop
	}
}

actor Snowing64 18217
{
	Radius 32
	Height 4
	Speed 0
	Mass 9999999
	+SPAWNCEILING
	+NOGRAVITY
	+CORPSE
	States
	{
	Spawn:
		TNT1 A 6 A_SpawnItemEX("Snow", Random(-32,32), Random(-32,32), 0, 0, 0, 0, random(-360,360), 128, 128)
		Loop
	}
}

actor Snowing128 18218
{
	Radius 64
	Height 4
	Speed 0
	Mass 9999999
	+SPAWNCEILING
	+NOGRAVITY
	+CORPSE
	States
	{
	Spawn:
		TNT1 A 6 A_SpawnItemEX("Snow", Random(-64,64), Random(-64,64), 0, 0, 0, 0, random(-360,360), 128, 128)
		Loop
	}
}

actor Spring 18219
{
	Radius 32
	Height 4
	XScale 0.75
	YScale 0.5
	-SOLID
	States
	{
	Spawn:
		SPRN A -1
		loop
	Bounce:
		SPRN A 0 A_PlaySoundEx("Spring", "Auto")
		SPRN BCDEFGHI 1
		goto Spawn
	}
}

actor SpinningBlades 18220
{
	Radius 16
	Height 56
	Scale 0.75
	+NODAMAGETHRUST
	+EXTREMEDEATH
	+SOLID
	States
	{
	Spawn:
		BLAD A 0 A_PlaySoundEx("SpinningBlade", "Auto")
		BLAD ABCDEFGHI 2 A_Explode(128, 32)
		loop
	}
}

actor KillConfirmation : CustomInventory
{
 	inventory.maxamount 1
 	-INVENTORY.INVBAR
 	+INVENTORY.AUTOACTIVATE
 	+INVENTORY.ALWAYSPICKUP
 	States
 	{
 	Spawn:
 		TNT1 A -1
 		stop
 	Use:
 		TNT1 A 0
 		TNT1 A 1 A_JumpIfInventory("BlueTeam", 1, "IsBlue")
		TNT1 A 1 A_JumpIfInventory("RedTeam", 1, "IsRed")
		TNT1 A 1 A_JumpIfInventory("GreenTeam", 1, "IsGreen")
		TNT1 A 1 A_JumpIfInventory("GoldTeam", 1, "IsGold")
 		goto IsRed

 	IsBlue:
 		TNT1 A 1 A_GiveToTarget("KillConfirmation_Blue", 1)
 		goto Cancel
	IsRed:
 		TNT1 A 1 A_GiveToTarget("KillConfirmation_Red", 1)
 		goto Cancel
	IsGreen:
 		TNT1 A 1 A_GiveToTarget("KillConfirmation_Green", 1)
 		goto Cancel
	IsGold:
 		TNT1 A 1 A_GiveToTarget("KillConfirmation_Gold", 1)
 		goto Cancel
 	Cancel:
 		TNT1 A 0
 		TNT1 A 1 A_TakeInventory("SpeakOneLiner", 1)
 		TNT1 A 0
 		stop
 	}
}

actor AmmoDropper : CustomInventory
{
 inventory.maxamount 1
 -INVENTORY.INVBAR
 +INVENTORY.AUTOACTIVATE
 +INVENTORY.ALWAYSPICKUP
 States
 {
 	Spawn:
 		TNT1 A -1
 		stop
 	Use:
 		TNT1 A 1
 		goto Check1
	Check1:
		TNT1 A 1 A_JumpIfInventory("Shell", 20, "Drop1")
		goto Check2
	Check2:
		TNT1 A 1 A_JumpIfInventory("Clip", 50, "Drop2")
		goto Check3
	Check3:
		TNT1 A 1 A_JumpIfInventory("RocketAmmo", 4, "Drop3")
		stop
	Drop1:
		PLAY H 0 A_SpawnItemEx("Shell", 0, 0, 32, random(-2,2), random(-2,2), random(0, 4), 0, 0, 0)
		goto Check2
	Drop2:
		PLAY H 0 A_SpawnItemEx("Clip", 0, 0, 32, random(-2,2), random(-2,2), random(0, 4), 0, 0, 0)
		goto Check3
	Drop3:
		PLAY H 0 A_SpawnItemEx("RocketAmmo", 0, 0, 32, random(-2,2), random(-2,2), random(0, 4), 0, 0, 0)
		stop
 }
}

actor HitConfirmation : CustomInventory
{
 inventory.maxamount 1
 -INVENTORY.INVBAR
 +INVENTORY.AUTOACTIVATE
 +INVENTORY.ALWAYSPICKUP
 States
 {
 	Spawn:
 		TNT1 A -1
 		stop
 	Use:
 		TNT1 A 1 ACS_ExecuteAlways(644, 0)
 		stop
 }
}

Actor ImNotAPlayer : CustomInventory {Inventory.Maxamount 1}

actor KillConfirmation_Red : HitConfirmation
{
 States
 {
 	Use:
 		TNT1 A 1 ACS_ExecuteAlways(645, 0)
 		stop
 }
}

actor KillConfirmation_Blue : HitConfirmation
{
 States
 {
 	Use:
 		TNT1 A 1 ACS_ExecuteAlways(646, 0)
 		stop
 }
}

actor KillConfirmation_Green : HitConfirmation
{
 States
 {
 	Use:
 		TNT1 A 1 ACS_ExecuteAlways(647, 0)
 		stop
 }
}

actor KillConfirmation_Gold : HitConfirmation
{
 States
 {
 	Use:
 		TNT1 A 1 ACS_ExecuteAlways(648, 0)
 		stop
 }
}

ACTOR SD64TeleportFog : TeleportFog replaces TeleportFog
{
  +LOOKALLAROUND
  +FORCEXYBILLBOARD
  Yscale 0.70
  XScale 0.75
  States
  {
  Spawn:
	TFOG HGFEDCBABCDEFGH 3 Bright
    Stop
  }
}

actor RedTeam : Inventory
{
  inventory.amount 1
  inventory.maxamount 1
  -INVBAR
  -INTERHUBSTRIP
  +INVENTORY.UNDROPPABLE
  +INVENTORY.HUBPOWER
  states
  {
  Spawn:
	TNT1 A 1
	loop
  }
}

actor BlueTeam : RedTeam
{
}

actor GreenTeam : RedTeam
{
}

actor GoldTeam : RedTeam
{
}

actor RedSpark
{
	Radius 1
	Height 1
	RenderStyle Add
	Alpha 1.0
	Scale 0.2
	-SOLID
	+NOTELEPORT
	+NOCLIP
	+NOGRAVITY
	+NOBLOCKMAP
	+NOINTERACTION
	+FORCEXYBILLBOARD
	+DONTSPLASH
	States
	{
		Spawn:
			TNT1 A 3
			SPKO AABBCC 1 Bright A_FadeOut(0.08)
			stop
	}
}

actor BlueSpark : RedSpark
{
	States
	{
		Spawn:
			TNT1 A 3
			SPKB AABBCC 1 Bright A_FadeOut(0.08)
			stop
	}
}

actor GreenSpark : RedSpark
{
	States
	{
		Spawn:
			TNT1 A 3
			SPKG AABBCC 1 Bright A_FadeOut(0.08)
			stop
	}
}

actor YellowSpark : RedSpark
{
	States
	{
		Spawn:
			TNT1 A 3
			SPKY AABBCC 1 Bright A_FadeOut(0.08)
			stop
	}
}

actor SmallRedSpark : RedSpark
{
	Scale 0.032
	-NOGRAVITY
	-NOINTERACTION
	+LOWGRAVITY
	States
	{
		Spawn:
			SPKO ABC 1 Bright A_FadeOut(0.08)
			loop
	}
}

actor SD64BulletPuff : BulletPuff Replaces BulletPuff
{
	Decal Bulletchip
	Alpha 0.50
	RenderStyle Add
	Yscale 0.70
	XScale 0.75
	+FORCEXYBILLBOARD
	+PUFFGETSOWNER
	+PUFFONACTORS
	-ALLOWPARTICLES
	-RANDOMIZE
	states
	{
	Spawn:
		TNT1 A 0 A_JumpIfInventory("ImNotAPlayer",1,"Cancel") // If the target is a monster or a barrel
		TNT1 AA 1 A_GiveToTarget("HitConfirmation", 1)
		stop
	Crash:
		PUFF AA 0 bright A_SpawnItemEx("SmallRedSpark", Random(-1,1), Random(-1,1), Random(-1,1), random(-1,1), random(-1,1), random(-1,1), Random(-180, 180), SXF_CLIENTSIDE, 64)
		PUFF A 2 bright A_SpawnItemEx("SmallRedSpark", Random(-1,1), Random(-1,1), Random(-1,1), random(-1,1), random(-1,1), random(-1,1), Random(-180, 180), SXF_CLIENTSIDE, 64)
		PUFF B 2 bright
		goto Melee
	Melee:
		PUFF C 0 A_SetTranslucent(0.75, 0)
		PUFF CD 3
		PUFF EEEFFF 1 A_FadeOut(0.05)
		stop
	Cancel:
		TNT1 AA 1
 		stop
	}
}

actor FistPuff : SD64BulletPuff
{
	states
	{
	Crash:
	Spawn:
		TNT1 A 1
		goto Melee
	}
}

actor ChainsawPuff : SD64BulletPuff
{
	DamageType "Chainsaw"
}

actor SSGBulletPuff : SD64BulletPuff
{
	DamageType "SSG"
}

ACTOR SD64_BFGExtra : BFGExtra replaces BFGExtra
{
	+EXTREMEDEATH
	DamageType "BFG"
	States
	{
	Spawn:
		BFE2 A 0
		BFE2 A 0 A_PlaySoundEx("BFGArc", "Auto")
		BFE2 AA 0 A_SpawnItemEx("ElectricArc_Green", 0, 0, 0, 0, 0, 0, random(-180,180), SXF_CLIENTSIDE, 0)
		BFE2 AAAAAA 0 A_SpawnItemEx("GreenSpark", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		BFE2 ABCDEF 5 Bright A_SpawnItemEx("GreenSpark", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		Stop
	}
}

ACTOR SD64_BFGExtra_Red : SD64_BFGExtra
{
	States
	{
	Spawn:
		BFR2 A 0
		BFR2 A 0 A_PlaySoundEx("BFGArc", "Auto")
		BFR2 AA 0 A_SpawnItemEx("ElectricArc_Red", 0, 0, 0, 0, 0, 0, random(-180,180), SXF_CLIENTSIDE, 0)
		BFR2 AAAAAA 0 A_SpawnItemEx("RedSpark", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		BFR2 ABCDEF 5 Bright A_SpawnItemEx("RedSpark", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		Stop
	}
}

ACTOR SD64_BFGExtra_Blue : SD64_BFGExtra
{
	States
	{
	Spawn:
		BFB2 A 0
		BFB2 A 0 A_PlaySoundEx("BFGArc", "Auto")
		BFB2 AA 0 A_SpawnItemEx("ElectricArc_Blue", 0, 0, 0, 0, 0, 0, random(-180,180), SXF_CLIENTSIDE, 0)
		BFB2 AAAAAA 0 A_SpawnItemEx("BlueSpark", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		BFB2 ABCDEF 5 Bright A_SpawnItemEx("BlueSpark", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		Stop
	}
}

ACTOR SD64_BFGExtra_Gold : SD64_BFGExtra
{
	States
	{
	Spawn:
		BFY2 A 0
		BFY2 A 0 A_PlaySoundEx("BFGArc", "Auto")
		BFY2 AA 0 A_SpawnItemEx("ElectricArc_Yellow", 0, 0, 0, 0, 0, 0, random(-180,180), SXF_CLIENTSIDE, 0)
		BFY2 AAAAAA 0 A_SpawnItemEx("YellowSpark", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		BFY2 ABCDEF 5 Bright A_SpawnItemEx("YellowSpark", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		Stop
	}
}

actor BFGEnergy : RedSpark
{
	Scale 1.0
	Alpha 0.75
	States
	{
		Spawn:
			BFE2 ABCDEF 2
			stop
	}
}

actor BFGEnergy_Red : BFGEnergy
{
	States
	{
		Spawn:
			BFR2 ABCDEF 2
			stop
	}
}

actor BFGEnergy_Blue : BFGEnergy
{
	States
	{
		Spawn:
			BFB2 ABCDEF 2
			stop
	}
}

actor BFGEnergy_Gold : BFGEnergy
{
	States
	{
		Spawn:
			BFY2 ABCDEF 2
			stop
	}
}

actor BFGTrail : RedSpark
{
	Scale 1.0
	Alpha 0.5
	States
	{
		Spawn:
			BFS1 AABB 1 Bright A_FadeOut(0.1)
			loop
	}
}

actor BFGTrail_Red : BFGTrail
{
	States
	{
		Spawn:
			BFSR AABB 1 Bright A_FadeOut(0.1)
			loop
	}
}

actor BFGTrail_Blue : BFGTrail
{
	States
	{
		Spawn:
			BFSB AABB 1 Bright A_FadeOut(0.1)
			loop
	}
}

actor BFGTrail_Gold : BFGTrail
{
	States
	{
		Spawn:
			BFSY AABB 1 Bright A_FadeOut(0.1)
			loop
	}
}

actor BFGSpark : RedSpark
{
	-NOCLIP
	-NOINTERACTION
	+MISSILE
	+HEXENBOUNCE
	BounceFactor 0.75
	Scale 0.1
	States
	{
		Spawn:
			SPKG AB 1 Bright A_FadeOut(0.02)
			loop
		Death:
			TNT1 A 0
			TNT1 A 1
			stop
	}
}

actor BFGSpark_Red : BFGSpark
{
	States
	{
		Spawn:
			SPKO AB 1 Bright A_FadeOut(0.02)
			loop
	}
}

actor BFGSpark_Blue : BFGSpark
{
	States
	{
		Spawn:
			SPKB AB 1 Bright A_FadeOut(0.02)
			loop
	}
}

actor BFGSpark_Gold : BFGSpark
{
	States
	{
		Spawn:
			SPKY AB 1 Bright A_FadeOut(0.02)
			loop
	}
}

ACTOR SD64BFGBall : BFGBall replaces BFGBall
{
	Decal "BFGLightning"
	DamageType "BFG"
	SeeSound "BFGFire"
	Alpha 1.0
	Speed 40
	+FORCERADIUSDMG
	+FORCEXYBILLBOARD
	+MTHRUSPECIES
	-FORCERADIUSDMG
	//+NODAMAGETHRUST
	States
	{
	Spawn:
		BFS1 AABB 1 Bright A_SpawnItemEx("BFGTrail", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		Loop
	XDeath:
		TNT1 A 0
		TNT1 A 0 A_GiveToTarget("HitConfirmation", 1)
		goto Death
	Death:
		BFS1 AAAAAAAAAA 0 Bright A_SpawnItemEx("BFGSpark", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), random(-180, 180), SXF_CLIENTSIDE, 0)
		BFS1 AAAAAAAAAA 0 Bright A_SpawnItemEx("GreenSpark", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		BFS1 AAAAAA 0 Bright A_SpawnItemEx("BFGEnergy", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		BFS1 AAAAAAAAAA 0 Bright A_SpawnItemEx("ElectricArc_Green", 0, 0, 0, 0, 0, 0, random(-180,180), SXF_CLIENTSIDE, 0)
		BFS1 A 0 Radius_Quake(9, 35, 0, 6, 0)
		BFS1 A 0 A_BFGSpray
		BFS1 C 9 bright
		BFS1 D 7 bright A_FadeOut (0.1667)
		BFS1 E 0 bright A_FadeOut (0.1667)
		BFS1 E 4 bright
		BFS1 F 4 bright A_FadeOut (0.1667)
		BFS1 GH 3 bright A_FadeOut (0.1667)
		stop
	}
}

actor SD64BFGBall_DM : SD64BFGBall
{
	Decal "BFGLightning"
	DamageType "BFG"
	+MTHRUSPECIES
	States
	{
	Spawn:
		BFS1 AABB 1 Bright A_SpawnItemEx("BFGTrail", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		Loop
	XDeath:
		TNT1 A 0
		TNT1 A 0 A_GiveToTarget("HitConfirmation", 1)
		goto Death
	Death:
		BFS1 AAAAAAAAAA 0 Bright A_SpawnItemEx("BFGSpark", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), random(-180, 180), SXF_CLIENTSIDE, 0)
		BFS1 AAAAAAAAAA 0 Bright A_SpawnItemEx("GreenSpark", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		BFS1 AAAAAA 0 Bright A_SpawnItemEx("BFGEnergy", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		BFS1 AAAAAAAAAA 0 Bright A_SpawnItemEx("ElectricArc_Green", 0, 0, 0, 0, 0, 0, random(-180,180), SXF_CLIENTSIDE, 0)
		BFS1 A 0 Radius_Quake(9, 35, 0, 6, 0)
		BFS1 A 0 A_Explode(512, 384, 1)
		BFS1 C 9 bright
		BFS1 D 7 bright A_FadeOut (0.1667)
		BFS1 E 0 bright A_FadeOut (0.1667)
		BFS1 E 4 bright
		BFS1 F 4 bright A_FadeOut (0.1667)
		BFS1 GH 3 bright A_FadeOut (0.1667)
		stop
	}
}

ACTOR SD64BFGBall_Green : SD64BFGBall
{
	Decal "BFGLightning"
	+MTHRUSPECIES
}

actor SD64BFGBall_Red : SD64BFGBall
{
	Decal "RedBFGLightning"
	DamageType "BFGRed"
	+MTHRUSPECIES
	States
	{
	Spawn:
		BFSR AABB 1 Bright A_SpawnItemEx("BFGTrail_Red", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		Loop
	XDeath:
		TNT1 A 0
		TNT1 A 0 A_GiveToTarget("HitConfirmation", 1)
		goto Death
	Death:
		BFSR AAAAAAAAAA 0 Bright A_SpawnItemEx("BFGSpark_Red", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), random(-180, 180), SXF_CLIENTSIDE, 0)
		BFSR AAAAAAAAAA 0 Bright A_SpawnItemEx("RedSpark", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		BFSR AAAAAA 0 Bright A_SpawnItemEx("BFGEnergy_Red", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		BFSR AAAAAAAAAA 0 Bright A_SpawnItemEx("ElectricArc_Red", 0, 0, 0, 0, 0, 0, random(-180,180), SXF_CLIENTSIDE, 0)
		BFSR A 0 Radius_Quake(9, 35, 0, 6, 0)
		BFSR A 0 A_Explode(512, 384, 1)
		BFSR C 9 bright
		BFSR D 7 bright A_FadeOut (0.1667)
		BFSR E 0 bright A_FadeOut (0.1667)
		BFSR E 4 bright
		BFSR F 4 bright A_FadeOut (0.1667)
		BFSR GH 3 bright A_FadeOut (0.1667)
		stop
	}
}

actor SD64BFGBall_Blue : SD64BFGBall
{
	Decal "BlueBFGLightning"
	DamageType "BFGBlue"
	+MTHRUSPECIES
	States
	{
	Spawn:
		BFSB AABB 1 Bright A_SpawnItemEx("BFGTrail_Blue", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		Loop
	XDeath:
		TNT1 A 0
		TNT1 A 0 A_GiveToTarget("HitConfirmation", 1)
		goto Death
	Death:
		BFSB AAAAAAAAAA 0 Bright A_SpawnItemEx("BFGSpark_Blue", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), random(-180, 180), SXF_CLIENTSIDE, 0)
		BFSB AAAAAAAAAA 0 Bright A_SpawnItemEx("BlueSpark", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		BFSB AAAAAA 0 Bright A_SpawnItemEx("BFGEnergy_Blue", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		BFSB AAAAAAAAAA 0 Bright A_SpawnItemEx("ElectricArc_Blue", 0, 0, 0, 0, 0, 0, random(-180,180), SXF_CLIENTSIDE, 0)
		BFSB A 0 Radius_Quake(9, 35, 0, 6, 0)
		BFSB A 0 A_Explode(512, 384, 1)
		BFSB C 9 bright
		BFSB D 7 bright A_FadeOut (0.1667)
		BFSB E 0 bright A_FadeOut (0.1667)
		BFSB E 4 bright
		BFSB F 4 bright A_FadeOut (0.1667)
		BFSB GH 3 bright A_FadeOut (0.1667)
		stop
	}
}

actor SD64BFGBall_Gold : SD64BFGBall
{
	Decal "GoldBFGLightning"
	DamageType "BFGGold"
	+MTHRUSPECIES
	States
	{
	Spawn:
		BFSY AABB 1 Bright A_SpawnItemEx("BFGTrail_Gold", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
		Loop
	XDeath:
		TNT1 A 0
		TNT1 A 0 A_GiveToTarget("HitConfirmation", 1)
		goto Death
	Death:
		BFSY AAAAAAAAAA 0 Bright A_SpawnItemEx("BFGSpark_Gold", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), random(-180, 180), SXF_CLIENTSIDE, 0)
		BFSY AAAAAAAAAA 0 Bright A_SpawnItemEx("YellowSpark", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		BFSY AAAAAA 0 Bright A_SpawnItemEx("BFGEnergy_Gold", 0, 0, 8, random(-16,16), random(-16,16), random(-16,16), 0, SXF_CLIENTSIDE, 0)
		BFSY AAAAAAAAAA 0 Bright A_SpawnItemEx("ElectricArc_Yellow", 0, 0, 0, 0, 0, 0, random(-180,180), SXF_CLIENTSIDE, 0)
		BFSY A 0 Radius_Quake(9, 35, 0, 6, 0)
		BFSY A 0 A_Explode(512, 384, 1)
		BFSY C 9 bright
		BFSY D 7 bright A_FadeOut (0.1667)
		BFSY E 0 bright A_FadeOut (0.1667)
		BFSY E 4 bright
		BFSY F 4 bright A_FadeOut (0.1667)
		BFSY GH 3 bright A_FadeOut (0.1667)
		stop
	}
}

actor WaterSplashBaseSmall
{
  Radius 1
  Height 1
  Mass 1
  alpha .6
  Scale 0.5
  +DONTSPLASH
  +NOGRAVITY
  +NOCLIP
  States
  {
  Spawn:
    SPSH E 3
    SPSH F 3 A_SpawnDebris("WaterSplashDrop")
    SPSH G 3
    SPSH H 3
    SPSH I 3
    SPSH J 3
    SPSH K 3
    Stop
  }
}

ACTOR WaterSplashDrop
{
	renderstyle add
	Radius 1
    Height 1
	alpha .5
	Health 5
	Mass 9
	Scale	.4
	projectile
	- nogravity
	+DONTSPLASH
	+CORPSE
    +EXPLODEONWATER
	+CLIENTSIDEONLY
	States
	{
		SPSH A 6
		SPSH B 7
		SPSH C 7
		SPSH D 6
		SPSH A 7
		Stop
	}
}

actor BloodSplashBaseSmall
{
  Radius 1
  Height 1
  Mass 1
  alpha .6
  Scale 0.5
  +NOCLIP
  +DONTSPLASH
  +NOGRAVITY
  States
  {
  Spawn:
    BSPH E 3
    BSPH F 3 A_SpawnDebris("BloodSplashDrop")
    BSPH G 3
    BSPH H 3
    BSPH I 3
    BSPH J 3
    BSPH K 3
    Stop
  }
}

ACTOR BloodSplashDrop
{
	renderstyle add
	Radius 1
	Height 1
	alpha .5
	Health 5
	Mass 9
	Scale	.4
	projectile
	- nogravity
	+DONTSPLASH
	+CORPSE
    +EXPLODEONWATER
	+CLIENTSIDEONLY
	States
	{
		BSPH A 7
		BSPH B 7
		BSPH C 7
		BSPH D 7
		BSPH A 7
		Stop
	}
}

actor NukageSplashBaseSmall
{
  Radius 1
  Height 1
  Mass 1
  alpha .6
  Scale 0.5
  +NOCLIP
  +DONTSPLASH
  +NOGRAVITY
  Renderstyle Add
  States
  {
  Spawn:
    SLDG E 3
    SLDG F 3
    SLDG G 3
    SLDG H 3
    Stop
  }
}

actor ArcTrail_Blue
{
	Radius 4
	Height 4
	RenderStyle Add
	Alpha 1.0
	Scale 0.08
	+NOGRAVITY
	+NOBLOCKMAP
	+NOCLIP
	+NOINTERACTION
	+FORCEXYBILLBOARD
	States
	{
		Spawn:
			SPKB A 1 A_FadeOut(0.08)
			loop
	}
}

actor ElectricArc_Blue
{
	projectile
	Speed 1
	radius 4
	height 4
	+BLOODLESSIMPACT
	+RIPPER
	states
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx("ArcTrail_Blue", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
			TNT1 A 0 A_Jump(128, "ArcInstant2", "ArcInstant3", "ArcInstant4", "ArcInstant5", "ArcInstant6", "ArcInstant7", "ArcInstant8", "ArcInstant9", "ArcInstant10", "ArcInstant11", "ArcInstant12", "ArcInstant13", "ArcInstant14", "ArcInstant15", "ArcInstant16", "ArcInstant17", "ArcInstant18", "ArcDelayed1", "ArcDelayed2")
			goto ArcInstant1
		ArcInstant1:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 2, 0, 0, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant2:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 0, 2, 0, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant3:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant4:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant5:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 0, 0, 3, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant6:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 0, 0, -3, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant7:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 0, 2, 2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant8:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 2, 0, 2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant9:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 0, -2, -2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant10:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", -2, 0, -2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant11:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-32, 32), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant12:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-32, 32), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant13:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-64, 64), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant14:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-64, 64), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant15:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-72, 72), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant16:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-72, 72), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant17:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 0, 0, 3, random(-1,1), random(-1,1), 0, random(-80, 80), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant18:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 0, 0, -3, random(-1,1), random(-1,1), 0, random(-80, 80), SXF_CLIENTSIDE, 2)
			stop
		ArcDelayed1:
			TNT1 A 1
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-72, 72), SXF_CLIENTSIDE, 2)
			stop
		ArcDelayed2:
			TNT1 A 1
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Blue", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-72, 72), SXF_CLIENTSIDE, 2)
			stop
		Death:
			TNT1 AA 1
			stop
	}
}

actor ArcTrail_Green
{
	Radius 4
	Height 4
	RenderStyle Add
	Alpha 1.0
	Scale 0.08
	+NOGRAVITY
	+NOBLOCKMAP
	+NOCLIP
	+NOINTERACTION
	+FORCEXYBILLBOARD
	States
	{
		Spawn:
			SPKG A 1 A_FadeOut(0.08)
			loop
	}
}

actor ElectricArc_Green
{
	projectile
	Speed 1
	radius 4
	height 4
	+BLOODLESSIMPACT
	+RIPPER
	states
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx("ArcTrail_Green", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
			TNT1 A 0 A_Jump(128, "ArcInstant2", "ArcInstant3", "ArcInstant4", "ArcInstant5", "ArcInstant6", "ArcInstant7", "ArcInstant8", "ArcInstant9", "ArcInstant10", "ArcInstant11", "ArcInstant12", "ArcInstant13", "ArcInstant14", "ArcInstant15", "ArcInstant16", "ArcInstant17", "ArcInstant18", "ArcDelayed1", "ArcDelayed2")
			goto ArcInstant1
		ArcInstant1:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 2, 0, 0, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant2:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 0, 2, 0, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant3:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant4:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant5:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 0, 0, 3, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant6:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 0, 0, -3, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant7:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 0, 2, 2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant8:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 2, 0, 2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant9:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 0, -2, -2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant10:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", -2, 0, -2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant11:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-32, 32), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant12:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-32, 32), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant13:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-64, 64), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant14:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-64, 64), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant15:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-72, 72), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant16:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-72, 72), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant17:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 0, 0, 3, random(-1,1), random(-1,1), 0, random(-80, 80), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant18:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 0, 0, -3, random(-1,1), random(-1,1), 0, random(-80, 80), SXF_CLIENTSIDE, 2)
			stop
		ArcDelayed1:
			TNT1 A 1
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-72, 72), SXF_CLIENTSIDE, 2)
			stop
		ArcDelayed2:
			TNT1 A 1
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Green", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-72, 72), SXF_CLIENTSIDE, 2)
			stop
		Death:
			TNT1 AA 1
			stop
	}
}

actor ArcTrail_Red
{
	Radius 4
	Height 4
	RenderStyle Add
	Alpha 1.0
	Scale 0.08
	+NOGRAVITY
	+NOBLOCKMAP
	+NOCLIP
	+NOINTERACTION
	+FORCEXYBILLBOARD
	States
	{
		Spawn:
			SPKO A 1 A_FadeOut(0.08)
			loop
	}
}

actor ElectricArc_Red
{
	projectile
	Speed 1
	radius 4
	height 4
	+BLOODLESSIMPACT
	+RIPPER
	states
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx("ArcTrail_Red", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
			TNT1 A 0 A_Jump(128, "ArcInstant2", "ArcInstant3", "ArcInstant4", "ArcInstant5", "ArcInstant6", "ArcInstant7", "ArcInstant8", "ArcInstant9", "ArcInstant10", "ArcInstant11", "ArcInstant12", "ArcInstant13", "ArcInstant14", "ArcInstant15", "ArcInstant16", "ArcInstant17", "ArcInstant18", "ArcDelayed1", "ArcDelayed2")
			goto ArcInstant1
		ArcInstant1:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 2, 0, 0, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant2:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 0, 2, 0, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant3:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant4:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant5:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 0, 0, 3, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant6:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 0, 0, -3, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant7:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 0, 2, 2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant8:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 2, 0, 2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant9:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 0, -2, -2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant10:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", -2, 0, -2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant11:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-32, 32), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant12:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-32, 32), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant13:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-64, 64), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant14:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-64, 64), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant15:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-72, 72), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant16:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-72, 72), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant17:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 0, 0, 3, random(-1,1), random(-1,1), 0, random(-80, 80), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant18:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 0, 0, -3, random(-1,1), random(-1,1), 0, random(-80, 80), SXF_CLIENTSIDE, 2)
			stop
		ArcDelayed1:
			TNT1 A 1
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-72, 72), SXF_CLIENTSIDE, 2)
			stop
		ArcDelayed2:
			TNT1 A 1
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Red", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-72, 72), SXF_CLIENTSIDE, 2)
			stop
		Death:
			TNT1 AA 1
			stop
	}
}

actor ArcTrail_Yellow
{
	Radius 4
	Height 4
	RenderStyle Add
	Alpha 1.0
	Scale 0.08
	+NOGRAVITY
	+NOBLOCKMAP
	+NOCLIP
	+NOINTERACTION
	+FORCEXYBILLBOARD
	States
	{
		Spawn:
			SPKY A 1 A_FadeOut(0.08)
			loop
	}
}

actor ElectricArc_Yellow
{
	projectile
	Speed 1
	radius 4
	height 4
	+BLOODLESSIMPACT
	+RIPPER
	states
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx("ArcTrail_Yellow", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE, 0)
			TNT1 A 0 A_Jump(128, "ArcInstant2", "ArcInstant3", "ArcInstant4", "ArcInstant5", "ArcInstant6", "ArcInstant7", "ArcInstant8", "ArcInstant9", "ArcInstant10", "ArcInstant11", "ArcInstant12", "ArcInstant13", "ArcInstant14", "ArcInstant15", "ArcInstant16", "ArcInstant17", "ArcInstant18", "ArcDelayed1", "ArcDelayed2")
			goto ArcInstant1
		ArcInstant1:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 2, 0, 0, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant2:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 0, 2, 0, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant3:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant4:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant5:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 0, 0, 3, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant6:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 0, 0, -3, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant7:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 0, 2, 2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant8:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 2, 0, 2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant9:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 0, -2, -2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant10:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", -2, 0, -2, random(-1,1), random(-1,1), 0, random(-16, 16), SXF_CLIENTSIDE, 3)
			stop
		ArcInstant11:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-32, 32), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant12:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-32, 32), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant13:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-64, 64), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant14:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-64, 64), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant15:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-72, 72), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant16:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-72, 72), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant17:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 0, 0, 3, random(-1,1), random(-1,1), 0, random(-80, 80), SXF_CLIENTSIDE, 2)
			stop
		ArcInstant18:
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 0, 0, -3, random(-1,1), random(-1,1), 0, random(-80, 80), SXF_CLIENTSIDE, 2)
			stop
		ArcDelayed1:
			TNT1 A 1
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 0, 0, 2, random(-1,1), random(-1,1), 0, random(-72, 72), SXF_CLIENTSIDE, 2)
			stop
		ArcDelayed2:
			TNT1 A 1
			TNT1 A 0 A_SpawnItemEx("ElectricArc_Yellow", 0, 0, -2, random(-1,1), random(-1,1), 0, random(-72, 72), SXF_CLIENTSIDE, 2)
			stop
		Death:
			TNT1 AA 1
			stop
	}
}

actor Shell2 : Shell replaces Shell
{
	Yscale 0.70
	XScale 0.75
}

actor ShellBox2 : ShellBox replaces ShellBox
{
	Yscale 0.70
	XScale 0.75
}

actor Clip2 : Clip replaces Clip
{
	Yscale 0.70
	XScale 0.75
}

actor ClipBox2 : ClipBox replaces ClipBox
{
	Yscale 0.70
	XScale 0.75
}

actor Cell2 : Cell replaces Cell
{
	Yscale 0.70
	XScale 0.75
}

actor CellPack2 : CellPack replaces CellPack
{
	Yscale 0.70
	XScale 0.75
}

actor RocketAmmo2 : RocketAmmo replaces RocketAmmo
{
	Yscale 0.70
	XScale 0.75
}

actor RocketBox2 : RocketBox replaces RocketBox
{
	Yscale 0.70
	XScale 0.75
}

actor Medikit2 : Medikit replaces Medikit
{
	Yscale 0.70
	XScale 0.75
}

actor Stimpack2 : Stimpack replaces Stimpack
{
	Yscale 0.70
	XScale 0.75
}

actor GreenArmor2 : GreenArmor replaces GreenArmor
{
	Yscale 0.70
	XScale 0.75
}

actor BlueArmor2 : BlueArmor replaces BlueArmor
{
	Yscale 0.70
	XScale 0.75
}

actor Backpack2 : Backpack replaces Backpack
{
	Yscale 0.70
	XScale 0.75
}

actor Berserk2 : Berserk replaces Berserk
{
	Yscale 0.70
	XScale 0.75
}

ACTOR HealthBonus2 : HealthBonus replaces HealthBonus
{
	Yscale 0.70
	XScale 0.75
	States
	{
	Spawn:
		BON1 ABCD 6
		Loop
	}
}

Actor ArmorBonus2 : ArmorBonus replaces ArmorBonus
{
	Yscale 0.70
	XScale 0.75
	States
	{
	Spawn:
		BON2 ABCD 6
		loop
	}
}

ACTOR InvulnerabilitySphere2 : InvulnerabilitySphere replaces InvulnerabilitySphere
{
	Yscale 0.70
	XScale 0.75
	States
	{
	Spawn:
		PINV ABCDCB 6 Bright
		Loop
	}
}

ACTOR Soulsphere2 : Soulsphere replaces Soulsphere
{
	Yscale 0.70
	XScale 0.75
}

ACTOR Megasphere2 : Megasphere replaces Megasphere
{
	YScale 0.70
	XScale 0.75
}

ACTOR BlurSphere2 : BlurSphere replaces BlurSphere
{
	Yscale 0.70
	XScale 0.75
}

ACTOR Allmap2 : Allmap replaces Allmap
{
	Yscale 0.70
	XScale 0.75
}

ACTOR RadSuit2 : RadSuit replaces RadSuit
{
	Yscale 0.70
	XScale 0.75
	States
	{
	Spawn:
		SUIT A 6 Bright
		SUIT B 6
		loop
	}
}

ACTOR Infrared2 : Infrared replaces Infrared
{
	Yscale 0.70
	XScale 0.75
	States
	{
	Spawn:
		PVIS A 6
		PVIS B 6 Bright
		Loop
	}
}

actor MidRedFloatingFlame
{
  Radius 4
  Height 4
  RenderStyle Add
  XScale 0.90
  YScale 0.78
  Alpha 0.8
  -SOLID
  +NOGRAVITY
  +ALLOWCLIENTSPAWN
  +CLIENTSIDEONLY
  States
  {
  Spawn:
  RFLM ABCDE 1 BRIGHT
  RFLM ABCDE 1 BRIGHT
  RFLM ABCDE 1 A_Fadeout
  goto Spawn+8
  }
}

actor MidBlueFloatingFlame : MidRedFloatingFlame
{
  States
  {
  Spawn:
  BFLM ABCDE 1 BRIGHT
  BFLM ABCDE 1 BRIGHT
  BFLM ABCDE 1 A_Fadeout
  goto Spawn+8
  }
}

actor MidGreenFloatingFlame : MidRedFloatingFlame
{
  Alpha 0.6
  States
  {
  Spawn:
  GFLM ABCD 1 BRIGHT
  GFLM ABCD 1 BRIGHT
  GFLM ABCD 1 A_Fadeout
  goto Spawn+8
  }
}

ACTOR ImprovedRedTorch : RedTorch Replaces RedTorch
{
	Game Doom
	Radius 16
	Height 68
	XScale 0.88
	YScale 0.78
	+SOLID
	+USESPECIAL
	+FORCEYBILLBOARD
	States
	{
	Spawn:
		TRED A 1 BRIGHT A_SpawnItemEx("MidRedFloatingFlame", Random(-2,2), Random(-2,2), Random(50, 52), 0, 0, Random(1, 2), Random(-360, 360), 128, 64)
		loop
	}
}

ACTOR ImprovedBlueTorch : ImprovedRedTorch Replaces BlueTorch
{
	States
	{
	Spawn:
		TRED A 1 BRIGHT A_SpawnItemEx("MidBlueFloatingFlame", Random(-2,2), Random(-2,2), Random(50, 52), 0, 0, Random(1, 2), Random(-360, 360), 128, 64)
		loop
	}
}

ACTOR ImprovedGreenTorch : ImprovedRedTorch Replaces GreenTorch
{
	States
	{
	Spawn:
		TRED A 1 BRIGHT A_SpawnItemEx("MidGreenFloatingFlame", Random(-2,2), Random(-2,2), Random(50, 52), 0, 0, Random(1, 2), Random(-360, 360), 128, 64)
		loop
	}
}

actor SmallRedFloatingFlame
{
  Radius 4
  Height 4
  RenderStyle Add
  XScale 0.88
  YScale 0.64
  Alpha 0.8
  -SOLID
  +NOGRAVITY
  +NOINTERACTION
  +CLIENTSIDEONLY
  +ALLOWCLIENTSPAWN
  States
  {
  Spawn:
  RFLM ABCD 1 BRIGHT
  RFLM ABCD 1 BRIGHT
  RFLM ABCD 1 A_Fadeout
  goto Spawn+8
  }
}

actor SmallBlueFloatingFlame : SmallRedFloatingFlame
{
  States
  {
  Spawn:
  BFLM ABCD 1 BRIGHT
  BFLM ABCD 1 BRIGHT
  BFLM ABCD 1 A_Fadeout
  goto Spawn+8
  }
}

actor SmallGreenFloatingFlame : SmallRedFloatingFlame
{
  Alpha 0.6
  States
  {
  Spawn:
  GFLM ABCD 1 BRIGHT
  GFLM ABCD 1 BRIGHT
  GFLM ABCD 1 A_Fadeout
  goto Spawn+8
  }
}

ACTOR ImprovedShortRedTorch : ShortRedTorch Replaces ShortRedTorch
{
	Game Doom
	Radius 16
	Height 68
	XScale 0.88
	YScale 0.78
	+SOLID
	+USESPECIAL
	+FORCEYBILLBOARD
	States
	{
	Spawn:
		SMRT A 1 BRIGHT A_SpawnItemEx("SmallRedFloatingFlame", Random(-2,2), Random(-2,2), Random(38, 40), 0, 0, Random(1, 2), Random(-360, 360), 128, 64)
		loop
	}
}

ACTOR ImprovedShortBlueTorch : ImprovedShortRedTorch Replaces ShortBlueTorch
{
	States
	{
	Spawn:
		SMRT A 1 BRIGHT A_SpawnItemEx("SmallBlueFloatingFlame", Random(-2,2), Random(-2,2), Random(38, 40), 0, 0, Random(1, 2), Random(-360, 360), 128, 64)
		loop
	}
}

ACTOR ImprovedShortGreenTorch : ImprovedShortRedTorch Replaces ShortGreenTorch
{
	States
	{
	Spawn:
		SMRT A 1 BRIGHT A_SpawnItemEx("SmallGreenFloatingFlame", Random(-2,2), Random(-2,2), Random(38, 40), 0, 0, Random(1, 2), Random(-360, 360), 128, 64)
		loop
	}
}


ACTOR 64TechLamp2 : TechLamp2 replaces TechLamp2
{
	XScale 1.0
	YScale 0.9
	+FORCEYBILLBOARD
	States
	{
	Spawn:
		TLP2 A 4 BRIGHT
		Loop
	}
}

ACTOR 64TechLamp : TechLamp replaces TechLamp
{
	XScale 1.0
	YScale 0.9
	+FORCEYBILLBOARD
	States
	{
	Spawn:
		TLMP A 4 BRIGHT
		Loop
	}
}

actor 64ItemFog : ItemFog Replaces ItemFog
{
  RenderStyle Add
  Alpha 1.0
  Yscale 0.70
  XScale 0.75
  +SHADOW
  States
  {
  Spawn:
    IFOG ABCDEDCBA 4 bright
    stop
  }
}

actor LightningTrail
{
	Radius 4
	Height 4
	RenderStyle Add
	Alpha 1.0
	Scale 0.08
	+NOGRAVITY
	+NOBLOCKMAP
	+NOCLIP
	+NOINTERACTION
	+FORCEXYBILLBOARD
	States
	{
		Spawn:
			SPKG A 1 A_FadeOut(0.08)
			loop
	}
}


ACTOR 64InvulnerabilitySphere : InvulnerabilitySphere
{
	Yscale 0.70
	XScale 0.75
	States
	{
	Spawn:
		PINV ABCDCB 6 Bright
		Loop
	}
}

ACTOR 64Soulsphere : Soulsphere
{
	Yscale 0.70
	XScale 0.75
}

ACTOR 64Megasphere : Megasphere
{
	YScale 0.70
	XScale 0.75
}

ACTOR 64BlurSphere : BlurSphere
{
	Yscale 0.70
	XScale 0.75
}

Actor 64Berserk : Berserk Replaces Berserk
{
	Scale 0.82
	states
	{
	Pickup:
		TNT1 A 0 A_SetBlend ("ff0000", 0.75, 70)
    	TNT1 A 0 A_GiveInventory("PowerStrength")
    	TNT1 A 0 HealThing(100, 0)
    	TNT1 A 0 A_SelectWeapon("SD64_Fist")
    	Stop
  	}
}

actor BlurSpawner : Randomspawner replaces BlurSphere2
{
	Dropitem "64Blursphere", 255
	Dropitem "WpnPowerITEM", 255
}

actor SoulSpawner : Randomspawner replaces Soulsphere2
{
  Dropitem "64Soulsphere", 255
Dropitem "WpnPowerITEM", 255
}

actor InvulnSpawner : Randomspawner replaces InvulnerabilitySphere2
{
	dropitem "64InvulnerabilitySphere", 255
Dropitem "WpnPowerITEM", 255
}

actor MegaSpawner : Randomspawner replaces Megasphere2
{
dropitem "64Megasphere",  255
Dropitem "WpnPowerITEM", 255
}

actor RandomPlasma : Randomspawner replaces PlasmaRifle
{
dropitem "SD64_Plasmarifle",  255
dropitem "SD64_Unmaker",  255
}

actor RandomDoomimp replaces Doomimp
{
Radius 10
Height 10
Monster
-Solid
-ismonster
-COUNTKILL
	states
	{
	Spawn:
	TNT1 A 0 a_jump(256,"64Doomimp", "NightmareImp")
	TNT1 A 1
	goto spawn
	
	NightmareImp:
	TNT1 A 1 A_jumpif(ACS_ExecuteWithResult(640,0) == 1,"64DoomImp")
	TNT1 A 0 A_SpawnitemEX("NightmareImp",0,0,0)
	Stop
	
	64Doomimp:
	TNT1 A 1 A_Spawnitemex("64Doomimp",0,0,0)
	Stop
	//Note: Effects take on the next level
	
	}
}

actor RandomSpectre replaces Spectre
{
Radius 10
Height 10
Monster
-Solid
-ismonster
-COUNTKILL
states
  {
	Spawn:
	TNT1 A 0 a_jump(256,"64Spectre", "NightmareSpectre")
	TNT1 A 1
	goto spawn
	
	NightmareSpectre:
	TNT1 A 1 A_jumpif(ACS_ExecuteWithResult(640,0) == 1,"64Spectre")
	TNT1 A 0 A_SpawnitemEX("NightmareSpectre",0,0,0)
	Stop
	
	64Spectre:
	TNT1 A 0 A_SpawnitemEX("64Spectre",0,0,0)
	Stop
	//Note: Effects take on the next level
  }
}
    
ACTOR WeaponPower : Inventory
{
  Game Doom
  +UNDROPPABLE
  Inventory.MaxAmount 3
}

ACTOR WpnPower1Icon : Inventory
{
  Game Doom
  +UNDROPPABLE
  Inventory.MaxAmount 1
}

ACTOR WpnPower2Icon : Inventory
{
  Game Doom
  +UNDROPPABLE
  Inventory.MaxAmount 1
}

ACTOR WpnPower3Icon : Inventory
{
  Game Doom
  +UNDROPPABLE
  Inventory.MaxAmount 1
}

ACTOR WpnPowerITEM : CustomInventory 9905
{
  Game Doom
  Inventory.Icon POW1E0
  Inventory.PickupMessage "The artifact gives you a pice of the power. (Unmaker Power up)"
  Inventory.PickupSound "misc/i_pkup"
  inventory.MaxAmount 1
  +COUNTITEM
  -INTERHUBSTRIP
  +INVENTORY.BIGPOWERUP
  States
  {
  Spawn:
    POW1 ABCDEDCB 5 BRIGHT
	POW2 ABCDEDCB 5 BRIGHT
	POW3 ABCDEDCB 5 BRIGHT
    Loop
  Pickup:
	TNT1 A 0 A_Jumpifinventory("WeaponPower", 1,"Pickup2")
    TNT1 A 0 A_GiveInventory ("WeaponPower", 1)
    TNT1 A 0 A_GiveInventory ("WpnPower1Icon", 1)
	TNT1 A 0 A_Print("1 Out of 3 Unmaker Artifacts")
	stop
  Pickup2:
	TNT1 A 0 A_Jumpifinventory("WeaponPower", 2,"Pickup3")
    TNT1 A 0 A_GiveInventory ("WeaponPower", 1)
    TNT1 A 0 A_GiveInventory ("WpnPower2Icon", 1)
	TNT1 A 0 A_Print("2 Out of 3 Unmaker Artifacts")
	stop
  Pickup3:
  TNT1 A 0 A_Jumpifinventory("WeaponPower", 3,"Pickup4")
    TNT1 A 0 A_GiveInventory ("WeaponPower", 1)
    TNT1 A 0 A_GiveInventory ("WpnPower3Icon", 1)
	TNT1 A 0 A_Print("3 Out of 3 Unmaker Artifacts")
    stop
  Pickup4:
    TNT1 A 1
    stop
  }
}