ACTOR BloxPlasmaRifle : PlasmaRifle replaces PlasmaRifle
{
   	States
   	{
	Spawn:
		TNT1 A 0 A_JumpIf(CallACS("skintoggler")==1, "64spawn")		
		PLRL A 5
		loop
	Ready:
		TNT1 A 0 A_JumpIf(CallACS("skintoggler")==1, "64ready")
		PLAS A 1 A_WeaponReady
		Loop
	Deselect:
		TNT1 A 0 A_JumpIf(CallACS("skintoggler")==1, "64deselect")
		PLAS A 1 A_Lower
		Loop
	Select:
		TNT1 A 0 A_JumpIf(CallACS("skintoggler")==1, "64select")
		PLAS A 1 A_Raise
		Loop
	Fire:
		TNT1 A 0 A_JumpIf(CallACS("skintoggler")==1, "64fire")
		TNT1 A 0 a_jumpif(callacs("BobToggle")==1, "bobfire")
		
		PLAS B 1 Bright A_FirePlasma
					TNT1 A 0 A_JumpIf(CallACS("recoiltoggle")==0, "+2")
					TNT1 a 0 a_quakeex(1,1,1,2,0,10,"misc/null",QF_SCALEDOWN)		
		
		PLAS C 1 Bright
		PLAS D 1 Bright
		TNT1 A 0 A_ReFire(+1)
			goto cooldown
		PLAS B 1 Bright A_FirePlasma
					TNT1 A 0 A_JumpIf(CallACS("recoiltoggle")==0, "+2")
					TNT1 a 0 a_quakeex(1,1,1,2,0,10,"misc/null",QF_SCALEDOWN)		
	
		PLAS C 1 Bright
		PLAS E 1 Bright 
		PLAS a 0 a_refire(+1)
			goto cooldown
		PLAS B 1 Bright A_FirePlasma
					TNT1 A 0 A_JumpIf(CallACS("recoiltoggle")==0, "+2")
					TNT1 a 0 a_quakeex(1,1,1,2,0,10,"misc/null",QF_SCALEDOWN)		
		
		PLAS C 1 Bright
		PLAS D 1 Bright 

		PLAS a 0 a_refire("fire")
			goto cooldown
	bobFire:
		TNT1 A 0 A_JumpIf(CallACS("recoiltoggle")==1, "recoilbobfire")
		
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PLAS B 1 Bright A_FirePlasma
					TNT1 A 0 A_JumpIf(CallACS("recoiltoggle")==0, "+2")
					TNT1 a 0 a_quakeex(1,1,1,2,0,10,"misc/null",QF_SCALEDOWN)		

		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)		
		PLAS C 1 Bright
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PLAS D 1 Bright
		TNT1 A 0 A_ReFire(+1)
			goto cooldown
		PLAS B 1 Bright A_FirePlasma	
					TNT1 A 0 A_JumpIf(CallACS("recoiltoggle")==0, "+2")
					TNT1 a 0 a_quakeex(1,1,1,2,0,10,"misc/null",QF_SCALEDOWN)		
		
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PLAS C 1 Bright
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PLAS E 1 Bright 
		PLAS a 0 a_refire(+1)
			goto cooldown
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PLAS B 1 Bright A_FirePlasma
					TNT1 A 0 A_JumpIf(CallACS("recoiltoggle")==0, "+2")
					TNT1 a 0 a_quakeex(1,1,1,2,0,10,"misc/null",QF_SCALEDOWN)		
		
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PLAS C 1 Bright
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PLAS D 1 Bright 
		PLAS a 0 a_refire("fire")
			goto cooldown
		
		
	cooldown:
		TNT1 A 0 A_JumpIf(CallACS("skintoggler")==2, "BLcooldown")
		PKPL a 1 Bright a_zoomfactor(1.0, ZOOM_NOSCALETURNING)
		PKPL bbccde 1
		PKPL e 6
		PKPL EEDC 2
		PKPL B 1
		PKPL A 1
		Goto Ready
	BLcooldown:
		PKPL a 1 Bright a_zoomfactor(1.0, ZOOM_NOSCALETURNING)
		BKPL bbccde 1
		BKPL e 6
		BKPL EEDC 2
		BKPL B 1
		PKPL A 1
		Goto Ready
		
	Flash:
		TNT1 A 1 A_Light1
	Goto LightDone
		TNT1 B 1 A_Light1
		Goto LightDone


/////////////
//64 STATES//		
/////////////

	64spawn:
		TNT1 A 0 A_JumpIf(CallACS("skintoggler")==0, "spawn")
		PL64 A 5
		loop
	64select:
		PLSG A 1 A_Raise
		Loop
	64deselect:
		PLSG A 1 A_Lower
		Loop
	64ready:
		PLSG ABC 2 A_WeaponReady
		Loop
	64Fire:
		TNT1 A 0 a_jumpif(callacs("BobToggle")==1, "64bobfire")
		TNT1 A 0 A_JumpIf(CallACS("recoiltoggle")==1, "64recoilfire")
		PLSG R 1 BRIGHT
		PLSF B 0 BRIGHT
		PLSF A 1 BRIGHT A_FirePlasma
		PLSF B 1 BRIGHT
		PLSF B 0 A_GunFlash
		PLSF CC 1 BRIGHT
		PLSG D 1 A_ReFire
		goto ready

	64bobFire:
		TNT1 A 0 A_JumpIf(CallACS("recoiltoggle")==1, "recoilbobfire")
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PLSG R 1 BRIGHT
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PLSF B 0 BRIGHT
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PLSF A 1 BRIGHT A_FirePlasma
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PLSF B 1 BRIGHT
		PLSF B 0 A_GunFlash
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PLSF C 2 BRIGHT
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
		PLSG D 1 A_ReFire
		goto ready
		

//////////////////
////BOB STATES////
//////////////////	


   	}
}