ACTOR MeleePuff: BulletPuff
{
	renderstyle Translucent
	alpha 0.5
	Scale 1.5
	DamageType Melee
	+NOBLOCKMAP
	+NOGRAVITY
	+NOEXTREMEDEATH
	+PUFFONACTORS
	+BLOODLESSIMPACT
	+FORCEXYBILLBOARD
	+DONTSPLASH
	states
	{
	Spawn:
	Death:
	Melee:
	XDeath:
	PUFF A 0 A_PlaySound("player/cyborg/fist")
	EXPL AAAAAA 0 A_CustomMissile ("MeleeSmoke", 0, 0, random (0, 360), 2, random (0, 360))
	TNT1 A 10
	stop

  }
}

ACTOR FatalityPuff: MeleePuff
{
DamageType Fatality
Decal "Crack"
  states
  {
  Spawn:
  XDeath:
  Melee:
  Death:
    TNT1 A 0 A_PlaySound("player/cyborg/fist")
	EXPL AAAAAA 0 A_CustomMissile ("MeleeSmoke", 0, 0, random (0, 360), 2, random (0, 360))
    TNT1 A 0
    stop
  }
}

ACTOR KickPuff: MeleePuff
{
DamageType Kick
  states
  {
  Spawn:
    PUFF A 0 A_PlaySound("player/cyborg/fist")
	TNT1 A 0 A_SpawnItemEx ("PLOFT2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    EXPL AAAAAA 0 A_CustomMissile ("MeleeSmoke", 0, 0, random (0, 360), 2, random (0, 360))
    stop
  Death:
    PUFF A 0 A_PlaySound("player/cyborg/fist")
	TNT1 A 0 A_SpawnItemEx ("PLOFT2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    EXPL AAAAAA 0 A_CustomMissile ("MeleeSmoke", 0, 0, random (0, 360), 2, random (0, 360))
    stop
  Melee:
    PUFF A 0 A_PlaySound("player/cyborg/fist")
	TNT1 A 0 A_SpawnItemEx ("PLOFT2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    EXPL AAAAAA 0 A_CustomMissile ("MeleeSmoke", 0, 0, random (0, 360), 2, random (0, 360))
    stop
  XDeath:
    PUFF A 0 A_PlaySound("player/cyborg/fist")
	TNT1 A 0 A_SpawnItemEx ("PLOFT2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
    EXPL AAAAAA 0 A_CustomMissile ("MeleeSmoke", 0, 0, random (0, 360), 2, random (0, 360))
    stop
  }
}

ACTOR SuperKickPuff: KickPuff
{
DamageType Kick
-NOEXTREMEDEATH
+EXTREMEDEATH
Decal "Crack"
}

ACTOR SmashingPuff: MeleePuff
{
DamageType ExplosiveImpact
-NOEXTREMEDEATH
Decal "Crack"
  states
  {
  Spawn:
  XDeath:
  Melee:
  Death:
  TNT1 A 1
	TNT1 A 0 A_PlaySound("player/cyborg/fist")
	    EXPL A 0 Radius_Quake (1, 7, 0, 1, 0)
	    EXPL AAAAAA 0 A_CustomMissile ("MeleeSmoke", 0, 0, random (0, 360), 2, random (0, 360))
    TNT1 A 10
    stop
  }
}

ACTOR UberPunchPuff: SmashingPuff
{
DamageType SuperPunch
}

ACTOR FatalitySmashingPuff: SmashingPuff
{
DamageType Fatality
+NOEXTREMEDEATH
-EXTREMEDEATH
}

ACTOR HitPuff Replaces BulletPuff
{
	renderstyle Add
	alpha 0.3
	Scale 0.8
	radius 0
	height 0
	+NOBLOCKMAP
	+NOGRAVITY
	+NOEXTREMEDEATH
	+FORCEXYBILLBOARD
	+DONTSPLASH
	-EXPLODEONWATER
	+MTHRUSPECIES
	Gravity 0.01
	DamageType Bullet
	Decal "BulletChip"
  states
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_SpawnItemEx ("RicoChet",0,0,-5,0,0,0,0,SXF_NOCHECKPOSITION,0)
  Melee:
	TNT1 A 1
	stop
  }
}

ACTOR HitPuffTracer : HitPuff
{
+NOGRAVITY
}

actor shotpuff : HitPuff
{
DamageType SSG
Decal "None"
}

actor RevoPuff : HitPuff
{
DamageType HeavyImpact
}

actor Shotgunpuff : HitPuff
{
DamageType Shotgun
}

actor Shotgunpuff2 : HitPuff
{
DamageType Shotgun
+BLOODLESSIMPACT
}

actor RailgunPuff2: Hitpuff
{
DamageType Railgun
Radius 2
Height 2
}

actor WeakPuff : HitPuff
{
DamageType Minor
}

ACTOR RicoChet
{
	renderstyle Add
	alpha 1.0
	-COUNTKILL
	-SHOOTABLE
	+CLIENTSIDEONLY
	+NONETID
	+BLOODLESSIMPACT
	+FORCEXYBILLBOARD
	+THRUACTORS
	+NOGRAVITY
	Obituary "%o ate bullet shrapnel."
	//damagetype "Shrapnel"
	Scale 0.6
	Speed 0
	Radius 0
	Height 1
  states
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_CheckFloor("SpawnFloor")
	TNT1 A 0 A_CustomMissile("HitpuffSmoke", 2, 0, random (0, 360), 2, random (80, 90))
	TNT1 A 0 A_SpawnItemEx ("DetectFloorBullet",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_SpawnItemEx ("DetectCeilBullet",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_SpawnItemEx ("UnderwaterHitPuff",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	PUFF A 0 bright A_PlaySound("ricochet/hit")

    TNT1 A 0 A_Jump (132, 15)
    FX58 ABCD 1 BRIGHT

	FX58 EFGHIJ 1 bright
    Stop
    TNT1 AAAAA 0
    FX57 ABCD 1 BRIGHT
	TNT1 A 0 A_CustomMissile("HitpuffSmoke", 2, 0, random (0, 360), 2, random (80, 90))
	FX57 EFGHIJ 1 bright
    stop

	SpawnFloor:
	TNT1 A 0
	TNT1 A 0 ACS_NamedExecuteAlways("BDCheckFloorType", 0, 0, 0, 0)//Check if is under a liquid
	TNT1 A 2
	TNT1 A 0 A_JumpIfInventory("IsOverWater", 1, "SpawnWater")
	TNT1 A 0 A_JumpIfInventory("IsOverNukage", 1, "SpawnNukage")
	TNT1 A 0 A_JumpIfInventory("IsOverOrange", 1, "SpawnOrange")
	TNT1 A 0 A_JumpIfInventory("IsOverPinaColada", 1, "SpawnPinaColada")
	TNT1 A 0 A_JumpIfInventory("IsOverPurple", 1, "SpawnPurple")
	TNT1 A 0 A_JumpIfInventory("IsOverSlime", 1, "SpawnSlime")
	TNT1 A 0 A_JumpIfInventory("IsOverTar", 1, "SpawnTar")
	TNT1 A 0 A_JumpIfInventory("IsOverBlood", 1, "SpawnBlood")
	TNT1 A 0 A_JumpIfInventory("IsOverLava", 1, "SpawnLava")
	TNT1 A 0 A_JumpIfInventory("IsOverMagenta", 1, "SpawnMagenta")
	TNT1 A 0 A_JumpIfInventory("IsOverYava", 1, "SpawnYava")
	TNT1 A 0 A_JumpIfInventory("IsOverGrass", 1, "SpawnDirt")
	TNT1 A 0 A_JumpIfInventory("IsOverSand", 1, "SpawnSand")
	TNT1 A 0 A_JumpIfInventory("IsOverSnow", 1, "SpawnSnow")

	TNT1 A 0 A_SpawnItemEx ("DetectFloorBullet",0,0,5,0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_SpawnItemEx ("DetectCeilBullet",0,0,0,-5,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_SpawnItemEx ("UnderwaterHitPuff",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	PUFF A 0 bright A_PlaySound("ricochet/hit")
	TNT1 A 0 A_SetScale(-0.6)
    TNT1 A 0 A_Jump (132, 15)
    FX58 ABCD 1 BRIGHT
	TNT1 A 0 A_CustomMissile("HitpuffSmoke", 2, 0, random (0, 360), 2, random (80, 90))
	FX58 EFGHIJ 1 bright
    Stop
    TNT1 AAAAA 0
    FX57 ABCD 1 BRIGHT
	TNT1 A 0 A_CustomMissile("HitpuffSmoke", 2, 0, random (0, 360), 2, random (80, 90))
	FX57 EFGHIJ 1 bright
    stop

	SpawnWater:
	TNT1 A 0
	TNT1 AAAAA 0 A_CustomMissile ("WaterParticleXFAster", 8, 0, random (0, 360), 2, random (30, 160))
	TNT1 AAAAA 0 A_CustomMissile ("WaterParticleXSuperFast", 24, 0, random (0, 360), 2, random (30, 160))
	TNT1 A 0 A_SpawnItem("WaterSplashWaves")
	TNT1 A 0 A_SetScale(0.5, 0.5)
	TNT1 AAA 0 A_CustomMissile ("WaterRicochet", random (0, 2), 0, random (0, 360), 2, random (30, 90))
	Stop

	SpawnSlime:
	TNT1 A 0
	TNT1 AAAAA 0 A_CustomMissile ("SLimeParticleXFAster", 8, 0, random (0, 360), 2, random (30, 160))
	TNT1 AAAAA 0 A_CustomMissile ("slimeParticleXSuperFast", 24, 0, random (0, 360), 2, random (30, 160))
	TNT1 A 0 A_SpawnItem("SlimeSplashWaves")
	TNT1 A 0 A_SetScale(0.5, 0.5)
	SPHB ABCDE 3
	Stop

	SpawnTar:
	TNT1 A 0
	TNT1 AAAAA 0 A_CustomMissile ("TarParticleXFAster", 8, 0, random (0, 360), 2, random (30, 160))
	TNT1 AAAAA 0 A_CustomMissile ("TarParticleXSuperFast", 24, 0, random (0, 360), 2, random (30, 160))
	TNT1 A 0 A_SpawnItem("TarSplashWaves")
	TNT1 A 0 A_SetScale(0.5, 0.5)
	SPHT ABCDE 3
	Stop

	SpawnNukage:
	TNT1 A 0
	TNT1 AAAAA 0 A_CustomMissile ("nukageParticleXFAster", 8, 0, random (0, 360), 2, random (30, 160))
	TNT1 AAAAA 0 A_CustomMissile ("nukageParticleXSuperFast", 24, 0, random (0, 360), 2, random (30, 160))
	TNT1 A 0 A_SpawnItem("NukageSplashWaves")
	TNT1 AAA 0 A_CustomMissile ("NukageRicochet", random (0, 2), 0, random (0, 360), 2, random (30, 90))
	Stop

	SpawnOrange:
	TNT1 A 0
	TNT1 AAAAA 0 A_CustomMissile ("OrangeParticleXFAster", 8, 0, random (0, 360), 2, random (30, 160))
	TNT1 AAAAA 0 A_CustomMissile ("OrangeParticleXSuperFast", 24, 0, random (0, 360), 2, random (30, 160))
	TNT1 A 0 A_SpawnItem("OrangeSplashWaves")
	TNT1 AAA 0 A_CustomMissile ("OrangeRicochet", random (0, 2), 0, random (0, 360), 2, random (30, 90))
	Stop

	SpawnPinaColada:
	TNT1 A 0
	TNT1 AAAAA 0 A_CustomMissile ("PinaColadaParticleXFAster", 8, 0, random (0, 360), 2, random (30, 160))
	TNT1 AAAAA 0 A_CustomMissile ("PinaColadaParticleXSuperFast", 24, 0, random (0, 360), 2, random (30, 160))
	TNT1 A 0 A_SpawnItem("PinaColadaSplashWaves")
	TNT1 AAA 0 A_CustomMissile ("PinaColadaRicochet", random (0, 2), 0, random (0, 360), 2, random (30, 90))
	Stop

	SpawnPurple:
	TNT1 A 0
	TNT1 AAAAA 0 A_CustomMissile ("PurpleParticleXFAster", 8, 0, random (0, 360), 2, random (30, 160))
	TNT1 AAAAA 0 A_CustomMissile ("PurpleParticleXSuperFast", 24, 0, random (0, 360), 2, random (30, 160))
	TNT1 A 0 A_SpawnItem("PurpleSplashWaves")
	TNT1 AAA 0 A_CustomMissile ("PurpleRicochet", random (0, 2), 0, random (0, 360), 2, random (30, 90))
	Stop

	SpawnBlood:
	TNT1 A 0
	TNT1 AAAAA 0 A_CustomMissile ("BloodParticleXFAster", 8, 0, random (0, 360), 2, random (30, 160))
	TNT1 AAAAA 0 A_CustomMissile ("BloodParticleXSuperFast", 24, 0, random (0, 360), 2, random (30, 160))
	TNT1 A 0 A_SpawnItem("BloodSplashWaves")
	TNT1 AAA 0 A_CustomMissile ("BloodRicochet", random (0, 2), 0, random (0, 360), 2, random (30, 90))
	Stop

	SpawnLava:
	TNT1 A 0
	TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrailDarker", 12, 0, random (160, 210), 2, random (10, 90))
	TNT1 A 0 A_SpawnItemEx("TinyBurningPiece3", random (-5, 5), random (-5, 5))
	TNT1 AAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 10, 0, random (0, 180), 2, random (10, 90))
	TNT1 A 0 A_SetScale(0.5, 0.5)
	INFE ABCDEFGHIJKLMNOPQR 1 BRIGHT
	INFE ST 1 BRIGHT A_CustomMissile ("OldschoolRocketSmokeTrailDarker", 32, 0, random (160, 210), 2, random (10, 90))
	TNT1 AAA 4 A_CustomMissile ("OldschoolRocketSmokeTrailDarker", 14, 0, random (160, 210), 2, random (10, 90))
	Stop

	SpawnMagenta:
	TNT1 A 0
	TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrailDarker", 12, 0, random (160, 210), 2, random (10, 90))
	TNT1 A 0 A_SpawnItemEx("TinyBurningPiece3M", random (-5, 5), random (-5, 5))
	TNT1 AAAAA 0 A_CustomMissile ("MagentaParticleHeavy", 10, 0, random (0, 180), 2, random (10, 90))
	TNT1 A 0 A_SetScale(0.5, 0.5)
	INFM ABCDEFGHIJKLMNOPQR 1 BRIGHT
	INFM ST 1 BRIGHT A_CustomMissile ("OldschoolRocketSmokeTrailDarker", 32, 0, random (160, 210), 2, random (10, 90))
	TNT1 AAA 4 A_CustomMissile ("OldschoolRocketSmokeTrailDarker", 14, 0, random (160, 210), 2, random (10, 90))
	Stop

	SpawnYava:
	TNT1 A 0
	TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrailDarker", 12, 0, random (160, 210), 2, random (10, 90))
	TNT1 A 0 A_SpawnItemEx("TinyBurningPiece3Y", random (-5, 5), random (-5, 5))
	TNT1 AAAAA 0 A_CustomMissile ("YellowParticleHeavy", 10, 0, random (0, 180), 2, random (10, 90))
	TNT1 A 0 A_SetScale(0.5, 0.5)
	INFY ABCDEFGHIJKLMNOPQR 1 BRIGHT
	INFY ST 1 BRIGHT A_CustomMissile ("OldschoolRocketSmokeTrailDarker", 32, 0, random (160, 210), 2, random (10, 90))
	TNT1 AAA 4 A_CustomMissile ("OldschoolRocketSmokeTrailDarker", 14, 0, random (160, 210), 2, random (10, 90))
	Stop

	SpawnDirt:
	TNT1 A 0
	TNT1 A 0 A_CustomMissile ("BrownCloudSmallLong", 0, 0, random (0, 360), 2, random (10, 150))
	TNT1 AAA 0 A_CustomMissile ("DirtRicochet", random (0, 2), 0, random (0, 360), 2, random (30, 90))
	Stop

	SpawnSand:
	TNT1 A 0
	TNT1 A 0 A_CustomMissile ("SandCloudSmallLong", 0, 0, random (0, 360), 2, random (10, 90))
	TNT1 A 0 A_CustomMissile ("SandCloudSmall", 0, 0, random (0, 360), 2, random (10, 90))
	TNT1 A 0 A_CustomMissile ("SandDustSmall", 4, 0, random (0, 360), 2, random (30, 150))
	TNT1 AAA 0 A_CustomMissile ("SandRicochet", random (0, 2), 0, random (0, 360), 2, random (30, 90))
	Stop

	SpawnSnow:
	TNT1 A 0
	TNT1 A 0 A_CustomMissile ("SnowCloudSmallLong", 0, 0, random (0, 360), 2, random (10, 90))
	TNT1 A 0 A_CustomMissile ("SnowCloudSmall", 0, 0, random (0, 360), 2, random (10, 90))
	TNT1 A 0 A_CustomMissile ("SnowDustSmall", 4, 0, random (0, 360), 2, random (30, 150))
	TNT1 AAA 0 A_CustomMissile ("SnowRicochet", random (0, 2), 0, random (0, 360), 2, random (30, 90))
	Stop
  }
}

ACTOR DirtRicochet: RicoChet
{
  renderstyle Translucent
  alpha 0.9
  Scale 0.5
  Speed 6
  states
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("BHITDIR")
	TNT1 A 0 A_Jump(255, "spawn1", "Spawn2", "Spawn3", "Spawn4")
  Spawn1:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.7, 0.7)
	SDRT ABCDEFF 1 A_FadeOut(0.1)
	Stop
 Spawn2:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.8, 0.8)
	SDRT ABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn3:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.6, 0.6)
	SDRT ABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn4:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.7, 0.7)
	SDRT ABCDEFF 1 A_FadeOut(0.1)
	Stop

  }
}

ACTOR SandRicochet: RicoChet
{
  renderstyle Translucent
  alpha 0.9
  Scale 0.5
  Speed 6
  states
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("BHITDIR")
	TNT1 A 0 A_Jump(255, "spawn1", "Spawn2", "Spawn3", "Spawn4")
  Spawn1:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.7, 0.7)
	SSND ABCDEFF 1 A_FadeOut(0.1)
	Stop
 Spawn2:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.8, 0.8)
	SSND ABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn3:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.6, 0.6)
	SSND ABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn4:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.7, 0.7)
	SSND ABCDEFF 1 A_FadeOut(0.1)
	Stop

  }
}

ACTOR SnowRicochet: RicoChet
{
  renderstyle Translucent
  alpha 0.9
  Scale 0.5
  Speed 6
  states
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("BHITDIR")
	TNT1 A 0 A_Jump(255, "spawn1", "Spawn2", "Spawn3", "Spawn4")
  Spawn1:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.7, 0.7)
	SSNW ABCDEFF 1 A_FadeOut(0.1)
	Stop
 Spawn2:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.8, 0.8)
	SSNW ABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn3:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.6, 0.6)
	SSNW ABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn4:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.7, 0.7)
	SSNW ABCDEFF 1 A_FadeOut(0.1)
	Stop

  }
}

ACTOR WaterRicochet: DirtRicochet
{
  renderstyle Add
  -NOGRAVITY
  Gravity 0.5
  Speed 4
  states
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(255, "spawn1", "Spawn2", "Spawn3", "Spawn4")
  Spawn1:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.7, 0.7)
	SPHW AABCDEFF 1 A_FadeOut(0.1)
	Stop
 Spawn2:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.8, 0.8)
	SPHW AABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn3:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.6, 0.6)
	SPHW AABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn4:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.7, 0.7)
	SPHW AABCDEFF 1 A_FadeOut(0.1)
	Stop
 Death:
	TNT1 A 0
	Stop
  }
}

ACTOR NukageRicochet: WaterRicochet
{
  renderstyle Add
  states
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(255, "spawn1", "Spawn2", "Spawn3", "Spawn4")
  Spawn1:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.7, 0.7)
	SPHG ABCDEFF 1 A_FadeOut(0.1)
	Stop
 Spawn2:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.8, 0.8)
	SPHG ABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn3:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.6, 0.6)
	SPHG ABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn4:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.7, 0.7)
	SPHG ABCDEFF 1 A_FadeOut(0.1)
	Stop
  }
}

ACTOR OrangeRicochet: WaterRicochet
{
  renderstyle Add
  states
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(255, "spawn1", "Spawn2", "Spawn3", "Spawn4")
  Spawn1:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.7, 0.7)
	SPHO ABCDEFF 1 A_FadeOut(0.1)
	Stop
 Spawn2:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.8, 0.8)
	SPHO ABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn3:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.6, 0.6)
	SPHO ABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn4:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.7, 0.7)
	SPHO ABCDEFF 1 A_FadeOut(0.1)
	Stop
  }
}

ACTOR PinaColadaRicochet: WaterRicochet
{
  renderstyle Add
  states
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(255, "spawn1", "Spawn2", "Spawn3", "Spawn4")
  Spawn1:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.7, 0.7)
	SPHQ ABCDEFF 1 A_FadeOut(0.1)
	Stop
 Spawn2:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.8, 0.8)
	SPHQ ABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn3:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.6, 0.6)
	SPHQ ABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn4:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.7, 0.7)
	SPHQ ABCDEFF 1 A_FadeOut(0.1)
	Stop
  }
}

ACTOR PurpleRicochet: WaterRicochet
{
  renderstyle Add
  states
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(255, "spawn1", "Spawn2", "Spawn3", "Spawn4")
  Spawn1:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.7, 0.7)
	SPHP ABCDEFF 1 A_FadeOut(0.1)
	Stop
 Spawn2:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.8, 0.8)
	SPHP ABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn3:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.6, 0.6)
	SPHP ABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn4:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.7, 0.7)
	SPHP ABCDEFF 1 A_FadeOut(0.1)
	Stop
  }
}

ACTOR BloodRicochet: WaterRicochet
{
  renderstyle Add
  states
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(255, "spawn1", "Spawn2", "Spawn3", "Spawn4")
  Spawn1:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.7, 0.7)
	SPHR ABCDEFF 1 A_FadeOut(0.1)
	Stop
 Spawn2:
	TNT1 A 0
	TNT1 A 0 A_SetScale(0.8, 0.8)
	SPHR ABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn3:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.6, 0.6)
	SPHR ABCDEFF 1 A_FadeOut(0.1)
	Stop
  Spawn4:
	TNT1 A 0
	TNT1 A 0 A_SetScale(-0.7, 0.7)
	SPHR ABCDEFF 1 A_FadeOut(0.1)
	Stop
  }
}

ACTOR GiantWaterRicochet: RicoChet
{
  renderstyle Translucent
  alpha 0.9
  XScale 3.0
  YScale 2.0
  states
  {
  Spawn:
	GSPL ABCDEFGHIJKLMNOPQRSTUVWXYZ 2
	Stop
  }
}

ACTOR LargeMassWaterImpact
{
  +THRUACTORS
  +VULNERABLE
  Radius 1
  Height 1
  Mass 99999
  Health 99999
  states
  {
  Spawn:
  Death:
    TNT1 A 0
	TNT1 A 0 ACS_NamedExecuteAlways("BDCheckFloorType3", 0, 0, 0, 0)//Check if is under grass/dirt
	TNT1 A 2
	TNT1 A 0 A_JumpIfInventory("GoSpecial", 1, "SpawnLava")
    TNT1 A 0 A_JumpIfInventory("IsOverWater", 1, "SpawnWater")
	TNT1 A 0 A_JumpIfInventory("IsOverSlime", 1, "SpawnSlime")
	TNT1 A 0 A_JumpIfInventory("IsOverTar", 1, "SpawnTar")
	TNT1 A 0 A_JumpIfInventory("IsOverNukage", 1, "SpawnNukage")
	TNT1 A 0 A_JumpIfInventory("IsOverOrange", 1, "SpawnOrange")
	TNT1 A 0 A_JumpIfInventory("IsOverPinaColada", 1, "SpawnPinaColada")
	TNT1 A 0 A_JumpIfInventory("IsOverPurple", 1, "SpawnPurple")
	TNT1 A 0 A_JumpIfInventory("IsOverBlood", 1, "SpawnBlood")
	TNT1 A 0 A_JumpIfInventory("IsOverLava", 1, "SpawnLava")
	TNT1 A 0 A_JumpIfInventory("IsOverMagenta", 1, "SpawnMagenta")
	TNT1 A 0 A_JumpIfInventory("IsOverYava", 1, "SpawnYava")
	TNT1 A 0 A_JumpIfInventory("IsOverSand", 1, "SpawnSand")
    Stop

  SpawnWater:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("bigspl1")
	TNT1 A 0 A_AlertMonsters(500, AMF_TARGETNONPLAYER)
	TNT1 AAAAAAAAAAAAAAAA 0 A_CustomMissile ("WaterParticleXSuperFast", 12, 0, random (0, 360), 2, random (30, 90))
	TNT1 AAAAAAAAAAAAAAAA 0 A_CustomMissile ("WaterParticleXFAster", 12, 0, random (0, 360), 2, random (30, 90))
	TNT1 A 20
	Stop

 SpawnSlime:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("bigspl1")
	TNT1 A 0 A_AlertMonsters(500, AMF_TARGETNONPLAYER)
	TNT1 AAAAAAAAAAAAAAAA 0 A_CustomMissile ("slimeParticleXSuperFast", 12, 0, random (0, 360), 2, random (30, 90))
	TNT1 AAAAAAAAAAAAAAAA 0 A_CustomMissile ("SlimeParticleXFaster", 12, 0, random (0, 360), 2, random (30, 90))
	TNT1 A 20
	Stop

 SpawnTar:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("bigspl1")
	TNT1 A 0 A_AlertMonsters(500, AMF_TARGETNONPLAYER)
	TNT1 AAAAAAAAAAAAAAAA 0 A_CustomMissile ("TarParticleXSuperFast", 12, 0, random (0, 360), 2, random (30, 90))
	TNT1 AAAAAAAAAAAAAAAA 0 A_CustomMissile ("TarParticleXFAster", 12, 0, random (0, 360), 2, random (30, 90))
	TNT1 A 20
	Stop

 SpawnNukage:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("bigspl1")
	TNT1 A 0 A_AlertMonsters(500, AMF_TARGETNONPLAYER)
	TNT1 AAAAAAAAAAAAAAAA 0 A_CustomMissile ("nukageParticleXSuperFast", 12, 0, random (0, 360), 2, random (30, 90))
	TNT1 AAAAAAAAAAAAAAAA 0 A_CustomMissile ("nukageParticleXFAster", 12, 0, random (0, 360), 2, random (30, 90))
	TNT1 A 20
	Stop

 SpawnOrange:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("bigspl1")
	TNT1 A 0 A_AlertMonsters(500, AMF_TARGETNONPLAYER)
	TNT1 AAAAAAAAAAAAAAAA 0 A_CustomMissile ("OrangeParticleXSuperFast", 12, 0, random (0, 360), 2, random (30, 90))
	TNT1 AAAAAAAAAAAAAAAA 0 A_CustomMissile ("OrangeParticleXFAster", 12, 0, random (0, 360), 2, random (30, 90))
	TNT1 A 20
	Stop

 SpawnPinaColada:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("bigspl1")
	TNT1 A 0 A_AlertMonsters(500, AMF_TARGETNONPLAYER)
	TNT1 AAAAAAAAAAAAAAAA 0 A_CustomMissile ("PinaColadaParticleXSuperFast", 12, 0, random (0, 360), 2, random (30, 90))
	TNT1 AAAAAAAAAAAAAAAA 0 A_CustomMissile ("PinaColadaParticleXFAster", 12, 0, random (0, 360), 2, random (30, 90))
	TNT1 A 20
	Stop

 SpawnPurple:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("bigspl1")
	TNT1 A 0 A_AlertMonsters(500, AMF_TARGETNONPLAYER)
	TNT1 AAAAAAAAAAAAAAAA 0 A_CustomMissile ("PurpleParticleXSuperFast", 12, 0, random (0, 360), 2, random (30, 90))
	TNT1 AAAAAAAAAAAAAAAA 0 A_CustomMissile ("PurpleParticleXFAster", 12, 0, random (0, 360), 2, random (30, 90))
	TNT1 A 20
	Stop

  SpawnBlood:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("bigspl1")
	TNT1 A 0 A_AlertMonsters(500, AMF_TARGETNONPLAYER)
	TNT1 AAAAAAAAAAAAAAAA 0 A_CustomMissile ("BloodParticleXSuperFast", 12, 0, random (0, 360), 2, random (30, 90))
	TNT1 AAAAAAAAAAAAAAAA 0 A_CustomMissile ("BloodParticleXFAster", 12, 0, random (0, 360), 2, random (30, 90))
	TNT1 A 20
	Stop

 SpawnLava:
	TNT1 A 0
	TNT1 A 0 A_CustomMissile ("FlyingLava1d", 0, 0, random (0, 360), 2, random (30, 80))
	TNT1 AAA 0 A_CustomMissile ("FlyingLava1c", 2, 0, random (0, 360), 2, random (30, 80))
	TNT1 AAA 0 A_CustomMissile ("FlyingLava2c", 2, 0, random (0, 360), 2, random (30, 80))
	TNT1 A 0 A_SpawnItemEx("TinyBurningPiece", random (-15, 15), random (-15, 15))
	TNT1 A 0 A_SpawnItemEx("TinyBurningPiece2", random (-35, 35), random (-35, 35))
	TNT1 A 0 A_SpawnItemEx("TinyBurningPiece3", random (-45, 45), random (-45, 35))
	TNT1 A 20
	Stop

 SpawnMagenta:
	TNT1 A 0
	TNT1 A 0 A_CustomMissile ("FlyingMagenta1d", 0, 0, random (0, 360), 2, random (30, 80))
	TNT1 AAA 0 A_CustomMissile ("FlyingMagenta1c", 2, 0, random (0, 360), 2, random (30, 80))
	TNT1 AAA 0 A_CustomMissile ("FlyingMagenta2c", 2, 0, random (0, 360), 2, random (30, 80))
	TNT1 A 0 A_SpawnItemEx("TinyBurningPieceM", random (-15, 15), random (-15, 15))
	TNT1 A 0 A_SpawnItemEx("TinyBurningPiece2M", random (-35, 35), random (-35, 35))
	TNT1 A 0 A_SpawnItemEx("TinyBurningPiece3M", random (-45, 45), random (-45, 35))
	TNT1 A 20
	Stop

 SpawnYava:
	TNT1 A 0
	TNT1 A 0 A_CustomMissile ("FlyingYava1d", 0, 0, random (0, 360), 2, random (30, 80))
	TNT1 AAA 0 A_CustomMissile ("FlyingYava1c", 2, 0, random (0, 360), 2, random (30, 80))
	TNT1 AAA 0 A_CustomMissile ("FlyingYava2c", 2, 0, random (0, 360), 2, random (30, 80))
	TNT1 A 0 A_SpawnItemEx("TinyBurningPieceY", random (-15, 15), random (-15, 15))
	TNT1 A 0 A_SpawnItemEx("TinyBurningPiece2Y", random (-35, 35), random (-35, 35))
	TNT1 A 0 A_SpawnItemEx("TinyBurningPiece3Y", random (-45, 45), random (-45, 35))
	TNT1 A 20
	Stop

 SpawnSand:
	TNT1 AA 0 A_CustomMissile ("SandCloudSmallLong", 24, 0, random (0, 360), 2, random (30, 90))
	TNT1 A 0 A_CustomMissile ("SandCloudSmall", 0, 0, random (0, 360), 2, random (10, 90))
	TNT1 AAA 0 A_CustomMissile ("SandDustSmall", 42, 0, random (0, 360), 2, random (40, 150))
	TNT1 A 0 A_AlertMonsters(200, AMF_TARGETNONPLAYER)
	Stop
  }
}

ACTOR SilentHitPuff: hitPuff
{
DamageType bullet
}

Actor MiniGunBulletPuff: HitPuff
{
DamageType Minigun
}

Actor MachineGunBulletPuff: HitPuff
{
DamageType Minigun
}

Actor MechMinigunPuff: HitPuff
{
DamageType Minigun
-NOEXTREMEDEATH
}

ACTOR SSawPuff: HitPuff
{
	renderstyle Translucent
	scale 0.15
	alpha 0.7
	Radius 20
	damagetype Saw
	decal "SawHorizontal"
	+NOBLOCKMAP
	+NOGRAVITY
	+NOEXTREMEDEATH
	+FORCEXYBILLBOARD
	states
	{
		Spawn:
		Death:
		Melee:
		XDeath:
		TNT1 A 0
		TNT1 AB 1 bright
		TNT1 A 0 A_Jump (128,3)
		TNT1 A 0 A_SpawnItem ("Sparks", 0)
		TNT1 AAAAAA 0 A_CustomMissile ("SparkX", 2, 0, random (0, 360), 2, random (30, 170))
		BPUF C 1 bright A_PlaySound("weapons/chainsaw/hitwall")
		BPUF D 1 bright
		Stop
	}
}

ACTOR SSawPuff2: SSawPuff
{
damagetype Saw
decal "SawVertical"
}

Actor PuffSmoke
{
	+MISSILE
	+NOBLOCKMAP
	+NOGRAVITY
	+DROPOFF
	+NOTELEPORT
	+FORCEXYBILLBOARD
	+NOTDMATCH
	+GHOST
	+DONTSPLASH
	+CLIENTSIDEONLY
	+NONETID
	+NOINTERACTION
	radius 1
	height 1
	mass 1
	renderstyle Translucent
	alpha 0.9
	Scale 1.5
	Speed 1
	seesound "weapons/ricochet"
states
	{
	Spawn:
		TNT1 A 0
        PUFY ZZZCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD 1 A_FadeOut(0.03)
//LENY AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_FadeOut(0.06)
		//LENY AAAAAA 1 bright
        //LENY AAA 1
		stop
	}
}

ACTOR Sparks: BulletPuff
{
	renderstyle Translucent
	alpha 0.8
	+NOBLOCKMAP
	+NOGRAVITY
	+CLIENTSIDEONLY
	+NONETID
	+NOINTERACTION
	Scale 0.5
  states
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_Jump (132, 15)
    FX58 ABCDEFGHIJ 1 bright
    Stop
    TNT1 AAAAA 0
    FX57 ABCDEFGHIJ 1 bright
    stop
  }
}

actor PLOFT
{
	+NOTARGET
Radius 10
Height 10
DamageType MonsterKnocked
+NOGRAVITY
+NOTELEPORT
+NODAMAGETHRUST
+THRUGHOST
+NORADIUSDMG
+NOEXTREMEDEATH
PROJECTILE
	+DEHEXPLOSION
	+ACTIVATEMCROSS
	-DONTSPLASH
States
{
Spawn:
		TNT1 A 1
        TNT1 A 0 A_Explode(25,150, 0)
Stop
 }
}

actor PLOFT2
{
	+NOTARGET
Radius 10
Height 10
DamageType Kick
+NOGRAVITY
+NOTELEPORT
+NODAMAGETHRUST
+THRUGHOST
+NORADIUSDMG
+NOEXTREMEDEATH
PROJECTILE
+DEHEXPLOSION
+ACTIVATEMCROSS
-DONTSPLASH
States
{
Spawn:
		TNT1 A 1
       //TNT1 A 0 A_Explode(20,30, 0)
Stop
 }
}

actor PLOFT3
{
	+NOTARGET
Radius 10
Height 10
+NOGRAVITY
+NOTELEPORT
+NODAMAGETHRUST
+THRUGHOST
+NORADIUSDMG
+NOEXTREMEDEATH
PROJECTILE
+DEHEXPLOSION
+ACTIVATEMCROSS
-DONTSPLASH
DamageType MonsterKnocked
States
{
Spawn:
		TNT1 A 1
        TNT1 A 0 A_Explode(20,30, 0)
Stop
 }
}

actor PLOFT4
{
	+NOTARGET
Radius 10
Height 10
+NOGRAVITY
+NOTELEPORT
+NODAMAGETHRUST
+THRUGHOST
+NORADIUSDMG
+NOEXTREMEDEATH
PROJECTILE
+DEHEXPLOSION
+ACTIVATEMCROSS
-DONTSPLASH
DamageType Kick
States
{
Spawn:
		TNT1 A 0
        TNT1 A 0 A_Explode(20,30, 0)
Stop
 }
}

actor PLOFT5
{
	+NOTARGET
Radius 10
Height 10
+NOGRAVITY
+NOTELEPORT
+NODAMAGETHRUST
+THRUGHOST
+NORADIUSDMG
+NOEXTREMEDEATH
PROJECTILE
+DEHEXPLOSION
+ACTIVATEMCROSS
-DONTSPLASH
DamageType Kick
States
{
Spawn:
TNT1 A 2
		TNT1 A 0 A_SpawnItem("FootstepStrong")
        TNT1 A 0 A_Explode(10,30, 0)
Stop
 }
}