Subversion Repositories AndroidProjects

Rev

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

package com.gebauz.PonPonChun.game;

import com.gebauz.Bauzoid.gamestates.GameStateManager;
import com.gebauz.Bauzoid.parser.ScanException;
import com.gebauz.Bauzoid.parser.Tokenizer;
import com.gebauz.PonPonChun.game.entities.Block;

public class GameModeLogicTutorial extends GameModeLogic
{

        // Constants========================================================================================
       
        public static final int MAX_SPEED = 10;
        public static final int MAX_ROWS = 10;
        public static final int MIN_SPEED = 1;
        public static final int MIN_ROWS = 0;
        public static final int DEFAULT_SPEED = 1;
        public static final int DEFAULT_ROWS = 3;
       
        public static final int SPEEDUP_THRESHOLD = 1000;
        public static final float SPEEDUP_AMOUNT = 0.05f;
               
        // Embedded Types===================================================================================

        // Fields===========================================================================================
       
        private int mLastScore = 0;
        private int mBaseSpeedLevel = 1;
       
        private boolean mGameStopped = false;
       
        // Methods==========================================================================================
       
        public GameModeLogicTutorial(GameLogic gameLogic)
        {
                super(gameLogic, GameLogic.GameMode.TUTORIAL);
        }

        @Override
        public void init(String param)
        {
                mBlockRandomizer.addEntry(Block.TYPE_BLACK, 20);
                mBlockRandomizer.addEntry(Block.TYPE_WHITE, 20);
                mBlockRandomizer.addEntry(Block.TYPE_RED, 20);
                mBlockRandomizer.addEntry(Block.TYPE_GREEN, 20);
                mBlockRandomizer.addEntry(Block.TYPE_BLUE, 20);
                mBlockRandomizer.addEntry(Block.TYPE_YELLOW, 20);
                mBlockRandomizer.addEntry(Block.TYPE_BOMB, 15);
                mBlockRandomizer.addEntry(Block.TYPE_CRYSTAL, 10);
                mBlockRandomizer.addEntry(Block.TYPE_JOKER, 20);
                mBlockRandomizer.addEntry(Block.TYPE_CLOCK, 20);
                mBlockRandomizer.addEntry(Block.TYPE_CHERRY, 20);
                mBlockRandomizer.addEntry(Block.TYPE_BANANA, 15);
                mBlockRandomizer.addEntry(Block.TYPE_APPLE, 10);
                mBlockRandomizer.addEntry(Block.TYPE_GRAPES, 5);
               
                // interpret param for level/stage/speed
                int speed = 1;
                int rows = 3;
               
                randomizeInitialLevel(rows);
               
                mBaseSpeedLevel = speed;
               
                getGameLogic().getPlayField().loadPlayField(com.badlogic.gdx.Gdx.files.internal("data/levels/testcase07.txt"));
                getGameLogic().getPlayField().setAdvanceSpeed(SPEEDUP_AMOUNT * mBaseSpeedLevel);
                getGameLogic().getHeadsUpDisplay().getLabelB().getTextElement().setCaption(String.format("LV. %02d", mBaseSpeedLevel));
               
                mLastScore = 0;
               
                mGameStopped = true;
        }

        @Override
        public void exit()
        {
        }

        @Override
        public void update(float deltaTime)
        {
                // speed up at every SPEEDUP_THRESHOLD points
                int scoreDelta = getGameLogic().getScore() - mLastScore;
                if (scoreDelta > SPEEDUP_THRESHOLD)
                {
                        mLastScore += SPEEDUP_THRESHOLD;
                        mBaseSpeedLevel++;
                        getGameLogic().getPlayField().setAdvanceSpeed(SPEEDUP_AMOUNT * mBaseSpeedLevel);
                        getGameLogic().getHeadsUpDisplay().getLabelB().getTextElement().setCaption(String.format("LV. %02d", mBaseSpeedLevel));
                }
        }

        @Override
        public void render()
        {
                // TODO Auto-generated method stub

        }

        @Override
        public void restart()
        {
                GameStateManager gs = getGameLogic().getGameStateManager();
                gs.switchTo(gs.getCurrentState().getClass(), gs.getCurrentParam());
        }
       
        // Getters/Setters==================================================================================
       
        @Override
        public int getDifficulty() { return mBaseSpeedLevel; }
       
        @Override
        public boolean isGameStopped() { return mGameStopped; }
}