diff --git a/src/Archer.class b/src/Archer.class new file mode 100644 index 0000000..4807d90 Binary files /dev/null and b/src/Archer.class differ diff --git a/src/Archer.java b/src/Archer.java index c76401a..7a6fd05 100644 --- a/src/Archer.java +++ b/src/Archer.java @@ -12,13 +12,13 @@ public Archer(String nickname) { public boolean attack(Enemy enemy){ if (this.leftArrow == 0) { - enemy.HP--; + enemy.takeDamage(1); System.out.println("You have 0 arrows left so you grabbed your knife.\n" + "You hit enemy 1 damage, Enemy HP left is: " + enemy.HP); } if (this.leftArrow > 0) { this.leftArrow--; - enemy.HP -= this.damage; + enemy.takeDamage(this.damage); System.out.println("You have " + this.leftArrow + " arrows left."); System.out.println("You hit enemy " + this.damage + " damage," + " Enemy HP left is:" + enemy.HP); @@ -54,9 +54,9 @@ public void showProfile(){ @Override public boolean specialAbility(Enemy enemy) { if (this.ultimateCooldown == 0 && this.leftArrow > 0) { - int totalDamage = this.leftArrow * this.damage; - enemy.takeDamage(totalDamage); - System.out.println("ULTIMATE: Arrow Rain! You shoot your " + this.leftArrow + " arrow at the same time: " + totalDamage + " damage!"); + int ultimateDamage = this.leftArrow * this.damage; + enemy.takeDamage(ultimateDamage); + System.out.println("ULTIMATE: Arrow Rain! You shoot your " + this.leftArrow + " arrow at the same time: " + ultimateDamage + " damage!"); this.leftArrow = 0; this.ultimateCooldown = 5; return true; diff --git a/src/CheatBuff.class b/src/CheatBuff.class new file mode 100644 index 0000000..76eb619 Binary files /dev/null and b/src/CheatBuff.class differ diff --git a/src/DMGBuff.class b/src/DMGBuff.class new file mode 100644 index 0000000..cde9024 Binary files /dev/null and b/src/DMGBuff.class differ diff --git a/src/DMGBuff.java b/src/DMGBuff.java index 8f014ed..58c7794 100644 --- a/src/DMGBuff.java +++ b/src/DMGBuff.java @@ -2,6 +2,6 @@ public class DMGBuff extends PlayerDecorator { public DMGBuff(Player p) { super(p); this.wrappedPlayer.damage += 2; - this.className = this.wrappedPlayer.className + "DMGBuff"; + this.wrappedPlayer.className = p.className + " (DMG Buff)"; } -} +} \ No newline at end of file diff --git a/src/Enemy.class b/src/Enemy.class new file mode 100644 index 0000000..f29897d Binary files /dev/null and b/src/Enemy.class differ diff --git a/src/Game.class b/src/Game.class new file mode 100644 index 0000000..cd076ca Binary files /dev/null and b/src/Game.class differ diff --git a/src/Game.java b/src/Game.java index f2a1c97..d26b374 100644 --- a/src/Game.java +++ b/src/Game.java @@ -84,9 +84,10 @@ public static void play(Player p, Scanner input, Random rand) { if (choice == 1) { stage++; - p.health += 3; - if (p.getHealth() < p.getMaxHealth()) p.setHealth(p.getHealth() + 3); - System.out.println("You rested for a moment. HP restored by 3."); + int newHealth = Math.min(p.getHealth() + 3, p.getMaxHealth()); + int amountHealed = newHealth - p.getHealth(); + p.setHealth(newHealth); + System.out.println("You rested for a moment. HP restored by " + amountHealed + "."); } else { System.out.println("You retired as a legendary hero at Stage " + stage + "!"); playing = false; diff --git a/src/HPBuff.class b/src/HPBuff.class new file mode 100644 index 0000000..b1870f2 Binary files /dev/null and b/src/HPBuff.class differ diff --git a/src/HPBuff.java b/src/HPBuff.java index ee4a704..4d81ded 100644 --- a/src/HPBuff.java +++ b/src/HPBuff.java @@ -1,8 +1,8 @@ public class HPBuff extends PlayerDecorator { public HPBuff(Player p) { super(p); + this.wrappedPlayer.maxHealth += 3; this.wrappedPlayer.health += 3; - this.health = maxHealth; - this.className = this.wrappedPlayer.className + "HPBuff"; + this.wrappedPlayer.className = p.className + " (HP Buff)"; } -} +} \ No newline at end of file diff --git a/src/Knight.class b/src/Knight.class new file mode 100644 index 0000000..8abe0b4 Binary files /dev/null and b/src/Knight.class differ diff --git a/src/Knight.java b/src/Knight.java index 3eb622c..75b5b8e 100644 --- a/src/Knight.java +++ b/src/Knight.java @@ -8,7 +8,7 @@ public Knight(String nickname) { } public boolean attack(Enemy enemy) { - enemy.HP -= this.damage; + enemy.takeDamage(this.damage); System.out.println("You hit enemy " + this.damage + " damage," + " Enemy HP left is:" + enemy.HP); this.damage++; diff --git a/src/Main.class b/src/Main.class new file mode 100644 index 0000000..59e46ce Binary files /dev/null and b/src/Main.class differ diff --git a/src/Player.class b/src/Player.class new file mode 100644 index 0000000..0a070e1 Binary files /dev/null and b/src/Player.class differ diff --git a/src/PlayerDecorator.class b/src/PlayerDecorator.class new file mode 100644 index 0000000..39c9fd2 Binary files /dev/null and b/src/PlayerDecorator.class differ diff --git a/src/Tank.class b/src/Tank.class new file mode 100644 index 0000000..9e89870 Binary files /dev/null and b/src/Tank.class differ diff --git a/src/Tank.java b/src/Tank.java index 0a0b396..6bbd548 100644 --- a/src/Tank.java +++ b/src/Tank.java @@ -14,7 +14,7 @@ public Tank(String nickname) { } public boolean attack(Enemy enemy){ - enemy.HP -= this.damage; + enemy.takeDamage(this.damage); System.out.println("You hit enemy " + this.damage + " damage," + " Enemy HP left is:" + enemy.HP); return true; diff --git a/src/playerFactory.class b/src/playerFactory.class new file mode 100644 index 0000000..42dac74 Binary files /dev/null and b/src/playerFactory.class differ