

class ManberBossRocket : Rocket 
{ 
	Default
	{
	Damage 10;
	scale 0.5;
	RenderStyle "Normal";
	Radius 5;
	Height 4;
	Species "Manberdemon";
	+DONTHURTSPECIES;
	}	
}

class ManberBossFartcloud : Actor
{
	Default
	{
	//PROJECTILE;
	-ACTIVATEIMPACT;
	-ACTIVATEPCROSS;
	+NODAMAGETHRUST;
	+NOCLIP;
	+ADDITIVEPOISONDAMAGE;
	+BLOODLESSIMPACT;
	Radius 73;
	Height 50;
	PoisonDamage 25;
	Speed 0;
	RenderStyle "Translucent";
	Alpha 0.5;
	Scale 2.0;
	Species "Manberdemon";
	+DONTHURTSPECIES;
	}
	
	States
	{
	Spawn:
		MDFC ABCDEF 7 A_NoBlocking;
		MDFC A 0 A_CustomMeleeAttack(random(1, 10) * 6, "");
		Loop;
	}
}

class ManberBossSeekerRocket : RevenantTracer 
{
	Default
	{
		+DEHEXPLOSION
		+ROCKETTRAIL
		Damage 10;
		scale 0.5;
		Radius 5;
		Height 4;
		+SEEKERMISSILE
		SeeSound "weapons/rocklf";
		DeathSound "weapons/rocklx";
		Obituary "$OB_MPROCKET";
		RenderStyle "Normal";
			Species "Manberdemon";
	+DONTHURTSPECIES;

	}	
	States
	{
	Spawn:
		MISL A 1 Bright A_SeekerMissile(16, 32, SMF_LOOK | SMF_PRECISE | SMF_CURSPEED, 128);
		Loop;
	Death:
		MISL B 8 Bright A_Explode;
		MISL C 6 Bright;
		MISL D 4 Bright;
		Stop;
	BrainExplode:
		MISL BC 10 Bright;
		MISL D 10 A_BrainExplode;
		Stop;
	}
}

class ManberDemonBoss : Fatso 
{

int paincounter;
string missilename;

	Default
	{
		scale 1.5;
		Health 4000;
		Radius 73;
		Height 96;
		Mass 1500;
		+BOSS 
		+MISSILEMORE
		+FLOORCLIP
		+NORADIUSDMG
		+DONTMORPH
		+BOSSDEATH		
		Obituary "%o was farted to death by a manberdemon boss.";
		HitObituary "%o was blown away by a manberdemon boss.";  
		Species "Manberdemon";
		+DONTHURTSPECIES;

	}

Vector3 SpawnPos; 

States
	{
	Spawn:
	    CYFA A 1 { paincounter = 1; }
	    CYFA A 1 { missilename = 'ManberBossRocket'; }
		CYFA AB 15 A_Look;
		Loop;
	See:
		CYFA AABBCCDDEEFF 4 A_Chase;
		Loop;
		/*
	Melee:
		CYFA G 3 a_startsound("manberdemon/fart");
		CYFA G 3 A_FaceTarget;
		CYFA G 3 A_DamageTarget(1);
		CYFA G 3 A_CustomMeleeAttack(random(1, 10) * 6, "manberdemon/fart");
		Goto See;	
		*/
	Melee:
	Missile:
		CYFA G 10 A_FatRaise;
		CYFA G 10 A_FaceTarget;
		CYFA H 10 BRIGHT A_FatAttack3(missilename); 
		
		CYFA IG 5 
		{
			if (paincounter > 1) 
				A_FaceTarget();
			else 
				A_Look(); 
		}
	
		CYFA H 10 BRIGHT
		{
			if (paincounter > 1) 
				A_FatAttack2(missilename); 
			else 
				A_Look(); 
		}
		
		CYFA IG 5 
		{
			if (paincounter > 2) 
				A_FaceTarget();
			else 
				A_Look(); 
		}

		CYFA H 10 BRIGHT 
		{
			if (paincounter > 2) 
				A_FatAttack1(missilename); 
			else 
				A_Look(); 
		}       
		CYFA IG 5 
		{
			if (paincounter > 3) 
				missilename = 'ManberBossSeekerRocket'; 
			else 
				A_FaceTarget(); 
		}  
		Goto See;
	Pain:
	    CYFA J 1 A_Jump (232, 2);
		CYFA J 3 
		{
			a_startsound("manberdemon/fart");
			A_PainAttack("ManberBossFartcloud");
			
			if (paincounter < 4)
				paincounter++;
				
		} 
		CYFA J 1;
		CYFA J 3 A_Pain;
		Goto See;
	Death:
		CYFA K 6 a_startsound("manberdemon/fart");
		CYFA L 6 A_Scream;
		CYFA M 6 A_NoBlocking;
		CYFA NOPQRS 6 
		{
		   Invoker.SpawnPos = Vec3Offset (1,1,1);
		   Spawn ("ManberBossFartcloud",Invoker.SpawnPos,ALLOW_REPLACE);
		}
		CYFA T -1 A_BossDeath;
		Stop;
	 Raise:
		CYFA R 5;
		CYFA QPONMLK 5;
		Goto See;
	}
}

class ImpJogger : DoomImp 
{

Default
	{
		Speed 9;
	}

States
	{
	Spawn:
		JOGG AB 10 A_Look;
		Loop;
	See:
		JOGG AABBCCDD 3 A_Chase;
		Loop;
	Melee:
	Missile:
		JOGG EF 8 A_FaceTarget;
		JOGG G 6 A_TroopAttack ;
		Goto See;
	Pain:
		JOGG H 2;
		JOGG H 2 A_Pain;
		Goto See;
	Death:
		JOGG I 8;
		JOGG J 8 A_Scream;
		JOGG K 6;
		JOGG L 6 A_NoBlocking;
		JOGG M -1;
		Stop;
	XDeath:
		JOGG N 5;
		JOGG O 5 A_XScream;
		JOGG P 5;
		JOGG Q 5 A_NoBlocking;
		JOGG RST 5;
		JOGG U -1;
		Stop;
	Raise:
		JOGG ML 8;
		JOGG KJI 6;
		Goto See;
	}

}

class DogSoldier : ShotgunGuy 
{

	//$Category Furry
	//$Title "Dog Soldier"

  default
  {
    ActiveSound "dog/active";
    AttackSound "dog/attack";
    DeathSound "dog/death";
    PainSound "dog/pain";
    SeeSound "dog/sight";
    Obituary "%o was assaulted by a dog soldier.";
	DropItem "Shell";
	+FRIENDLY;
  }

   States 
   { 
   Spawn: 
      SDOG AB 10 A_Look; 
      Loop; 
   See: 
      SDOG AABBCCDD 4 A_Chase; 
      Loop; 
   Missile: 	  
	  SDOG E 10 A_FaceTarget;
	  SDOG F 10 BRIGHT A_SposAttackUseAtkSound;
	  SDOG E 10;
	  Goto See;
   Pain: 
      SDOG G 3; 
      SDOG G 3 A_Pain; 
      Goto See; 
   Death:
      TNT1 A 0 A_Jump (125, "AltDeath");
      SDOG H 5;
      SDOG I 5 A_Scream;
      SDOG J 5 A_NoBlocking;
      SDOG KLM 5;
      SDOG N -1;
      Stop;
   AltDeath:
      SDOG V 5 A_Scream;
      SDOG W 5; 
      SDOG X 5 A_NoBlocking;
      SDOG Y 5;
      SDOG Z -1;
      Stop;	  
   XDeath:
      SDOG O 5; 
      SDOG P 5 A_XScream;
      SDOG Q 5 A_NoBlocking;
      SDOG RS 5;
      SDOG T -1;
      Stop;
   Raise:
      SDOG N 5;
      SDOG MLKJIH 5;
      Goto See;
   } 

}

class elvensorceress: Actor
{
   int user_Hostile; 

    Default
    {
        xscale 0.25;
        yscale 0.25;
        Health 200;
        Radius 20;
        Height 56;
        Speed 8;
        PainChance 200;
        Monster;
        +FLOORCLIP
        SeeSound "sorceress/idle";
        PainSound "sorceress/pain";
        DeathSound "sorceress/death";
        ActiveSound "sorceress/act";
        Obituary "%o was killed by an elven sorceress";
    }
    
    States
    {
            
        Peace:
          MMEP K 0 { user_Hostile = 0; }
          Goto See;
            
        Spawn:
            MMEP K 10 { user_Hostile = 1; }
        Here:
            MMEP K 10 A_Look; 
            Loop;
            
        See:
            MMEP LMNOPQRS 6 
            {
                if (user_Hostile > 0)
                    A_Chase();
                else
                    A_Chase(null, null, CHF_DONTIDLE);
            }        
            Loop;
        Missile:
            MMEP EFG 3 A_FaceTarget;
            MMEP HIJ 3 bright A_HeadAttack;
            Goto See;    
        Pain:
            MMEP EFG 3 
            {
                user_Hostile = 1;
                A_Pain();
            }
            Goto See;
        Death:
            MMEP T 5;
            MMEP U 5 A_Scream;
            MMEP V 5 A_NoBlocking;
            MMEP W 5;
            MMEP X -1;
            Stop;
    }    
}

class sobRocketTrap : Actor 
{
    Default 
    {
		Radius 64;
		Height 128;
    }
    States 
    {
		Spawn:
			FTRP A 32;
			FTRP BCDCB 16 A_Explode(10,16,!compat_explode1); 	
			loop;
    }
}

class sobRocketTrap2 : sobRocketTrap  
{
    States 
    {
		Spawn:
			FTRP BCDCB 16 A_Explode(10,16,!compat_explode1); 	
			FTRP A 32;
			loop;
    }
}
