//FPS Constructor - Weapons
//Copyright Dastardly Banana Productions 2010
//This script, and all others contained within the Dastardly Banana Weapons Package, may not be shared or redistributed. They can be used in games, either commerical or non-commercial, as long as Dastardly Banana Productions is attributed in the credits.
//Permissions beyond the scope of this license may be available at mailto://info@dastardlybanana.com.


var weapons : GameObject[]; 
static var autoFire : boolean;
private var canKickback : boolean = true;
var selectedWeapon : int;
function Start () {
	// Select the first weapon
	SelectWeapon(0);
}

function LateUpdate () {
	if(Input.GetButtonDown ("Fire1") && canKickback){
		BroadcastMessage("KickbackZ");
		canKickback = false;
	} else if(Input.GetButtonUp("Fire1")){
		BroadcastMessage("ceaseFiring");
		canKickback = true;
	}
	if (!Input.GetButton ("Fire1"))
		BroadcastMessage("Cooldown");


}

function Update () {
	// Did the user press fire?
	if (Input.GetButton ("Fire1") && autoFire){
		BroadcastMessage("Fire");
	} else if(Input.GetButtonDown ("Fire1")){
		BroadcastMessage("Fire");
	} 	
	if (Input.GetButton ("Fire2") && autoFire){
		BroadcastMessage("Fire2");
	} else if(Input.GetButtonDown ("Fire2")){
		BroadcastMessage("Fire2");
	} 	

	
	if(!aimmode.canSwitchWeaponAim)
		return;
		
	if (Input.GetKeyDown("1") && weapons.length >= 1) {
		if(!weapons[0].gameObject.GetComponent("weaponlocking").isLocked){
			SelectWeapon(0);
			selectedWeapon = 0;
		}
	} else if (Input.GetKeyDown("2") && weapons.length >= 2) {
		if(!weapons[1].gameObject.GetComponent("weaponlocking").isLocked){
			SelectWeapon(1);
			selectedWeapon = 1;
		}
	} else if (Input.GetKeyDown("3") && weapons.length >= 3) {
		if(!weapons[2].gameObject.GetComponent("weaponlocking").isLocked){
			SelectWeapon(2);
			selectedWeapon = 2;
		}
	} else if (Input.GetKeyDown("4") && weapons.length >= 4) {
		if(!weapons[3].gameObject.GetComponent("weaponlocking").isLocked){
			SelectWeapon(3);
			selectedWeapon = 3;
		}
	} else if (Input.GetKeyDown("5") && weapons.length >= 5) {
		if(!weapons[4].gameObject.GetComponent("weaponlocking").isLocked){
			SelectWeapon(4);
			selectedWeapon = 4;
		}
	} else if (Input.GetKeyDown("6") && weapons.length >= 6) {
		if(!weapons[5].gameObject.GetComponent("weaponlocking").isLocked){
			SelectWeapon(5);
			selectedWeapon = 5;
		}
	} else if (Input.GetKeyDown("7") && weapons.length >= 7) {
		if(!weapons[6].gameObject.GetComponent("weaponlocking").isLocked){
			SelectWeapon(6);
			selectedWeapon = 6;
		}
	} else if (Input.GetKeyDown("8") && weapons.length >= 8) {
		if(!weapons[7].gameObject.GetComponent("weaponlocking").isLocked){
			SelectWeapon(7);
			selectedWeapon = 7;
		}
	} else if (Input.GetKeyDown("9") && weapons.length >= 9) {
		if(!weapons[8].gameObject.GetComponent("weaponlocking").isLocked){
			SelectWeapon(8);
			selectedWeapon = 8;
		}
	} else if (Input.GetKeyDown("0") && weapons.length >= 10) {
		if(!weapons[9].gameObject.GetComponent("weaponlocking").isLocked){
			SelectWeapon(9);
			selectedWeapon = 9;
		}
	}		
	
	
		

		if (Input.GetButtonDown("Reload"))
			BroadcastMessage("Reload");


}

function SelectWeapon (index : int) {
	if(gunscript.takingOut)
		return;
	for (var i : int=0 ;i<weapons.length; i++)	{
//			 Activate the selected weapon
		if (i == index){
			weapons[i].gameObject.BroadcastMessage("selectWeapon");
		// Deactivate all other weapons
		}else{
			weapons[i].gameObject.BroadcastMessage("deselectWeapon");
		}
		
	}
}function FullAuto () {
	autoFire = true;
}
function SemiAuto () {
	autoFire = false;
}
function deactivateWeapons(){
	for (var i : int=0 ;i<weapons.length; i++)	{
		weapons[i].gameObject.BroadcastMessage("deselectWeapon");
	}
}
function setWeapon (gun : GameObject, element : int){
	if(gunscript.takingOut)
		return;
	weapons[element] = gun;
}

