@Override
	public boolean tick(Tickable ticking, int tickID)
	{
		super.tick(ticking,tickID);

		if(tickID!=Tickable.TICKID_MOB)
			return true;
		final MOB mob=(MOB)ticking;
		if((wakeForTicks<=0)&&(sleepForTicks<=0))
		{
			if((CMLib.dice().rollPercentage()>50)||(mob.isInCombat()))
			{
				CMLib.commands().postStand(mob,true);
				wakeForTicks=CMLib.dice().roll(1,30,0);
			}
			else
			{
				if(CMLib.flags().isAliveAwakeMobile(mob,true))
					mob.location().show(mob,mob.location(),CMMsg.MSG_SLEEP,L("<S-NAME> curl(s) on the ground and go(es) to sleep."));
				if(CMLib.flags().isSleeping(mob))
					sleepForTicks=CMLib.dice().roll(1,10,0);
			}
		}
		else
		if(wakeForTicks>0)
			wakeForTicks--;
		else
		if(sleepForTicks>0)
			sleepForTicks--;
		return true;
	}