//Canada in a nutshell.

Class Weedsmoker : Actor
{
  //$Category Desgraciados
  //$Title Teh Weed's Smoker
  
  Default
  {
    Health 1500;
    Radius 40;
    Height 60;
    Mass 0x7FFFFFFF;
    Speed 4;
    Bloodtype "None";
	DamageFactor "Blal", 0.5;
	DamageFactor "Boomerangz", 0.9;
	DamageFactor "Grenade", 0.8;
	DamageFactor "Diabetes", 0.1;
	DamageFactor "Ass", 0.3;
	DamageFactor "HipTo", 0.6;
	DamageFactor "Powder", 0.7;
	DamageFactor "Bloon", 0.9;
	DamageFactor "Maser", 0.256;
	DamageFactor "Radiation", 0;
	DamageFactor "Ramming", 10;
	DamageFactor "Steel", 0.1;
	DamageFactor "Air", 0;
	DamageFactor "Huje", 10;
	DamageFactor "Time", 0.01;
	DamageFactor "Fire", 0.4;
	DamageFactor "Kaboomz", 0.8;
	DamageFactor "Images", 0.1;
	DamageFactor "Poison", 0.1;
	DamageFactor "Ice", 0.1;
	DamageFactor "Lightning", 0.9;
    meleerange 128;
    minmissilechance 232;
    activesound "DarkRift/Active";
    HitObituary "%o got overdosed by a Weed's clouds.";
    Obituary "%o got overdosed by a Weed's shots.";
	Tag "Weed's Smoker";
    Monster;
    +NoBloodDecals;
    -Solid;
    +Float;
	+DONTMORPH;
	+NoInfightSpecies;
    +NoGravity;
    +NoTarget;
    +LookAllAround;
  }

  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_PlaySound("DarkRift/Loop", CHAN_7, 1.0, true);
    TNT1 A 2 A_Look();
    Loop;
  See:
    TNT1 A 2 A_Chase();
    Loop;
  Melee:
    TNT1 A 2 A_CustomMeleeAttack(1);
    Goto See;
  Missile:
    TNT1 A 0 A_Jump(200, "Spears", "RapidFire");
    TNT1 A 2 A_SpawnItem("SmokerMonsterSpawner");
    Goto See;
  Spears:
    TNT1 A 2
    {
      A_SpawnProjectile("WeedSmokeSpear", 30, 10, 0);
      A_SpawnProjectile("WeedSmokeSpear", 30, -10, 0);
    }
    Goto See;
  RapidFire:
    TNT1 A 2 A_SpawnProjectile("WeedSmokeBall", Random(0, 60), Random(-40, 40));
    TNT1 A 2;
    TNT1 A 2 A_SpawnProjectile("WeedSmokeBall", Random(0, 60), Random(-40, 40));
    TNT1 A 2;
    TNT1 A 2 A_SpawnProjectile("WeedSmokeBall", Random(0, 60), Random(-40, 40));
    TNT1 A 2;
    TNT1 A 2 A_SpawnProjectile("WeedSmokeBall", Random(0, 60), Random(-40, 40));
    TNT1 A 2;
    TNT1 A 2 A_SpawnProjectile("WeedSmokeBall", Random(0, 60), Random(-40, 40));
    TNT1 A 2;
    TNT1 A 2 A_SpawnProjectile("WeedSmokeBall", Random(0, 60), Random(-40, 40));
    TNT1 A 2;
    TNT1 A 2 A_SpawnProjectile("WeedSmokeBall", Random(0, 60), Random(-40, 40));
    TNT1 A 2;
    TNT1 A 0 A_Jump(128, "See");
    TNT1 A 0 A_SpidReFire();
    Loop;
  Death:
    TNT1 A 1 A_StopSound(CHAN_7);
    Stop;
  }

  override void Tick()
  {
    super.tick();
    A_SpawnItemEx("WeedCloud", 0, 0, 30, random(-4, 4), random(-4, 4), random(-2, 2), SXF_CLIENTSIDE);
  }
}

Class SmokerMonsterSpawner : Actor
{
  Default
  {
    radius 0;
    height 0;
    +NoGravity
    +NoBlockMap
    +NoLiftDrop
    +NoTarget
    +DontSquash
    +NoTeleOther
    +NonShootable
  }

  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_Jump(256, "SpawnMovieDemon", "SpawnDerpDog", "SpawnZombieHench", "SpawnJackass", "SpawnCacoFetus", "SpawnHellsAngels", "SpawnFurCacoHappyFace", "SpawnHarpa", "SpawnTerminater", "SpawnFleshWizord", "SpawnMechaSkele", "SpawnBanshesh", "SpawnEyesore", "SpawnDaWizord", "SpawnEnforced", "SpawnCreepySmile", "SpawnDefectiveCaco", "SpawnEgghead", "SpawnBonusThingy", "SpawnAyNoWacala");  //Hello :).
  SpawnMovieDemon:
    TNT1 A 0 A_SpawnItem("MovieDemon");
    Stop;
  SpawnDerpDog:
    TNT1 A 0 A_SpawnItem("DerpDog");
    Stop;
  SpawnJackass:
    TNT1 A 0 A_SpawnItem("Jackass");
    Stop;
  SpawnHarpa:
    TNT1 A 0 A_SpawnItem("Harpa");
    Stop;
  SpawnHellsAngels:
    TNT1 A 0 A_SpawnItem("HellsAngels");
    Stop;
	SpawnDefectiveCaco:
    TNT1 A 0 A_SpawnItem("DefectiveCaco");
    Stop;
  SpawnBanshesh:
    TNT1 A 0 A_SpawnItem("Banshesh");
    Stop;
  SpawnFurCacoHappyFace:
    TNT1 A 0 A_SpawnItem("FurCacoHappyFace");
    Stop;
  SpawnTerminater:
    TNT1 A 0 A_SpawnItem("Terminater");
    Stop;
  SpawnZombieHench:
    TNT1 A 0 A_SpawnItem("ZombieHench");
    Stop;
  SpawnMechaSkele:
    TNT1 A 0 A_SpawnItem("MechaSkele");
    Stop;
  SpawnEyesore:
    TNT1 A 0 A_SpawnItem("Eyesore");
    Stop;
  SpawnEnforced:
    TNT1 A 0 A_SpawnItem("Enforced");
    Stop;
  SpawnEgghead:
    TNT1 A 0 A_SpawnItem("Egghead");
    Stop;
  SpawnDaWizord:
    TNT1 A 0 A_SpawnItem("DaWizord");
    Stop;
  SpawnCreepySmile:
    TNT1 A 0 A_SpawnItem("CreepySmile");
    Stop;
  SpawnAyNoWacala:
    TNT1 A 0 A_SpawnItem("AyNoWacala");
    Stop;
  SpawnBonusThingy:
    TNT1 A 0 A_SpawnItem("BonusThingy");
    Stop;
  SpawnFleshWizord:
    TNT1 A 0 A_SpawnItem("FleshWizord");
    Stop;
  SpawnCacoFetus:
    TNT1 A 0 A_SpawnItem("CacoFetus");
    Stop;
  }
}

Class WeedSmokeBall : Actor
{
  Default
  {
    Radius 6;
    Height 8;
    Speed 8;
    DamageFunction 10;
    Renderstyle "Translucent";
    Alpha 0.8;
    Scale 0.4;
    SeeSound "imp/attack";
    DeathSound "imp/shotx";
    Projectile;
    +Randomize
  }

  States
  {
  Spawn:
    DRBL AABBCCDDEEFFGGHH 1 bright A_BishopMissileWeave();
    Loop;
  Death:
    DRBL AIJKLM 3 bright;
    Stop;
  }
}

Class WeedSmokeSpear : Actor
{
  Default
  {
    Radius 4;
    Height 4;
    Speed 30;
    DamageFunction 20;
    RenderStyle "Translucent";
    Alpha 0.7;
    SeeSound "DarkRift/Fire";
    DeathSound "DarkRift/Hit";
    Decal "PlasmaScorchLower";
    Projectile;
  }

  States
  {
  Spawn:
    DRBT A 1 bright;
    Loop;
  Death:
    DRBT BCDE 5 bright;
    Stop;
  }
}