// Update is called once per frame void Update() { if (weapon.CanReload() && Input.GetKeyDown(reloadKey)) { reload.BeginReload(weapon); } else if (Input.GetKeyDown(reloadKey) && weapon.state == Weapon.State.RELOADING) { reload.ManualReload(); } if (weapon.CanFire() && Input.GetKey(fireKey)) { fire.BeginFire(weapon); } else if (weapon.CanReload() && Input.GetKey(fireKey)) { reload.BeginReload(weapon); } }