📄 combat.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 + -