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