added final battle cutscene

This commit is contained in:
musilto9 2020-06-07 15:29:31 +02:00
commit 33c5abe4dd
3 changed files with 61 additions and 0 deletions

BIN
Game_of_Prod.zip Normal file

Binary file not shown.

View File

@ -158,4 +158,8 @@ public abstract class BattlePerson {
public int getStrength() { public int getStrength() {
return strength; return strength;
} }
public int getMaxHealth() {
return maxHealth;
}
} }

View File

@ -1,17 +1,74 @@
package ruscz.game.gameOfProd.BattleUI; package ruscz.game.gameOfProd.BattleUI;
import ruscz.game.gameOfProd.Battle.BattlePerson;
import ruscz.game.gameOfProd.Windows.WindowOfBattle; import ruscz.game.gameOfProd.Windows.WindowOfBattle;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.util.Arrays;
import java.util.LinkedList;
import static ruscz.game.gameOfProd.Windows.WindowOfBattle.*; import static ruscz.game.gameOfProd.Windows.WindowOfBattle.*;
public class EnemyDescription extends JPanel { public class EnemyDescription extends JPanel {
private final WindowOfBattle windowOfBattle;
public EnemyDescription(WindowOfBattle window) { public EnemyDescription(WindowOfBattle window) {
windowOfBattle = window;
setSize(CELL_SIZE * CANVAS_WIDTH * 2 / 3, CELL_SIZE * CANVAS_HEIGHT / 4); setSize(CELL_SIZE * CANVAS_WIDTH * 2 / 3, CELL_SIZE * CANVAS_HEIGHT / 4);
setLocation(0, CELL_SIZE * CANVAS_HEIGHT * 3 / 4); setLocation(0, CELL_SIZE * CANVAS_HEIGHT * 3 / 4);
setBackground(Color.cyan); setBackground(Color.cyan);
setVisible(false); setVisible(false);
updateDescription();
} }
public void updateDescription() {
Timer timer = new Timer(1000, e -> {
if (isVisible()){
deletePreviousDescription();
addNewDescription();
revalidate();
repaint();
}
});
timer.start();
}
private void addNewDescription() {
if (getComponentCount() != 0) return;
if (windowOfBattle.getBattle() == null) return;
LinkedList<BattlePerson> he = new LinkedList<>(windowOfBattle.getBattle().getHeroes());
he.addAll(windowOfBattle.getBattle().getEnemies());
setLayout(new GridLayout (he.size() + 1, 3));
for (BattlePerson person: he){
JPanel jPanel = new JPanel();
JLabel name = new JLabel(person.getName());
JLabel level = new JLabel("Level: " + person.getLevel());
JLabel health = new JLabel("Health: " + person.getHealth() + "/" + person.getMaxHealth());
jPanel.add(name);
jPanel.add(level);
jPanel.add(health);
add(jPanel);
}
System.out.println(Arrays.toString(getComponents()));
}
private void deletePreviousDescription() {
if (getComponentCount() == 0) return;
for (Component c: getComponents())
remove(c);
}
} }