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

📄 combat.java

📁 简单的文字游戏 包括行走
💻 JAVA
字号:
import java.io.IOException;
import java.util.Random;
import java.util.Scanner;

public class Combat {
	static int getExp;
	Random random = new Random();
	int A = 0;
	static boolean Utool = true;
	Monster m = new Monster();
	Tools tool =new Tools();

	
	/***
	 * 战斗系统
	 */
	void Combat() {
		A=0;
		System.out.println("           ———————————");
		System.out.println("          │  进入战斗!  │  ");
		System.out.println("        ┏                  ┓");
		if (Player.LV <= 8) {                        //判断怪物类型
			m.monster(0);
		} else if (Player.LV > 8 && Player.LV <= 13) {
			m.monster(random.nextInt(3));
		} else if (Player.LV > 13) {
			m.monster(random.nextInt(4));
		}
		if (Player.LV >= 20) {
			m.BOSS(Player.x, Player.y);
			
		}
		while (true) {
			while (Monster.HP > 0 && Player.HP > 0) {          
				m.MonsterG();	
				Player.state();
				System.out.println("  ___________________________________");
				System.out.println("  │1.普通攻击 2.技能攻击 3.使用物品 4.逃跑│");
				System.out.println("        ++++请输入战斗指令+++++");
				Scanner s = new Scanner(System.in);
				int S = s.nextInt();
				if (S == 1) {
					System.out.println(" 你对 " + Monster.Mname + " 发起普通攻击  ");
					System.out.println(Monster.Mname + "受到了 "
							+ (Player.attack - Monster.defence) + "点伤害!");
					Monster.HP -= (Player.attack - Monster.defence);
					System.out.println(" " + Monster.Mname + "对你发起攻击! ");
					System.out.println("你受到了 "
							+ (Monster.attack - Player.defence) + "点伤害!");
					Player.HP -= (Monster.attack - Player.defence);
					A++;
					System.out.println(" ——回合 " + A + " 结束—— ");
					System.out.println(" ————————————————————————————————————————————|按下Enter键继续...");
					try{
						System.in.read(); 
					}catch(IOException ex){
						ex.printStackTrace();
					}
					continue;
				} else if (S == 2) {
					if (Player.skill
							.indexOf("B. ◎爆头一击◎(给予敌方目标 无视防御的 200点伤害,消耗MP 30点)") != -1) {
						System.out.println(" 请选择使用的技能:");
						System.out.println(Player.skill);
						Scanner s1 = new Scanner(System.in);
						String S1 = s1.next();
						if (S1.equals("B") || S1.equals("b")) {
							if (Player.MP >= 30) {
								System.out.println(" 你使用了技能 :★爆头一击★! ");
								System.out.println(Monster.Mname
										+ "受到了 200 点伤害!");
								Player.MP -= 30;
								Monster.HP -= 200;
								System.out.println(" " + Monster.Mname
										+ "对你发起攻击! ");
								System.out.println("你受到了 "
										+ (Monster.attack - Player.defence)
										+ "点伤害!");
								Player.HP -= (Monster.attack - Player.defence);
								A++;
								System.out.println(" 回合 " + A + " 结束 ");
								System.out.println(" ————————————————————————————————————————————|按下Enter键继续...");
								try{
									System.in.read(); 
								}catch(IOException ex){
									ex.printStackTrace();
								}
								continue;
							} else {
								System.out.println("蓝不足以使用该技能...");
								continue;
							}
						}
						if (Player.skill
								.indexOf("J. ◎精确射击◎(给予敌方目标 无视防御的 450点伤害,消耗MP 60点)") != -1) {
							if (S1.equals("J") || S1.equals("j")) {
								if (Player.MP >= 60) {
									System.out.println(" 你使用了技能 :★精确射击★! ");
									System.out.println(Monster.Mname
											+ "受到了 450 点伤害!");
									Player.MP -= 60;
									Monster.HP -= 450;
									System.out.println(" " + Monster.Mname
											+ "对你发起攻击! ");
									System.out.println("你受到了 "
											+ (Monster.attack - Player.defence)
											+ "点伤害!");
									Player.HP -= (Monster.attack - Player.defence);
									A++;
									System.out.println(" 回合 " + A + " 结束 ");
									System.out.println(" ————————————————————————————————————————————|按下Enter键继续...");
									try{
										System.in.read(); 
									}catch(IOException ex){
										ex.printStackTrace();
									}
									continue;
								} else {
									System.out.println("蓝不足以使用该技能...");
									continue;
								}
							}
						}
						if (Player.skill
								.indexOf("K. ◎快速拔抢◎(对敌方进行2次物理攻击 消耗MP 80点)") != -1) {
							if (S1.equals("K") || S1.equals("k")) {
								if (Player.MP >= 80) {
									System.out.println(" 你使用了技能 :★快速拔抢★ ");
									System.out
											.println(Monster.Mname
													+ "受到了"
													+ ((Player.attack - Monster.defence) * 2)
													+ "点伤害!");
									Player.MP -= 80;
									Monster.HP -= ((Player.attack - Monster.defence) * 2);
									System.out.println(" " + Monster.Mname
											+ "对你发起攻击! ");
									System.out.println("你受到了 "
											+ (Monster.attack - Player.defence)
											+ "点伤害!");
									Player.HP -= (Monster.attack - Player.defence);
									A++;
									System.out.println(" 回合 " + A + " 结束 ");
									System.out.println(" ————————————————————————————————————————————|按下Enter键继续...");
									try{
										System.in.read(); 
									}catch(IOException ex){
										ex.printStackTrace();
									}
									continue;
								} else {
									System.out.println("蓝不足以使用该技能...");
									continue;
								}
							}
						}
						if (Player.skill
								.indexOf("L. ◎狂暴乱射◎(对敌方进行随机的0~4次物理伤害 消耗MP 140)") != -1) {
							if (S1.equals("L") || S1.equals("l")) {
								if (Player.MP >= 140) {
									System.out.println(" 你使用了技能 :★狂暴乱射★ !!");
									int AT = random.nextInt(5);
									System.out
											.println(Monster.Mname
													+ "受到了"
													+ ((Player.attack - Monster.defence) * AT)
													+ "点伤害!");
									Player.MP -= 140;
									Monster.HP -= ((Player.attack - Monster.defence) * AT);
									System.out.println(" " + Monster.Mname
											+ "对你发起攻击! ");
									System.out.println("你受到了 "
											+ (Monster.attack - Player.defence)
											+ "点伤害!");
									Player.HP -= (Monster.attack - Player.defence);
									A++;
									System.out.println(" 回合 " + A + " 结束 ");
									System.out.println(" ————————————————————————————————————————————|按下Enter键继续...");
									try{
										System.in.read(); 
									}catch(IOException ex){
										ex.printStackTrace();
									}
									continue;
								} else {
									System.out.println("蓝不足以使用该技能...");
									continue;
								}
							}
						}
					} else {
						System.out.println("      你还没有学到任何的技能!");
						System.out.println(" -----------------------------------");
						continue;
					}
				} else if (S == 3) {
					Player.PTools();
					if (this.Utool == true) {
						System.out.println(" " + Monster.Mname + "对你发起攻击! ");
						System.out.println("你受到了 "
								+ (Monster.attack - Player.defence) + "点伤害!");
						Player.HP -= (Monster.attack - Player.defence);
						A++;
						System.out.println(" 回合 " + A + " 结束 ");
						System.out.println(" ————————————————————————————————————————————|按下Enter键继续...");
						try{
							System.in.read(); 
						}catch(IOException ex){
							ex.printStackTrace();
						}
						continue;
					} else {
						continue;
					}
				} else if (S == 4) {
					int run = random.nextInt(11);
					if (run >= 5) {
						System.out.println("*******  逃跑成功! *********");
						System.out.println(" ————————————————————————————————————————————|按下Enter键继续...");
						try{
							System.in.read(); 
						}catch(IOException ex){
							ex.printStackTrace();
						}
						Main.main(null);
						break;
					} else {
						System.out.println("XXXXXXXX  逃跑失败! XXXXXXXXXX");
						System.out.println(" " + Monster.Mname + "对你发起攻击! ");
						System.out.println("你受到了 "
								+ (Monster.attack - Player.defence) + "点伤害!");
						Player.HP -= (Monster.attack - Player.defence);
						A++;
						System.out.println(" 回合 " + A + " 结束 ");
						System.out.println(" ————————————————————————————————————————————|按下Enter键继续...");
						try{
							System.in.read(); 
						}catch(IOException ex){
							ex.printStackTrace();
						}
						continue;
					}
				}
			}
			if (Player.HP <= 0) {   										//玩家死亡判断
				System.out.println("你被" + Monster.Mname + "干掉啦!");
				if (Player.Utools.indexOf("复活药水") != -1) {              //复活判断
					System.out.println("身上的复活药水起作用了");
					System.out.println(" ————————————————————————————————————————————|按下Enter键继续...");
					try{
						System.in.read(); 
					}catch(IOException ex){
						ex.printStackTrace();
					}
					tool.uLife();
					Player.Utools.remove("复活药水");
					continue;
				} else {
					System.out.println("Game Over!");
					System.exit(0);
				}
			} else if(m.bossCombat == false){       	//战斗结束
				System.out.println(Monster.Mname + "被你干掉啦!");
				System.out.println("獲得了" +Monster.Exp+ "点经验!");
				this.getExp=Monster.Exp;
				System.out.println("獲得了金钱" +Monster.Money+ " ¥!");
				Player.money+=Monster.Money;
				System.out.println(" ————————————————————————————————————————————|按下Enter键继续...");
				try{
					System.in.read(); 
				}catch(IOException ex){
					ex.printStackTrace();
				}
				int getTOOL =random.nextInt(100);   //获得道具判断
				if(getTOOL<=10){
					int type =random.nextInt(4);
					if(type==0){
						int Ar=random.nextInt(6);
						Player.Parm.addElement(tool.Arm[Ar]);
						System.out.println("***从怪物身上获得了:"+tool.Arm[Ar]+"!***");
						System.out.println(" ————————————————————————————————————————————|按下Enter键继续...");
						try{
							System.in.read(); 
						}catch(IOException ex){
							ex.printStackTrace();
						}
					}
					if(type==1){
						int Br=random.nextInt(4);
						Player.Pbody.addElement(tool.body[Br]);
						System.out.println("***从怪物身上获得了:"+tool.body[Br]+"!***");
						System.out.println(" ————————————————————————————————————————————|按下Enter键继续...");
						try{
							System.in.read(); 
						}catch(IOException ex){
							ex.printStackTrace();
						}
					}
					if(type==2){
						int Hr=random.nextInt(4);
						Player.Phead.addElement(tool.Head[Hr]);
						System.out.println("***从怪物身上获得了:"+tool.Head[Hr]+"!***");
						System.out.println(" ————————————————————————————————————————————|按下Enter键继续...");
						try{
							System.in.read(); 
						}catch(IOException ex){
							ex.printStackTrace();
						}
					}
					if(type==3){
						int Sr=random.nextInt(4);
						Player.Pshoes.addElement(tool.shoes[Sr]);
						System.out.println("***从怪物身上获得了:"+tool.shoes[Sr]+"!***");
						System.out.println(" ————————————————————————————————————————————|按下Enter键继续...");
						try{
							System.in.read(); 
						}catch(IOException ex){
							ex.printStackTrace();
						}
					}
				}
				break;
			}else{       //BOSS战结束
				System.out.println("游戏Ending 待定......");
				System.out.println(" ————————————————————————————————————————————|按下Enter键继续...");
				try{
					System.in.read(); 
				}catch(IOException ex){
					ex.printStackTrace();
				}
				System.exit(0);  
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -