ACTOR Z86Chaingun : Chaingun replaces Chaingun
{
	decal bulletchip
	States
	{
	spawn:
		TNT1 A 0 A_JumpIf(CallACS("skintoggler")==1, "64spawn")
		MGUN a 5
		loop
    Ready:
		TNT1 A 0 A_JumpIf(CallACS("skintoggler")==1, "64Ready")
		PKCG A 1 A_WeaponReady
		Loop
    Deselect:
		TNT1 A 0 A_JumpIf(CallACS("skintoggler")==1, "64Deselect")
		PKCG A 1 A_Lower
		Loop
    Select:
		TNT1 A 0 A_JumpIf(CallACS("skintoggler")==1, "64Select")
		PKCG A 1 A_Raise
		Loop
	Fire:
		TNT1 A 0 A_JumpIf(CallACS("bobtoggle")==1, "bobFire")
		TNT1 A 0 A_JumpIf(CallACS("skintoggler")==1, "64fire")		
		PKCG A 1 offset(0,38)
		{
			A_PlaySound("weapons/chngun", CHAN_WEAPON);
			A_GunFlash("Flash");
			A_FireBullets(5.6, 0, 1, 5, "BulletPuff");
		}
		TNT1 a 0 A_JumpIf(CallACS("CasingToggle")==0, +2)
		TNT1 a 0 A_spawnitemex ("bulletcasing", 50, 10, 15, random(0,1), random(3,5), random(4,7), 0)
		PKCG BCD 1
		PKCG A 1
		{
			A_PlaySound("weapons/chngun", CHAN_WEAPON);
			A_GunFlash("Flash2");
			A_FireBullets(5.6, 0, 1, 5, "BulletPuff");
		}
		TNT1 a 0 A_JumpIf(CallACS("CasingToggle")==0, +2)
		TNT1 a 0 A_spawnitemex ("bulletcasing", 50, 10, 15, random(0,1), random(3,5), random(4,7), 0)
		PKCG BCD 1
		PKCG A 1 
			{
			A_Weaponready;
			A_ReFire;
			}
		PKCG BB 1 
			{
			A_Weaponready;
			}
		PKCG CD 3 a_weaponready
		Goto Ready


	Flash:
		TNT1 A 0 A_JumpIf(CallACS("recoiltoggle")==1, "kickflash")	
		TNT1 A 0 A_JumpIf(CallACS("skintoggler")==1, "64kickflash")
			
		PKCF A 1 Bright A_Light2
		PKCF B 1 Bright A_Light1
		TNT1 A 2 A_Light0
		Goto LightDone
	
	Flash2:
		TNT1 A 0 A_JumpIf(CallACS("recoiltoggle")==1, "kickflash2")	
		TNT1 A 0 A_JumpIf(CallACS("skintoggler")==1, "64kickflash2")
	
		PKCF C 1 Bright A_Light2
		PKCF D 1 Bright A_Light1
		TNT1 A 2 A_Light0
		Goto LightDone
		
	Kickflash:
		PKCF A 1 Bright A_Light2
			tnt1 a 0 a_setpitch(pitch+0.3)
		
		PKCF B 1 Bright A_Light1
			tnt1 a 0 a_setpitch(pitch-0.1)
		
		TNT1 A 1 A_Light0	
			tnt1 a 0 a_setpitch(pitch-0.2)
		
		TNT1 A 1 A_Light0
		Goto LightDone	
		
	Kickflash2:
		PKCF C 1 Bright A_Light2
			tnt1 a 0 a_setpitch(pitch+0.3)
		
		PKCF D 1 Bright A_Light1
			tnt1 a 0 a_setpitch(pitch-0.1)
		
		TNT1 A 1 A_Light0	
			tnt1 a 0 a_setpitch(pitch-0.2)
		
		TNT1 A 1 A_Light0
		Goto LightDone
		
	64Flash:
		TNT1 A 0 A_JumpIf(CallACS("recoiltoggle")==1, "64kickflash")		
		CHGF A 1 BRIGHT A_Light2
		CHGF B 1 BRIGHT A_Light1
		Goto LightDone
	64Flash2:
		TNT1 A 0 A_JumpIf(CallACS("recoiltoggle")==1, "64kickflash2")		
		CHGF C 1 BRIGHT A_Light2
		CHGF D 1 BRIGHT A_Light1
		Goto LightDone
		
	64Kickflash:
		CHGF A 1 Bright A_Light2
			tnt1 a 0 a_setpitch(pitch+0.3)
		
		CHGF B 1 Bright A_Light1
			tnt1 a 0 a_setpitch(pitch-0.1)
		
		TNT1 A 1 A_Light0	
			tnt1 a 0 a_setpitch(pitch-0.2)
		
		TNT1 A 1 A_Light0
		Goto LightDone	
		
	64Kickflash2:
		CHGF C 1 Bright A_Light2
			tnt1 a 0 a_setpitch(pitch+0.3)
		
		CHGF D 1 Bright A_Light1
			tnt1 a 0 a_setpitch(pitch-0.1)
		
		TNT1 A 1 A_Light0	
			tnt1 a 0 a_setpitch(pitch-0.2)
		
		TNT1 A 1 A_Light0
		Goto LightDone	
	
	
	
	
	64spawn:
		TNT1 A 0 A_JumpIf(CallACS("skintoggler")==0, "spawn")
		64CG B 5
		loop
	64Ready:
		64CG A 1 A_WeaponReady
		Loop
    64Deselect:
		64CG A 1 A_Lower
		Loop
    64Select:
		64CG A 1 A_Raise
		Loop
		
	64Fire:
		TNT1 A 0 A_JumpIf(CallACS("recoiltoggle")==1, "64recoilfire")	
		TNT1 A 0 A_JumpIf(CallACS("bobtoggle")==1, "64bobFire")
		
		CHGG A 0 A_GunFlash("64flash")
		CHGG A 0 A_FireBullets(5.6, 0, 1, 5, "BulletPuff")
		CHGG A 1 A_PlaySound("weapons/chngun", CHAN_AUTO, 1, 0, ATTN_NORM)
		tnt1 a 0 A_JumpIf(CallACS("CasingToggle")==0, +2)
		TNT1 A 0 A_spawnitemex ("bulletcasing", 40, 0, 25, random(0,2), random(4,6), random(3,5), 0)

		CHGG B 0 Offset(-2, 35)			
		CHGG B 1 Offset(-2, 34)
		CHGG C 1 
		CHGG D 1 Offset(-1, 33) 
		CHGG A 0 A_GunFlash("64Flash2")
		CHGG A 0 A_FireBullets(5.6, 0, 1, 5, "BulletPuff")
		CHGG A 1 Offset(0, 35) A_PlaySound("weapons/chngun", CHAN_AUTO, 1, 0, ATTN_NORM)
		tnt1 a 0 A_JumpIf(CallACS("CasingToggle")==0, +2)
		TNT1 A 0 A_spawnitemex ("bulletcasing", 40, 0, 25, random(0,2), random(4,6), random(3,5), 0)	
		
		CHGG B 1 Offset(0, 35)
		CHGG C 1 
		CHGG D 1 Offset(-1, 34)
			
		CHGG C 0 A_ReFire
		CHGG ABCD 1 A_WeaponReady
		CHGG ABCD 2 A_WeaponReady
		CHGG ABCD 3 A_WeaponReady
		Goto Ready


		
/////////////////////////
//////BOB STATES/////////
/////////////////////////		
		
	bobFire:
		TNT1 A 0 A_JumpIf(CallACS("skintoggler")==1, "64bobFire")
		TNT1 A 0 A_JumpIf(CallACS("recoiltoggle")==1, "bobrecoilfire")
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PKCG A 1 offset(0,37)
		{
			A_PlaySound("weapons/chngun", CHAN_WEAPON);
			A_GunFlash("Flash");
			A_FireBullets(5.6, 0, 1, 5, "BulletPuff");
		}
		TNT1 a 0 A_JumpIf(CallACS("CasingToggle")==0, +2)
		TNT1 a 0 A_spawnitemex ("bulletcasing", 50, 10, 15, random(0,1), random(3,5), random(4,7), 0)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)		
		PKCG B 1 offset(0,37)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PKCG C 1 offset(0,37)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PKCG D 1 offset(0,37)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PKCG A 1 offset(0,37)
		{
			A_PlaySound("weapons/chngun", CHAN_WEAPON);
			A_GunFlash("Flash2");
			A_FireBullets(5.6, 0, 1, 5, "BulletPuff");
		}
		TNT1 a 0 A_JumpIf(CallACS("CasingToggle")==0, +2)
		TNT1 a 0 A_spawnitemex ("bulletcasing", 50, 10, 15, random(0,1), random(3,5), random(4,7), 0)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PKCG B 1 offset(0,37)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PKCG C 1 offset(0,37)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PKCG D 1 offset(0,37)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		TNT1 A 0 a_refire
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PKCG A 1 A_Weaponready
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PKCG B 2 A_Weaponready
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PKCG C 3 a_weaponready
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PKCG D 3 a_weaponready
		Goto Ready
		
		
	64bobfire:
		TNT1 A 0 A_JumpIf(CallACS("recoiltoggle")==1, "recoil64bobfire")
		CHGG A 0 A_GunFlash("64flash")
		CHGG A 0 A_FireBullets(5.6, 0, 1, 5, "BulletPuff")
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		
		CHGG A 1 A_PlaySound("weapons/chngun", CHAN_AUTO, 1, 0, ATTN_NORM)
		tnt1 a 0 A_JumpIf(CallACS("CasingToggle")==0, +2)
		TNT1 A 0 A_spawnitemex ("bulletcasing", 40, 0, 25, random(0,2), random(4,6), random(3,5), 0)

		CHGG B 0 Offset(-2, 35)			
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)		
		CHGG B 1 Offset(-2, 34)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)		
		CHGG C 1 
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)		
		CHGG D 1 Offset(-1, 33) 
		CHGG A 0 A_GunFlash("64Flash2")
		CHGG A 0 A_FireBullets(5.6, 0, 1, 5, "BulletPuff")
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)		
		CHGG A 1 Offset(0, 35) A_PlaySound("weapons/chngun", CHAN_AUTO, 1, 0, ATTN_NORM)
		tnt1 a 0 A_JumpIf(CallACS("CasingToggle")==0, +2)
		TNT1 A 0 A_spawnitemex ("bulletcasing", 40, 0, 25, random(0,2), random(4,6), random(3,5), 0)	
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)		
		CHGG B 1 Offset(0, 35)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)		
		CHGG C 1 
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)		
		CHGG D 1 Offset(-1, 34)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)			
		CHGG C 0 A_ReFire
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)					
		CHGG A 1 A_WeaponReady
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)					
		CHGG B 1 A_WeaponReady
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)					
		CHGG C 1 A_WeaponReady
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)					
		CHGG D 1 A_WeaponReady	
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)					
		CHGG A 2 A_WeaponReady
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)					
		CHGG B 2 A_WeaponReady
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)					
		CHGG C 2 A_WeaponReady
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)					
		CHGG D 2 A_WeaponReady
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)					
		CHGG A 3 A_WeaponReady
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)					
		CHGG B 3 A_WeaponReady
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)					
		CHGG C 3 A_WeaponReady
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)					
		CHGG D 3 A_WeaponReady
		Goto Ready
		
	}
}