update game loop

This commit is contained in:
2026-05-08 10:55:10 +03:30
parent add61e75aa
commit ed41752409
18 changed files with 131 additions and 78 deletions
+47 -22
View File
@@ -20,15 +20,15 @@ import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Weapon wp = new Sword(12, 5);
Weapon wp = new Sword(12, 15);
ArrayList<Player> players = new ArrayList<>();
players.add(new Assassin("Pia", 100, 100, wp, new KnightArmor(0, 1)));
players.add(new Knight("Khan", 100, 100, wp, new KnightArmor(50, 1)));
players.add(new Wizard("Daalou", 100, 100, wp, new KnightArmor(50, 1)));
players.add(new Assassin("Pia", 100, 100, wp, new KnightArmor(8, 1)));
players.add(new Knight("Khan", 100, 120, wp, new KnightArmor(12, 1)));
players.add(new Wizard("Daalou", 100, 90, wp, new KnightArmor(15, 1)));
ArrayList<Enemy> enemies = new ArrayList<>();
enemies.add(new Goblin(100, 100, wp));
enemies.add(new Skeleton(50, 100, wp));
enemies.add(new Vampire(90, 110, wp));
enemies.add(new Goblin(80, 100, wp));
enemies.add(new Skeleton(70, 100, wp));
enemies.add(new Vampire(90, 90, wp));
ArrayList<Location> locations = new ArrayList<>();
locations.add(new Location("Jungle", enemies));
locations.add(new Location("China", new ArrayList<>(enemies.subList(0, 2))));
@@ -128,16 +128,26 @@ public class Main {
System.out.println("choose your action:\n1.light attack 2.heavy attack 3.defend 4.heal 5.special ability");
choice = sc.nextInt();
switch (choice) {
case 1: player.lightAttack(enemy);
break;
case 2: player.heavyAttack(enemy);
break;
case 3: player.defend();
break;
case 4: player.heal(10);
break;
case 5: player.specialAbility(enemy);
break;
case 1:
player.lightAttack(enemy);
break;
case 2:
player.heavyAttack(enemy);
if (player.isSuccessful()) break;
else {turn = 0; continue;}
case 3:
player.defend();
if (player.isSuccessful()) break;
else {turn = 0; continue;}
case 4:
player.heal(10);
if (player.isSuccessful()) break;
else {turn = 0; continue;}
case 5:
player.specialAbility(enemy);
if (player.isSuccessful()) break;
else {turn = 0; continue;}
default:
System.out.println("invalid choice");
}
@@ -149,15 +159,30 @@ public class Main {
}
if (turn == 1) {
System.out.println("-".repeat(30));
if (player instanceof Assassin) {
if (player.getUsingSpecialAbility()){
player.setUsingSpecialAbility(false);
turn = 0;
System.out.println(enemy.getClass().getSimpleName() + " skipped it's turn!");
continue;
}
}
System.out.println(enemy.getClass().getSimpleName() + "'s turn: ");
turn = 0;
choice = new Random().nextInt(3);
switch (choice) {
case 0: enemy.attack(player);
break;
case 1: enemy.defend();
break;
case 2: enemy.heal(10);
case 0:
enemy.attack(player);
if (player.isSuccessful()) break;
else {turn = 1; continue;}
case 1:
enemy.defend();
if (player.isSuccessful()) break;
else {turn = 0; continue;}
case 2:
enemy.heal(10);
if (player.isSuccessful()) break;
else {turn = 0; continue;}
}
}
System.out.println("[" + player.getClass().getSimpleName() + " - " + player.getHP() + "/" + player.getMaxHP()