@Override
	public void printMoveUpdates() {
		log("--Move Updates--");
		List<Move> moves = this.getMoves();
		for (int moveID : moveUpdates.keySet()) {
			boolean[] changes = moveUpdates.get(moveID);
			Move mv = moves.get(moveID);
			List<String> nonTypeChanges = new ArrayList<String>();
			if (changes[0]) {
				nonTypeChanges.add(String.format("%d power", mv.power));
			}
			if (changes[1]) {
				nonTypeChanges.add(String.format("%d PP", mv.pp));
			}
			if (changes[2]) {
				nonTypeChanges.add(String.format("%.00f%% accuracy",
						mv.hitratio));
			}
			String logStr = "Made " + mv.name;
			// type or not?
			if (changes[3]) {
				logStr += " be " + mv.type + "-type";
				if (nonTypeChanges.size() > 0) {
					logStr += " and";
				}
			}
			if (nonTypeChanges.size() > 0) {
				logStr += " have ";
				if (nonTypeChanges.size() == 3) {
					logStr += nonTypeChanges.get(0) + ", "
							+ nonTypeChanges.get(1) + " and "
							+ nonTypeChanges.get(2);
				} else if (nonTypeChanges.size() == 2) {
					logStr += nonTypeChanges.get(0) + " and "
							+ nonTypeChanges.get(1);
				} else {
					logStr += nonTypeChanges.get(0);
				}
			}
			log(logStr);
		}
		logBlankLine();
	}