@Override
public int addValue(int value) {
	for (Entity e : getBodyParts())
		value = e.addValue(value);

	if (value > 0) {
		value -= 50;
		Vector<Entity> fats = getBodyParts();
		Entity last = fats.get(fats.size() - 1);
		if (fats.size() < MAX_FATS) {
			Fat fat = new Fat();
			fat.setAngle(last.getAngle());
			fat.setFrontX(last.getX());
			fat.setY(last.getY());
			fat.setMaxVelocity(0);
			addBodyPart(fat);
		} else
			for (int i = 0; i < fats.size(); ++i)
				if (!((Fat) fats.get(i)).getBig()) {
					((Fat) fats.get(i)).setBig(true);
					break;
				}

		for (int i = 0; i < fats.size(); ++i)
			fats.get(i).setValue(((Fat) fats.get(i)).getBig() ? 50 : 0);
	}
	if (value > 0)
		spawnExcrement(value);

	return 0;
}