ACTOR ScoutVision : PowerupGiver
{
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  Inventory.MaxAmount 0
  Powerup.Type "LightAmp"
  Powerup.Duration 99999999999999999999
  Inventory.PickupMessage "Light Amplification Visor"
  States
  {
    Spawn:
    PVIS A 6 Bright
    PVIS B 6
    Loop
  }
}

ACTOR TeleporterSuit : PowerupGiver
{
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  Inventory.MaxAmount 0
  Powerup.Type "PowerMask"
  Powerup.Duration 99999999999999999999
  Powerup.Color 0, 0, 0, 0
  Inventory.PickupMessage "Radiation Shielding Suit"
  States
  {
  Spawn:
    SUIT A -1 Bright
    Stop
  }
}

ACTOR HSRegen : Health
{
  Inventory.Amount 2
  Inventory.MaxAmount 50
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}

Actor HealthCheck : Inventory
{
  Inventory.Amount 1
  Inventory.MaxAmount 4
}

Actor ArmorCheck : Inventory
{
  Inventory.Amount 1
  Inventory.MaxAmount 4
}

Actor AmmoCheck : Inventory
{
  Inventory.Amount 1
  Inventory.MaxAmount 4
}

Actor AltAmmoCheck : Inventory
{
  Inventory.Amount 1
  Inventory.MaxAmount 4
}

Actor Step : Inventory
{
	inventory.maxamount 1
}

Actor FootStep
{
	PROJECTILE
	+NOBLOOD
	damage 0
	radius 10
	Speed 20
	States
	{
	Spawn:
		TNT1 A 1
		Goto Death
	Death:
		TNT1 A 0
		TNT1 A 1
		Stop
	}
}

actor Boom
{
  Radius 11
  Height 8
  Speed 0
  Damage 0
  Projectile
  renderstyle Add
  States
  {
  Spawn:
		TNT1 A 1
		Goto Death
  Death:
		MISL B 8 bright A_PlaySound("weapons/explode")
		MISL C 6 bright
		MISL D 4 bright
		stop
  }
}

ACTOR NewBlood : Blood replaces Blood
{
Game Doom
States
{
Spawn:
BLUD C 0 
BLUD C 8 
BLUD B 8 A_SpawnItemEx("NewFlyingBlood",0,0,0,0,0,0,0,129)
BLUD A 8
Stop
}
}

ACTOR NewFlyingBlood
{
Game Doom
Scale 0.75
Health 1
Radius 8
Height 1
Mass 1
+CORPSE
+NOTELEPORT
+NOBLOCKMAP
decal BloodSplat
States
{
Spawn:
  TNT1 A 0
  FBLD A 1 A_SpawnItemEx("NewFlyingBloodTrail",0,0,0,0,0,0,0,129)
  FBLD A 1 
  FBLD A 1 A_SpawnItemEx("NewFlyingBloodTrail",0,0,0,0,0,0,0,129)
  FBLD A 1
  FBLD B 1 A_SpawnItemEx("NewFlyingBloodTrail",0,0,0,0,0,0,0,129)
  FBLD B 1
  FBLD B 1 A_SpawnItemEx("NewFlyingBloodTrail",0,0,0,0,0,0,0,129)
  FBLD B 1
  FBLD C 1 A_SpawnItemEx("NewFlyingBloodTrail",0,0,0,0,0,0,0,129)
  FBLD C 1
  FBLD C 1 A_SpawnItemEx("NewFlyingBloodTrail",0,0,0,0,0,0,0,129)
  FBLD C 1
  FBLD D 1 A_SpawnItemEx("NewFlyingBloodTrail",0,0,0,0,0,0,0,129)
  FBLD D 1
  FBLD D 1 A_SpawnItemEx("NewFlyingBloodTrail",0,0,0,0,0,0,0,129)
  FBLD D 1
  Loop
Crash:
  TNT1 A 1 A_SpawnItemEx("NewBloodSpot",0,0,0,0,0,0,0,129)
  Stop
  }
}

ACTOR NewBloodSpot
{
Game Doom
Radius 12
Height 2
Mass 1
+NOTELEPORT
-NOBLOCKMAP
decal BloodSplat
States
{
Spawn:
  TNT1 A 0
  TNT1 A 0
  TNT1 A 0 A_Jump(64,4)
  TNT1 A 0 A_Jump(128,5)
  TNT1 A 0 A_Jump(192,6)
  TNT1 A 0 A_Jump(255,7)
  BSPT A 250
  BSPT A 1 A_FadeOut (0.02)
  goto Spawn+7
  BSPT B 250
  BSPT B 1 A_FadeOut (0.02)
  goto Spawn+9
  BSPT C 250
  BSPT C 1 A_FadeOut (0.02)
  goto Spawn+11
  BSPT D 250
  BSPT D 1 A_FadeOut (0.02)
  goto Spawn+13
  }
}

ACTOR NewFlyingBloodTrail
{
Game Doom
Scale 0.70
Mass 1
+LOWGRAVITY
+NOTELEPORT
+NOBLOCKMAP
decal BloodSplat
States
{
Spawn:
  BTRL A 4
  BTRL B 4
  BTRL C 4
  BTRL D 4
  Stop
  }
}

actor TerminatorGibs
{
  radius 1
  height 1
  +NOBLOCKMONST
  +CLIENTSIDEONLY
  +NOGRAVITY
  +CORPSE
  -SOLID
  states
  {
    Spawn:
      TNT1 A 0
      goto Death
    Death:
      TNT1 A 1 A_SpawnItemEx ("SGibChunk1",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 1 A_SpawnItemEx ("SGibChunk2",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 1 A_SpawnItemEx ("SGibChunk1",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 1 A_SpawnItemEx ("SGibChunk2",0,0,random(3,56),0,0,0,0,129)
      stop
  }
}

actor HumanGibs
{
  radius 1
  height 1
  +NOBLOCKMONST
  +CLIENTSIDEONLY
  +NOGRAVITY
  +CORPSE
  +NOSKIN
  -SOLID
  states
  {
    Spawn:
      TNT1 A 0
      goto Death
    Death:
      TNT1 A 0 A_SpawnItemEx ("SGibChunk1",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 0 A_SpawnItemEx ("SGibChunk2",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 0 A_SpawnItemEx ("SGibChunk1",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 0 A_SpawnItemEx ("SGibChunk2",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 0 A_SpawnItemEx ("SGibChunk1",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 0 A_SpawnItemEx ("SGibChunk2",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 0 A_SpawnItemEx ("SGibChunk1",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 0 A_SpawnItemEx ("SGibChunk2",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 0 A_SpawnItemEx ("MGibChunk1",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 0 A_SpawnItemEx ("MGibChunk2",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 0 A_SpawnItemEx ("MGibChunk3",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 0 A_SpawnItemEx ("MGibChunk4",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 0 A_SpawnItemEx ("MGibChunk5",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 0 A_SpawnItemEx ("MGibChunk6",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 1 A_SpawnItemEx ("MGibChunk7",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 1 A_SpawnItemEx ("MGibChunk8",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 1 A_SpawnItemEx ("MGibChunk9",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 1 A_SpawnItemEx ("MGibChunkA",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 1 A_SpawnItemEx ("MGibChunkB",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 1 A_SpawnItemEx ("MGibChunkC",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 1 A_SpawnItemEx ("SGibChunk1",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 1 A_SpawnItemEx ("SGibChunk2",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 1 A_SpawnItemEx ("SGibChunk1",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 1 A_SpawnItemEx ("SGibChunk2",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 1 A_SpawnItemEx ("SGibChunk1",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 1 A_SpawnItemEx ("SGibChunk2",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 1 A_SpawnItemEx ("SGibChunk1",0,0,random(3,56),0,0,0,0,129)
      TNT1 A 1 A_SpawnItemEx ("SGibChunk2",0,0,random(3,56),0,0,0,0,129)
      stop
  }
}

actor HeadGib : PlayerChunk
{
  radius 7
  height 7
  scale 0.75
  speed 0
  +FLOORCLIP
  +NOBLOCKMONST
  +CLIENTSIDEONLY
  +SLIDESONWALLS
  +NOSKIN
  +THRUGHOST
  +CORPSE
  -SOLID
  decal BloodSplat
  states
  {
    Spawn:
	  PWRK AA 0
      PWRK A 0 A_NoBlocking
      PWRK A 5 ThrustThing (random(0,255),random(1,10))
      PWRK A 5 ThrustThingZ (0,random(15,50),0,0)
    SpawnLoop:
      PWRK A 5 A_SpawnItemEx ("NewFlyingBlood",0,0,0,0,0,0,0,129)
	  loop
    Crash:
	  PWRK AA 0
      PWRK B 0 A_PlaySoundEx ("splash/gibs",0)
	  PWRK B 0 A_SpawnItemEx ("HeadGibRemnant",0,0,0,0,0,0,0,129)
      PWRK B -1
      stop
  }
}

actor BlueHumanGibs : HumanGibs
{
	Translation "16:47=192:207", "168:191=192:207", "160:167=200:207", "232:239=200:207", "208:223=192:207"
}

actor BlueHeadGib : HeadGib
{
+NOSKIN
Translation "16:47=192:207", "168:191=192:207", "160:167=200:207", "232:239=200:207", "208:223=192:207"
}

actor HeadGibRemnant
{
  radius 7
  height 7
  scale 0.75
  speed 0
  +FLOORCLIP
  +NOBLOCKMONST
  +CLIENTSIDEONLY
  +SLIDESONWALLS
  +NOSKIN
  +THRUGHOST
  +CORPSE
  -SOLID
  decal BloodSplat
  states
  {
    Spawn:
	  HDGB A 0
	  HDGB B 30 A_Stop
	  goto Death
	Death:
	  HDGB B 220
	  HDGB B 1 A_FadeOut (0.02)
	  goto Death+1
  }
}

actor MGibChunk1
{
  radius 7
  scale 0.75
  height 7
  speed 0
  +FLOORCLIP
  +NOBLOCKMONST
  +CLIENTSIDEONLY
  +SLIDESONWALLS
  +CORPSE
  -SOLID
  decal BloodSplat
  states
  {
    Spawn:
      GIB1 B 0
      GIB1 B 0 A_NoBlocking
      GIB1 B 5 ThrustThing (random(0,255),random(1,10))
      GIB1 B 5 ThrustThingZ (0,random(15,50),0,0)
      GIB1 B 5 A_SpawnItemEx ("NewFlyingBlood",0,0,0,0,0,0,0,129)
      goto Spawn+4
    Crash:
      GIB1 A 0 A_PlaySoundEx ("splash/gibs",0)
      GIB1 A 250 A_Stop
      GIB1 A 1 A_FadeOut (0.02)
      goto Crash+2
  }
}

actor MGibChunk2
{
  radius 7
  height 7
  scale 0.75
  speed 0
  +FLOORCLIP
  +NOBLOCKMONST
  +CLIENTSIDEONLY
  +SLIDESONWALLS
  +CORPSE
  -SOLID
  decal BloodSplat
  states
  {
    Spawn:
      GIB2 B 0
      GIB2 B 0 A_NoBlocking
      GIB2 B 5 ThrustThing (random(0,255),random(1,10))
      GIB2 B 5 ThrustThingZ (0,random(15,50),0,0)
      GIB2 B 5 A_SpawnItemEx ("NewFlyingBlood",0,0,0,0,0,0,0,129)
      goto Spawn+4
    Crash:
      GIB2 A 0 A_PlaySoundEx ("splash/gibs",0)
      GIB2 A 250 A_Stop
      GIB2 A 1 A_FadeOut (0.02)
      goto Crash+2
  }
}

actor MGibChunk3
{
  radius 7
  height 7
  scale 0.75
  speed 0
  +FLOORCLIP
  +CLIENTSIDEONLY
  +NOBLOCKMONST
  +SLIDESONWALLS
  +CORPSE
  -SOLID
  decal BloodSplat
  states
  {
    Spawn:
      GIB3 B 0
      GIB3 B 0 A_NoBlocking
      GIB3 B 5 ThrustThing (random(0,255),random(1,10))
      GIB3 B 5 ThrustThingZ (0,random(15,50),0,0)
      GIB3 B 5 A_SpawnItemEx ("NewFlyingBlood",0,0,0,0,0,0,0,129)
      goto Spawn+4
    Crash:
      GIB3 A 0 A_PlaySoundEx ("splash/gibs",0)
      GIB3 A 250 A_Stop
      GIB3 A 1 A_FadeOut (0.02)
      goto Crash+2
  }
}

actor MGibChunk4
{
  radius 7
  height 7
  scale 0.75
  speed 0
  +FLOORCLIP
  +CLIENTSIDEONLY
  +NOBLOCKMONST
  +SLIDESONWALLS
  +CORPSE
  -SOLID
  decal BloodSplat
  states
  {
    Spawn:
      GIB4 B 0
      GIB4 B 0 A_NoBlocking
      GIB4 B 5 ThrustThing (random(0,255),random(1,10))
      GIB4 B 5 ThrustThingZ (0,random(15,50),0,0)
      GIB4 B 5 A_SpawnItemEx ("NewFlyingBlood",0,0,0,0,0,0,0,129)
      goto Spawn+4
    Crash:
      GIB4 A 0 A_PlaySoundEx ("splash/gibs",0)
      GIB4 A 250 A_Stop
      GIB4 A 1 A_FadeOut (0.02)
      goto Crash+2
  }
}

actor MGibChunk5
{
  radius 7
  height 7
  scale 0.75
  speed 0
  +FLOORCLIP
  +CLIENTSIDEONLY
  +NOBLOCKMONST
  +SLIDESONWALLS
  +CORPSE
  -SOLID
  decal BloodSplat
  states
  {
    Spawn:
      GIB5 B 0
      GIB5 B 0 A_NoBlocking
      GIB5 B 5 ThrustThing (random(0,255),random(1,10))
      GIB5 B 5 ThrustThingZ (0,random(15,50),0,0)
      GIB5 B 5 A_SpawnItemEx ("NewFlyingBlood",0,0,0,0,0,0,0,129)
      goto Spawn+4
    Crash:
      GIB5 A 0 A_PlaySoundEx ("splash/gibs",0)
      GIB5 A 250 A_Stop
      GIB5 A 1 A_FadeOut (0.02)
      goto Crash+2
  }
}

actor MGibChunk6
{
  radius 7
  height 7
  scale 0.75
  speed 0
  +FLOORCLIP
  +CLIENTSIDEONLY
  +NOBLOCKMONST
  +SLIDESONWALLS
  +CORPSE
  -SOLID
  decal BloodSplat
  states
  {
    Spawn:
      GIB6 B 0
      GIB6 B 0 A_NoBlocking
      GIB6 B 5 ThrustThing (random(0,255),random(1,10))
      GIB6 B 5 ThrustThingZ (0,random(15,50),0,0)
      GIB6 B 5 A_SpawnItemEx ("NewFlyingBlood",0,0,0,0,0,0,0,129)
      goto Spawn+4
    Crash:
      GIB6 A 0 A_PlaySoundEx ("splash/gibs",0)
      GIB6 A 250 A_Stop
      GIB6 A 1 A_FadeOut (0.02)
      goto Crash+2
  }
}

actor MGibChunk7
{
  radius 7
  height 7
  scale 0.75
  speed 0
  +FLOORCLIP
  +CLIENTSIDEONLY
  +NOBLOCKMONST
  +SLIDESONWALLS
  +CORPSE
  -SOLID
  decal BloodSplat
  states
  {
    Spawn:
      GIB7 B 0
      GIB7 B 0 A_NoBlocking
      GIB7 B 5 ThrustThing (random(0,255),random(1,10))
      GIB7 B 5 ThrustThingZ (0,random(15,50),0,0)
      GIB7 B 5 A_SpawnItemEx ("NewFlyingBlood",0,0,0,0,0,0,0,129)
      goto Spawn+4
    Crash:
      GIB7 A 0 A_PlaySoundEx ("splash/gibs",0)
      GIB7 A 250 A_Stop
      GIB7 A 1 A_FadeOut (0.02)
      goto Crash+2
  }
}

actor MGibChunk8
{
  radius 7
  height 7
  scale 0.75
  speed 0
  +FLOORCLIP
  +CLIENTSIDEONLY
  +NOBLOCKMONST
  +SLIDESONWALLS
  +CORPSE
  -SOLID
  decal BloodSplat
  states
  {
    Spawn:
      GIB8 B 0
      GIB8 B 0 A_NoBlocking
      GIB8 B 5 ThrustThing (random(0,255),random(1,10))
      GIB8 B 5 ThrustThingZ (0,random(15,50),0,0)
      GIB8 B 5 A_SpawnItemEx ("NewFlyingBlood",0,0,0,0,0,0,0,129)
      goto Spawn+4
    Crash:
      GIB8 A 0 A_PlaySoundEx ("splash/gibs",0)
      GIB8 A 250 A_Stop
      GIB8 A 1 A_FadeOut (0.02)
      goto Crash+2
  }
}

actor MGibChunk9
{
  radius 7
  height 7
  scale 0.75
  speed 0
  +FLOORCLIP
  +CLIENTSIDEONLY
  +NOBLOCKMONST
  +SLIDESONWALLS
  +CORPSE
  -SOLID
  decal BloodSplat
  states
  {
    Spawn:
      GIB9 B 0
      GIB9 B 0 A_NoBlocking
      GIB9 B 5 ThrustThing (random(0,255),random(1,10))
      GIB9 B 5 ThrustThingZ (0,random(15,50),0,0)
      GIB9 B 5 A_SpawnItemEx ("NewFlyingBlood",0,0,0,0,0,0,0,129)
      goto Spawn+4
    Crash:
      GIB9 A 0 A_PlaySoundEx ("splash/gibs",0)
      GIB9 A 250 A_Stop
      GIB9 A 1 A_FadeOut (0.02)
      goto Crash+2
  }
}

actor MGibChunkA
{
  radius 7
  height 7
  scale 0.75
  speed 0
  +FLOORCLIP
  +CLIENTSIDEONLY
  +NOBLOCKMONST
  +SLIDESONWALLS
  +CORPSE
  -SOLID
  decal BloodSplat
  states
  {
    Spawn:
      GIBA B 0
      GIBA B 0 A_NoBlocking
      GIBA B 5 ThrustThing (random(0,255),random(1,10))
      GIBA B 5 ThrustThingZ (0,random(15,50),0,0)
      GIBA B 5 A_SpawnItemEx ("NewFlyingBlood",0,0,0,0,0,0,0,129)
      goto Spawn+4
    Crash:
      GIBA A 0 A_PlaySoundEx ("splash/gibs",0)
      GIBA A 250 A_Stop
      GIBA A 1 A_FadeOut (0.02)
      goto Crash+2
  }
}

actor MGibChunkB
{
  radius 7
  height 7
  scale 0.75
  speed 0
  +FLOORCLIP
  +CLIENTSIDEONLY
  +NOBLOCKMONST
  +SLIDESONWALLS
  +CORPSE
  -SOLID
  decal BloodSplat
  states
  {
    Spawn:
      GIBB B 0
      GIBB B 0 A_NoBlocking
      GIBB B 5 ThrustThing (random(0,255),random(1,10))
      GIBB B 5 ThrustThingZ (0,random(15,50),0,0)
      GIBB B 5 A_SpawnItemEx ("NewFlyingBlood",0,0,0,0,0,0,0,129)
      goto Spawn+4
    Crash:
      GIBB A 0 A_PlaySoundEx ("splash/gibs",0)
      GIBB A 250 A_Stop
      GIBB A 1 A_FadeOut (0.02)
      goto Crash+2
  }
}

actor MGibChunkC
{
  radius 7
  height 7
  scale 0.75
  speed 0
  +FLOORCLIP
  +CLIENTSIDEONLY
  +NOBLOCKMONST
  +SLIDESONWALLS
  +CORPSE
  -SOLID
  decal BloodSplat
  states
  {
    Spawn:
      GIBC B 0
      GIBC B 0 A_NoBlocking
      GIBC B 5 ThrustThing (random(0,255),random(1,10))
      GIBC B 5 ThrustThingZ (0,random(15,50),0,0)
      GIBC B 5 A_SpawnItemEx ("NewFlyingBlood",0,0,0,0,0,0,0,129)
      goto Spawn+4
    Crash:
      GIBC A 0 A_PlaySoundEx ("splash/gibs",0)
      GIBC A 250 A_Stop
      GIBC A 1 A_FadeOut (0.02)
      goto Crash+2
  }
}

actor SGibChunk1
{
  radius 5
  height 5
  scale 0.75
  speed 0
  +FLOORCLIP
  +NOBLOCKMONST
  +CLIENTSIDEONLY
  +SLIDESONWALLS
  +CORPSE
  -SOLID
  decal BloodSplat
  states
  {
    Spawn:
      SGIB A 0
      SGIB A 0 A_NoBlocking
      SGIB A 5 ThrustThing (random(0,255),random(1,10))
      SGIB A 5 ThrustThingZ (0,random(15,60),0,0)
      SGIB A 5 A_SpawnItemEx ("NewFlyingBlood",0,0,0,0,0,0,0,129)
      goto Spawn+4
    Crash:
      SGIB B 0 A_PlaySoundEx ("splash/gibs",0)
      SGIB B 250 A_Stop
      SGIB B 1 A_FadeOut (0.02)
      goto Crash+2
  }
}

actor SGibChunk2
{
  radius 5
  height 5
  speed 0
  scale 0.75
  +FLOORCLIP
  +NOBLOCKMONST
  +SLIDESONWALLS
  +CLIENTSIDEONLY
  +CORPSE
  -SOLID
  decal BloodSplat
  states
  {
    Spawn:
      SGIB C 0
      SGIB C 0 A_NoBlocking
      SGIB C 5 ThrustThing (random(0,255),random(1,10))
      SGIB C 5 ThrustThingZ (0,random(15,60),0,0)
      SGIB C 5 A_SpawnItemEx ("NewFlyingBlood",0,0,0,0,0,0,0,129)
      goto Spawn+4
    Crash:
      SGIB D 0 A_PlaySoundEx ("splash/gibs",0)
      SGIB D 250 A_Stop
      SGIB D 1 A_FadeOut (0.02)
      goto Crash+2
  }
}

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	.3
	projectile
	- nogravity
	+DONTSPLASH
	+CORPSE
        +EXPLODEONWATER
	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	.3
	projectile
	- nogravity
	+DONTSPLASH
	+CORPSE
        +EXPLODEONWATER
	States
	{
		BSPH A 7
		BSPH B 7
		BSPH C 7
		BSPH D 7
		BSPH A 7
		Stop
	}
}

actor GrayWaterSplash : WaterSplash
{
  alpha .4
  States
  {
  Spawn:
    GSPH A 8
    GSPH B 8
    GSPH C 8
    GSPH D 8
    Stop
  Death:
    GSPH D 1
    Stop
  }
}

actor GrayWaterSplashBase
{
  Radius 1
  Height 1
  Mass 1
  alpha .6
  +NOCLIP
  States
  {
  Spawn:
    GSPH E 3
    GSPH F 3
    GSPH G 3
    GSPH H 3
    GSPH I 3
    GSPH J 3
    GSPH K 3
    Stop
  }
}

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

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

Actor Ricochet: BulletPuff replaces BulletPuff
{
states
	{
	Spawn:
		PUFF A 4 bright
    	PUFF B 0 A_Jump(15, 4)
    	PUFF B 4 bright
    	PUFF CD 4
    stop
    	PUFF B 0 A_CustomMissile("RicochetBullet",5,0,Random(-360,360), 2, random(-360, 360))
    goto Spawn+3
	Melee:
    	PUFF CD 4
    stop
	}
}

Actor RicochetBullet
{
PROJECTILE
-ACTIVATEPCROSS
+CLIENTSIDEONLY
+HEXENBOUNCE
speed 12
radius 3
height 3
mass 1
seesound "weapons/ricochet"
states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 Thing_ChangeTID(0,390)
		TNT1 AAAAAAAAAAAA 1 bright A_spawnitem("BulletTrail")
		stop
	}
}

Actor BulletTrail
{
+NOGRAVITY
+NOINTERACTION
renderstyle translucent
alpha 0.8
translation "0:255=160:163"
scale .25
states
	{
	Spawn:
		PUFF A 1 bright A_FadeOut(0.05)
		loop
	}
}