//The Cacoavian from FurDoom!. (hype for the full release!).

class Cacobird : Actor
{
	//$Category Desgraciados
	//$Title Cacoavian
	
	actor niceassbtw;
	Default
	{
	    Health 450;
		Radius 31;
		Height 56;
		Mass 400;
		Speed 6;
		PainChance 128;
		+NoInfightSpecies;
		DamageFactor "Blal", 0.5;
		DamageFactor "Boomerangz", 1.50;
		DamageFactor "Grenade", 150;
		DamageFactor "Diabetes", 255;
		DamageFactor "Ass", 0;
		DamageFactor "Radiation", 100;
		DamageFactor "Steel", 10;
		DamageFactor "Maser", 250;
		DamageFactor "Powder", 250;
		DamageFactor "HipTo", 9;
		DamageFactor "Air", 0;
		DamageFactor "Fire", 150;
		DamageFactor "Bloon", 1.5;
		DamageFactor "Time", 15;
		DamageFactor "Huje", 1;
		DamageFactor "Ramming", 255;
		DamageFactor "Kaboomz", 150;
		DamageFactor "Images", 10;
		DamageFactor "Poison", 30;
		DamageFactor "Ice", 60;
		DamageFactor "Lightning", 0;
		Monster;
		Tag "Cacoavian";
		YScale 0.9;
		XScale 1;
		+FLOAT;
		+NOGRAVITY;
		+NOBLOOD;
		+NOBLOODDECALS;
		+DONTGIB;
		SeeSound "CacoBird/See";
		PainSound "CacoBird/Pain";
		DeathSound "CacoBird/Death";
		ActiveSound "CacoBird/Active";
		Obituary "%o got those nuts zapped by a Cacoavian.";
		}
		States
		{
		Spawn:
			AVIA A 10 A_Look();
			Loop;
		Physics:
			AVIA EEE 2 A_Chase();
			AVIA F 2 A_Chase();
			TNT1 A 0 A_PlaySound("CacoBird/Clap", 6);
			AVIA FFGGG 2 A_Chase();
			AVIA H 2 A_Chase();
			AVIA HH 2 A_Chase();
			Goto See;
		See:
			AVIA A 2 A_Chase();
			Loop;
		SeeAlt:
			AVIA AAAA 2 A_Chase("Missile");
			Goto See;
		Missile:
			TNT1 A 0 A_JumpifCloser (200, 1);
			CYBG A 0 A_Jump(60, "Missile2");
			Goto Missile1;
		Missile1:
			AVIA BBBCCC 2 Bright A_FaceTarget();
			TNT1 A 0  A_SpawnProjectile("FUElectricBall", 32);
			AVIA DDD 2 Bright A_FaceTarget();
			Goto Physics;
		Missile2:
			TNT1 A 0 A_PlaySound ("CacoBird/Pain");
			TNT1 A 0 A_SpawnItemEx("FUElectricZap", 20, 0, 32);
			AVIA BBBBBB 2 Bright A_FaceTarget();
			TNT1 A 0 A_SpawnItemEx("FUElectricZap", 20, 0, 32);
			AVIA BB 2 Bright A_FaceTarget();
			TNT1 A 0 A_SpawnItemEx("FUElectricZap", 20, 0, 32);
			AVIA BC 2 Bright A_FaceTarget();
			TNT1 A 0 A_SpawnItemEx("FUElectricZap", 20, 0, 32);
			AVIA C 2 Bright A_FaceTarget();
			TNT1 A 0 A_SpawnItemEx("FUElectricZap", 20, 0, 32);
			AVIA C 2 Bright A_FaceTarget();
			TNT1 A 0 A_SpawnItemEx("FUElectricZap", 20, 0, 32);
			AVIA C 2 Bright A_FaceTarget();
			TNT1 A 0 A_SpawnItemEx("FUElectricZap", 20, 0, 32);
			TNT1 A 0 A_SpawnProjectile("FUElectricBall", 25, 0, -6);
			TNT1 A 0 A_SpawnProjectile("FUElectricBall", 25, 0, 6);
			TNT1 A 0 A_SpawnProjectile("FUElectricBall", 30);
			AVIA DDD 2 Bright A_FaceTarget();
			Goto Physics;
		Melee:
			TNT1 A 0 A_Jump(140, "SeeAlt");
			AVIA KK 2 A_FaceTarget();
			TNT1 A 0 A_PlaySound ("CacoBird/Whoosh");
			AVIA LM 2 A_FaceTarget();
			TNT1 A 0 A_CustomMeleeAttack(10 * random(1, 6), "CacoBird/Slap", "CacoBird/Miss");
			AVIA NO 2 A_FaceTarget();
			TNT1 A 0 A_PlaySound("CacoBird/Clap", 6);
			AVIA PQ 2 A_FaceTarget();
			AVIA OQPQ 4;
			AVIA ML 2;
			Goto Physics;
		Pain:
			AVIA III 2;
			TNT1 A 0 A_Pain();
			AVIA JJJ 2;
			Goto Physics;
		Death: //K;Please forgive the guy for what he did :[.
			AVIA R 6;
			AVIA S 6 A_Scream();
			AVIA T 6 A_NoBlocking();
			AVIA T 1 A_JumpIf(z <= floorz, "DeathClap");
			Goto Death+3;
		DeathClap:
			AVIA U 6;
			AVIA V 6 A_PlaySound("CacoBird/Clap", 6);
			AVIA W 6;
			AVIA X 6;
			AVIA W -1;
			Stop;
		Raise:
			AVIA XW 6 A_UnSetFloorClip();
			AVIA V 6 A_PlaySound("CacoBird/Clap", 6);
			AVIA UTSR 6;
			Goto See;
		}
}

class FUElectricBall : Actor
{
		Default
		{
		Radius 8;
		Height 8;
		Speed 12;
		FastSpeed 12;
		Damage 5;
		Projectile;
		Renderstyle "Add";
		+FORCEXYBILLBOARD;
		+NOTELEPORT;
		+NOBLOCKMAP;
		+HITMASTER;
		SeeSound "Caco/attack";
		DeathSound "Caco/shotx";
		DamageType "Lightning";
		}
		States
		{
		Spawn:
			EBAL AA 2 Bright A_SpawnItemEx("FUElectricZap2");
			TNT1 A 0 A_SpawnItemEx("FUElectricZap2", random(-6, 6), random(-6, 6), random(-6, 6));
			EBAL BB 2 Bright A_SpawnItemEx("FUElectricZap2");
			TNT1 A 0 A_SpawnItemEx("FUElectricZap2", random(-6, 6), random(-6, 6), random(-6, 6));
			EBAL CC 2 Bright A_SpawnItemEx("FUElectricZap2");
			TNT1 A 0 A_SpawnItemEx("FUElectricZap2", random(-6, 6), random(-6, 6), random(-6, 6));
			EBAL DD 2 Bright A_SpawnItemEx("FUElectricZap2");
			TNT1 A 0 A_SpawnItemEx("FUElectricZap2", random(-6, 6), random(-6, 6), random(-6, 6));
			Loop;
		Death:
			TNT1 AAAAAA 0 A_SpawnItemEx("FUElectricSpark", random(-3, 3), random(-3, 3), random(-4, 4), random(-10, 10), random(-10, 10), random(-10, 10));
			TNT1 AAAAAA 0 A_SpawnItemEx("FUElectricSpark2", random(-3, 3), random(-3, 3), random(-4, 4), random(-10, 10), random(-10, 10), random(-10, 10)); 
			EBAL EFGHI 3 Bright;
			TNT1 A 4;
			TNT1 A 23 A_SpawnItemEx("FUElectricZap", random(-6, 6), random(-6, 6), random(-6, 6));
			TNT1 A 0 A_SpawnItemEx("FUElectricZap", random(-6, 6), random(-6, 6), random(-6, 6));
			Stop;
		Deflected:
    		TNT1 A 0 A_StopSound(CHAN_VOICE);
    		TNT1 A 1;
			Stop;
		}
}

class FUElectricSpark : Actor
{
	Default
	{
	Radius 5;
	Height 5;
	Mass 2;
	Speed 0;
	+NOBLOCKMAP;
	+DROPOFF;
	+NOTELEPORT;
	+MISSILE;
	+FORCEXYBILLBOARD;
		+CLIENTSIDEONLY;
	Scale 0.3;
	Bouncetype "Doom";
	}
	States
	{
	Spawn:
		EPUF A 12 Bright;
		EPUF AAAAAAAAAA 1 Bright A_FadeOut(0.1);
    	Stop;
	}
}

class FUElectricSpark2 : Actor
{
	Default
	{
	+NOBLOCKMAP;
	+NOCLIP;
	+DROPOFF;
	+NOTELEPORT;
	+FORCEXYBILLBOARD;
		+CLIENTSIDEONLY;
	Projectile;
	Scale 0.3;
	}
	States
	{
	Spawn:
		EPUF A 10 Bright;
		EPUF AAAAAAAAAA 1 Bright A_FadeOut(0.1);
		Stop;
	}
}

class FUElectricZap : Actor
{
	Default
	{
	+NOBLOCKMAP
	+NOCLIP
	+DROPOFF
	+NOTELEPORT
	+NOGRAVITY
		+CLIENTSIDEONLY
	}
	States
	{
	Spawn:
		TNT1 A 1 A_Jump (128, "Zap1", "Zap2", "Zap3", "Zap4", "Zap5");
		Loop;
	Zap1:
		EZAP A 3 Bright;
		Stop;
	Zap2:
		EZAP B 3 Bright;
		Stop;
	Zap3:
		EZAP C 3 Bright;
		Stop;
	Zap4:
		EZAP D 3 Bright;
		Stop;
	Zap5:
		EZAP E 3 Bright;
		Stop;
	}
}

class FUElectricZap2 : Actor
{
	Default
	{
	+NOBLOCKMAP
	+NOCLIP
	+DROPOFF
	+NOTELEPORT
	+NOGRAVITY
	+FORCEXYBILLBOARD
		+CLIENTSIDEONLY
	Scale 0.4;
	}
	States
	{
	Spawn:
		TNT1 A 4 A_Jump (128, "Zap1", "Zap2", "Zap3", "Zap4", "Zap5");
		Loop;
	Zap1:
		EZAP A 3 Bright;
		Stop;
	Zap2:
		EZAP B 3 Bright;
		Stop;
	Zap3:
		EZAP C 3 Bright;
		Stop;
	Zap4:
		EZAP D 3 Bright;
		Stop;
	Zap5:
		EZAP E 3 Bright;
		Stop;
	}
}