Actor Timer : Inventory
{
inventory.maxamount 4
}

ACTOR MeleePuff: BulletPuff
{
  renderstyle Translucent
  alpha 0.5
  Scale 1.5
DamageType Melee
  +NOBLOCKMAP
  +NOGRAVITY
  +NOEXTREMEDEATH
  +PUFFONACTORS
  +BLOODLESSIMPACT 
  +FORCEXYBILLBOARD
  states
  {
  Spawn:
    PUFF A 3 A_PlaySound("player/cyborg/fist")
    PUFF BCD 3
    stop
  Death:
    PUFF A 3 A_PlaySound("player/cyborg/fist")
    PUFF BCD 3
    stop
  Melee:
    PUFF A 3 A_PlaySound("player/cyborg/fist")
    PUFF BCD 3
    stop
  XDeath:
    PUFF A 3 A_PlaySound("player/cyborg/fist")
    PUFF BCD 3
    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 ("QuickSmoke", 6, 0, random (0, 360), 2, random (0, 360))
    TNT1 A 0
    stop
  }
}

ACTOR KickPuff: MeleePuff
{
DamageType Kick
}

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

ACTOR SmashingPuff: MeleePuff
{
DamageType SuperPunch
-NOEXTREMEDEATH
Decal "Crack"
  states
  {
  Spawn:
  XDeath:
  Melee:
  Death:
    TNT1 A 0 A_PlaySound("player/cyborg/fist")
	    EXPL A 0 Radius_Quake (4, 24, 0, 15, 0)
	    EXPL AAAAAA 0 A_CustomMissile ("QuickSmoke", 6, 0, random (0, 360), 2, random (0, 360))
	    EXPL AAA 0 A_CustomMissile ("QuickSmoke", 6, 0, random (0, 360), 2, random (0, 360))
    TNT1 A 0
    stop
  }
}

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

ACTOR HitPuff: BulletPuff Replaces BulletPuff
{
  renderstyle Translucent
  alpha 0.4
  Scale 1.5
  +NOBLOCKMAP
  -NOGRAVITY
  Gravity 0.01
  +NOEXTREMEDEATH
  +FORCEXYBILLBOARD
DamageType Bullet
Decal "BulletChip"
  states
  {
  Spawn:
		TNT1 A 0
		TNT1 AAAAA 0 A_CustomMissile ("SparkX", 2, 0, random (0, 360), 2, random (0, 360))
    TNT1 A 0 A_SpawnItem ("RicoChet", 0)
    TNT1 AAAA 0
    PUFF A 0 bright A_PlaySound("ricochet/hit")
    //PUFF A 6
    //PUFF B 6
    //Intentional fall-through
  Melee:
    //PUFF CD 6
	TNT1 AA 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random (0, 360), 2, random (0, 360))
	TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail1", 2, 0, random (0, 360), 2, random (0, 360))
    stop
  }
}

actor shotpuff : HitPuff
{
DamageType SSG
}

actor Shotgunpuff : HitPuff
{
DamageType Shotgun
}

ACTOR RicoChet: BulletPuff
{
  renderstyle Translucent
  alpha 0.8
  +NOBLOCKMAP
  +NOGRAVITY
  +CLIENTSIDEONLY
  +BLOODLESSIMPACT 
	Obituary "%o ate bullet shrapnel."
  damagetype "Shrapnel"
  Scale 0.7
  states
  {
  Spawn:
    TNT1 A 0 A_SpawnItem ("YellowFlareSmall", 0)
	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_CustomMissile ("DetectCeilBullet", 0, 0, 90, 2, 90)
    TNT1 A 0 A_Explode(3,100)
    TNT1 A 0 A_Jump (132, 15)
    FX58 AABCD 1 bright A_SpawnItem ("YellowFlareSmall", 0)
    FX58 EFGHIJ 1 bright
    Stop
    TNT1 AAAAA 0
    FX57 AABCD 1 bright A_SpawnItem ("YellowFlareSmall", 0)
    FX57 EFGHIJ 1 bright
    stop
  }
}

ACTOR SilentHitPuff: BulletPuff
{
  spawnid 131
  renderstyle Translucent
  alpha 0.5
  +NOBLOCKMAP
  +NOGRAVITY
  states
  {
  Spawn:
    PUFF A 4 bright
    PUFF B 4 
    // Intentional fall-through
  Melee:
    PUFF CD 4
    stop
  }
}

Actor MiniGunBulletPuff: HitPuff
{
DamageType CutLess
}

Actor MachineGunBulletPuff: HitPuff
{
DamageType CutLess
}

Actor ATBulletPuff: HitPuff
{
Scale 0.4
DamageType Blast
States
{
 Spawn:
    TNT1 A 0
    TNT1 A 0 A_PlaySound ("smallexplode")
    TNT1 AAA 0 A_CustomMissile ("PlasmaSmoke", 0, 0, random (0, 360), 2, random (0, 360))
    EXSH A 3 BRIGHT
    stop
}
}



ACTOR WallChunk
{
	Scale 0.16
	+noteleport
	+missile
	+bounceonactors
	+doombounce
	+forcexybillboard
    +CLIENTSIDEONLY
    Speed 6
    Gravity 0.7
	bouncefactor 0.2
	height 1
	radius 1
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_GiveInventory ("Timer", random(1,4))
	See:
		TNT1 A 0 A_JumpIfInventory("Timer",4,"See4")
		TNT1 A 0 A_JumpIfInventory("Timer",3,"See3")
		TNT1 A 0 A_JumpIfInventory("Timer",2,"See2")
	See1:
		DUST A 1
		loop
	See2:
		DUST B 1
		loop
	See3:
		DUST C 1
		loop
	See4:
		DUST D 1
		loop
	Death:
		TNT1 A 0 A_ChangeFlag ("missile",0)
		TNT1 A 0 A_ChangeFlag ("doombounce",0)
		TNT1 A 0 A_JumpIfInventory("Timer",4,"Death4")
		TNT1 A 0 A_JumpIfInventory("Timer",3,"Death3")
		TNT1 A 0 A_JumpIfInventory("Timer",2,"Death2")
	Death1:
		DUST A 100
		Stop
	Death2:
		DUST B 100
		Stop
	Death3:
		DUST C 100
		Stop
	Death4:
		DUST D 100
		Stop
	}
}
ACTOR TinyWallChunk : WallChunk
{
	Scale 0.12
}
ACTOR BigWallChunk : WallChunk
{
	Scale 0.3
}
ACTOR HugeWallChunk : WallChunk
{
	Scale 0.4
}


ACTOR SSawPuff: BulletPuff
{
  renderstyle Translucent
scale 0.15
alpha 0.7
damagetype Cut
  +NOBLOCKMAP
  +NOGRAVITY
  +NOEXTREMEDEATH
  +FORCEXYBILLBOARD
  //-PUFFONACTORS
  states
  {
Death:
Spawn:
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 FakeSSawPuff: SSawPuff
{
+THRUGHOST
}


Actor PuffSmoke
{
+MISSILE
+NOBLOCKMAP
+NOGRAVITY
//Gravity 0.8
+DROPOFF
+NOTELEPORT
+FORCEXYBILLBOARD
+NOTDMATCH
+GHOST
+DONTSPLASH
+CLIENTSIDEONLY
radius 1
height 1
mass 1
//  Scale 0.02
//alpha 0.9
//damage 1
//renderstyle Add
  renderstyle Translucent
alpha 0.9
Scale 1.5
Speed 1
//damagetype Shrapnel
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
  Scale 0.5
  states
  {
  Spawn:
    TNT1 A 0
		//TNT1 AAAA 0 A_custommissile("RicochetBullet",0,0,random(0,360),2,random(-40,40))
    TNT1 A 0 A_SpawnItem ("YellowFlareSmall", 0)
    TNT1 A 0 A_Jump (132, 15)
    FX58 ABCDEFGHIJ 1 bright
    Stop
    TNT1 AAAAA 0
    FX57 ABCDEFGHIJ 1 bright
    stop
  }
}