@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.getRearX());
				fat.setY(last.getYFromCenterToRear(FAT_DISTANCE
						+ NECK_RADIUS));
				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;
	}