// TODO: there are object such as "puch" that need infinite durability public class Weapon { // TODO: if possible make final private int damage; private int durability; private int range; private String name; // TODO: add bonus / power-ups structure // public class PowerUps {} public Weapon(String name, int damage, int range, int durability) { this.name = name; this.damage = damage; this.range = range; this.durability = durability; } /* accessors */ public String getName() { return this.name; } public int getDamage() { return this.damage; } public int getRange() { return this.range; } public int getDurability() { return this.durability; } public boolean isBroken() { return this.durability <= 0; } public boolean damage(Actor attacker, Actor attacked, Map map) { if (isBroken()) { return false; } if (map.getTile(attacked.getX(), attacked.getY()).isSelected()) { attacked.damage(this.damage); this.durability--; return true; } else { return false; } } }