package visitor;

public class LowestHPVisitor implements Visitor {

	int hp = Integer.MAX_VALUE;

	public int getLowestHP() {
		return hp;
	}

	private void checkHP(Item i) {
		System.out.println("visiting " + i.getName());
		if (i.getHitPoints() < hp) {
			hp = i.getHitPoints();
		}
	}

	public void visit(SimpleItem si) {
		checkHP(si);
	}

	public void visit(CompositeItem ci) {
		checkHP(ci);
	}

	public void visit(Chain c) {
		checkHP(c);
	}

	public void visit(Diamond d) {
		checkHP(d);
	}

	public void visit(Ruby r) {
		checkHP(r);
	}
}
