Shooting works fine. But when I reload, currentAmmo wont set back to maxAmmo. It just stays at 0. I have no idea what I have done wrong. Here is the code :
var bulletSpawn : GameObject;
var bullet : GameObject;
var weapon : GameObject;
var soundParent = Transform;
var currentAmmo = 30;
var maxAmmo = 30;
var canFire : boolean = false;
var fireSound : GameObject;
var reloadSound : GameObject;
var tacReloadSound : GameObject;
var reloadTime : float = 1.8;
var tacReloadTime : float = 1.5;
function Update ()
{
if (currentAmmo > 0)
canFire = true;
if (currentAmmo <= 0)
canFire = false;
if (currentAmmo > maxAmmo)
currentAmmo = maxAmmo;
if (Input.GetButtonDown("Fire") && canFire == true)
IsFiring ();
if (Input.GetButtonDown("Reload") && currentAmmo < maxAmmo)
Reload ();
}
function IsFiring ()
{
if (currentAmmo > 0 && canFire == true)
{
currentAmmo --;
Instantiate(bullet, bulletSpawn.transform.position, bulletSpawn.transform.rotation);
weapon.animation.PlayQueued("Fire", QueueMode.PlayNow);
Instantiate(fireSound, bulletSpawn.transform.position, bulletSpawn.transform.rotation);
}
if (currentAmmo == 0)
{
canFire = false;
Reload ();
}
}
function Reload ()
{
if (currentAmmo == 0)
{
animation.Play("Reload");
Instantiate(reloadSound, bulletSpawn.transform.position, bulletSpawn.transform.rotation);
yield WaitForSeconds(reloadTime);
canFire = true;
currentAmmo = maxAmmo;
}
if (currentAmmo > 0 && currentAmmo < maxAmmo)
{
currentAmmo = 0;
animation.Play("TacReload");
Instantiate(tacReloadSound, bulletSpawn.transform.position, bulletSpawn.transform.rotation);
canFire = false;
yield WaitForSeconds(tacReloadTime);
canFire = true;
currentAmmo = maxAmmo;
}
}
Please help!