@Override
	public boolean tick(Tickable ticking, int tickID)
	{
		if(!super.tick(ticking, tickID))
			return false;
		if(ticking instanceof MOB)
		{
			final MOB M=(MOB)ticking;
			if(activated)
			{
				synchronized(this)
				{
					final Room R=M.location();
					if((activatedUntil!=null)
					&&(R.getArea()!=null)
					&&(R.getArea().getTimeObj().compareTo(activatedUntil)>0))
					{
						activated=false;
						activatedUntil=null;
					}
				}
				if(!activated)
				{
					M.recoverCharStats();
					M.recoverMaxState();
					M.recoverPhyStats();
				}
			}
			else
			if(!M.isPlayer())
			{
				activated=true; // mobs always get it...
				M.recoverCharStats();
				M.recoverMaxState();
				M.recoverPhyStats();
			}
		}
		return true;
	}