From c9e96734834947b43cf430d80debeaa80c898245 Mon Sep 17 00:00:00 2001 From: zofiamilczarek Date: Sat, 15 May 2021 21:20:42 +0200 Subject: [PATCH 01/19] Spell class file created --- pom.xml | 4 ++-- src/main/java/lol/game/Battlefield.java | 4 ++-- src/main/java/lol/game/action/Spell.java | 8 ++++++++ 3 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 src/main/java/lol/game/action/Spell.java diff --git a/pom.xml b/pom.xml index 2485585..79b411e 100644 --- a/pom.xml +++ b/pom.xml @@ -7,8 +7,8 @@ jar UTF-8 - 14 - 14 + 11 + 11 16 0.0.6 diff --git a/src/main/java/lol/game/Battlefield.java b/src/main/java/lol/game/Battlefield.java index ae6ac68..2dcf261 100644 --- a/src/main/java/lol/game/Battlefield.java +++ b/src/main/java/lol/game/Battlefield.java @@ -112,9 +112,9 @@ public boolean moveTo(Destructible d, int x, int y) { int oldY = d.y(); if(placeAt(d, x, y)) { battlefield[oldY][oldX] = Optional.empty(); - return false; + return true; } - return true; + return false; } // Visit a tile using the visitor. diff --git a/src/main/java/lol/game/action/Spell.java b/src/main/java/lol/game/action/Spell.java new file mode 100644 index 0000000..227c8bd --- /dev/null +++ b/src/main/java/lol/game/action/Spell.java @@ -0,0 +1,8 @@ +package lol.game.action; + +import lol.game.*; +import java.io.Serializable; + +public abstract class Spell extends ChampionAction implements Serializable { + +} \ No newline at end of file From 5f165fc1569617f800eead9fe2985f68b0062fa1 Mon Sep 17 00:00:00 2001 From: zofiamilczarek Date: Sat, 15 May 2021 21:31:19 +0200 Subject: [PATCH 02/19] Spell class: constructor added --- src/main/java/lol/game/action/Spell.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/lol/game/action/Spell.java b/src/main/java/lol/game/action/Spell.java index 227c8bd..510a271 100644 --- a/src/main/java/lol/game/action/Spell.java +++ b/src/main/java/lol/game/action/Spell.java @@ -5,4 +5,7 @@ public abstract class Spell extends ChampionAction implements Serializable { + public Spell(int teamID, int championID, int x, int y) { + super(teamID,championID,x,y); + } } \ No newline at end of file From d0e418c5493cdb03af89aca8de038c929dd74e52 Mon Sep 17 00:00:00 2001 From: sena Date: Mon, 17 May 2021 19:51:08 +0300 Subject: [PATCH 03/19] Spell class now extends Action class. --- src/main/java/lol/game/action/Spell.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/lol/game/action/Spell.java b/src/main/java/lol/game/action/Spell.java index 510a271..a7555da 100644 --- a/src/main/java/lol/game/action/Spell.java +++ b/src/main/java/lol/game/action/Spell.java @@ -3,7 +3,7 @@ import lol.game.*; import java.io.Serializable; -public abstract class Spell extends ChampionAction implements Serializable { +public abstract class Spell extends Action implements Serializable { public Spell(int teamID, int championID, int x, int y) { super(teamID,championID,x,y); From 3167f492e752553f791885365aaa338acf9d317b Mon Sep 17 00:00:00 2001 From: sena Date: Mon, 17 May 2021 19:54:35 +0300 Subject: [PATCH 04/19] Spell class constructor updated. --- src/main/java/lol/game/action/Spell.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/lol/game/action/Spell.java b/src/main/java/lol/game/action/Spell.java index a7555da..7a4b860 100644 --- a/src/main/java/lol/game/action/Spell.java +++ b/src/main/java/lol/game/action/Spell.java @@ -5,7 +5,7 @@ public abstract class Spell extends Action implements Serializable { - public Spell(int teamID, int championID, int x, int y) { - super(teamID,championID,x,y); + public Spell(int teamID) { + super(teamID); } } \ No newline at end of file From 56ed156e5dfd74ea4b662b0a46551833969f3f65 Mon Sep 17 00:00:00 2001 From: zofiamilczarek Date: Mon, 17 May 2021 19:25:29 +0200 Subject: [PATCH 05/19] Spell constructor edited --- src/main/java/lol/game/action/Spell.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/lol/game/action/Spell.java b/src/main/java/lol/game/action/Spell.java index 7a4b860..067fddb 100644 --- a/src/main/java/lol/game/action/Spell.java +++ b/src/main/java/lol/game/action/Spell.java @@ -4,8 +4,10 @@ import java.io.Serializable; public abstract class Spell extends Action implements Serializable { + protected int championID; - public Spell(int teamID) { + public Spell(int teamID, int championID) { super(teamID); + this.championID=championID; } } \ No newline at end of file From 8f9477839539436e3b4aa4534d78481a85b59279 Mon Sep 17 00:00:00 2001 From: zofiamilczarek Date: Mon, 17 May 2021 19:32:53 +0200 Subject: [PATCH 06/19] DoubleDamage spell file created --- src/main/java/lol/game/action/DoubleDamage.java | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/main/java/lol/game/action/DoubleDamage.java diff --git a/src/main/java/lol/game/action/DoubleDamage.java b/src/main/java/lol/game/action/DoubleDamage.java new file mode 100644 index 0000000..e7e2fee --- /dev/null +++ b/src/main/java/lol/game/action/DoubleDamage.java @@ -0,0 +1,11 @@ +package lol.game.action; + +import lol.game.*; +import java.io.Serializable; + +public abstract class DoubleDamage extends Spell implements Serializable { + + public Spell(int teamID, int championID) { + super(teamID,championID); + } +} \ No newline at end of file From de2ed0f3760724896e0a74a52bcb4c81f049ac57 Mon Sep 17 00:00:00 2001 From: sena Date: Mon, 17 May 2021 20:46:30 +0300 Subject: [PATCH 07/19] Added accept method to DoubleDamage class & added visitDoubleDamage method to ActionVisitor class --- src/main/java/lol/game/action/ActionVisitor.java | 1 + src/main/java/lol/game/action/DoubleDamage.java | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/lol/game/action/ActionVisitor.java b/src/main/java/lol/game/action/ActionVisitor.java index 8f847da..93472c6 100644 --- a/src/main/java/lol/game/action/ActionVisitor.java +++ b/src/main/java/lol/game/action/ActionVisitor.java @@ -5,4 +5,5 @@ public interface ActionVisitor { public void visitMove(int teamID, int championID, int x, int y); public void visitAttack(int teamID, int championID, int x, int y); public void visitChampionSelect(int teamID, String championName); + public void visitDoubleDamage(int teamID, int championID, int x, int y); } \ No newline at end of file diff --git a/src/main/java/lol/game/action/DoubleDamage.java b/src/main/java/lol/game/action/DoubleDamage.java index e7e2fee..5a2dd2e 100644 --- a/src/main/java/lol/game/action/DoubleDamage.java +++ b/src/main/java/lol/game/action/DoubleDamage.java @@ -4,8 +4,16 @@ import java.io.Serializable; public abstract class DoubleDamage extends Spell implements Serializable { + protected int x; + protected int y; - public Spell(int teamID, int championID) { + public Spell(int teamID, int championID, int x, int y) { super(teamID,championID); + this.x = x; + this.y = y; + } + + public void accept(ActionVisitor visitor) { + visitor.visitAttack(teamID, championID, x, y); } } \ No newline at end of file From 5ede14e1864f7095b238be4abb8c3951bd37318c Mon Sep 17 00:00:00 2001 From: zofiamilczarek Date: Mon, 17 May 2021 20:34:29 +0200 Subject: [PATCH 08/19] Double damage edited --- src/main/java/lol/game/action/DoubleDamage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/lol/game/action/DoubleDamage.java b/src/main/java/lol/game/action/DoubleDamage.java index 5a2dd2e..da64f98 100644 --- a/src/main/java/lol/game/action/DoubleDamage.java +++ b/src/main/java/lol/game/action/DoubleDamage.java @@ -14,6 +14,6 @@ public Spell(int teamID, int championID, int x, int y) { } public void accept(ActionVisitor visitor) { - visitor.visitAttack(teamID, championID, x, y); + visitor.visitDoubleDamage(teamID, championID, x, y); } } \ No newline at end of file From 45bde9b4b746a0ed4ed019fd9cc2d8ccee9852e9 Mon Sep 17 00:00:00 2001 From: sena Date: Mon, 17 May 2021 21:54:40 +0300 Subject: [PATCH 09/19] Added methods in Champion class in order to change Champion attributes for spells --- src/main/java/lol/game/Champion.java | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/main/java/lol/game/Champion.java b/src/main/java/lol/game/Champion.java index 26f7198..440db6d 100644 --- a/src/main/java/lol/game/Champion.java +++ b/src/main/java/lol/game/Champion.java @@ -42,6 +42,11 @@ public int attackRange() { return rangeOfAttack; } + //for spells that change the range of attack + public int attackRangeEnhanced(int factor) { + return rangeOfAttack*factor; + } + private int distanceFrom(int toX, int toY) { return Math.max(Math.abs(toX - x()), Math.abs(toY - y())); } @@ -50,6 +55,16 @@ public boolean canWalkTo(int toX, int toY) { return distanceFrom(toX, toY) <= speed; } + //for speed spells + public boolean canWalkToEnhanced(int toX, int toY, int factor) { + return distanceFrom(toX, toY) <= speed*factor; + } + + //for healing spells + public void heal(int hp) { + super.currentHP = Math.min(super.currentHP + hp, super.initialHP); + } + public boolean canAttack(int toX, int toY) { return distanceFrom(toX, toY) <= rangeOfAttack; } @@ -62,6 +77,15 @@ public boolean attack(Destructible d) { return false; } + //for damage spells + public boolean attackEnhanced(Destructible d, int factor) { + if(canAttack(d.x(), d.y())) { + d.hit(damages*factor); + return true; + } + return false; + } + @Override public String toString() { return name(); } From cd5f94303d03833935a209e8c9c90ed405bd9803 Mon Sep 17 00:00:00 2001 From: zofiamilczarek Date: Mon, 17 May 2021 20:57:19 +0200 Subject: [PATCH 10/19] Visitor method for double damage overriden in ApplyAction and a method added to Team.java --- src/main/java/lol/game/Arena.java | 14 ++++++++++++++ src/main/java/lol/game/Team.java | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/main/java/lol/game/Arena.java b/src/main/java/lol/game/Arena.java index a0b1e0d..cf2a829 100644 --- a/src/main/java/lol/game/Arena.java +++ b/src/main/java/lol/game/Arena.java @@ -76,6 +76,19 @@ public void visitAttack(int teamID, int championID, int x, int y) { } } + public void visitDoubleDamage(int teamID, int championID, int x, int y) { + if(phase == Phase.GAME) { + if(!championsWhoActed.contains(championID)) { + if(teams.get(teamID).championDoubleDamage(championID, x, y)) { + championsWhoActed.add(championID); + } + } + } + else { + System.out.println("Team " + teamID + " tried to move a champion outside a GAME phase."); + } + } + public void visitChampionSelect(int teamID, String championName) { if(phase == Phase.CHAMP_SELECT) { try { @@ -92,6 +105,7 @@ public void visitChampionSelect(int teamID, String championName) { } } + public void applyTurn(Turn turn) { turn.accept(new ApplyAction()); } diff --git a/src/main/java/lol/game/Team.java b/src/main/java/lol/game/Team.java index 13feaa4..021bca2 100644 --- a/src/main/java/lol/game/Team.java +++ b/src/main/java/lol/game/Team.java @@ -66,6 +66,20 @@ public boolean championAttack(int championID, int x, int y) { return attacked[0]; } + public boolean championDoubleDamage(int championID,int x, int y){ + Champion champion = champions.get(championID); + boolean attacked = 0; + battlefield.visit(x, y, new TileVisitor(){ + @Override public void visitDestructible(Destructible d) { + attacked = champion.attackEnhanced(d,2); + } + }); + if(!attacked) { + System.out.println("Invalid attack target of champion " + champion.name()); + } + return attacked; + } + public void makeSpawnTurn(final Turn turn) { int[] champIdx = {0}; battlefield.visitAdjacent(nexus.x(), nexus.y(), 1, new TileVisitor(){ From 36def2d6ec9d7ae325b2a79e1ac4496c3c9abd5e Mon Sep 17 00:00:00 2001 From: sena Date: Mon, 17 May 2021 22:00:26 +0300 Subject: [PATCH 11/19] Small update in Champion class --- src/main/java/lol/game/Champion.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/lol/game/Champion.java b/src/main/java/lol/game/Champion.java index 440db6d..ce0fb46 100644 --- a/src/main/java/lol/game/Champion.java +++ b/src/main/java/lol/game/Champion.java @@ -42,11 +42,6 @@ public int attackRange() { return rangeOfAttack; } - //for spells that change the range of attack - public int attackRangeEnhanced(int factor) { - return rangeOfAttack*factor; - } - private int distanceFrom(int toX, int toY) { return Math.max(Math.abs(toX - x()), Math.abs(toY - y())); } @@ -69,6 +64,11 @@ public boolean canAttack(int toX, int toY) { return distanceFrom(toX, toY) <= rangeOfAttack; } + //for changing the range of attack in spells + public boolean canAttackEnhanced(int toX, int toY, int factor) { + return distanceFrom(toX, toY) <= rangeOfAttack*factor; + } + public boolean attack(Destructible d) { if(canAttack(d.x(), d.y())) { d.hit(damages); From 20522af95b3fa06fdd090f00873e3e94c69335e0 Mon Sep 17 00:00:00 2001 From: zofiamilczarek Date: Mon, 17 May 2021 21:19:39 +0200 Subject: [PATCH 12/19] minor changes --- src/main/java/lol/game/Team.java | 8 ++++---- src/main/java/lol/game/action/DoubleDamage.java | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/lol/game/Team.java b/src/main/java/lol/game/Team.java index 021bca2..dc5071c 100644 --- a/src/main/java/lol/game/Team.java +++ b/src/main/java/lol/game/Team.java @@ -68,16 +68,16 @@ public boolean championAttack(int championID, int x, int y) { public boolean championDoubleDamage(int championID,int x, int y){ Champion champion = champions.get(championID); - boolean attacked = 0; + boolean[] attacked = {false}; battlefield.visit(x, y, new TileVisitor(){ @Override public void visitDestructible(Destructible d) { - attacked = champion.attackEnhanced(d,2); + attacked[0] = champion.attackEnhanced(d,2); } }); - if(!attacked) { + if(!attacked[0]) { System.out.println("Invalid attack target of champion " + champion.name()); } - return attacked; + return attacked[0]; } public void makeSpawnTurn(final Turn turn) { diff --git a/src/main/java/lol/game/action/DoubleDamage.java b/src/main/java/lol/game/action/DoubleDamage.java index da64f98..fb66f25 100644 --- a/src/main/java/lol/game/action/DoubleDamage.java +++ b/src/main/java/lol/game/action/DoubleDamage.java @@ -7,7 +7,7 @@ public abstract class DoubleDamage extends Spell implements Serializable { protected int x; protected int y; - public Spell(int teamID, int championID, int x, int y) { + public DoubleDamage(int teamID, int championID, int x, int y) { super(teamID,championID); this.x = x; this.y = y; From 6c33d0ec4edc376d80fc659a1da4dae37d883850 Mon Sep 17 00:00:00 2001 From: zofiamilczarek Date: Mon, 17 May 2021 21:39:02 +0200 Subject: [PATCH 13/19] Merged with the latest version --- src/main/java/lol/game/Attacker.java | 4 ++-- src/main/java/lol/game/Destructible.java | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/lol/game/Attacker.java b/src/main/java/lol/game/Attacker.java index 0e35010..d265128 100644 --- a/src/main/java/lol/game/Attacker.java +++ b/src/main/java/lol/game/Attacker.java @@ -3,8 +3,8 @@ // class is abstract, since it should never be used alone public abstract class Attacker extends Destructible { - private int rangeOfAttack; - private int damages; + protected int rangeOfAttack; + protected int damages; public Attacker(int hp, int rangeOfAttack, int damages) { super(hp); diff --git a/src/main/java/lol/game/Destructible.java b/src/main/java/lol/game/Destructible.java index c176b2c..58e8012 100644 --- a/src/main/java/lol/game/Destructible.java +++ b/src/main/java/lol/game/Destructible.java @@ -2,10 +2,10 @@ // The coordinates are the position of the destructible in the battlefield. public abstract class Destructible { - private int xCoord; - private int yCoord; - private int initialHP; - private int currentHP; + protected int xCoord; + protected int yCoord; + protected int initialHP; + protected int currentHP; public Destructible(int hp) { this.initialHP = hp; @@ -49,6 +49,6 @@ public int currentHP(){ public int initialHP(){ return initialHP; } - + public abstract void accept(TileVisitor visitor); } From 8183a90efb6e93b0d2a9d60cac3fb4f75f02b35e Mon Sep 17 00:00:00 2001 From: zofiamilczarek Date: Wed, 19 May 2021 19:15:05 +0200 Subject: [PATCH 14/19] AI class for spell added --- .../java/lol/client/ai/RandomAISpell.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/main/java/lol/client/ai/RandomAISpell.java diff --git a/src/main/java/lol/client/ai/RandomAISpell.java b/src/main/java/lol/client/ai/RandomAISpell.java new file mode 100644 index 0000000..dc672ae --- /dev/null +++ b/src/main/java/lol/client/ai/RandomAISpell.java @@ -0,0 +1,35 @@ +package lol.client.ai; + +import java.util.*; +import lol.game.*; +import lol.game.action.*; + +public class RandomAISpell extends RandomAI { + + public RandomAISpell(Arena arena, Battlefield battlefield) { + super(arena, battlefield); + } + + public Turn turn() { + Turn turn = new Turn(); + // Try to attack the Nexus first. + tryAttackNexus(turn); + // Try to attack a Tower. + tryDoubleAttack(turn); + // Add a move action in case we could not attack the Nexus. + tryMove(turn); + return turn; + } + + private void tryDoubleDamageOnTower(Turn turn) { + arena.teamOf(teamID).forEachChampion((champion, id) -> + battlefield.visitAdjacent(champion.x(), champion.y(), champion.attackRange(), new TileVisitor(){ + public void visitTower(Tower tower) { + if(tower.teamOfTower() != teamID) { + turn.registerAction(new DoubleDamage(teamID, id, tower.x(), tower.y())); + } + } + })); + } + +} From 699cb039e7d552d7a8f9a0bf30e289456678c18f Mon Sep 17 00:00:00 2001 From: sena Date: Wed, 19 May 2021 20:19:19 +0300 Subject: [PATCH 15/19] Added tryDoubleDamageOnNexus to RandomAISpell class --- src/main/java/lol/client/ai/RandomAISpell.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/lol/client/ai/RandomAISpell.java b/src/main/java/lol/client/ai/RandomAISpell.java index dc672ae..46576b5 100644 --- a/src/main/java/lol/client/ai/RandomAISpell.java +++ b/src/main/java/lol/client/ai/RandomAISpell.java @@ -21,6 +21,17 @@ public Turn turn() { return turn; } + protected void tryDoubleDamageOnNexus(Turn turn) { + arena.teamOf(teamID).forEachChampion((champion, id) -> + battlefield.visitAdjacent(champion.x(), champion.y(), champion.attackRange(), new TileVisitor(){ + public void visitNexus(Nexus nexus) { + if(nexus.teamOfNexus() != teamID) { + turn.registerAction(new DoubleDamage(teamID, id, tower.x(), tower.y())); + } + } + })); + } + private void tryDoubleDamageOnTower(Turn turn) { arena.teamOf(teamID).forEachChampion((champion, id) -> battlefield.visitAdjacent(champion.x(), champion.y(), champion.attackRange(), new TileVisitor(){ From 03692082efd87b0ee1c5e4570b3f6b10b5b0fa0b Mon Sep 17 00:00:00 2001 From: zofiamilczarek Date: Wed, 19 May 2021 19:53:18 +0200 Subject: [PATCH 16/19] Spells integrated with the AI (with some bugs) --- src/main/java/lol/client/Client.java | 2 +- src/main/java/lol/client/ai/RandomAI.java | 2 +- src/main/java/lol/client/ai/RandomAISpell.java | 14 +++++++++----- src/main/java/lol/client/ai/RandomAITower.java | 2 +- src/main/java/lol/game/action/DoubleDamage.java | 2 +- 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main/java/lol/client/Client.java b/src/main/java/lol/client/Client.java index c3c2e4a..eb86620 100644 --- a/src/main/java/lol/client/Client.java +++ b/src/main/java/lol/client/Client.java @@ -15,7 +15,7 @@ public static void main(String[] args) { ASCIIBattlefieldBuilder battlefieldBuilder = new ASCIIBattlefieldBuilder(); Battlefield battlefield = battlefieldBuilder.build(); Arena arena = new Arena(battlefield); - RandomAITower ai = new RandomAITower(arena, battlefield); + RandomAISpell ai = new RandomAISpell(arena, battlefield); new Client(ai, arena, battlefield).run(); } diff --git a/src/main/java/lol/client/ai/RandomAI.java b/src/main/java/lol/client/ai/RandomAI.java index a58c02d..7aada60 100644 --- a/src/main/java/lol/client/ai/RandomAI.java +++ b/src/main/java/lol/client/ai/RandomAI.java @@ -1,4 +1,4 @@ -package lol.client.ai; + package lol.client.ai; import java.util.*; import lol.game.*; diff --git a/src/main/java/lol/client/ai/RandomAISpell.java b/src/main/java/lol/client/ai/RandomAISpell.java index 46576b5..3a90d7e 100644 --- a/src/main/java/lol/client/ai/RandomAISpell.java +++ b/src/main/java/lol/client/ai/RandomAISpell.java @@ -4,7 +4,7 @@ import lol.game.*; import lol.game.action.*; -public class RandomAISpell extends RandomAI { +public class RandomAISpell extends RandomAITower { public RandomAISpell(Arena arena, Battlefield battlefield) { super(arena, battlefield); @@ -12,11 +12,15 @@ public RandomAISpell(Arena arena, Battlefield battlefield) { public Turn turn() { Turn turn = new Turn(); - // Try to attack the Nexus first. + //try to attack with a spell first + tryDoubleDamageOnNexus(turn); + // Try to attack the Nexus tryAttackNexus(turn); + + tryDoubleDamageOnTower(turn); // Try to attack a Tower. - tryDoubleAttack(turn); // Add a move action in case we could not attack the Nexus. + tryAttackTower(turn); tryMove(turn); return turn; } @@ -26,13 +30,13 @@ protected void tryDoubleDamageOnNexus(Turn turn) { battlefield.visitAdjacent(champion.x(), champion.y(), champion.attackRange(), new TileVisitor(){ public void visitNexus(Nexus nexus) { if(nexus.teamOfNexus() != teamID) { - turn.registerAction(new DoubleDamage(teamID, id, tower.x(), tower.y())); + turn.registerAction(new DoubleDamage(teamID, id, nexus.x(), nexus.y())); } } })); } - private void tryDoubleDamageOnTower(Turn turn) { + protected void tryDoubleDamageOnTower(Turn turn) { arena.teamOf(teamID).forEachChampion((champion, id) -> battlefield.visitAdjacent(champion.x(), champion.y(), champion.attackRange(), new TileVisitor(){ public void visitTower(Tower tower) { diff --git a/src/main/java/lol/client/ai/RandomAITower.java b/src/main/java/lol/client/ai/RandomAITower.java index c997b96..0433f6d 100644 --- a/src/main/java/lol/client/ai/RandomAITower.java +++ b/src/main/java/lol/client/ai/RandomAITower.java @@ -21,7 +21,7 @@ public Turn turn() { return turn; } - private void tryAttackTower(Turn turn) { + protected void tryAttackTower(Turn turn) { arena.teamOf(teamID).forEachChampion((champion, id) -> battlefield.visitAdjacent(champion.x(), champion.y(), champion.attackRange(), new TileVisitor(){ public void visitTower(Tower tower) { diff --git a/src/main/java/lol/game/action/DoubleDamage.java b/src/main/java/lol/game/action/DoubleDamage.java index fb66f25..b6dc660 100644 --- a/src/main/java/lol/game/action/DoubleDamage.java +++ b/src/main/java/lol/game/action/DoubleDamage.java @@ -3,7 +3,7 @@ import lol.game.*; import java.io.Serializable; -public abstract class DoubleDamage extends Spell implements Serializable { +public class DoubleDamage extends Spell implements Serializable { protected int x; protected int y; From cacc0f9ee641251aa934fa42ed93cbda479f7944 Mon Sep 17 00:00:00 2001 From: sena Date: Wed, 19 May 2021 21:08:22 +0300 Subject: [PATCH 17/19] Updated Client class to test something --- src/main/java/lol/client/Client.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/lol/client/Client.java b/src/main/java/lol/client/Client.java index eb86620..c3c2e4a 100644 --- a/src/main/java/lol/client/Client.java +++ b/src/main/java/lol/client/Client.java @@ -15,7 +15,7 @@ public static void main(String[] args) { ASCIIBattlefieldBuilder battlefieldBuilder = new ASCIIBattlefieldBuilder(); Battlefield battlefield = battlefieldBuilder.build(); Arena arena = new Arena(battlefield); - RandomAISpell ai = new RandomAISpell(arena, battlefield); + RandomAITower ai = new RandomAITower(arena, battlefield); new Client(ai, arena, battlefield).run(); } From e4463f9763c8dd4beacfd67f583cdd0bfd6d372f Mon Sep 17 00:00:00 2001 From: zofiamilczarek Date: Wed, 19 May 2021 20:22:21 +0200 Subject: [PATCH 18/19] AI bugs fixed, the spells work now --- src/main/java/lol/client/Client.java | 2 +- src/main/java/lol/game/Team.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/lol/client/Client.java b/src/main/java/lol/client/Client.java index c3c2e4a..eb86620 100644 --- a/src/main/java/lol/client/Client.java +++ b/src/main/java/lol/client/Client.java @@ -15,7 +15,7 @@ public static void main(String[] args) { ASCIIBattlefieldBuilder battlefieldBuilder = new ASCIIBattlefieldBuilder(); Battlefield battlefield = battlefieldBuilder.build(); Arena arena = new Arena(battlefield); - RandomAITower ai = new RandomAITower(arena, battlefield); + RandomAISpell ai = new RandomAISpell(arena, battlefield); new Client(ai, arena, battlefield).run(); } diff --git a/src/main/java/lol/game/Team.java b/src/main/java/lol/game/Team.java index b6f262e..80b040e 100644 --- a/src/main/java/lol/game/Team.java +++ b/src/main/java/lol/game/Team.java @@ -77,6 +77,9 @@ public boolean championDoubleDamage(int championID,int x, int y){ battlefield.visit(x, y, new TileVisitor(){ @Override public void visitDestructible(Destructible d) { attacked[0] = champion.attackEnhanced(d,2); + if(d.isDead()){ + battlefield.destroy(d); + } } }); if(!attacked[0]) { From 405c1f150847199690b80cc3c5f69f5a40566a72 Mon Sep 17 00:00:00 2001 From: sena Date: Wed, 19 May 2021 22:41:25 +0300 Subject: [PATCH 19/19] Updated pom file --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 1835f8b..6b4cb47 100644 --- a/pom.xml +++ b/pom.xml @@ -8,8 +8,8 @@ UTF-8 - 11 - 11 + 14 + 14 16 0.0.6 @@ -34,4 +34,4 @@ ${javafx.version} - \ No newline at end of file +