From 54220882422f19092d70bc6e45b02f9e2dc57049 Mon Sep 17 00:00:00 2001 From: Davy Ling Date: Mon, 30 May 2022 01:34:26 -0400 Subject: [PATCH] Mana card queueing works + fixed bugs + goblins still OP --- .../Threnody/combat/artes/Arte.class | Bin 7221 -> 7221 bytes .../Threnody/entities/units/Unit.class | Bin 12220 -> 12844 bytes .../Threnody/gamestates/BattleState.class | Bin 10030 -> 10331 bytes out/production/Threnody/gamestates/Game.class | Bin 11623 -> 11623 bytes src/combat/artes/support/Elixir.java | 4 +-- src/combat/artes/support/Mana.java | 11 +++---- src/entities/units/Unit.java | 25 +++++++++++++++ src/entities/units/player/Player.java | 2 +- src/gamestates/BattleState.java | 29 +++++++++++------- src/gamestates/Game.java | 2 +- 10 files changed, 51 insertions(+), 22 deletions(-) diff --git a/out/production/Threnody/combat/artes/Arte.class b/out/production/Threnody/combat/artes/Arte.class index 19364dd160a73eafce9133c07f2178b7cb447c68..83b404a0fdc97cab078209395c5c2345059ff3f7 100644 GIT binary patch delta 16 YcmdmLvDIQj85eWs%vqZ&x%LPG06bI%%>V!Z delta 16 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 NaGb~E@p*DF?ms#fwJ`ty diff --git a/out/production/Threnody/gamestates/Game.class b/out/production/Threnody/gamestates/Game.class index 6e36f116f17d6c703fda4546c097c2ea4461c4fb..2fae54d172abd82e28a950645f2288404666bd65 100644 GIT binary patch delta 14 VcmaDJ^*m~Wk}{*nW@Tj;E&wj01k?Zk delta 14 VcmaDJ^*m~Wk}@OLW@Tj;E&wiP1j+ya diff --git a/src/combat/artes/support/Elixir.java b/src/combat/artes/support/Elixir.java index 20de5ef..6017bce 100644 --- a/src/combat/artes/support/Elixir.java +++ b/src/combat/artes/support/Elixir.java @@ -29,11 +29,11 @@ public void activation(Unit target) { @Override public void queue() { - owner.setManaAdd(owner.getManaAdd() + 1); + owner.addManaAdd(manaValue); } @Override public void unqueue() { - owner.setManaAdd(owner.getManaAdd() - 1); + owner.addManaAdd(-manaValue); } } diff --git a/src/combat/artes/support/Mana.java b/src/combat/artes/support/Mana.java index a5bc0b0..13ec0dd 100644 --- a/src/combat/artes/support/Mana.java +++ b/src/combat/artes/support/Mana.java @@ -12,7 +12,7 @@ @SuppressWarnings({"rawtypes"}) public class Mana extends Arte { - private final int healingValue = 10; + private final int manaValue = 2; public Mana(Player owner) throws SlickException { super(owner); @@ -20,21 +20,18 @@ public Mana(Player owner) throws SlickException { arteType = ArteType.SUPPORT; aniType = AnimationType.OWNER; cost = 0; - castDuration = 75; } @Override - public void activation(Unit target) { - target.generateMana(healingValue); - } + public void activation(Unit target) {} @Override public void queue() { - + owner.addQueuedManaExtra(manaValue); } @Override public void unqueue() { - + owner.addQueuedManaExtra(-manaValue); } } diff --git a/src/entities/units/Unit.java b/src/entities/units/Unit.java index 473aff5..0a7a318 100644 --- a/src/entities/units/Unit.java +++ b/src/entities/units/Unit.java @@ -56,6 +56,7 @@ public Unit() { this.mana = 1; this.turnMana = 1; this.queuedManaRemoval = 0; + this.queuedManaExtra = 0; this.manaAdd = 0; this.level = 1; this.health = 1; @@ -285,6 +286,11 @@ public T setManaAdd(int manaAdd) { return (T) this; } + public T addManaAdd(int amt) { + this.manaAdd += amt; + return (T) this; + } + public int getQueuedManaRemoval() { return queuedManaRemoval; } @@ -294,6 +300,25 @@ public T setQueuedManaRemoval(int queuedManaRemoval) { return (T) this; } + public T addQueuedManaRemoval(int amt) { + this.queuedManaRemoval += amt; + return (T) this; + } + + public int getQueuedManaExtra() { + return queuedManaExtra; + } + + public T setQueuedManaExtra(int queuedManaExtra) { + this.queuedManaExtra = queuedManaExtra; + return (T) this; + } + + public T addQueuedManaExtra(int amt) { + this.queuedManaExtra += amt; + return (T) this; + } + public int calculateDamage(ElementType element) { return attack * (1 + eAffinity.get(element) / 100) * (1 + (Math.random() <= critRate ? critDamage : 0)); } diff --git a/src/entities/units/player/Player.java b/src/entities/units/player/Player.java index fcff67a..19bd72b 100644 --- a/src/entities/units/player/Player.java +++ b/src/entities/units/player/Player.java @@ -193,7 +193,7 @@ public Arte selection(int i) { Arte selected = null; try { selected = arteHand.get(i); - if (selected.getCost() > mana - queuedManaRemoval) throw new ThrenodyException("Insufficient mana"); + if (selected.getCost() > mana + queuedManaExtra - queuedManaRemoval) throw new ThrenodyException("Insufficient mana"); selected.reset(); queuedManaRemoval += selected.getCost(); selected.queue(); diff --git a/src/gamestates/BattleState.java b/src/gamestates/BattleState.java index 2d7018e..4219b1f 100644 --- a/src/gamestates/BattleState.java +++ b/src/gamestates/BattleState.java @@ -53,18 +53,17 @@ public void init(GameContainer gc, StateBasedGame sbg) throws SlickException { public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException { g.setFont(gc.getDefaultFont()); battlefield.render(1000, -600); - for(Player p : plrs) { - p.battleRender(g, 0,0); - } - for(int i = enemies.size() - 1; i >= 0; i--) { + plrs.forEach(p -> p.battleRender(g, 0,0)); + for (int i = enemies.size() - 1; i >= 0; i--) { enemies.get(i).render(g, 0,0); } - try { - result = combat.combat(g, gc); - } catch (InterruptedException | IndexOutOfBoundsException e) { - e.printStackTrace(); - } + + // Render the UI + try { renderUI(g); } catch (IndexOutOfBoundsException ignored) {} + + try { result = combat.combat(g, gc); } + catch (InterruptedException | IndexOutOfBoundsException e) { e.printStackTrace(); } switch (result) { case WIN -> { @@ -103,12 +102,20 @@ public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws Slic g.drawString("" + combat.getRound(), 0, 0); } super.render(gc, sbg, g); + } + + private void renderUI(Graphics g) { Image mana = ImageManager.getImage("mana").getScaledCopy(2f); mana.drawCentered(Main.RESOLUTION_X / 17, Main.RESOLUTION_Y / 20 * 17); DrawUtilities.drawStringCentered(g, String.valueOf(plrs.get(turn()).getMana()), Main.fonts.VariableWidth.B60, Main.RESOLUTION_X / 17, Main.RESOLUTION_Y / 20 * 17 + 15); + if (plrs.get(turn()).getQueuedManaExtra() > 0) { + g.setColor(Color.green); + DrawUtilities.drawStringCentered(g, "+" + plrs.get(turn()).getQueuedManaExtra(), Main.fonts.VariableWidth.B60, Main.RESOLUTION_X / 17, Main.RESOLUTION_Y / 20 * 17 - 55); + g.setColor(Color.white); + } if (plrs.get(turn()).getQueuedManaRemoval() > 0) { g.setColor(Color.red); - DrawUtilities.drawStringCentered(g, String.valueOf(-plrs.get(turn()).getQueuedManaRemoval()), Main.fonts.VariableWidth.B60, Main.RESOLUTION_X / 17, Main.RESOLUTION_Y / 20 * 17 + 70); + DrawUtilities.drawStringCentered(g, "-" + plrs.get(turn()).getQueuedManaRemoval(), Main.fonts.VariableWidth.B60, Main.RESOLUTION_X / 17, Main.RESOLUTION_Y / 20 * 17 + 70); g.setColor(Color.white); } if (plrs.get(turn()).getManaAdd() > 0) { @@ -169,7 +176,7 @@ public void keyPressed(int key, char c) { @Override public void mousePressed(int button, int x, int y) { try { for (var i = 0; i < 6; i++) if (plrs.get(turn()).onCard(gc.getInput(), i)) plrs.get(turn()).getClickArteQueue().offer(plrs.get(turn()).selection(i)); } - catch (NullPointerException ignored) {}; + catch (IndexOutOfBoundsException | NullPointerException ignored) {}; } public int turn() { diff --git a/src/gamestates/Game.java b/src/gamestates/Game.java index e31a7cf..ccd454f 100644 --- a/src/gamestates/Game.java +++ b/src/gamestates/Game.java @@ -98,7 +98,7 @@ public void init(GameContainer gc, StateBasedGame sbg) throws SlickException { )); // Initialize the Player - plr = (Player) new Player(plrPosition).setAttack(10); + plr = (Player) new Player(plrPosition).setAttack(20); plrTeam.add(plr); System.out.println("[VERBOSE] Player initialized"); enemy = new Enemy(10, 0);