From 846ff35f73e47ed8709133cb45ab4662c9aa6224 Mon Sep 17 00:00:00 2001 From: Tony Brar Date: Tue, 13 Dec 2016 20:08:24 -0700 Subject: [PATCH] Handle when Characters have no Weapon or target Uses a default Weapon of "fists" Skips attack if no target is picked --- src/Character.java | 3 +++ src/Fists.java | 16 ++++++++++++++++ src/Main.java | 19 ++++++++++++++----- 3 files changed, 33 insertions(+), 5 deletions(-) create mode 100644 src/Fists.java diff --git a/src/Character.java b/src/Character.java index 7fc976d..1fa238a 100644 --- a/src/Character.java +++ b/src/Character.java @@ -51,6 +51,9 @@ public void addWeapon(Weapon newWeapon) { * Gets the equipped weapon of this Character */ public Weapon getEquippedWeapon() { + if (equippedWeapon == -1) { + return null; + } return weapons.get(equippedWeapon); } diff --git a/src/Fists.java b/src/Fists.java new file mode 100644 index 0000000..b1af46a --- /dev/null +++ b/src/Fists.java @@ -0,0 +1,16 @@ +/** + * Default weapon for when you are unarmed + */ +public class Fists extends Weapon { + public Fists() { + super("fists", "your hands", 3); + } + + + @Override + public boolean useOn(Character target) { + target.health -= getBaseDamage(); + System.out.println("Slapped for " + getBaseDamage() + " damage."); + return true; + } +} diff --git a/src/Main.java b/src/Main.java index bab199f..a75ed38 100644 --- a/src/Main.java +++ b/src/Main.java @@ -4,6 +4,7 @@ public class Main { public static void main(String[] args) { + Weapon defaultWeapon = new Fists(); ArrayList characters = new ArrayList<>(); /* Adding Your Character to the Arena, by Avery @@ -37,12 +38,20 @@ public static void main(String[] args) { continue; } int targetIndex = curr.pickTarget(characters); - if (targetIndex != i) { - System.out.println(curr.getName() + " attacked " + - characters.get(targetIndex).getName() + - " with their " + curr.getEquippedWeapon().getName()); + if (targetIndex == -1) { + System.out.println(curr.getName() + "'s attack failed because" + + " it couldn't find a good target."); + continue; + } + Character target = characters.get(targetIndex); + Weapon weapon = curr.getEquippedWeapon(); + if (weapon == null) { + weapon = defaultWeapon; } - curr.getEquippedWeapon().useOn(characters.get(targetIndex)); + System.out.println(curr.getName() + " attacks " + + target.getName() + + " with their " + weapon.getName()); + weapon.useOn(target); } if (characters.size() == 1) { System.out.println(characters.get(0).getName() + " won!");