//This tiny little shit are the better caco kid than the other caco kid

Class CacoFetus : Actor
{
  //$Category Desgraciados
  //$Title CacoFeto
  
  Default
  {
    Obituary "%o was burned by a FleshSpawn." ;
    HitObituary "%o was devoured by a FleshSpawn.";
    health 50;
    radius 14;
    height 30;
    mass 80;
    speed 10;
    damage 2;
    painchance 224;
    bloodcolor "blue";
    attacksound "flesh/melee";
	DamageFactor "Air", 0;
	DamageFactor "Maser", 256;
	DamageFactor "Radiation", 256;
	DamageFactor "Powder", 256;
    seesound "flesh/sight";
    painsound "flesh/pain";
    deathsound "flesh/death";
    activesound "flesh/active";
	Tag "Flesh Spawn.";
    MONSTER;
	+NoInfightSpecies;
    +FLOAT
    +NOGRAVITY
    +DONTHARMCLASS
    +NOINFIGHTING
    +NOTARGET
  }

  States
  {
  Spawn:
    FLSP AB 8 A_Look();
    loop;
  See:
    FLSP AABB 2 A_Chase();
    loop;
  Missile:
    FLSP C 0 A_Jump(128,"Charge");
    FLSP C 8 A_FaceTarget();
    FLSP G 4 A_FaceTarget();
    FLSP H 4 Bright A_SpawnProjectile("CacoFetusball", 12, 0, 0);
    goto See;
  Charge:
    FLSP C 0 A_Jump(96, "StaggerCharge");
    FLSP C 8 A_FaceTarget();
    FLSP D 4 A_FaceTarget();
    FLSP E 4 A_SkullAttack();
  ChargeLoop:
    FLSP FE 4;
    Loop;
  StaggerCharge:
    FLSP C 8 A_FaceTarget();
    FLSP D 4 A_FaceTarget();
    FLSP E 4 A_SkullAttack();
    FLSP FEFE 4;
    FLSP C 6 A_FaceTarget();
    FLSP D 4 A_FaceTarget();
    FLSP E 4 A_SkullAttack();
    FLSP FE 4;
    Goto ChargeLoop;
  Pain:
    FLSP I 3;
    FLSP I 3 A_Pain();
    Goto See;
  Death:
    FLSP I 5;
    FLSP J 5 A_Scream();
    FLSP K 5;
    FLSP L 5 A_NoBlocking();
    FLSP MN 5 A_SetFloorClip();
    FLSP O -1;
    Stop;
  XDeath:
    FLSP P 3;
    FLSP Q 3
    {
      A_FaceTarget();
      A_SpawnItemEx("CacoFetusGibs", 0,0,0, 0,0,0, 0, SXF_CLIENTSIDE);
      A_SpawnProjectile("CacoFetusgib1", 14, 0, random(-180,180), 2, random(-10,-40));
      A_SpawnProjectile("CacoFetusgib2", 6, 2, random(-180,180), 2, random(0,-25));
      A_SpawnProjectile("CacoFetusgib2B", 10, -2, random(-180,180), 2, random(0,-25));
      A_SpawnProjectile("CacoFetusgib3", 8, 0, random(-180,180), 2, random(0,-35));
      A_SpawnProjectile("CacoFetusgib4", 12, 5, random(-180,180), 2, random(5,-40));
      A_SpawnProjectile("CacoFetusgib4B", 5, -5, random(-180,180), 2, random(0,-30));
      A_SpawnProjectile("CacoFetusgib5", 6, 3, random(-180,180), 2, random(-10,-60));
      A_SpawnProjectile("CacoFetusgib5", 8, 0, random(-180,180), 2, random(10,-55));
      A_SpawnProjectile("CacoFetusgib6", 12, 0, 0, 2, 0);
      A_XScream();
    }
    FLSP R 3 A_NoBlocking();
    FLSP STU 3;
    Stop;
  Raise:
    FLSP O 5 A_UnSetFloorClip();
    FLSP NMLKJI 5;
    Goto See;
  }
}

Class CacoFetusGibs : Actor
{
  Default
  {
    +NoClip
    +ClientSideOnly
  }

  States
  {
  Spawn:
    TNT1 A 0 NoDelay
    {
      A_SpawnProjectile("CacoFetusgib1", 14, 0, random(-180,180), 2, random(-10,-40));
      A_SpawnProjectile("CacoFetusgib2", 6, 2, random(-180,180), 2, random(0,-25));
      A_SpawnProjectile("CacoFetusgib2B", 10, -2, random(-180,180), 2, random(0,-25));
      A_SpawnProjectile("CacoFetusgib3", 8, 0, random(-180,180), 2, random(0,-35));
      A_SpawnProjectile("CacoFetusgib4", 12, 5, random(-180,180), 2, random(5,-40));
      A_SpawnProjectile("CacoFetusgib4B", 5, -5, random(-180,180), 2, random(0,-30));
      A_SpawnProjectile("CacoFetusgib5", 6, 3, random(-180,180), 2, random(-10,-60));
      A_SpawnProjectile("CacoFetusgib5", 8, 0, random(-180,180), 2, random(10,-55));
      A_SpawnProjectile("CacoFetusgib6", 12, 0, 0, 2, 0);
    }
    Stop;
  }
}

Class CacoFetusball : Actor
{
  Default
  {
    Damage 2;
    Speed 10;
    Radius 3;
    Height 5;
    SeeSound "caco/attack";
    DeathSound "caco/shotx";
    RenderStyle "Add";
    Alpha 0.9;
    Projectile;
  }

  states
  {
  Spawn:
    FLBL ABCBABCBABCBABCBIJKLM 4 Bright;
    Stop;
  Death:
    FLBL DEFGH 4 Bright;
    Stop;
  }
}

Class CacoFetusgib1 : Actor
{
  Default
  {
    Speed 8;
    Mass 100;
    Radius 1;
    Height 1;
    Projectile;
    -NOGRAVITY
    +DROPOFF
    +ClientSideOnly
  }

  States
  {
  Spawn:
    FGB1 ABCD 4;
    loop;
  Death:
    FGB1 E -1;
    stop;
  }
}

Class CacoFetusgib2 : CacoFetusgib1
{
  States
  {
  Spawn:
    FGB2 ABCD 4;
    loop;
  Death:
    FGB2 I -1;
    stop;
  }
}

Class CacoFetusgib2B : CacoFetusgib1
{
  States
  {
  Spawn:
    FGB2 EFGH 4;
    loop;
  Death:
    FGB2 J -1;
    stop;
  }
}

Class CacoFetusgib3 : CacoFetusgib1
{
  States
  {
  Spawn:
    FGB3 ABCD 4;
    loop;
  Death:
    FGB3 E -1;
    stop;
  }
}

Class CacoFetusgib4 : CacoFetusgib1
{
  States
  {
  Spawn:
    FGB4 ABCD 4;
    loop;
  Death:
    FGB4 I -1;
    stop;
  }
}

Class CacoFetusgib4B : CacoFetusgib1
{
  States
  {
  Spawn:
    FGB4 EFGH 4;
    loop;
  Death:
    FGB4 J -1;
    stop;
  }
}

Class CacoFetusgib5 : CacoFetusgib1
{
  States
  {
  Spawn:
    FGB5 ABCD 4;
    loop;
  Death:
    FGB5 E -1;
    stop;
  }
}

Class CacoFetusgib6 : CacoFetusgib1
{
  Default
  {
    Speed 0;
  }

  States
  {
  Spawn:
    FGB6 A 4;
    loop;
  Death:
    FGB6 BC 4;
    FGB6 D -1;
    stop;
  }
}