?? task.java
字號:
public class Task
{
private static final String[][] recieveDialog = {
//FIND_CROSS
{"......",
"你醒了!",
"你是誰?我在哪里?",
"我是這里的仙子,剛才你被這里的小怪物打昏了。",
"劍,劍,我的劍呢?",
"你的劍被他們搶走了,我只來得及將你救出來。",
"那,公主呢?我是來救公主的。",
"公主擱里邊呢,別羅嗦了,你丫快去吧!等等,拿上這三把鑰匙,有用!"},
//FIND_AX
{"你得救啦!",
"哦,謝謝你啊!我是一個小偷,為報答你可以幫你做一件事。",
"那你會開門嗎?",
"靠!那是我的專業,說吧,開哪個門?",
"第二層的門。",
"沒問題!你如果能幫我找到一把鑲著寶石的鋃頭,我就可以用它幫你打通第十八層的隱藏地面!",
"好,我試試。",
"等你好消息,我這就去幫你打開第二層的門。"},
//GET_QINGFEND_JIAN
{},
//GET_HUANGJIN_DUN
{},
//GET_SHENGGUANG_JIAN
{"你好,老人家!",
"你好,如果你有500點經驗,我可以讓你更強!",
"可是我現在沒有啊。",
"很遺憾,等你有足夠的經驗時再來吧。"},
//GET_XINGGUANG_DUN
{"你好,老人家!",
"你好,如果你有800個金幣,我可以讓你更強!",
"可是我現在沒有啊。",
"很遺憾,等你有足夠的經驗時再來吧。"},
//RESCUE_PRINCESS
{"公主,我來救你啦!",
"你個笨蛋,怎么才來!我可受苦啦。。。。",
"這幫鳥人太厲害了,我差點小命不保啊",
"呵呵,你先去給我把那個頭宰了,他對我性騷擾!",
"?????那你不是潔白之身了?",
"靠,我一堂堂公主,配你還不行?快去吧,回來讓你爽個夠!"},
//FIGHT_BOSS
{"你丫就是那大魔頭吧?",
"是我,怎么了",
"靠,你敢搞公主!我他媽弄死你!",
"哈哈哈,公主的床上功夫確實很厲害,恐怕你消受不起啊。",
"混蛋!我要跟你丫死磕!",
"來吧,等你準備好一切,來二十一層找我!"}
};
private static final String[][] finishedDialog = {
//FIND_CROSS
{"這是你的東西,該兌現你的諾言了,快給我加血吧?。。?quot;,
"你急什么,先讓我爽一氣。",
"不行,我要把處男之身留給公主!",
"你丫腦子缺根筋阿,你不說誰知道。靠,真沒性趣!快閃!"},
//FIND_AX
{"這是你要的鋃頭嗎?",
"對,就是它,真是太感謝你了,我就去給你打開第十八層的隱藏地面。",
"那就麻煩仁兄了。",
"舉手之勞,何足掛齒!"},
//GET_QINGFEND_JIAN
{"你得救了!",
"哦,謝謝你年輕人,為感謝你我送你一件寶物,它會增加你的攻擊力!",
"謝謝你了老人家",
"不客氣。"},
//GET_HUANGJIN_DUN
{"你得救了!",
"哦,謝謝你年輕人,為感謝你我送你一件寶物,它會增加你的防御力!",
"謝謝你了老人家",
"不客氣。"},
//GET_SHENGGUANG_JIAN
{"你好,老人家!",
"你好,如果你有500點經驗,我可以讓你更強!",
"那好,我有足夠的經驗。",
"我會讓你的攻擊力增加110點。"},
//GET_XINGGUANG_DUN
{"你好,老人家!",
"你好,如果你有800個金幣,我可以讓你更強!",
"那好,我有足夠的金幣。",
"我會讓你的防御力增加120點。"},
//RESCUE_PRINCESS
{"公主,我把那雜種宰了,我們走吧!",
"好的?;厝プ屇闼?。"},
//FIGHT_BOSS
{"終于該結束了,你的死期到了!",
"你太天真了,就憑你的實力來打我還早呢!",
"去你丫的,受死吧!",
"好,來吧!"}
};
//hold the task state
private static final int UNRECIEVE = 0, //don't recieve task
RECIEVED = 1, //have recieved task,can't finish
CANFINISH = 2, //can finish task,but no finish
FINISHED = 3; //finished
//hold the task type
public static final int FIND_CROSS = 0,
FIND_AX = 1,
GET_QINGFEND_JIAN = 2,
GET_HUANGJIN_DUN = 3,
GET_SHENGGUANG_JIAN = 4,
GET_XINGGUANG_DUN = 5,
RESCUE_PRINCESS = 6,
FIGHT_BOSS = 7;
private byte[] taskState =
{
0, //0:find cross (7),
0, //1:find ax (12),
2, //2:get qingfeng jian--MAP_SWORD3 (2),
2, //3:get huangjin dun--MAP_SHIELD3 (2),
1, //4:get shengguang jian--MAP_SWORD4 (15),
1, //5:get xingguang dun MAP_SHIELD4 (15),
0, //6:rescue princess (18),
0 //7:fight boss (19),
};
private GameScreen gameScreen;
private HeroSprite hero;
private GameMap gameMap;
public int curTask;
private int curImgType;
public Task(GameScreen gameScreen,HeroSprite hero,GameMap gameMap)
{
this.gameScreen = gameScreen;
this.hero = hero;
this.gameMap = gameMap;
}
/*public void dealTask(int type)
{
curTask = -1;
switch(type){
case GameMap.MAP_ANGLE: curTask = FIND_CROSS;
curImgType = GameScreen.IMAGE_DIALOG_ANGLE;
break;
case GameMap.MAP_THIEF: curTask = FIND_AX;
curImgType = GameScreen.IMAGE_DIALOG_THIEF;
break;
}
if (curTask == -1) return;
execTask();
}*/
public void execTask(int curTask)
{
this.curTask = curTask;
switch(taskState[curTask]){
case UNRECIEVE: gameScreen.dialog(recieveDialog[curTask]/*,
curImgType*/);
recieveTask();
break;
case RECIEVED: if(curTask == GET_SHENGGUANG_JIAN){
if(hero.getExperience() >= 500){
gameScreen.dialog(finishedDialog[curTask]);
finishTask();
hero.cutExperience(500);
}else{
gameScreen.dialog(recieveDialog[curTask]);
recieveTask();
}
}else if(curTask == GET_XINGGUANG_DUN){
if(hero.getMoney() >= 800){
gameScreen.dialog(finishedDialog[curTask]);
finishTask();
hero.cutMoney(800);
}else{
gameScreen.dialog(recieveDialog[curTask]);
recieveTask();
}
}
break;
case CANFINISH: gameScreen.dialog(finishedDialog[curTask]/*,
curImgType*/);
finishTask();
break;
case FINISHED:break;
}
}
private void recieveTask()
{
taskState[curTask] ++;
switch(curTask){
case FIND_CROSS: gameMap.remove();//change the position of angle
gameMap.changeCell(92,GameMap.MAP_ANGLE);
hero.addYellowKey();
hero.addBlueKey();
hero.addRedKey();//gameScreen.end();
break;
case FIND_AX: gameMap.remove(2,67);
break;
case GET_SHENGGUANG_JIAN: taskState[curTask] --;
break;
case GET_XINGGUANG_DUN: taskState[curTask] --;
break;
case RESCUE_PRINCESS: gameMap.changeCell(120,GameMap.MAP_UPSTAIR);
break;
case FIGHT_BOSS:gameMap.remove();
taskState[curTask] ++;
break;
}
}
private void finishTask()
{
taskState[curTask] ++;
switch(curTask){
case FIND_CROSS: hero.addHp(hero.getHp() / 3);
hero.addAttack(hero.getAttack() / 3);
hero.addDefend(hero.getDefend() / 3);
break;
case FIND_AX: gameMap.remove();//remove thief
gameMap.remove(18,49,GameMap.MAP_PRINCESS);
gameMap.remove(18,60,GameMap.MAP_BARRIER);
gameMap.remove(18,71,GameMap.MAP_RED_DOOR);
gameMap.remove(18,82,GameMap.MAP_RED_DOOR);
break;
case GET_QINGFEND_JIAN: //hero.addAttack(70);
//gameScreen.flushGraphics();
gameScreen.showMessage(gameScreen,gameScreen.g,hero.takeGem(GameMap.MAP_SWORD3));
break;
case GET_HUANGJIN_DUN: //hero.addDefend(85);
//gameScreen.flushGraphics();
gameScreen.showMessage(gameScreen,gameScreen.g,hero.takeGem(GameMap.MAP_SHIELD3));
break;
case GET_SHENGGUANG_JIAN:gameScreen.showMessage(gameScreen,gameScreen.g,hero.takeGem(GameMap.MAP_SWORD4));
break;
case GET_XINGGUANG_DUN: gameScreen.showMessage(gameScreen,gameScreen.g,hero.takeGem(GameMap.MAP_SHIELD4));
break;
case RESCUE_PRINCESS:gameScreen.end();
break;
case FIGHT_BOSS:if(gameScreen.fight(GameMap.MAP_ORGE31) == true){
gameMap.changeCell(81,GameMap.MAP_ROAD);
gameMap.changeCell(83,GameMap.MAP_ROAD);
taskState[RESCUE_PRINCESS] ++;
}
break;
}
}
public void updateTaskState(int type)
{
//System.out.println("before ++");
taskState[type] ++;
//System.out.println("aftor ++");
}
public byte[] getTask()
{
return taskState;
}
public void setTask(byte[] data)
{
taskState = data;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -