Beispiel #1
0
    public void Update(float timeDelta)
    {
        if (startFireTimer)
        {
            fireTimer += timeDelta;
            if (fireTimer > fireInterval)
            {
                canFire        = true;
                startFireTimer = false;
                fireTimer      = 0f;
            }
        }

        if (startReloadTimer)
        {
            reloadTimer += timeDelta;
            if (reloadTimer > reloadInterval)
            {
                state = WeaponGunState.IDLE;

                canFire          = true;
                startReloadTimer = false;
                reloadTimer      = 0f;
            }
        }
    }
Beispiel #2
0
    public void Reload()
    {
        if (clipLeft == clipSize)
        {
            return;
        }

        if (ammoLeft == 0)
        {
            //Debug.Log("Out of ammo.");
            return;
        }

        canFire          = false;
        startReloadTimer = true;

        state = WeaponGunState.RELOADING;

        int ammoNeeded = clipSize - clipLeft;

        if (ammoLeft <= ammoNeeded)
        {
            clipLeft += ammoLeft;
            ammoLeft  = 0;
        }
        else
        {
            clipLeft  = clipSize;
            ammoLeft -= ammoNeeded;
        }
    }