package game; import com.mg.*; import com.engine.*; //import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.TextBox; import javax.microedition.lcdui.TextField; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Displayable; public class GameRuntime extends Thread implements GameConfig{ GameResource res = null; GameDisplay display = null; public GameRuntime() { } public void run() { long starttime = 0; long sleeptime = 0; while (!res.isend) { starttime = System.currentTimeMillis(); tick(); if (Runtime.getRuntime().freeMemory() < (Runtime.getRuntime().totalMemory() / 8)) { display.serviceRepaints(); System.gc(); } sleeptime = GameDisplay.RUN_STEP_TIME - (System.currentTimeMillis() - starttime); if (sleeptime > 0) { try { GameRuntime.sleep(sleeptime); } catch (Exception e) {} } } destroy(); } public void tick(){ switch (res.iState){ case STATE_LOGO_PAGE: tickLogoPage(); break; case STATE_GAME_PAGE: if (res.eventstring.equals("") && res.myStore.gameover==0) { tickGamePage(); // } else { // System.out.println("stop tick game "+res.eventstring); // System.out.println("stop tick game "+res.myStore.gameover); } break; default: } } public long tickgame = 0; public void tickGamePage() { // System.out.println("tick game&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"); tickgame++; res.myStore.runStore(res.gametime, res.gameday/360); if (tickgame*display.RUN_STEP_TIME>=1000) { // System.out.println("tick game "+res.gametime+"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"); res.gametime++; tickgame = 0; if (res.gametime>=30) {// && (res.gametime)%30==0) { boolean close = true; for (int i=0; i0) { res.switchPage(STATE_REPORT_PAGE); // } else { // } } } if (res.myStore.itemsold<0) { res.eventstring = res.myStore.myItem.ItemName[-res.myStore.itemsold]+" NO STOCK"; res.myStore.itemsold = 0; } } } public void tickLogoPage() { if (res.iTimer < 0) { res.iTimer = System.currentTimeMillis(); } else if (System.currentTimeMillis() - res.iTimer > 3 * 1000) { res.switchPage(STATE_TITLE_PAGE); } } // public void keyReleased(int inkeyCode) { // released = true; // } // boolean released = false; public void keyPressed(int inkeyCode) { int mgkeycode = display.getMGKeyCode(inkeyCode); if(!res.isProcessing){ res.isProcessing = true; switch (res.iState) { case STATE_TITLE_PAGE: res.switchPage(STATE_MENU_PAGE); break; case STATE_MENU_PAGE: handleMenuPage(mgkeycode); break; case STATE_CREDIT_PAGE: handleCreditPage(mgkeycode); break; case STATE_INSTRUCTION_PAGE: handleInstrPage(mgkeycode); break; case STATE_OPTION_PAGE: handleOptionPage(mgkeycode); break; case STATE_PAUSE_PAGE: handlePausePage(mgkeycode); break; case STATE_EXIT_ALERT: handleExitAlert(mgkeycode); break; case STATE_RANKING_PAGE: res.switchPage(STATE_MENU_PAGE); break; case STATE_GAME_PAGE: handleGamePage(mgkeycode); break; case STATE_BUY_PAGE: handleBuyPage(mgkeycode); break; // case STATE_ADJUST_PRICE: // case STATE_STAFF_PAGE: // case STATE_ARRANGE_EVENT: // case STATE_STATUS_PAGE: // case STATE_LOAN_PAGE: // case STATE_VIEW_MISSION: case STATE_SUBMENU_PAGE: handleSubmenuPage(mgkeycode); break; case STATE_SELECT_PARTNER: handleSelectPartner(mgkeycode); break; case STATE_SELECT_LEVEL: handleSelectLevel(mgkeycode); break; case STATE_MISSION_BRIEF: handleMissionBrief(mgkeycode); // res.switchPage(STATE_GAME_PAGE); break; case STATE_BUY_PHONE: handleBuyPhone(mgkeycode); break; case STATE_BUY_FACILITY: handleBuyFacility(mgkeycode); break; case STATE_STAFF_PAGE: handleStaffPage(mgkeycode); break; case STATE_STAFF_SALES: handleStaffSales(mgkeycode); break; case STATE_STAFF_PROMOTER: handleStaffPromoter(mgkeycode); break; case STATE_AD_PAGE: handleAdPage(mgkeycode); break; case STATE_STRATEGY_PAGE: handleStrategyPage(mgkeycode); break; case STATE_STATUS_PAGE: handleStatusPage(mgkeycode); break; case STATE_REPORT_PAGE: handleReportPage(mgkeycode); // res.switchPage(STATE_GAME_PAGE); break; case STATE_STATUS_INFO: handleStatusInfo(mgkeycode); break; case STATE_STATUS_SALE: handleStatusSale(mgkeycode); // res.switchPage(STATE_STATUS_PAGE); break; case STATE_STATUS_STOCK: handleStatusStock(mgkeycode); break; case STATE_MANAGE_PAGE: handleManagePage(mgkeycode); break; case STATE_EVENT_PAGE: handleEventPage(mgkeycode); break; case STATE_RANKING_SALE: res.switchPage(STATE_MANAGE_PAGE); break; case STATE_PRESET_SOUND: handelPresetSound(mgkeycode); break; } res.isProcessing = false; } } public void handelPresetSound(int keyCode) { if (keyCode == GameDisplay.MG_LEFT || keyCode == GameDisplay.MG_KEY_NUM4) { res.bEffect=0; } else if (keyCode == GameDisplay.MG_RIGHT || keyCode == GameDisplay.MG_KEY_NUM6) { res.bEffect=1; } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { // System.out.println("abc111"); res.switchPage(STATE_LOGO_PAGE); } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { //// System.out.println("abc222"); res.bEffect=0; res.switchPage(STATE_LOGO_PAGE); } } public void handleReportPage(int keyCode) { if (res.myStore.gameover==1) { res.eventstring = ""; res.levelpass[res.levelindex] = 1; System.out.println("level pass "+res.levelindex); res.levelindex++; if (res.levelindex=display.dialog_length-display.dialog_displayheight) { res.scroll=display.dialog_length - display.dialog_displayheight; } } else if (keyCode == GameDisplay.MG_LEFT || keyCode == GameDisplay.MG_KEY_NUM4) { res.scroll = 0; res.menuindex--; if (res.menuindex<0) { res.menuindex = 0; } } else if (keyCode == GameDisplay.MG_RIGHT || keyCode == GameDisplay.MG_KEY_NUM6) { res.scroll = 0; res.menuindex++; if (res.menuindex>=res.displaystring.length) { res.menuindex = res.displaystring.length-1; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { // System.out.println("abc111"); res.switchPage(STATE_MANAGE_PAGE); } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { // System.out.println("abc222"); res.switchPage(STATE_MANAGE_PAGE); } } public void handleStatusInfo(int keyCode) { if (keyCode == GameDisplay.MG_LEFT || keyCode == GameDisplay.MG_KEY_NUM4) { res.switchPage(STATE_STATUS_STOCK); } else if (keyCode == GameDisplay.MG_RIGHT || keyCode == GameDisplay.MG_KEY_NUM6) { res.switchPage(STATE_STATUS_SALE); } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { // System.out.println("abc111"); res.switchPage(STATE_STATUS_PAGE); } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { // System.out.println("abc222"); res.switchPage(STATE_STATUS_PAGE); } } public void handleStatusSale(int keyCode) { if (keyCode == GameDisplay.MG_LEFT || keyCode == GameDisplay.MG_KEY_NUM4) { res.switchPage(STATE_STATUS_INFO); } else if (keyCode == GameDisplay.MG_RIGHT || keyCode == GameDisplay.MG_KEY_NUM6) { res.switchPage(STATE_STATUS_STOCK); } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { // System.out.println("abc111"); res.switchPage(STATE_STATUS_PAGE); } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { // System.out.println("abc222"); res.switchPage(STATE_STATUS_PAGE); } } public void handleStatusStock(int keyCode) { // System.out.println("abc"); if (keyCode == GameDisplay.MG_UP || keyCode == GameDisplay.MG_KEY_NUM2) { // display.pressDialogUp(); res.scroll--; if (res.scroll<0) { res.scroll = 0; } } else if (keyCode == GameDisplay.MG_DOWN || keyCode == GameDisplay.MG_KEY_NUM8) { // display.pressDialogDown(); res.scroll++; if (res.table_displaylength>res.itemid.length || res.scroll>res.table_length-res.table_displaylength) { // if (res.scroll>res.table_length-res.table_displaylength) { res.scroll--; } } else if (keyCode == GameDisplay.MG_LEFT || keyCode == GameDisplay.MG_KEY_NUM4) { res.switchPage(STATE_STATUS_SALE); } else if (keyCode == GameDisplay.MG_RIGHT || keyCode == GameDisplay.MG_KEY_NUM6) { res.switchPage(STATE_STATUS_INFO); } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { // System.out.println("abc111"); res.switchPage(STATE_STATUS_PAGE); } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { // System.out.println("abc222"); res.switchPage(STATE_STATUS_PAGE); } } public void handleMissionBrief(int keyCode) { if (keyCode == GameDisplay.MG_UP || keyCode == GameDisplay.MG_KEY_NUM2) { display.pressDialogUp(); res.scroll--; if (res.scroll<0) { res.scroll = 0; } } else if (keyCode == GameDisplay.MG_DOWN || keyCode == GameDisplay.MG_KEY_NUM8) { display.pressDialogDown(); res.scroll++; if (res.scroll>=display.dialog_length-display.dialog_displayheight) { res.scroll=display.dialog_length - display.dialog_displayheight; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { res.switchPage(STATE_GAME_PAGE); } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { res.switchPage(STATE_SELECT_LEVEL); } } public void handleStatusPage(int keyCode) { if (keyCode == GameDisplay.MG_UP || keyCode == GameDisplay.MG_KEY_NUM2) { res.menuindex--; if (res.menuindex<0) { res.menuindex = 0; } } else if (keyCode == GameDisplay.MG_DOWN || keyCode == GameDisplay.MG_KEY_NUM8) { res.menuindex++; if (res.menuindex>=res.statusoption.length) { res.menuindex = res.statusoption.length-1; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { switch(res.menuindex) { case STATUS_SALE: res.switchPage(STATE_STATUS_SALE); break; case STATUS_STOCK: res.switchPage(STATE_STATUS_STOCK); break; case STATUS_INFO: res.switchPage(STATE_STATUS_INFO); break; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { res.switchPage(STATE_MANAGE_PAGE); } } public void handleStrategyPage(int keyCode) { if (keyCode == GameDisplay.MG_UP || keyCode == GameDisplay.MG_KEY_NUM2) { res.menuindex = 0; } else if (keyCode == GameDisplay.MG_DOWN || keyCode == GameDisplay.MG_KEY_NUM8) { if (res.myStore.myStaff.trainid<0) { res.menuindex = 1; } } else if (keyCode == GameDisplay.MG_LEFT || keyCode == GameDisplay.MG_KEY_NUM4) { if (res.menuindex==0) { res.selectindex[0]--; if (res.selectindex[0]<0) { res.selectindex[0] = res.myStore.STRATEGY_NAME.length-1; } } else if (res.menuindex==1) { // if (res.myStore.myStaff.trainid<0) { res.selectindex[1]--; if (res.selectindex[1]<0) { res.selectindex[1] = res.myStore.myStaff.STAFF_TRAINING_NAME.length; } // } } } else if (keyCode == GameDisplay.MG_RIGHT || keyCode == GameDisplay.MG_KEY_NUM6) { if (res.menuindex==0) { res.selectindex[0]++; if (res.selectindex[0]>=res.myStore.STRATEGY_NAME.length) { res.selectindex[0] = 0; } } else if (res.menuindex==1) { // if (res.myStore.myStaff.trainid<0) { res.selectindex[1]++; if (res.selectindex[1]>res.myStore.myStaff.STAFF_TRAINING_NAME.length) { res.selectindex[1] = 0;//res.myStore.myStaff.STAFF_TRAINING_NAME.length; } // } } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { if (res.selectindex[0]!=res.myStore.strategyid) { res.myStore.setStrategy(res.selectindex[0]); } if (res.selectindex[1]-1!=res.myStore.myStaff.trainid) { // int[] sale = res.myStore.myStaff.getStaffbyType(STAFFTYPE_SALES, false); res.myStore.trainStaff(res.selectindex[1]-1, res.gameday); // System.out.println("train "+(res.selectindex[1]-1)); } res.switchPage(STATE_MANAGE_PAGE); // if (res.selectindex>res.myStore.myStaff.trainid<0) { // res.myStore.myStaff.trainStaff() // } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { res.switchPage(STATE_MANAGE_PAGE); } } public void handleAdPage(int keyCode) { if (keyCode == GameDisplay.MG_UP || keyCode == GameDisplay.MG_KEY_NUM2) { if (res.confirmstring.equals("")) { res.menuindex--; if (res.menuindex<0) { res.menuindex = 0; } } else { res.confirmindex = 0; } } else if (keyCode == GameDisplay.MG_DOWN || keyCode == GameDisplay.MG_KEY_NUM8) { if (res.confirmstring.equals("")) { res.menuindex++; if (res.menuindex>=res.itemid.length) { res.menuindex = res.itemid.length-1; } } else { res.confirmindex = 1; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { // for (int i=0; i=res.itemid.length) { res.menuindex = res.itemid.length-1; } } else { res.confirmindex = 1; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { int[] hired = res.myStore.myStaff.getStaffbyType(STAFFTYPE_PROMOTER, false); if (res.confirmstring.equals("")) { if (res.myStore.myStaff.StaffAttribute[res.itemid[res.menuindex]][FirmConfig.STAFF_HIRED]>=0) { res.confirmstring = "是否解僱員工?"; // if (hired!=null && hired.length>0) { // System.out.println("abcabc"); // // if (hired[0]==res.itemid[res.menuindex]) { // res.confirmstring = "是否解僱員工?"; // return; // } // // res.confirmstring = "是否聘用這人並解僱目前員工?"; } else { // System.out.println("abc123"); if (hired==null) { res.confirmstring = "是否聘用這人?"; } else { res.confirmstring = "是否聘用這人並解僱目前員工?"; } // res.confirmstring = "是否聘用這人?"; } } else { if (res.confirmindex==0) { if (res.confirmstring.equals("是否解僱員工?")) { res.myStore.fireStaff(hired[0]); } else if (res.confirmstring.equals("是否聘用這人?")) { res.myStore.hireStaff(res.itemid[res.menuindex], res.gameday); } else { res.myStore.fireStaff(hired[0]); res.myStore.hireStaff(res.itemid[res.menuindex], res.gameday); } } res.confirmstring = ""; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { if (res.confirmstring.equals("")) { res.switchPage(STATE_STAFF_PAGE); } else { res.confirmstring = ""; } } } public void handleStaffSales(int keyCode) { if (keyCode == GameDisplay.MG_LEFT || keyCode == GameDisplay.MG_KEY_NUM4) { if (res.confirmstring.equals("")) { res.menuindex--; if (res.menuindex<0) { res.menuindex = 0; } } else { res.confirmindex = 0; } } else if (keyCode == GameDisplay.MG_RIGHT || keyCode == GameDisplay.MG_KEY_NUM6) { if (res.confirmstring.equals("")) { res.menuindex++; if (res.menuindex>=res.itemid.length) { res.menuindex = res.itemid.length-1; } } else { res.confirmindex = 1; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { if (res.confirmstring.equals("")) { if (res.myStore.myStaff.StaffAttribute[res.itemid[res.menuindex]][FirmConfig.STAFF_HIRED]>=0) { res.confirmstring = "是否解僱員工?"; } else { int[] hired = res.myStore.myStaff.getStaffbyType(STAFFTYPE_SALES, false); if (hired.length<3) { res.confirmstring = "是否聘用這人?"; } } // if (hired!=null && hired.length>0) { // for (int i=0; i=res.staffoption.length) { res.menuindex = res.staffoption.length-1; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { switch(res.menuindex) { case STAFF_SALES: res.switchPage(STATE_STAFF_SALES); break; case STAFF_PROMOTER: res.switchPage(STATE_STAFF_PROMOTER); break; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { res.switchPage(STATE_MANAGE_PAGE); } } public void handleBuyFacility(int keyCode) { if ((keyCode == GameDisplay.MG_UP || keyCode == GameDisplay.MG_KEY_NUM2) && res.confirmstring.equals("")) { res.menuindex--; if (res.menuindex<0) { res.menuindex = 0; } } else if ((keyCode == GameDisplay.MG_DOWN || keyCode == GameDisplay.MG_KEY_NUM8) && res.confirmstring.equals("")) { res.menuindex++; if (res.menuindex>=res.itemid2.length) { res.menuindex = res.itemid2.length-1; } } else if ((keyCode == GameDisplay.MG_LEFT || keyCode == GameDisplay.MG_KEY_NUM4) && !res.confirmstring.equals("")) { res.confirmindex = 0; } else if ((keyCode == GameDisplay.MG_RIGHT || keyCode == GameDisplay.MG_KEY_NUM6) && !res.confirmstring.equals("")) { res.confirmindex = 1; } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { // for (int i=0; ires.myStore.money) { res.confirmstring = "金錢不足!"; } else { res.confirmstring = "總值:$"+price+"要購入嗎?"; } } else { if (res.confirmindex==0 && !res.confirmstring.equals("金錢不足!")) { res.myStore.puchaseFacility(res.itemid2[res.menuindex][res.itemindex[res.menuindex]]); res.updateFacility(); } res.confirmstring = ""; } } // switch(res.itemid[res.menuindex]) { // case FACILITY_START: // res.decolevel[DECORATION_PC] = 0; // break; // case FACILITY_START+1: // res.decolevel[DECORATION_PC] = 1; // break; // case FACILITY_START+2: // res.decolevel[DECORATION_LAMP] = 0; // break; // case FACILITY_START+3: // res.decolevel[DECORATION_LAMP] = 1; // break; // case FACILITY_START+4: // res.decolevel[DECORATION_LAMP] = 2; // break; // case FACILITY_START+5: // res.decolevel[DECORATION_TV] = 0; // break; // case FACILITY_START+6: // res.decolevel[DECORATION_TV] = 1; // break; // case FACILITY_START+7: // if (res.decolevel[DECORATION_POSTER]==1) { // res.decolevel[DECORATION_POSTER] = 2; // } else { // res.decolevel[DECORATION_POSTER] = 0; // } // break; // case FACILITY_START+8: // if (res.decolevel[DECORATION_POSTER]==0) { // res.decolevel[DECORATION_POSTER] = 2; // } else { // res.decolevel[DECORATION_POSTER] = 1; // } // break; // case FACILITY_START+9: // res.decolevel[DECORATION_SHELF] = 0; // break; // case FACILITY_START+10: // res.decolevel[DECORATION_SHELF] = 1; // break; // case FACILITY_START+11: // res.decolevel[DECORATION_SHELF] = 2; // break; // // } // } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { if (res.confirmstring.equals("")) { res.switchPage(STATE_BUY_PAGE); } else { res.confirmstring = ""; } } } public void handleBuyPhone(int keyCode) { // System.out.println("price~~~~~~~~~~~~~~~~~~~"+res.myStore.myItem.ItemAttribute[res.itemid[res.menuindex]][FirmConfig.ITEM_OUTPRICE]); // released = false; if (keyCode == GameDisplay.MG_LEFT || keyCode == GameDisplay.MG_KEY_NUM4) { // res.playSound(res.SOUND_CLICK,1); if (res.confirmstring.equals("")) { res.purchasenumber[res.menuindex]--; if (res.purchasenumber[res.menuindex]<0) { res.purchasenumber[res.menuindex] = 0; } else { res.totalcost-=res.myStore.myItem.ItemAttribute[res.itemid[res.menuindex]][FirmConfig.ITEM_INPRICE]; } } else { res.confirmindex = 0; } } else if (keyCode == GameDisplay.MG_RIGHT || keyCode == GameDisplay.MG_KEY_NUM6) { // res.playSound(res.SOUND_CLICK,1); if (res.confirmstring.equals("")) { res.purchasenumber[res.menuindex]++; if (res.purchasenumber[res.menuindex]>99) { res.purchasenumber[res.menuindex] = 99; } else { res.totalcost+=res.myStore.myItem.ItemAttribute[res.itemid[res.menuindex]][FirmConfig.ITEM_INPRICE]; } } else { res.confirmindex = 1; } } else if (keyCode == GameDisplay.MG_UP || keyCode == GameDisplay.MG_KEY_NUM2) { res.menuindex--; if (res.menuindex<0) { res.menuindex = 0; } } else if (keyCode == GameDisplay.MG_DOWN || keyCode == GameDisplay.MG_KEY_NUM8) { res.menuindex++; if (res.menuindex>=res.purchasenumber.length) { res.menuindex = res.purchasenumber.length-1; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { if (res.confirmstring.equals("")) { if (res.totalcost>res.myStore.money) { res.confirmstring = "金錢不足!"; } else if (res.totalcost>0) { res.confirmstring = "總值:$"+res.totalcost+"要購入嗎?"; } } else { if (res.confirmindex==0 && !res.confirmstring.equals("金錢不足!")) { for (int i=0; i0) { int itemnum = res.myStore.myItem.ItemAttribute[res.itemid[i]][FirmConfig.ITEM_PURCHASED] +res.myStore.myItem.ItemAttribute[res.itemid[i]][FirmConfig.ITEM_SOLD]; res.myStore.purchaseItem(res.itemid[i], res.purchasenumber[i]); // System.out.println(itemnum+"/"+(itemnum+res.purchasenumber[i])); if (itemnum/10<(itemnum+res.purchasenumber[i])/10) { res.myStore.myItem.IncrItemInprice(res.itemid[i], -5); } res.purchasenumber[i] = 0; res.totalcost = 0; } } } res.confirmstring = ""; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { if (res.confirmstring.equals("")) { res.switchPage(STATE_BUY_PAGE); } else { res.confirmstring = ""; } } } public void handleBuyPage(int keyCode) { if (keyCode == GameDisplay.MG_UP || keyCode == GameDisplay.MG_KEY_NUM2) { // res.playSound(res.SOUND_CLICK,1); res.menuindex--; if (res.menuindex<0) { res.menuindex = res.buyoption.length-1; } } else if (keyCode == GameDisplay.MG_DOWN || keyCode == GameDisplay.MG_KEY_NUM8) { // res.playSound(res.SOUND_CLICK,1); res.menuindex++; if (res.menuindex>=res.buyoption.length) { res.menuindex = 0; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { switch(res.menuindex) { case BUY_PHONE: res.switchPage(STATE_BUY_PHONE); break; case BUY_FACILITY: res.switchPage(STATE_BUY_FACILITY); break; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { res.switchPage(STATE_MANAGE_PAGE); } } public void handleExitAlert(int keyCode) { if (keyCode == GameDisplay.MG_LEFT || keyCode == GameDisplay.MG_KEY_NUM4) { // res.playSound(res.SOUND_CLICK,1); // res.menuindex--; // if (res.menuindex<0) { // res.menuindex = 1; // } res.confirmindex = 0; } else if (keyCode == GameDisplay.MG_RIGHT || keyCode == GameDisplay.MG_KEY_NUM6) { // res.playSound(res.SOUND_CLICK,1); // res.menuindex++; // if (res.menuindex>1) { // res.menuindex = 0; // } res.confirmindex = 1; } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { // res.playSound(res.SOUND_CONFIRM,1); if (res.confirmindex==0) { destroy(); } else { res.switchPage(res.lastState); } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { // res.playSound(res.SOUND_CANCEL,1); res.switchPage(res.lastState); } } public void handleCreditPage(int keyCode) { if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3 || keyCode == GameDisplay.MG_KEY_SOFTKEY2) { // res.playSound(res.SOUND_CONFIRM,1); res.switchPage(STATE_MENU_PAGE); } else if (keyCode == GameDisplay.MG_LEFT || keyCode == GameDisplay.MG_KEY_NUM4 || keyCode == GameDisplay.MG_RIGHT || keyCode == GameDisplay.MG_KEY_NUM6) { // res.playSound(res.SOUND_CLICK,1); res.switchPage(STATE_INSTRUCTION_PAGE); } else if (keyCode == GameDisplay.MG_UP || keyCode == GameDisplay.MG_KEY_NUM2) { display.pressDialogUp(); res.scroll--; if (res.scroll<0) { res.scroll = 0; } } else if (keyCode == GameDisplay.MG_DOWN || keyCode == GameDisplay.MG_KEY_NUM8) { display.pressDialogDown(); res.scroll++; if (res.scroll>=display.dialog_length-display.dialog_displayheight) { res.scroll=display.dialog_length - display.dialog_displayheight; } } } public void handleInstrPage(int keyCode) { if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3 || keyCode == GameDisplay.MG_KEY_SOFTKEY2) { // res.playSound(res.SOUND_CONFIRM,1); res.switchPage(STATE_MENU_PAGE); } else if (keyCode == GameDisplay.MG_LEFT || keyCode == GameDisplay.MG_KEY_NUM4 || keyCode == GameDisplay.MG_RIGHT || keyCode == GameDisplay.MG_KEY_NUM6) { // res.playSound(res.SOUND_CLICK,1); res.switchPage(STATE_CREDIT_PAGE); } else if (keyCode == GameDisplay.MG_UP || keyCode == GameDisplay.MG_KEY_NUM2) { display.pressDialogUp(); res.scroll--; if (res.scroll<0) { res.scroll = 0; } } else if (keyCode == GameDisplay.MG_DOWN || keyCode == GameDisplay.MG_KEY_NUM8) { display.pressDialogDown(); res.scroll++; if (res.scroll>=display.dialog_length-display.dialog_displayheight) { res.scroll=display.dialog_length - display.dialog_displayheight; } } } public void handleOptionPage(int keyCode) { if (keyCode == GameDisplay.MG_LEFT || keyCode == GameDisplay.MG_KEY_NUM4) { // res.playSound(res.SOUND_CONFIRM,1); res.bEffect=0; // if (res.bEffect<0) { // res.bEffect = 0; // } } else if (keyCode == GameDisplay.MG_RIGHT || keyCode == GameDisplay.MG_KEY_NUM6) { // res.playSound(res.SOUND_CONFIRM,1); res.bEffect=1; // if (res.bEffect>5) { // res.bEffect = 5; // } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { // res.playSound(res.SOUND_CONFIRM,1); res.switchPage(res.lastState); }else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2){ // res.playSound(res.SOUND_CANCEL,1); res.switchPage(res.lastState); } } public void handleSelectLevel(int keyCode) { if (keyCode == GameDisplay.MG_UP || keyCode == GameDisplay.MG_KEY_NUM2) { // display.pressDialogUp(); if (res.missionmode) { if (res.menuindex<=res.scroll) { res.scroll--; if (res.scroll<0) { res.scroll = 0; } } } res.menuindex--; if (res.menuindex<0) { res.menuindex = 0; } } else if (keyCode == GameDisplay.MG_DOWN || keyCode == GameDisplay.MG_KEY_NUM8) { // display.pressDialogDown(); if (res.missionmode) { if (res.menuindex>=res.table_displaylength-1) { res.scroll++; if (res.scroll>res.table_length-res.table_displaylength) { // if (res.scroll>res.table_length-res.table_displaylength) { res.scroll=res.table_length-res.table_displaylength; } // else { // res.scroll = 0; // // } } res.menuindex++; if (res.menuindex>=res.leveldescription.length) { res.menuindex = res.leveldescription.length-1; } } else { res.menuindex++; if (res.menuindex>=res.locationstring.length) { res.menuindex = res.locationstring.length-1; } } } // if (keyCode == GameDisplay.MG_LEFT || keyCode == GameDisplay.MG_KEY_NUM4) { //// res.playSound(res.SOUND_CLICK,1); // // } // else if (keyCode == GameDisplay.MG_RIGHT || keyCode == GameDisplay.MG_KEY_NUM6) { //// res.playSound(res.SOUND_CLICK,1); // // } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { res.levelindex = res.menuindex; if (res.missionmode) { res.myStore.initStore(res.levelindex); res.gameday = res.LEVEL_START_TIME[res.levelindex]; res.myStore.myEvent.eventlasttime = res.gameday; //for test // res.myStore.hireStaff(0, 0); res.switchPage(STATE_MISSION_BRIEF); } else { res.switchPage(STATE_SUBMENU_PAGE); // res.levelindex = -1; // res.myStore.initStore(res.menuindex, 5, 5, 10, 20, 30000); // res.gameday = 0; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { // if (res.missionmode) { // int[] staff = res.myStore.myStaff.getHiredStaff(); // res.myStore.fireStaff(staff[0]); // res.switchPage(STATE_SELECT_PARTNER); // } else { res.switchPage(STATE_MENU_PAGE); // } } // System.out.println(res.menuindex+"/"+res.scroll); } public void handleSelectPartner(int keyCode) { if (keyCode == GameDisplay.MG_LEFT || keyCode == GameDisplay.MG_KEY_NUM4) { // res.playSound(res.SOUND_CLICK,1); res.menuindex--; if (res.menuindex<0) { res.menuindex = res.itemid.length-1; } } else if (keyCode == GameDisplay.MG_RIGHT || keyCode == GameDisplay.MG_KEY_NUM6) { // res.playSound(res.SOUND_CLICK,1); res.menuindex++; if (res.menuindex>=res.itemid.length) { res.menuindex = 0; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { //hire partner res.myStore.hireStaff(res.itemid[res.menuindex], 0); if (res.missionmode) { res.switchPage(STATE_SELECT_LEVEL); } else { res.switchPage(STATE_GAME_PAGE); } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { res.switchPage(STATE_SUBMENU_PAGE); } } public void handleSubmenuPage(int keyCode) { if (keyCode == GameDisplay.MG_UP || keyCode == GameDisplay.MG_KEY_NUM2) { // res.playSound(res.SOUND_CLICK,1); res.menuindex--; if (res.menuindex<0) { res.menuindex = res.submenuoption.length-1; } } else if (keyCode == GameDisplay.MG_DOWN || keyCode == GameDisplay.MG_KEY_NUM8) { // res.playSound(res.SOUND_CLICK,1); res.menuindex++; if (res.menuindex>=res.submenuoption.length) { res.menuindex = 0; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { // res.playSound(res.SOUND_CONFIRM,1); switch(res.menuindex) { case SMENU_NEW_GAME: // res.newgame = true; res.initGame(); if (res.missionmode) { } else { res.myStore.initStore(res.levelindex, 5, 5, 5, 20, 30000); // res.myStore.hireStaff(0, 0); res.levelindex = -1; res.gameday = 0; res.myStore.myEvent.eventlasttime = res.gameday; // res.switchPage(STATE_SELECT_); } res.switchPage(STATE_SELECT_PARTNER); break; case SMENU_LOAD_GAME: res.initGame(); res.loadGame(); // res.newgame = false; res.switchPage(STATE_GAME_PAGE); break; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { if (!res.missionmode) { res.switchPage(STATE_SELECT_LEVEL); } else { res.switchPage(STATE_MENU_PAGE); } } } public void handleManagePage(int keyCode) { if (keyCode == GameDisplay.MG_UP || keyCode == GameDisplay.MG_KEY_NUM2) { // res.playSound(res.SOUND_CLICK,1); res.menuindex--; if (res.menuindex<0) { res.menuindex = res.manageoption.length-1; } } else if (keyCode == GameDisplay.MG_DOWN || keyCode == GameDisplay.MG_KEY_NUM8) { // res.playSound(res.SOUND_CLICK,1); res.menuindex++; if (res.menuindex>=res.manageoption.length) { res.menuindex = 0; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { switch(res.menuindex) { case MANAGE_BUY: res.switchPage(STATE_BUY_PAGE); break; // case MANAGE_PRICE: // res.switchPage(STATE_ADJUST_PRICE); // break; case MANAGE_STAFF: res.switchPage(STATE_STAFF_PAGE); break; case MANAGE_AD: res.switchPage(STATE_AD_PAGE); break; case MANAGE_STATUS: res.switchPage(STATE_STATUS_PAGE); break; case MANAGE_STRATEGY: res.switchPage(STATE_STRATEGY_PAGE); break; case MANAGE_EVENT: res.switchPage(STATE_EVENT_PAGE); break; case MANAGE_RANK: res.switchPage(STATE_RANKING_SALE); break; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { res.switchPage(STATE_GAME_PAGE); } } public void handleGamePage(int keyCode) { if (res.eventstring.equals("")) { if (res.myStore.gameover==1) { // res.eventstring = ""; res.levelpass[res.levelindex] = 1; System.out.println("level pass "+res.levelindex); res.levelindex++; if (res.levelindex=res.manageoption.length) { // res.menuindex = 0; // } // } // else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { res.switchPage(STATE_MANAGE_PAGE); // res.playSound(res.SOUND_CONFIRM,1); } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { // res.playSound(res.SOUND_CANCEL,1); res.switchPage(GameResource.STATE_PAUSE_PAGE); } } else { res.eventstring = ""; // if (res.myStore.gameover==1) { // // res.levelindex++; // if (res.levelindex=0) { //// res.eventstring = res.myStore.myEvent.EventName[res.event[1]]; //// } else { // res.eventstring = ""; //// } // } } } public void handleMenuPage(int keyCode) { if (keyCode == GameDisplay.MG_UP || keyCode == GameDisplay.MG_KEY_NUM2) { // res.playSound(res.SOUND_CLICK,1); res.menuindex--; if (res.menuindex<0) { res.menuindex = res.menuoption.length-1; } } else if (keyCode == GameDisplay.MG_DOWN || keyCode == GameDisplay.MG_KEY_NUM8) { // res.playSound(res.SOUND_CLICK,1); res.menuindex++; if (res.menuindex>=res.menuoption.length) { res.menuindex = 0; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { // res.playSound(res.SOUND_CONFIRM,1); switch(res.menuindex) { case MENU_MISSION_GAME: res.missionmode = true; res.switchPage(STATE_SUBMENU_PAGE); break; case MENU_FREE_GAME: res.missionmode = false; res.switchPage(STATE_SELECT_LEVEL); break; case MENU_INSTRUCTION: res.switchPage(STATE_INSTRUCTION_PAGE); break; // case MENU_RANKING: // res.switchPage(STATE_RANKING_PAGE); // break; case MENU_OPTION: res.switchPage(STATE_OPTION_PAGE); break; case MENU_QUIT: res.switchPage(STATE_EXIT_ALERT); break; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { // res.playSound(res.SOUND_CANCEL,1); res.switchPage(GameResource.STATE_EXIT_ALERT); } } public void handlePausePage(int keyCode) { if (keyCode == GameDisplay.MG_UP || keyCode == GameDisplay.MG_KEY_NUM2) { // res.playSound(res.SOUND_CLICK,1); res.menuindex--; if (res.menuindex<0) { res.menuindex = res.pauseoption.length-1; } } else if (keyCode == GameDisplay.MG_DOWN || keyCode == GameDisplay.MG_KEY_NUM8) { // res.playSound(res.SOUND_CLICK,1); res.menuindex++; if (res.menuindex>=res.pauseoption.length) { res.menuindex = 0; } } else if (keyCode == GameDisplay.MG_KEY_SOFTKEY1 || keyCode == GameDisplay.MG_KEY_NUM5 || keyCode == GameDisplay.MG_FIRE || keyCode == GameDisplay.MG_KEY_SOFTKEY3) { // res.playSound(res.SOUND_CONFIRM,1); switch(res.menuindex) { case PAUSE_CONTINUE_GAME: res.switchPage(STATE_GAME_PAGE); break; case PAUSE_BACK_MENU: res.switchPage(STATE_MENU_PAGE); break; // case PAUSE_OPTION: // res.switchPage(STATE_OPTION_PAGE); // break; case PAUSE_QUIT: res.switchPage(STATE_EXIT_ALERT); break; } }else if (keyCode == GameDisplay.MG_KEY_SOFTKEY2) { res.switchPage(STATE_GAME_PAGE); // res.playSound(res.SOUND_CANCEL,1); } } public void destroy() { res.isend = true; GameMidlet.quitApp(); } }