ACTOR NewParticles : blood
{
  +NOGRAVITY
  States
  {
  Spawn:
    TNT1 A 0 A_SpawnItemEx ("BloodParticle", random(-2,2)*5, random(-2,2)*5, random(-2,2)*5)
    TNT1 A 0 A_SpawnItemEx ("BloodParticle", random(-2,2)*5, random(-2,2)*5, random(-2,2)*5)
    TNT1 A 0 A_SpawnItemEx ("BloodParticle", random(-2,2)*5, random(-2,2)*5, random(-2,2)*5)
    TNT1 A 0 A_SpawnItemEx ("BloodParticle", random(-2,2)*5, random(-2,2)*5, random(-2,2)*5)
    TNT1 A 0 A_SpawnItemEx ("BloodParticle", random(-2,2)*5, random(-2,2)*5, random(-2,2)*5)
    Stop
  }
}

ACTOR GibBlood : NewParticles
{
  States
  {
  Spawn:
    TNT1 A 0 A_SpawnItemEx ("BloodParticle", random(-1,1)*2, random(-1,1)*2, random(-1,1)*2)
    TNT1 A 0 A_SpawnItemEx ("BloodParticle", random(-1,1)*2, random(-1,1)*2, random(-1,1)*2)
    TNT1 A 0 A_SpawnItemEx ("BloodParticle", random(-1,1)*2, random(-1,1)*2, random(-1,1)*2)
    Stop
  }
}

actor GIB0
{
  Radius 4
  Height 4
  Speed 0
  +NOTELEPORT
  +NOBLOCKMAP
  +MOVEWITHSECTOR
  +ThruActors
  +ClientSideOnly
  States
  {
  Spawn:
    GIBS B 1
    loop
  }
}

actor GIB1
{
  Radius 4
  Height 4
  Speed 0
  Projectile
  Gravity 0.5
  BounceType Doom
  BounceFactor 0.5
  -NOGRAVITY
  +NOTELEPORT
  +NOBLOCKMAP
  +MOVEWITHSECTOR
  +ThruActors
  +ClientSideOnly
  health 2
  States
  {
  Spawn:
    GIBS A 2 A_SpawnItemEx("GibBlood",0,0,0)
    loop
  Death:
    GIBS B 0 A_Jump(192, 2, 3, 4)
    GIBS B 300 A_Gravity
    stop
    GIBS B 250 A_Gravity
    stop
    GIBS B 200 A_Gravity
    stop
    GIBS B 150 A_Gravity
    stop
  }
}

actor GIB2
{
  Radius 4
  Height 4
  Speed 0
  Projectile
  Gravity 0.5
  BounceType Doom
  BounceFactor 0.5
  -NOGRAVITY
  +NOTELEPORT
  +NOBLOCKMAP
  +MOVEWITHSECTOR
  +ClientSideOnly
  +ThruActors
  health 3
  States
  {
  Spawn:
    GIBS AABBCCDDEEFFGGHH 2 A_SpawnItemEx("GibBlood",0,0,0)
    loop
  Death:
    GIBS I 0 A_Jump(192, 2, 3, 4)
    GIBS I 300 A_Gravity
    stop
    GIBS I 250 A_Gravity
    stop
    GIBS I 200 A_Gravity
    stop
    GIBS I 150 A_Gravity
    stop
  }
}

actor GIB3
{
  Radius 4
  Height 4
  Speed 0
  Projectile
  Gravity 0.5
  BounceType Doom
  BounceFactor 0.5
  -NOGRAVITY
  +NOTELEPORT
  +NOBLOCKMAP
  +MOVEWITHSECTOR
  +ClientSideOnly
  +ThruActors
  health 4
  States
  {
  Spawn:
    GIBS AABBCCDDEEFFGGHH 2 A_SpawnItemEx("GibBlood",0,0,0)
    loop
  Death:
    GIBS I 0 A_Jump(192, 2, 3, 4)
    GIBS I 300 A_Gravity
    stop
    GIBS I 250 A_Gravity
    stop
    GIBS I 200 A_Gravity
    stop
    GIBS I 150 A_Gravity
    stop
  }
}

actor GIB12
{
  Radius 4
  Height 4
  Speed 0
  Projectile
  Gravity 0.5
  BounceType Doom
  BounceFactor 0.5
  -NOGRAVITY
  +NOTELEPORT
  +NOBLOCKMAP
  +MOVEWITHSECTOR
  +ThruActors
  +ClientSideOnly
  health 2
  States
  {
  Spawn:
    GIBS AABBCCDDEEFFGGHH 2 A_SpawnItemEx("GibBlood",0,0,0)
    loop
  Death:
    GIBS I 0 A_Jump(192, 2, 3, 4)
    GIBS I 300 A_Gravity
    stop
    GIBS I 250 A_Gravity
    stop
    GIBS I 200 A_Gravity
    stop
    GIBS I 150 A_Gravity
    stop
  }
}

actor WGIB1
{
  Radius 4
  Height 4
  Speed 0
  -NOGRAVITY
  +NOTELEPORT
  +NOBLOCKMAP
  +MOVEWITHSECTOR
  +ClientSideOnly
  +corpse
  Gravity 0.5
  health 1
  States
  {
  Spawn:
    GIBS AABBCCDDEEFFGGHH 2 A_SpawnItemEx("GibBlood",0,0,0)
    loop
  Crash:
    GIBS A 1
    stop
  }
}

actor WGIB2
{
  Radius 4
  Height 4
  Speed 0
  -NOGRAVITY
  +NOTELEPORT
  +NOBLOCKMAP
  +MOVEWITHSECTOR
  +ClientSideOnly
  +corpse
  Gravity 0.5
  health 1
  States
  {
  Spawn:
    GIBS AABBCCDDEEFFGGHH 2 A_SpawnItemEx("GibBlood",0,0,0)
    loop
  Crash:
    GIBS A 1
    stop
  }
}

actor WGIB3
{
  Radius 4
  Height 4
  Speed 0
  -NOGRAVITY
  +NOTELEPORT
  +NOBLOCKMAP
  +MOVEWITHSECTOR
  +ClientSideOnly
  +corpse
  Gravity 0.5
  health 1
  States
  {
  Spawn:
    GIBS AABBCCDDEEFFGGHH 2 A_SpawnItemEx("GibBlood",0,0,0)
    loop
  Crash:
    GIBS A 1
    stop
  }
}

actor STGIB1
{
  Radius 4
  Height 4
  Speed 0
  Projectile
  Gravity 0.5
  BounceType Doom
  BounceFactor 0.5
  -NOGRAVITY
  +NOTELEPORT
  +NOBLOCKMAP
  +MOVEWITHSECTOR
  +ThruActors
  +ClientSideOnly
  health 2
  States
  {
  Spawn:
    GIBS AABBCCDDEEFFGGHH 2 A_SpawnItemEx("GibBlood",0,0,0)
    loop
  Death:
    GIBS I 0 A_Jump(192, 2, 3, 4)
    GIBS I 300 A_Gravity
    stop
    GIBS I 250 A_Gravity
    stop
    GIBS I 200 A_Gravity
    stop
    GIBS I 150 A_Gravity
    stop
  }
}

actor STGIB2
{
  Radius 4
  Height 4
  Speed 0
  Projectile
  Gravity 0.5
  BounceType Doom
  BounceFactor 0.5
  -NOGRAVITY
  +NOTELEPORT
  +NOBLOCKMAP
  +MOVEWITHSECTOR
  +ClientSideOnly
  +ThruActors
  health 3
  States
  {
  Spawn:
    GIBS AABBCCDDEEFFGGHH 2 A_SpawnItemEx("GibBlood",0,0,0)
    loop
  Death:
    GIBS I 0 A_Jump(192, 2, 3, 4)
    GIBS I 300 A_Gravity
    stop
    GIBS I 250 A_Gravity
    stop
    GIBS I 200 A_Gravity
    stop
    GIBS I 150 A_Gravity
    stop
  }
}

actor STGIB3
{
  Radius 4
  Height 4
  Speed 0
  Projectile
  Gravity 0.5
  BounceType Doom
  BounceFactor 0.5
  -NOGRAVITY
  +NOTELEPORT
  +NOBLOCKMAP
  +MOVEWITHSECTOR
  +ClientSideOnly
  +ThruActors
  health 4
  States
  {
  Spawn:
    GIBS AABBCCDDEEFFGGHH 2 A_SpawnItemEx("GibBlood",0,0,0)
    loop
  Death:
    GIBS I 0 A_Jump(192, 2, 3, 4)
    GIBS I 300 A_Gravity
    stop
    GIBS I 250 A_Gravity
    stop
    GIBS I 200 A_Gravity
    stop
    GIBS I 150 A_Gravity
    stop
  }
}

actor MeatChunk
{
  Radius 4
  Height 4
  Speed 0
  -NOGRAVITY
  +NOTELEPORT
  +NOBLOCKMAP
  +MOVEWITHSECTOR
  +ClientSideOnly
  +Corpse
  Gravity 0.5
  States
  {
  Spawn:
    GIBS EE 2 A_SpawnItemEx("GibBlood",0,0,0)
    loop
  Crash:
    GIBS E 1
    stop
  }
}

actor ZombHead : GIB1
{
  -ClientSideOnly
  States
  {
  Death:
    GIBS B -1 A_Gravity
    stop
  }
}

actor GruntHead : GIB1
{
  -ClientSideOnly
  States
  {
  Death:
    GIBS B -1 A_Gravity
    stop
  }
}

actor dogHead : GIB1
{
  -ClientSideOnly
  States
  {
  Death:
    GIBS B -1 A_Gravity
    stop
  }
}

actor ShamblerHead : GIB1
{
  -ClientSideOnly
  States
  {
  Death:
    GIBS B -1 A_Gravity
    stop
  }
}

actor VoreHead : GIB1
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  Death:
    GIBS B -1 A_Gravity
    stop
  }
}

actor KnightHead : GIB1
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  Death:
    GIBS B -1 A_Gravity
    stop
  }
}

actor ST1Head : GIB1
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  Death:
    GIBS B -1 A_Gravity
    stop
  }
}

actor FiendHead : GIB1
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  Death:
    GIBS B -1 A_Gravity
    stop
  }
}

actor EnforcerHead : GIB1
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  Death:
    GIBS B -1 A_Gravity
    stop
  }
}

actor WizardHead : GIB1
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  Death:
    GIBS B -1 A_Gravity
    stop
  }
}

actor OgreHead : GIB1
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  Death:
    GIBS B -1 A_Gravity
    stop
  }
}

actor MOgreHead : GIB1
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  Death:
    GIBS B -1 A_Gravity
    stop
  }
}

actor GremlinHead : GIB1
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  Death:
    GIBS B -1 A_Gravity
    stop
  }
}

actor HKnightHead : GIB1
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  Death:
    GIBS B -1 A_Gravity
    stop
  }
}

actor ST2Head : GIB1
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  Death:
    GIBS B -1 A_Gravity
    stop
  }
}

actor ScorpHead : GIB1
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  Death:
    GIBS B -1 A_Gravity
    stop
  }
}

actor ZombHead2 : GIB0
{
  -ClientSideOnly
  States
  {
  }
}

actor GruntHead2 : GIB0
{
  -ClientSideOnly
  States
  {
  }
}

actor dogHead2 : GIB0
{
  -ClientSideOnly
  States
  {
  }
}

actor ShamblerHead2 : GIB0
{
  -ClientSideOnly
  States
  {
  }
}

actor VoreHead2 : GIB0
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  }
}

actor KnightHead2 : GIB0
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  }
}

actor ST1Head2 : GIB0
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  }
}

actor FiendHead2 : GIB0
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  }
}

actor EnforcerHead2 : GIB0
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  }
}

actor WizardHead2 : GIB0
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  }
}

actor OgreHead2 : GIB0
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  }
}

actor MOgreHead2 : GIB0
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  }
}

actor GremlinHead2 : GIB0
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  }
}

actor HKnightHead2 : GIB0
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  }
}

actor ST2Head2 : GIB0
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  }
}

actor ScorpHead2 : GIB0
{
  -ClientSideOnly
  Scale 0.7
  States
  {
  }
}

ACTOR PlayerHead : PlayerChunk
{
  Radius 4
  Height 4
  Scale 0.6
  +NOBLOCKMAP
  +DROPOFF
  +CANNOTPUSH
  +SKYEXPLODE
  +NOBLOCKMONST
  +NOSKIN
  Gravity 0.5
  States
  {
  Spawn:
    GIBS A 0
    GIBS A 5 A_CheckFloor("Hit")
    Goto Spawn+1
  Hit:
    GIBS B 16 A_CheckPlayerDone
    Wait
  }
}

ACTOR BloodDrop
{
  Radius 1
  Height 1
  Projectile
  Speed 1
  +NOBLOCKMAP
  +DROPOFF
  +CANNOTPUSH
  +SKYEXPLODE
  +NOBLOCKMONST
  +CLIENTSIDEONLY
  +THRUACTORS
  Scale 0.65
  Damage (0)
  DamageType PainKill
  States
  {
  Spawn:
    BPAR C 0
    BPAR C 0 A_Jump (256, "shade1", "shade3", "shade5")
    Shade1:
    BPAR C 10
    Stop
    Shade3:
    BPAR D 10
    Stop
    Shade5:
    BPAR E 10
    Stop
  }
}

ACTOR BloodDrop2 : BloodDrop
{
  Speed 2
  States
  {
  }
}

ACTOR BloodThing replaces Blood
{
  Radius 1
  Height 1
  Speed 0
  Damage 0
  Projectile
  -Solid
  +ThruActors
  +NoClip 
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("BloodDrop",Random(-1,1)+1,0,Random(-1,1)+1,1,Random(0,1),Random(0,1))
    TNT1 A 0 A_SpawnItemEx("BloodDrop2",Random(-1,1)+1,0,Random(-1,1)+1,1,Random(0,1),Random(0,1))
    TNT1 A 0 A_SpawnItemEx("BloodDrop",Random(-1,1)+1,0,Random(-1,1)+1,Random(0,1),Random(0,1),1)
    TNT1 A 0 A_SpawnItemEx("BloodDrop2",Random(-1,1)+1,0,Random(-1,1)+1,Random(0,1),Random(0,1),1)
    TNT1 A 0 A_SpawnItemEx("BloodDrop",Random(-1,1)+1,0,Random(-1,1)+1,Random(0,1),1,Random(0,1))
    TNT1 A 0 A_SpawnItemEx("BloodDrop2",Random(-1,1)+1,0,Random(-1,1)+1,Random(0,1),1,Random(0,1))
    TNT1 A 0 A_SpawnItemEx("BloodDrop",Random(-1,1)+1,0,Random(-1,1)+1,-1,Random(0,1),Random(0,1))
    TNT1 A 0 A_SpawnItemEx("BloodDrop2",Random(-1,1)+1,0,Random(-1,1)+1,-1,Random(0,1),Random(0,1))
    TNT1 A 0 A_SpawnItemEx("BloodDrop",Random(-1,1)+1,0,Random(-1,1)+1,Random(0,1),-1,Random(0,1))
    TNT1 A 0 A_SpawnItemEx("BloodDrop2",Random(-1,1)+1,0,Random(-1,1)+1,Random(0,1),-1,Random(0,1))
    TNT1 A 0 A_SpawnItemEx("BloodDrop",Random(-1,1)+1,0,Random(-1,1)+1,Random(0,1),Random(0,1),-1)
    TNT1 A 0 A_SpawnItemEx("BloodDrop2",Random(-1,1)+1,0,Random(-1,1)+1,Random(0,1),Random(0,1),-1)
    TNT1 A 1
    Stop
  }
}

ACTOR BloodThing2 : BloodThing replaces BloodSplatter
{
  States
  {
  }
}

actor CorpseSpawner : RandomSpawner replaces DeadMarine
{
    DropItem "DeadMarine1"
    DropItem "DeadMarine2"
    DropItem "DeadMarine3"
}

ACTOR DeadMarine1
{
  States
  {
  Spawn:
    PLAY A -1
    Stop
  }
}

ACTOR DeadMarine2
{
  States
  {
  Spawn:
    PLAY A -1
    Stop
  }
}

ACTOR DeadMarine3
{
  States
  {
  Spawn:
    PLAY A -1
    Stop
  }
}