diff --git a/Game_of_Prod.zip b/Game_of_Prod.zip new file mode 100644 index 0000000..1f26e2d Binary files /dev/null and b/Game_of_Prod.zip differ diff --git a/src/main/java/ruscz/game/gameOfProd/Battle/BattlePerson.java b/src/main/java/ruscz/game/gameOfProd/Battle/BattlePerson.java index 84d04f2..9f85d95 100644 --- a/src/main/java/ruscz/game/gameOfProd/Battle/BattlePerson.java +++ b/src/main/java/ruscz/game/gameOfProd/Battle/BattlePerson.java @@ -158,4 +158,8 @@ public abstract class BattlePerson { public int getStrength() { return strength; } + + public int getMaxHealth() { + return maxHealth; + } } diff --git a/src/main/java/ruscz/game/gameOfProd/BattleUI/EnemyDescription.java b/src/main/java/ruscz/game/gameOfProd/BattleUI/EnemyDescription.java index cc7b9a4..3f89d6b 100644 --- a/src/main/java/ruscz/game/gameOfProd/BattleUI/EnemyDescription.java +++ b/src/main/java/ruscz/game/gameOfProd/BattleUI/EnemyDescription.java @@ -1,17 +1,74 @@ package ruscz.game.gameOfProd.BattleUI; +import ruscz.game.gameOfProd.Battle.BattlePerson; import ruscz.game.gameOfProd.Windows.WindowOfBattle; import javax.swing.*; import java.awt.*; +import java.util.Arrays; +import java.util.LinkedList; import static ruscz.game.gameOfProd.Windows.WindowOfBattle.*; public class EnemyDescription extends JPanel { + + private final WindowOfBattle windowOfBattle; + public EnemyDescription(WindowOfBattle window) { + windowOfBattle = window; + setSize(CELL_SIZE * CANVAS_WIDTH * 2 / 3, CELL_SIZE * CANVAS_HEIGHT / 4); setLocation(0, CELL_SIZE * CANVAS_HEIGHT * 3 / 4); setBackground(Color.cyan); 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 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); + } + + + + }