Actor CrowEffect
{
    +NOINTERACTION
    +CLIENTSIDEONLY
    +NONETID
    +BRIGHT
    +FORCEXYBILLBOARD
    +NOGRAVITY
    +NOTONAUTOMAP
    Height 2
    Radius 2
    RenderStyle Add
    Alpha 0.9
    Scale 1.0
}
Actor CrowPuff: CrowEffect Replaces BulletPuff
{
    -ALWAYSPUFF
    +PUFFONACTORS
    +PUFFGETSOWNER
    +SKYEXPLODE
    +NOEXTREMEDEATH
    +MTHRUSPECIES
    RenderStyle None
    Decal "NewBulletChip"
	DeathSound "ricochet/hit"
	SeeSound "bullet/hit"
	DamageType "Bullet"
    States
    {
    Spawn:
    Death.Sky:
        TNT1 A 5
        Stop
    XDeath:
		TNT1 A 0 A_PlaySound("bullet/hit",6,3)
		TNT1 A 0 A_JumpifInTargetInventory("PowerStrength",1,"HealPlayer")
		stop
	HealPlayer:
        TNT1 A 5 A_GiveToTarget("Health",1)
        Stop
    Crash:
		TNT1 A 0 A_PlaySound("ricochet/hit",6,1.0)
		TNT1 A 0 A_SpawnItem("Crow_YellowFlareSmall",0,0,0,0)
        TNT1 A 5 A_SpawnItemEx("CrowPuffEffect",0,0)
	    Stop
    }
}
ACTOR CrowBuckshot: CrowPuff
{
	DamageType "Shotgun"
}
ACTOR CrowMachinePuff: CrowPuff
{
	DamageType "Minigun"
}
Actor CrowPuffEffect: CrowEffect
{
    Scale 0.35
    States
    {
    Spawn:
        TNT1 A 0 A_SetScale(scalex*(1-2*random(0,1)),scaley)
		PUFF A 0 A_SpawnItemEx("Crow_ImpactSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0)
		TNT1 AAAAA 0 A_SpawnItemEx("Crow_ImpactSpark", 0, 0, 0, random(0,4), random(-2,2), random(-1,1), 0, 128, 64)
        FX57 A 2 Light("YellowSmallPoint3")
        FX57 BCDEFGHIJ 1
	    Stop
    }
}
actor Crow_ImpactSpark
{
  RenderStyle Add
  alpha 0.95
  -RANDOMIZE
  +NOCLIP
  PROJECTILE
  Speed 3
  Damage 0
  Scale 0.05
  +CLIENTSIDEONLY
  +NOINTERACTION
  -NOGRAVITY
  Gravity 1.2
  states
  {
  Spawn:
    SPRK A 0
    SPRK A 1 bright A_FadeOut(0.075)
    loop
  }
}
actor Crow_ImpactSmokePuff
{
  RenderStyle Add
  alpha 0.55
  -RANDOMIZE
  +NOCLIP
  PROJECTILE
  Speed 2
  Damage 0
  Scale 0.5
  +CLIENTSIDEONLY
  states
  {
  Spawn:
    TNT1 A 1
    TNT1 AAAAA 0 A_SpawnItemEx("Crow_ImpactSpark",0,0,0)
    TNT1 A 0 A_Jump(156,"Spawn2","Spawn3","Spawn4")
    MSK1 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05)
    stop
  Spawn2:
    MSK2 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05)
    stop
  Spawn3:
    MSK3 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05)
    stop
  Spawn4:
    MSK4 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05)
    stop
  }
}
ACTOR Crow_impactSmokePuffMelee : Crow_ImpactSmokePuff
{
  states
  {
  Spawn:
    TNT1 A 1
    TNT1 A 0 A_Jump(156,"Spawn2","Spawn3","Spawn4")
    MSK1 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05)
    stop
  Spawn2:
    MSK2 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05)
    stop
  Spawn3:
    MSK3 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05)
    stop
  Spawn4:
    MSK4 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05)
    stop
	}
}
ACTOR CrowFistPuff: CrowPuff
{
	-NOEXTREMEDEATH
	DeathSound "melee/hitflesh"
	AttackSound "melee/hitwall"
	DamageType "Melee"
	States
	{
    XDeath:
		TNT1 A 0 A_PlaySound("melee/hitflesh",6,1)
		TNT1 A 0 A_JumpifInTargetInventory("PowerStrength",1,"HealPlayer2")
		stop
	HealPlayer:
        TNT1 A 5 A_GiveToTarget("Health",5)
        Stop
	HealPlayer2:
        TNT1 A 5 A_GiveToTarget("HealthBonus",5)
        Stop
    Crash:
		TNT1 A 0 A_PlaySound("melee/hitwall",6,1.0)
        TNT1 A 5 A_SpawnItemEx("Crow_ImpactSmokePuffMelee",0,0,0,0,0,0,0,0)
	    Stop
	}
}
ACTOR CrowFistPuff2: CrowFistPuff
{
DamageType "ExtremePunches"
}
ACTOR CrowSwordPuff: CrowPuff
{
	DamageType "Saw"
	States
	{
    XDeath:
		TNT1 A 0 A_PlaySound("crowkatana/stab",6,1)
		TNT1 A 0 A_JumpifInTargetInventory("PowerStrength",1,"HealPlayer2")
		stop
	HealPlayer:
        TNT1 A 5 A_GiveToTarget("Health",5)
        Stop
	HealPlayer2:
        TNT1 A 5 A_GiveToTarget("HealthBonus",5)
        Stop
    Crash:
		TNT1 A 0 A_PlaySound("crowkatana/clash",6,1.0)
        TNT1 A 5 A_SpawnItemEx("Crow_ImpactSmokePuffMelee",0,0,0)
	    Stop
	}
}
ACTOR CrowKickPuff: CrowPuff
{
	+NOEXTREMEDEATH
	DamageType Kick
	States
	{
    XDeath:
		TNT1 A 0 A_PlaySound("kick/hit",6,1)
		stop
    Crash:
		TNT1 A 0 A_PlaySound("melee/hitwall",6,1.0)
        TNT1 A 5 A_SpawnItemEx("Crow_ImpactSmokePuffMelee",0,0,0,0,0,0,0,0)
	    Stop
	}
}
ACTOR CrowKickPuffGib : CrowKickPuff
{
	-NOEXTREMEDEATH
	+EXTREMEDEATH
}