public virtual void Init() { m_Scene = gameObject.GetComponentInParent(typeof(SubScene)) as SubScene; if (m_Scene == null) { throw new System.Exception("Object must be attached to a specific scene!"); } float speed = m_Scene.GetWorldSpeed(); SetWorldSpeed(speed); worldIndex = m_Scene.GetIndex(); LocalPowerUpManager localPowerUpManager = m_Scene.GetLocalPowerUpManager(); PowerUpManager.PowerUpEffect effect = m_Scene.GetLocalPowerUpManager().GetActivatedPowerUp(); ActionParams actionParams = localPowerUpManager.GetActionParams(); if (effect.Equals(PowerUpManager.PowerUpEffect.Speed)) { OnCollectedSpeed("", actionParams); } else if (effect.Equals(PowerUpManager.PowerUpEffect.Freeze)) { //Nothing is supposed to be created during freeze but just in case OnCollectedFreeze("", actionParams); } //mPowerUpHandler = PowerUpHandlerBase.powerUpDefaultHandler; //Listen to events m_Scene.GetEventManager().ListenToEvent(ApplicationConstants.EVENT_PLAYER_DIE_BY_HIT, OnGameOver); m_Scene.GetEventManager().ListenToEvent(ApplicationConstants.EVENT_PLAYER_COLLECTED_SPEED, OnCollectedSpeed); m_Scene.GetEventManager().ListenToEvent(ApplicationConstants.EVENT_PLAYER_COLLECTED_FREEZE, OnCollectedFreeze); }
internal void OnCollideWithEnemy() { if (_stateMachine.GetState().Equals(run)) { if (isShieldActive) { m_Scene.GetLocalPowerUpManager().DeactivateEffect(); isShieldActive = false; } else { PlayerEnterDieFromHitState(); } //CommonRequests.RequestGameOver(); } }