@Override
	public boolean tick(Tickable ticking, int tickID)
	{
		if(!super.tick(ticking,tickID))
			return false;
		if(!CMProps.getBoolVar(CMProps.Bool.MUDSTARTED))
			return true;
		try
		{
			if(tickID==Tickable.TICKID_MOB)
			{
				// handle interest by watching the days go by...
				// put stuff up for sale if the account runs out
				AtomicBoolean flag;
				synchronized(StdBanker.class)
				{
					@SuppressWarnings({ "unchecked", "rawtypes" })
					Map<String,AtomicBoolean> processingMap = (Map)Resources.getResource("SYSTEM_SEMAPHORES_BANKING");
					if(processingMap == null)
					{
						processingMap = new TreeMap<String,AtomicBoolean>();
						Resources.submitResource("SYSTEM_SEMAPHORES_BANKING", processingMap);
					}
					flag = processingMap.get(bankChain());
					if(flag == null)
					{
						flag = new AtomicBoolean(false);
						processingMap.put(bankChain(), flag);
					}
				}
				boolean isProcessing=true;
				synchronized(flag)
				{
					isProcessing = flag.get();
					if(!isProcessing)
						flag.set(true);
				}
				if(!isProcessing)
				{
					try
					{
						processAccounts();
					}
					finally
					{
						flag.set(false);
					}
				}
			}
		}
		catch (final Exception e)
		{
			Log.errOut("StdBanker", e);
		}
		return true;
	}