Пример #1
0
    //Coroutine that reloads smg
    private IEnumerator ChangeMagazine()
    {
        if (currentMagazineCount > 0)
        {
            //call the method in the broker to invoke the reload event for the hud controller
            ReloadWeaponBroker.CallWeaponIsReloading();

            //Play Reload Sound
            smgSound.PlayOneShot(smgReloadClip);

            yield return(new WaitForSecondsRealtime(smgReloadSpeed));

            currentMagazineCount--;
            smgIsReloading    = false;
            bulletsInMagazine = 30;

            //Update bullet and magazine count on HUD
            AmmoDisplayBroker.CallUpdateAmmoOnHud(bulletsInMagazine, smgMagazineSize);
            AmmoDisplayBroker.CallUpdateMagazinesOnHud(currentMagazineCount);
            AmmoDisplayBroker.CallUpdateMagazinesOnStore(weaponIndex, currentMagazineCount);

            //  Debug.LogError("SMG RELOADED");

            ReloadWeaponBroker.CallWeaponFinishedReloading();
        }
        else
        {
            Debug.LogError("SMG OUT OF AMMO");

            ReloadWeaponBroker.CallWeaponFinishedReloading();
            AmmoDisplayBroker.CallUpdateMagazinesOnStore(weaponIndex, currentMagazineCount);
        }
    }
Пример #2
0
    //Shooting the Pistol
    private void ShootRocket()
    {
        if (rocketsInMagazine > 0 && launcherIsReloading == false)
        {
            //Play Sound of rocket launcher shooting
            rocketSound.PlayOneShot(rocketShotClip);

            //Instantiate the Rocket prefab at the firepoint's gameObject position
            GameObject  rocketPrefab    = Instantiate(rocket, firePoint.position, firePoint.rotation);
            Rigidbody2D rocketRigidbody = rocketPrefab.GetComponent <Rigidbody2D>();
            rocketRigidbody.AddForce(firePoint.right * rocketForce, ForceMode2D.Impulse);

            //Set the rocket Color to black
            SpriteRenderer rocketSprite = rocketPrefab.GetComponent <SpriteRenderer>();
            rocketSprite.color = Color.black;

            rocketsInMagazine = 0;

            //Update bullet count on HUD
            AmmoDisplayBroker.CallUpdateAmmoOnHud(rocketsInMagazine, rocketsInMagazine); //totalRockets used to be "rocketsInMagazine". Because now the HUD shows 1/10 instead of 1/1 in the ammo counter. But it turns red on critical ammo. Which to keep?
            AmmoDisplayBroker.CallUpdateMagazinesOnStore(weaponIndex, currentRockets);
        }
        else
        {
            rocketSound.PlayOneShot(rocketEmptyClip);
        }
    }
Пример #3
0
    private IEnumerator reloadRocket()
    {
        if (currentRockets > 0)
        {
            // Play Sound of rocket launcher reloading
            rocketSound.PlayOneShot(rocketReloadClip);

            //call brokers method weapon is reloading
            ReloadWeaponBroker.CallWeaponIsReloading();

            yield return(new WaitForSecondsRealtime(rocketReloadSpeed));

            currentRockets--;
            launcherIsReloading = false;
            rocketsInMagazine   = 1;

            //Update bullet and magazines count on HUD
            AmmoDisplayBroker.CallUpdateAmmoOnHud(rocketsInMagazine, rocketsInMagazine);
            AmmoDisplayBroker.CallUpdateMagazinesOnHud(currentRockets);
            AmmoDisplayBroker.CallUpdateMagazinesOnStore(weaponIndex, currentRockets);

            ReloadWeaponBroker.CallWeaponFinishedReloading();
        }
        else
        {
            Debug.Log("NO AMMO LEFT. RUN !!!");

            ReloadWeaponBroker.CallWeaponFinishedReloading();
            AmmoDisplayBroker.CallUpdateMagazinesOnStore(weaponIndex, currentRockets);
        }
    }
Пример #4
0
    private IEnumerator ChangeMagazine()
    {
        if (currentMagazineCount > 0)
        {
            //Pistol reload SOUND
            pistolSound.PlayOneShot(pistolReloadClip);

            //Update the HUD to notify the player that the gun is reloading
            ReloadWeaponBroker.CallWeaponIsReloading();

            currentMagazineCount--;
            AmmoDisplayBroker.CallUpdateMagazinesOnStore(weaponIndex, currentMagazineCount);

            //Wait for reload time
            yield return(new WaitForSecondsRealtime(pistolReloadSpeed));

            pistolIsReloading = false;
            bulletsInMagazine = magazineSize;

            AmmoDisplayBroker.CallUpdateAmmoOnHud(bulletsInMagazine, magazineSize);
            AmmoDisplayBroker.CallUpdateMagazinesOnHud(currentMagazineCount);

            ReloadWeaponBroker.CallWeaponFinishedReloading();
        }
        else
        {
            Debug.Log("NO AMMO LEFT. RUN !!!");

            ReloadWeaponBroker.CallWeaponFinishedReloading();
            AmmoDisplayBroker.CallUpdateMagazinesOnStore(weaponIndex, currentMagazineCount);
        }
    }
Пример #5
0
    // Start is called before the first frame update
    void Start()
    {
        pistolSound = GetComponent <AudioSource>();

        bulletsInMagazine = magazineSize;

        //Update ammo and magazine count on HUD
        AmmoDisplayBroker.CallUpdateAmmoOnHud(bulletsInMagazine, magazineSize);
        AmmoDisplayBroker.CallUpdateMagazinesOnHud(currentMagazineCount);
        AmmoDisplayBroker.CallUpdateMagazinesOnStore(weaponIndex, currentMagazineCount);
    }
Пример #6
0
    //Update Ammo
    public void UpdateTotalMagazines(int magazine)
    {
        currentMagazineCount += magazine;

        if (currentMagazineCount > totalAllowedMagazines)
        {
            currentMagazineCount = totalAllowedMagazines;
        }

        //AmmoDisplayBroker.CallUpdateMagazinesOnHud(currentMagazineCount);
        AmmoDisplayBroker.CallUpdateMagazinesOnStore(weaponIndex, currentMagazineCount);
    }
Пример #7
0
    //Update Ammo
    public void UpdateTotalMagazines(int magazine)
    {
        currentRockets += magazine;

        if (currentRockets > totalAllowedRockets)
        {
            currentRockets = totalAllowedRockets;
        }

        //AmmoDisplayBroker.CallUpdateMagazinesOnHud(currentRockets);
        AmmoDisplayBroker.CallUpdateMagazinesOnStore(weaponIndex, currentRockets);
    }