Subversion Repositories AndroidProjects

Rev

Rev 99 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.gebauz.pingK.game;

import android.util.Log;

public class PowerUpEffect
{
        private GameLogic mGameLogic = null;
       
        private float mConcaveTime = 0.0f;
        private float mMosaicTime = 0.0f;
        private float mFlowerTime = 0.0f;
        private float mSlowMoTime = 0.0f;
        private int mCrystalActiveCount = 0;
       
        public PowerUpEffect(GameLogic gameLogic)
        {
                mGameLogic = gameLogic;
        }
       
        public void update(float deltaTime)
        {
                // PowerUpEffect should be unaffected by slo mo
                if (isSlowMoActive())
                        deltaTime /= GameConsts.POWERUP_SLOWMO_FACTOR;
               
                if (mConcaveTime >= 0.0f)
                        mConcaveTime -= deltaTime;
               
                if (mMosaicTime >= 0.0f)
                        mMosaicTime -= deltaTime;
               
                if (mFlowerTime >= 0.0f)
                        mFlowerTime -= deltaTime;
               
                if (mSlowMoTime >= 0.0f)
                        mSlowMoTime -= deltaTime;
               
                //Log.v(GameConsts.LOG_TAG, "ConcaveTime=" + mConcaveTime);
        }
       
        public void render()
        {
               
        }

        public boolean isConcaveActive()
        {
                return (mConcaveTime > 0.0f);
        }
       
        public void activateConcave()
        {
                mConcaveTime = GameConsts.POWERUP_CONCAVE_TIME;
        }
       
        public boolean isMosaicActive()
        {
                return (mMosaicTime > 0.0f);
        }
       
        public float getMoasicTime()
        {
                return mMosaicTime;
        }
       
        public boolean isMosaicFading()
        {
                if (mMosaicTime < GameConsts.POWERUP_MOSAIC_FADE_TIME)
                        return true;
                else if (mMosaicTime > (GameConsts.POWERUP_MOSAIC_TIME - GameConsts.POWERUP_MOSAIC_FADE_TIME))
                        return true;
               
                return false;
        }

        public void activateMosaic()
        {
                if (isMosaicActive())
                        mMosaicTime = GameConsts.POWERUP_MOSAIC_TIME - GameConsts.POWERUP_MOSAIC_FADE_TIME;
                else
                        mMosaicTime = GameConsts.POWERUP_MOSAIC_TIME;          
        }
       
        public boolean isFlowerActive()
        {
                return (mFlowerTime > 0.0f);
        }
       
        public boolean isFlowerFading()
        {
                if (mFlowerTime < GameConsts.POWERUP_FLOWER_TIME)
                        return true;
                else if (mFlowerTime > (GameConsts.POWERUP_FLOWER_TIME - GameConsts.POWERUP_FLOWER_FADE_TIME))
                        return true;
               
                return false;
        }
       
        public float getFlowerTime()
        {
                return mFlowerTime;
        }
       
        public void activateFlower()
        {
                if (isFlowerActive())
                        mFlowerTime = GameConsts.POWERUP_FLOWER_TIME - GameConsts.POWERUP_FLOWER_FADE_TIME;
                else
                        mFlowerTime = GameConsts.POWERUP_FLOWER_TIME;
        }
       
        public boolean isSlowMoActive()
        {
                return (mSlowMoTime > 0.0f);           
        }
       
        public void activateSlowMo()
        {
                mSlowMoTime = GameConsts.POWERUP_SLOWMO_TIME;
        }
       
        public boolean isCrystalActive()
        {
                return (mCrystalActiveCount > 0);
        }
       
        public void activateCrystal()
        {
                mCrystalActiveCount++;
        }
       
        public void deactivateCrystal()
        {
                mCrystalActiveCount--;
                if (mCrystalActiveCount < 0)
                        mCrystalActiveCount = 0;
        }
       
        public void activateBarrier(boolean horizontal)
        {
                // spawn a barrier
        }
       
}