/*=====
 PROPS
=====*/
/* REFER BACK TO THESE BY LOADING ROOFTOP.WAD INTO WADS FOR DOOMSTAR
Class ChookumBigPalmTree : BigTree
Class ChookumSmallPalmTree : TorchTree
Class ChookumBush : ShortGreenColumn
Class ChookumSkinnyTree : TorchTree
Class ChookumBlueVase : ShortRedColumn
Class ChookumRedVase : ShortRedColumn

USED ED NUMBERS
27201 = ChookumBigPalmTree
27202 = ChookumSmallPalmTree
27203 = ChookumBush
27204 = ChookumSkinnyTree
27205 = ChookumBlueVase
27206 = ChookumRedVase
*/


/*=======
 WEAPONS
=======*/
Class ChookumPistol : Pistol {
 	Default{
		//$Title "Super Pistol!"
		//$Category "Chookum's Thingys"
		//$NotAngled
		//$Color 14
		Weapon.SelectionOrder 1800;
		Weapon.SlotNumber 2;
		Weapon.AmmoUse 5;
		Inventory.PickupMessage "You got the Super Pistol! Five bullets a pop!";
		Obituary "%o was blasted away by %k's Super Pistol.";
	}
	States{
	Ready:
		CHPS A 1 A_WeaponReady;
		Loop;
	Deselect:
		CHPS E 1 A_Lower;
		Loop;
	Select:
		CHPS E 1 A_Raise;
		Loop;
	Fire:
		CHPS A 1;
		CHPS B 3{
			A_FireBullets(0,0,5,5);
			A_StartSound("ch_pistl", CHAN_WEAPON);
			A_GunFlash();
		}
		CHPS C 3;
		CHPS D 3;
		CHPS A 3;
		Goto Ready;
	Flash:
		CHPF A 3 Bright A_Light1;
		Goto LightDone;
		CHPF A 3 Bright A_Light1;
		Goto LightDone;
 	Spawn:
		CHPT A -1;
		Stop;
	}
}

Class ChookumFist : Fist {
	// Created from Fist Redux @ Realm667
	// Original Decorate Script by That_One_Doom_Mod, Wh3teFang
	// Sprites By: ID Software, Banjo Software
	// Partial ZScript Conversion by Chookum.
	// (this is a juiced up tyson map, we do not need stamina mechanics.)

	Default{
		//$Title "Super Fist!"
		//$Category "Chookum's Thingys"
		//$NotAngled
		//$Color 14
		Weapon.SlotNumber 1;
	}
	States{
	Ready:
		CHPP A 1 A_WeaponReady;
		Loop;
	Deselect:
		CHPP A 1 A_Lower;
		Loop;
	Select:
		CHPP A 1 A_Raise;
		Loop;
	Fire:
		CHPP A 0 A_JumpIfInventory("FistToken",1,"LeftPunch"); // Check L/R
		CHPP A 2 A_Playsound("DSSKESWG");	// RIGHT FIST
		CHPP B 1;
		CHPP L 0 A_Punch;	//WHAM!
		CHPP L 0 A_Punch;
		CHPP L 0 A_Punch;
		CHPP L 0 A_Punch;
		CHPP L 0 A_Punch;
		CHPP L 1 A_Punch;
		CHPP C 1;
		CHPP M 1;
		CHPP D 1;
		CHPP N 1;
		CHPP E 1;
		CHPP R 1;
		CHPP K 0 A_GiveInventory("FistToken",1);
		CHPP K 2 A_ReFire;
		goto Ready;
		LeftPunch:
		CHPP F 2 A_Playsound("DSSKESWG");	// LEFT FIST
		CHPP G 1;
		CHPP O 0 A_Punch;	//BAM!
		CHPP O 0 A_Punch;
		CHPP O 0 A_Punch;
		CHPP O 0 A_Punch;
		CHPP O 0 A_Punch;
		CHPP O 1 A_Punch;
		CHPP H 1;
		CHPP P 1;
		CHPP I 1;
		CHPP Q 1;
		CHPP J 1;
		CHPP K 0 A_TakeInventory("FistToken",1);
		CHPP K 2 A_ReFire;
		goto Ready;
	}
}

Class FistToken : Ammo {
	// For alternating between Lefty and Righty.
	Default{
		Inventory.MaxAmount 1;
	}
}

Class ChookumNotZombieman : Zombieman{
	Default{
		//$Title "Former Human (Projectiles)"
		//$Category "Chookum's Thingys"
		//$Color 12
	}
 	States
	{
	Spawn:
		POSS AB 10 A_Look;
		Loop;
	See:
		POSS AABBCCDD 4 A_Chase;
		Loop;
	Missile:
		POSS E 10 A_FaceTarget;
		POSS F 0 A_Playsound("DSPISTOL");
		POSS F 8 A_SpawnProjectile("ChookumZombieBullet",32,0,random(-11,11),CMF_OFFSETPITCH);
		POSS E 8;
		Goto See;
	Pain:
		POSS G 3;
		POSS G 3 A_Pain;
		Goto See;
	Death:
		POSS H 5;
		POSS I 5 A_Scream;
		POSS J 5 A_NoBlocking;
		POSS K 5;
		POSS L -1;
		Stop;
	XDeath:
		POSS M 5;
		POSS N 5 A_XScream;
		POSS O 5 A_NoBlocking;
		POSS PQRST 5;
		POSS U -1;
		Stop;
	Raise:
		POSS K 5;
		POSS JIH 5;
		Goto See;
	}
}

Class ChookumNotShotgunGuy : ShotgunGuy{
	Default{
		//$Title "Former Sergeant (No Shotgun, Projectiles)"
		//$Category "Chookum's Thingys"
		//$Color 12
		DropItem "Clip";
	}
	States
	{
	Spawn:
		SPOS AB 10 A_Look;
		Loop;
	See:
		SPOS AABBCCDD 3 A_Chase;
		Loop;
	Missile:
		SPOS E 10 A_FaceTarget;
		SPOS F 0 A_Playsound("DSSHOTGN");
		SPOS F 0 BRIGHT A_SpawnProjectile("ChookumZombieBullet",32,0,random(-11,11));
		SPOS F 0 BRIGHT A_SpawnProjectile("ChookumZombieBullet",32,0,random(-11,11));
		SPOS F 10 BRIGHT A_SpawnProjectile("ChookumZombieBullet",32,0,random(-11,11));
		SPOS E 10;
		Goto See;
	Pain:
		SPOS G 3;
		SPOS G 3 A_Pain;
		Goto See;
	Death:
		SPOS H 5;
		SPOS I 5 A_Scream;
		SPOS J 5 A_NoBlocking;
		SPOS K 5;
		SPOS L -1;
		Stop;
	XDeath:
		SPOS M 5;
		SPOS N 5 A_XScream;
		SPOS O 5 A_NoBlocking;
		SPOS PQRST 5;
		SPOS U -1;
		Stop;
	Raise:
		SPOS L 5;
		SPOS KJIH 5;
		Goto See;
	}
}

Class ChookumNotChaingunner : ChaingunGuy{
	Default{
		//$Title "Chaingunner (No Chaingun, Projectiles)"
		//$Category "Chookum's Thingys"
		//$Color 12
		DropItem "Clip";
	}
	States{
	Spawn:
		CPOS AB 10 A_Look;
		Loop;
	See:
		CPOS AABBCCDD 3 A_Chase;
		Loop;
	Missile:
		CPOS E 10 A_FaceTarget;
		CPOS F 0 A_Playsound("DSSHOTGN");
		CPOS F 4 BRIGHT A_SpawnProjectile("ChookumZombieBullet",32,0,random(-11,11),CMF_OFFSETPITCH);
		CPOS E 0 A_Playsound("DSSHOTGN");
		CPOS E 4 BRIGHT A_SpawnProjectile("ChookumZombieBullet",32,0,random(-11,11),CMF_OFFSETPITCH);
		CPOS F 1 A_CPosRefire;
		Goto Missile+1;
	Pain:
		CPOS G 3;
		CPOS G 3 A_Pain;
		Goto See;
	Death:
		CPOS H 5;
		CPOS I 5 A_Scream;
		CPOS J 5 A_NoBlocking;
		CPOS KLM 5;
		CPOS N -1;
		Stop;
	XDeath:
		CPOS O 5;
		CPOS P 5 A_XScream;
		CPOS Q 5 A_NoBlocking;
		CPOS RS 5;
		CPOS T -1;
		Stop;
	Raise:
		CPOS N 5;
		CPOS MLKJIH 5;
		Goto See;
	}
}

Class ChookumZombieBullet : Actor{
	Default{
		Health 1;
		Radius 4;
		Height 4;
		Speed 24;
		FastSpeed 40;
		DamageFunction (random(1,5) * 3);
		Scale 0.3;
		Projectile;
		+BLOODSPLATTER
		+RANDOMIZE
		SeeSound "";
		DeathSound "";
		RenderStyle "Stencil";
		StencilColor "Ghost White";
	}
	States{
	Spawn:
		BAL1 A 1 BRIGHT A_SpawnItemEx("ChookumZombieBulletTrail");
		BAL1 B 1 BRIGHT A_SpawnItemEx("ChookumZombieBulletTrail");
		Loop;
	Melee:
		TNT1 A 0 A_Stop();
		TNT1 A 0 A_SpawnItemEx("BulletPuff");
		Stop;
	Death:
		TNT1 A 0 A_Stop();
		TNT1 A 0 A_SpawnItemEx("BulletPuff");
		Stop;
	}
}

Class ChookumZombieBulletTrail : BulletPuff{
	Default{
		RenderStyle "Stencil";
		StencilColor "Linen";
		Scale 0.28;
		Mass 5;
	}
	States{
	Spawn:
		BAL1 A 1 A_SetRenderStyle(0.9,STYLE_TranslucentStencil);
		BAL1 B 1 A_SetRenderStyle(0.7,STYLE_TranslucentStencil);
		BAL1 C 1 A_SetRenderStyle(0.5,STYLE_TranslucentStencil);
		BAL1 D 1 A_SetRenderStyle(0.3,STYLE_TranslucentStencil);
		BAL1 E 1 A_SetRenderStyle(0.1,STYLE_TranslucentStencil);
	Melee:
		TNT1 E -1 A_SetRenderStyle(0.0,STYLE_TranslucentStencil);
		Stop;
	}
}

Class ChookumSuperDemon : Actor {
	// Created from Super Demon @ Realm667
	// Original Decorate Script by Xim
	// Sprites By: iD software, Molten Ice, Xim, David G, Craneo
	Default{
		//$Title "Super Demon!"
		//$Category "Chookum's Thingys"
		//$Color 12
		Obituary "%o was crushed by a Super Demon!";
		Health 3500;
		Radius 40;
		Height 110;
		Mass 1000;
		Speed 15;
		PainChance 20;
		SeeSound "cyber/sight";
		PainSound "cyber/pain";
		DeathSound "CH_SDETH";
		ActiveSound "cyber/active";
		Monster;
		+BOSS
		+FLOORCLIP
		+NORADIUSDMG
		+DONTMORPH
		+MISSILEMORE
		Tag "$FN_CYBER";
	}
	States{
		Spawn:
			CHSD AB 10 A_Look;
			Loop;
		See:
			CHSD A 3 A_Hoof;
			CHSD ABBCC 3 A_Chase;
			CHSD D 3 A_Hoof;
			CHSD D 3;
			Loop;
		Missile:
			CHSD Q 0 A_Jump(128,"Missile2");
			CHSD QR 4 A_FaceTarget;
			CHSD S 8 A_SpawnProjectile("ChookumSuperDemonBall",54);
			CHSD QR 4 A_FaceTarget;
			CHSD S 8 A_SpawnProjectile("ChookumSuperDemonBall",54);
			CHSD QR 4 A_FaceTarget;
			CHSD S 8 A_SpawnProjectile("ChookumSuperDemonBall",54);
			Goto See;
		Missile2:
			CHSD EF 6 A_FaceTarget;
			CHSD GG 0 A_SpawnProjectile("ChookumSuperDemonBall",54,0,-10);
			CHSD GG 0 A_SpawnProjectile("ChookumSuperDemonBall",54,0,-5);
			CHSD GG 0 A_SpawnProjectile("ChookumSuperDemonBall",54,0,5);
			CHSD GG 0 A_SpawnProjectile("ChookumSuperDemonBall",54,0,10);
			CHSD G 10 A_SpawnProjectile("ChookumSuperDemonBall",54,0,0);
			Goto See;
		Pain:
			CHSD H 10 A_Pain;
			Goto See;
		Death:
			CHSD I 4 A_PlaySound("CH_SDRAR",5);
			CHSD J 4 A_SpawnProjectile("Blood",0,0,random(-80,-100),2,random(45,80));
			CHSD J 4 A_Scream;
			CHSD KKKK 1 A_SpawnProjectile("Blood",0,0,random(-80,-100),2,random(45,80));
			CHSD L 3 A_SpawnProjectile("ChookumSuperDemonArm", 54, -50, -50);
			CHSD MN 5 A_SpawnProjectile("Blood",0,0,random(-80,-100),2,random(45,80));
			CHSD O 7 A_PlaySound("CH_SDTHU");
			CHSD PPPPPPP 1 A_SpawnProjectile("Blood",0,0,random(-80,-100),2,random(45,80));
			CHSD P 7 A_NoBlocking;
			CHSD P -1 A_BossDeath;
			Stop;
	}
}

Class ChookumSuperDemonBall : Actor{
	// Part of Super Demon @ Realm667
	// See above for Credits.
	Default{
		Radius 6;
		Height 16;
		Speed 12;
		Damage 8;
		Scale 1.5;
		Renderstyle "Add";
		SeeSound "baron/attack";
		DeathSound "baron/shotx";
		PROJECTILE;
		+RANDOMIZE;
		Decal "BigScorch";
	}
	States{
		Spawn:
			CHDB AB 4 Bright;
			Loop;
		Death:
			CHDB CDE 6 Bright;
			Stop;
	}
}

Class ChookumSuperDemonArm : Actor{
	// Part of Super Demon @ Realm667
	// See above for Credits.
	Default{
		Radius 10;
		Height 8;
		Speed 1;
		Damage 1;
		Scale 1;
		Projectile;
		-NOGRAVITY;
		+LOWGRAVITY;
	}
	States{
		Spawn:
			CHDA A 5 A_SpawnProjectile("Blood",0,0,random(-80,-100),2,random(45,80));
			CHDA B 5 A_SpawnProjectile("Blood",0,0,random(-80,-100),2,random(45,80));
			CHDA C 5 A_SpawnProjectile("Blood",0,0,random(-80,-100),2,random(45,80));
			Goto Death;
		Death:
			CHDA D 5 A_SpawnProjectile("Blood",0,0,random(-80,-100),2,random(45,80));
			CHDA E -1 A_SpawnProjectile("Blood",0,0,random(-80,-100),2,random(45,80));
			Stop;
	}
}