⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 task.java

📁 这是一个魔塔游戏的源代码
💻 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
		{"这是你的东西,该兑现你的诺言了,快给我加血吧!!!",
		"你急什么,先让我爽一气。",
		"不行,我要把处男之身留给公主!",
		"你丫脑子缺根筋阿,你不说谁知道。靠,真没性趣!快闪!"},
		//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 + -