// 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);
        }
    }