📄 level.java
字号:
s_player.process();
break;
case STATE_BOARD_FALL:
processPlayfield();
break;
case STATE_PRESS_OK:
// wait for user input
break;
case STATE_ACTIVE:
if(s_level_bar == 0 && checkBoard(BOARD_IDLE) && !extras() && ((s_player.m_state & Avatar.STATE_TONGUE_DRAG) == 0) && ((s_player.m_state & Avatar.STATE_TONGUE_FLICK) == 0)) {
s_level_bar = 0;
s_board_state |= (BOARD_LEVEL_COMPLETE);
s_player.setAnim(Anims.BIGGS_HOP_LEFT);
s_clock = 0;
//#if DefaultConfiguration || Nokia_6600 || Nokia_6600_Unobfuscated || Nokia_3220 || Nokia_3220_Unobfuscated || Razr
if((s_number + 1) % BG_ADVENTURE_DIVISOR == 0) {
s_state = STATE_JEWELS_INTRO;
}
else {
s_clock = 0;
s_state = STATE_OUTRO;
}
//s_state = STATE_JEWELS_INTRO;
//#else
//# if((s_number + 1) % BG_ADVENTURE_DIVISOR == 0) {
//# s_state = STATE_JEWELS_INTRO;
//# }
//# else {
//# s_clock = 0;
//# s_state = STATE_OUTRO;
//# }
//#endif
s_player.m_in_mouth = null;
Engine.playSound(Engine.SOUND_LEVEL_WIN);
}
else {
recountCreatures();
processTimers();
processPlayfield();
processExtras();
s_player.process();
processDescent();
}
break;
case STATE_JEWELS_INTRO:
processPlayfield();
if(s_clock >= TIME_JEWELS_INTRO && ((s_player.m_state & Avatar.STATE_TONGUE_DRAG) == 0) && ((s_player.m_state & Avatar.STATE_TONGUE_FLICK) == 0)) {
s_player.m_in_mouth = null;
s_player.setAnim(Anims.BIGGS_IDLE_LEFT);
s_coin_timer = 0;
s_jewel_column = s_player.m_board_x;
s_jewel_board_offset = (byte)(s_jewel_column < s_board[0].length / 2 ? 2 : -2);
int jewel_offset = Engine.getRandom(MIN_JEWEL_OFFSET);
for(int i = 0; i < MAX_EXTRAS; i++) {
dropBonusJewel(jewel_offset);
jewel_offset += Engine.getRandom(MIN_JEWEL_OFFSET, MAX_JEWEL_OFFSET);
}
s_state = STATE_JEWELS_ACTIVE;
}
else {
processExtras();
}
// jewel shower title effect
if (s_clock == TIME_JEWELS_INTRO/4) {
Engine.stringBufferClear();
Engine.stringBufferAppend(Locale.BONUS);
Particles.textEffect(Particles.TYPE_TEXT_SLIDE_LEFT, Particles.LAYER_HUD, Engine.SCREEN_HALF_WIDTH<<Engine.FP_SHIFT, (Engine.SCREEN_HALF_HEIGHT-Engine.CUSTOM_FONT_BIG_NEWLINE_HEIGHT)<<Engine.FP_SHIFT);
Engine.stringBufferClear();
Engine.stringBufferAppend(Locale.JEWELSHOWER);
Particles.textEffect(Particles.TYPE_TEXT_SLIDE_RIGHT, Particles.LAYER_HUD, Engine.SCREEN_HALF_WIDTH<<Engine.FP_SHIFT, Engine.SCREEN_HALF_HEIGHT<<Engine.FP_SHIFT);
}
break;
case STATE_JEWELS_ACTIVE:
processExtras();
s_player.process();
if(!extras() && s_player.m_in_mouth == null && ((s_player.m_state & Avatar.STATE_TONGUE_DRAG) == 0) && ((s_player.m_state & Avatar.STATE_TONGUE_FLICK) == 0)) {
s_player.setAnim(Anims.BIGGS_HOP_LEFT);
s_clock = 0;
s_state = STATE_OUTRO;
//tira smudreivsky - fixes win sound after jewel level
Engine.playSound(Engine.SOUND_LEVEL_WIN);
//<-
}
break;
case STATE_OUTRO:
processPlayfield();
if(s_clock >= TIME_LEVEL_OUTRO) {
flyBiggsOut();
}
break;
case STATE_BIGGS_FLY:
s_player.process();
if( ((s_player.m_state & Entity.STATE_ASCENDING) == 0) && s_clock >= TIME_BIGGS_EXIT ) {
setupScoreScreen();
}
break;
case STATE_SCORE:
s_player.process();
break;
case STATE_GAME_OVER:
if(s_clock == TIME_FAILED) {
Menus.startMenu(Menus.MENU_LOSE);
}
processPlayfield();
s_player.process();
break;
}
break;
case TYPE_PUZZLE:
switch(s_state) {
case STATE_INTRO:
s_state = STATE_BIGGS_FALL;
break;
case STATE_BIGGS_FALL:
s_player.process();
break;
case STATE_BOARD_FALL:
processPlayfield();
break;
case STATE_PRESS_OK:
// wait for user input
break;
case STATE_ACTIVE:
recountCreatures();
if(s_creature_count == 0 && s_player.m_in_mouth == null && !extras() && ((s_player.m_state & Avatar.STATE_TONGUE_DRAG) == 0) && ((s_player.m_state & Avatar.STATE_TONGUE_FLICK) == 0)) {
S_COMPLETED_PUZZLES[s_number] = true;
//Engine.saveGameToRecordStore();
s_state = STATE_OUTRO;
s_clock = 0;
s_board_state |= (BOARD_LEVEL_COMPLETE);
s_player.setAnim(Anims.BIGGS_HOP_LEFT);
Engine.playSound(Engine.SOUND_LEVEL_WIN);
}
else if(s_creature_count != 0 && !extras() && (s_level_bar == 0 || checkBoard(BOARD_BLOCKERS)) && checkBoard(BOARD_IDLE | BOARD_NOSPACES)) {
s_clock = 0;
s_board_state |= (BOARD_GAME_OVER);
s_state = STATE_GAME_OVER;
s_player.m_state |= Avatar.STATE_SCARED;
Engine.playSound(Engine.SOUND_LEVEL_LOSE);
// lose message
Engine.stringBufferClear();
Engine.stringBufferAppend(Locale.PUZZLE_LOSE_A);
Particles.textEffect(Particles.TYPE_TEXT_SLIDE_LEFT, Particles.LAYER_HUD, Engine.SCREEN_HALF_WIDTH<<Engine.FP_SHIFT, (Engine.SCREEN_HALF_HEIGHT-Engine.CUSTOM_FONT_BIG_NEWLINE_HEIGHT)<<Engine.FP_SHIFT);
Engine.stringBufferClear();
Engine.stringBufferAppend(Locale.PUZZLE_LOSE_B);
Particles.textEffect(Particles.TYPE_TEXT_SLIDE_RIGHT, Particles.LAYER_HUD, Engine.SCREEN_HALF_WIDTH<<Engine.FP_SHIFT, Engine.SCREEN_HALF_HEIGHT<<Engine.FP_SHIFT);
}
else {
processPlayfield();
processExtras();
s_player.process();
processDescent();
}
break;
case STATE_OUTRO:
if(s_clock < TIME_LEVEL_OUTRO) {
processPlayfield();
processExtras();
s_player.process();
}
else {
flyBiggsOut();
}
break;
case STATE_BIGGS_FLY:
s_player.process();
if( ((s_player.m_state & Entity.STATE_ASCENDING
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -