@Override
	public ShopKeeper.ShopPrice pawningPrice(MOB seller,
											 MOB buyer,
											 Environmental product,
											 ShopKeeper shop)
	{
		double number=1.0;
		if(product instanceof PackagedItems)
		{
			number=((PackagedItems)product).numberOfItemsInPackage();
			product=((PackagedItems)product).getItem();
		}
		final ShopKeeper.ShopPrice val=new ShopKeeper.ShopPrice();
		if(product==null)
			return val;
		final int stockPrice=shop.getShop().stockPrice(product);
		if(stockPrice<=-100) return val;

		if(stockPrice>=0.0)
			val.absoluteGoldPrice=stockPrice;
		else
			val.absoluteGoldPrice=rawSpecificGoldPrice(product,shop.getShop(),number);

		if(buyer==null) return val;

		double prejudiceFactor=prejudiceFactor(buyer,shop.finalPrejudiceFactors(),true);
		final Room loc=CMLib.map().roomLocation(shop);
		prejudiceFactor*=itemPriceFactor(product,loc,shop.finalItemPricingAdjustments(),true);
		val.absoluteGoldPrice=CMath.mul(prejudiceFactor,val.absoluteGoldPrice);

		// gets the shopkeeper a deal on junk.  Pays 5% at 3 charisma, and 50% at 35
		double buyPrice=CMath.div(CMath.mul(val.absoluteGoldPrice,buyer.charStats().getStat(CharStats.STAT_CHARISMA)),70.0);
		if(!(product instanceof Ability))
			buyPrice=CMath.mul(buyPrice,1.0-devalue(shop,product));


		final double sellPrice=sellingPrice(seller,buyer,product,shop,false).absoluteGoldPrice;

		if(buyPrice>sellPrice)
			val.absoluteGoldPrice=sellPrice;
		else
			val.absoluteGoldPrice=buyPrice;

		if(val.absoluteGoldPrice<=0.0)
			val.absoluteGoldPrice=1.0;
		return val;
	}