Esempio n. 1
0
    public bool FireGun(int directionX, bool topPosition)
    {
        if (PullTriggerReady())
        {
            lastShot = Time.time;

            if (HasAmmunition())
            {
                SoundManager.PlaySFX(gunStruct.gunShotSound);
                Bullet newBullet = Instantiate(gunStruct.bullet, muzzlePosition.position, muzzlePosition.rotation);
                newBullet.InitBullet(gunStruct.bulletSpeed, gunStruct.damageModifier, directionX);
                newBullet.transform.parent = EffectParent.GetInstance().transform;


                // Create empty shell
                ThrowShell(directionX, topPosition);

                // remove bullet from clip
                currentClip--;
                // remove bullet from inventory
                //Inventory.instance.bullets[gunStruct.bullet.bulletType]--;

                GuiController.GetInstance().RefreshBulletCount(currentClip, Inventory.GetInstance().bullets[gunStruct.bullet.bulletType]);
                return(true);
            }
            else
            {
                SoundManager.PlaySFX(gunStruct.gunEmptySound);
                return(false);
            }
        }
        return(false);
    }
Esempio n. 2
0
    private void CreateDestroyEffect()
    {
        GameObject explosionGO = Instantiate(destroyEffect, transform.position, transform.rotation);

        if (cart != null)
        {
            explosionGO.transform.localScale = new Vector3(cart.transform.localScale.x, cart.transform.localScale.y, cart.transform.localScale.z);
        }
        explosionGO.transform.parent = EffectParent.GetInstance().transform;

        GameObject textGO = Instantiate(textEffect, transform.position, transform.rotation);

        textGO.transform.parent = EffectParent.GetInstance().transform;
        TextMesh textMesh = textGO.GetComponentInChildren <TextMesh>();

        textMesh.text = "FOOBEAR";
    }
Esempio n. 3
0
    public override void DamageEvent()
    {
        // change sprite
        if (damageSprites.Length > damage)
        {
            spriteRenderer.sprite = damageSprites[damage];
            damage++;
        }
        // play sound
        SoundManager.PlaySFX(impactSound);
        // instanciate sparkEmitter

        GameObject go = Instantiate(impactEffect, transform.position, transform.rotation);

        go.transform.localScale = new Vector3(cart.transform.localScale.x, cart.transform.localScale.y, cart.transform.localScale.z);
        go.transform.parent     = EffectParent.GetInstance().transform;
    }
Esempio n. 4
0
    private void ThrowShell(int directionX, bool topPosition)
    {
        if (shellBounceArray != null && shellBounceArray.Length > 0)
        {
            int random = Random.Range(0, this.shellBounceArray.Length);

            GameObject shellBounceInstance = Instantiate(shellBounceArray[random].gameObject, transform.position, transform.rotation);
            Vector3    shellScale          = shellBounceInstance.transform.localScale;
            shellBounceInstance.transform.localScale = new Vector3(directionX * shellScale.x, shellScale.y, shellScale.z);
            shellBounceInstance.transform.parent     = EffectParent.GetInstance().transform;

            SpriteRenderer sr          = shellBounceInstance.GetComponent <SpriteRenderer>();
            Coordinates    coordinates = GameObject.FindObjectOfType <Coordinates>();
            if (shellBounceInstance.transform.position == coordinates.bottom.transform.position)
            {
                sr.sortingOrder = 4;
            }
        }
    }
Esempio n. 5
0
    public override void DestroyEvent()
    {
        SoundManager.PlaySFX(explosionSound);
        GameObject explosionGO = Instantiate(explosionEffect, transform.position, transform.rotation);

        if (cart != null)
        {
            explosionGO.transform.localScale = new Vector3(cart.transform.localScale.x, cart.transform.localScale.y, cart.transform.localScale.z);
        }
        explosionGO.transform.parent = EffectParent.GetInstance().transform;

        // shake Camera
        CameraShake.GetInstance().StartShake(.1f, .2f);

        if (Random.value < chanceLoot)
        {
            GameObject packageGO   = Instantiate(GameController.GetInstance().spawnObject, transform.position, transform.rotation);
            Package    lootPackage = packageGO.GetComponent <Package>();
            lootPackage.lootAmount = lootAmount;
        }

        Destroy(gameObject);
    }