Exemplo n.º 1
0
    public void KillMine()
    {
        GameConstants.Instance.NumberOfMines -= 1;

        if (mPlaySoundOnCollision)
        {
            int randomExplosion = Random.Range(0, 3);
            if (randomExplosion == 0)
            {
                AudioSystem.Instance.PlaySound("Explosion", 0.08f);
            }
            else if (randomExplosion == 1)
            {
                AudioSystem.Instance.PlaySound("Explosion01", 0.08f);
            }
            else
            {
                AudioSystem.Instance.PlaySound("Explosion02", 0.08f);
            }
        }

        GameObject explosion = PoolSystem.Instance.GetObjectFromPool(mExplosionVFX, argActivateObject: true, argShouldExpandPool: true, argShouldCreateNonExistingPool: true);

        explosion.transform.position = transform.position;

        DeactivateVFX explsoionVFXScript = explosion.GetComponent <DeactivateVFX>();

        explsoionVFXScript.WaitForDeactivation();

        gameObject.SetActive(false);
    }
Exemplo n.º 2
0
    public void OnTriggerEnter(Collider other)
    {
        if (other.name == "Player")
        {
            GameObject relicCollection = PoolSystem.Instance.GetObjectFromPool(mRelicCollectionVFX, argActivateObject: true, argShouldExpandPool: true, argShouldCreateNonExistingPool: true);
            relicCollection.transform.position = transform.position;

            DeactivateVFX relicCollectionVFXScript = relicCollection.GetComponent <DeactivateVFX>();
            relicCollectionVFXScript.WaitForDeactivation();

            PlayerHandler playerHandler = other.gameObject.GetComponent <PlayerHandler>();
            playerHandler.IncreaseCollectedRelicCount(1);

            Destroy(gameObject);
        }
    }
Exemplo n.º 3
0
    private void Update()
    {
        if (mEnergyBallGlideTimer < 1.0f)
        {
            CanGlideToPlayer    = false;
            mRigidbody.velocity = mGlideDirection;
            if (gameObject.transform.localScale.x < 0.3)
            {
                gameObject.transform.localScale = new Vector3(mEnergyBallGlideTimer, mEnergyBallGlideTimer, mEnergyBallGlideTimer);
            }
            mEnergyBallGlideTimer += Time.deltaTime * 0.2f;
        }
        else
        {
            CanGlideToPlayer    = true;
            mRigidbody.velocity = Vector3.zero;
        }

        if (GlideTowardsPlayer && CanGlideToPlayer)
        {
            Vector3 dirToPlayer = GameConstants.Instance.PlayerObject.transform.position - transform.position;
            mRigidbody.velocity = dirToPlayer.normalized * mSpeedToApproachPlayer;

            mSpeedToApproachPlayer += Time.deltaTime * 3;
        }

        if ((GameConstants.Instance.PlayerObject.transform.position - transform.position).magnitude <= 2.0f)
        {
            AudioSystem.Instance.PlaySound("Pickup", 0.1f);

            GameObject EnergyPopVFXObject = PoolSystem.Instance.GetObjectFromPool(EnergyPopVFX, argActivateObject: true, argShouldExpandPool: true, argShouldCreateNonExistingPool: true);
            EnergyPopVFXObject.transform.position = transform.position;

            DeactivateVFX EnergyPopVFXObjectScript = EnergyPopVFXObject.GetComponent <DeactivateVFX>();
            EnergyPopVFXObjectScript.WaitForDeactivation();

            //Give Player Energy
            PlayerHandler playerHandler = GameConstants.Instance.PlayerObject.GetComponent <PlayerHandler>();
            playerHandler.IncreaseScore((int)mEnergyToProvide);
            playerHandler.ChangePlayerEnergyBy(mEnergyToProvide);

            //Reset Energy Ball
            DeactivateEnergyBall();
        }
    }
Exemplo n.º 4
0
    public void KillProjectile()
    {
        if (mPlaySoundOnCollision)
        {
            int randomExplosion = Random.Range(0, 3);
            if (randomExplosion == 0)
            {
                AudioSystem.Instance.PlaySound("Explosion", 0.01f);
            }
            else if (randomExplosion == 1)
            {
                AudioSystem.Instance.PlaySound("Explosion01", 0.01f);
            }
            else
            {
                AudioSystem.Instance.PlaySound("Explosion02", 0.01f);
            }
        }

        GameObject explosion = PoolSystem.Instance.GetObjectFromPool(mProjectileExplosionEffect, argActivateObject: true, argShouldExpandPool: true, argShouldCreateNonExistingPool: true);

        explosion.transform.position = transform.position;

        DeactivateVFX explsoionVFXScript = explosion.GetComponent <DeactivateVFX>();

        explsoionVFXScript.WaitForDeactivation();

        gameObject.SetActive(false);

        mProjectileRigidbody.velocity = Vector3.zero;

        transform.position = Vector3.zero;
        mProjectileTarget  = null;

        mDamage = 0.0f;
        mSpeed  = 0.0f;
    }