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