public Item getItem(int monsterLevel, Vector2f v, int tileX, int tileY){
			int min = monsterLevel - 2;
			monsterLevel += 1;
			if (min < 0){
				min = 0;
			}
			Random r = new Random();
			int firstRoll = r.nextInt(100) + 1;
			ArrayList<ItemInfo> list;
			if (firstRoll <= commonRoll){
				list = ipx.getListOf(Quality.COMMON);
				System.out.println("Common");                      //debug
			}
			else if (firstRoll <= uncommonRoll){
				list = ipx.getListOf(Quality.UNCOMMON);
				System.out.println("Uncommon");                      //debug
			}
			else{
				list = ipx.getListOf(Quality.RARE);
				System.out.println("Rare");                      //debug
			}
			int max = 0;
			int listMin = 0;
			//assumes sorted by lvlReq
			boolean foundMax = false;
			boolean foundMin = false;
			for (int i = 0; i < list.size(); i++){
				ItemInfo info = list.get(i);
				System.out.print(info.getLvlReq() + ",");					//debug
				if (info.getLvlReq() <= monsterLevel){
					max = i;
				}
				else if(info.getLvlReq() > monsterLevel){
					foundMax = true;
				}
				if (info.getLvlReq() < min){
					listMin = i;
				}
				else if (info.getLvlReq() >= min){
					if (!foundMin){
						listMin = i;
					}
					foundMin = true;
				}
			}
			System.out.println();											//debug
			System.out.println("(Max: " + max + " Min: " + listMin + ")");  //debug
			if (!foundMax && !foundMin){
				return null;
			}
			int secondRoll = 0;
			int difference = max - listMin;
			if (difference > 0){
				secondRoll = r.nextInt(difference) + listMin;  //returns an item between the min and maximum
			}
			else{
				secondRoll = max;
			}
			if (secondRoll >= list.size()){
				secondRoll = list.size() - 1;
			}
			System.out.println("ROLL: " + secondRoll);									//debug
			System.out.println("---------------------------------------------");		//debug
			ItemInfo info = list.get(secondRoll);
			if (info.getLvlReq() < monsterLevel - 2 || info.getLvlReq() > monsterLevel){
				return null;
			}
			ItemType type = info.getType();
			if (type == ItemType.WEAPON){
				return new Weapon(info, v, tileX, tileY);
			}
			else if (type == ItemType.ARMOR){
				return new Armor(info,v, tileX, tileY);
			}
			else if (type == ItemType.HEAD){
				return new Helm(info,v, tileX, tileY);
			}
			else if (type == ItemType.BOOTS){
				return new Boots(info,v,tileX, tileY);
			}
			else if (type == ItemType.OFFHAND){
				return new OffHand(info,v, tileX, tileY);
			}
			return null;
		}