private void announceWinners(Environmental host)
	{
		final DVector scores=determineAllSortedScores(false);
		if(scores.size()>0)
		{
			final MOB winner=(MOB)scores.elementAt(scores.size()-1,1);
			communicate(host,null,"The winner is "+winner.name()+", who has "+describeHand(((Integer)scores.elementAt(scores.size()-1,2)).intValue())+".",null);
			for(int d=scores.size()-1;d>=0;d--)
				if(scores.elementAt(d,1)!=winner)
					communicate(host,null,((MOB)scores.elementAt(d,1)).name()+" had "+describeHand(((Integer)scores.elementAt(d,2)).intValue())+".",null);

			// if the winner is here, give them all the gold on
			// the ground
			if((CMLib.map().roomLocation(host)==winner.location())
			&&(CMLib.flags().isInTheGame(winner,true)))
			{
				final Room R=winner.location();
				Item I=null;
				double totalValue=0.0;
				final Vector winnings=new Vector();
				for(int i=R.numItems()-1;i>=0;i--)
				{
					I=R.getItem(i);
					if(I instanceof Coins)
						winnings.addElement(I);
				}
				for(int i=0;i<winnings.size();i++)
				{
					I=(Item)winnings.elementAt(i);
					I.setContainer(null);
					totalValue+=((Coins)I).getTotalValue();
					I.destroy();
				}
				if(totalValue>0.0)
				{
					CMLib.beanCounter().giveSomeoneMoney(winner,CMLib.beanCounter().getCurrency(host),totalValue);
					R.show(winner,null,null,CMMsg.MSG_OK_ACTION,_("<S-NAME> collect(s) @x1 in winnings.",CMLib.beanCounter().abbreviatedPrice(CMLib.beanCounter().getCurrency(host),totalValue)));
				}
			}
		}
		else
			communicate(host,null,"There was no winner in this game, and so the pot carries over to the next game.",null);
	}