@Override
	public boolean tick(Tickable ticking, int tickID)
	{
		if(!(affected instanceof MOB))
			return super.tick(ticking,tickID);

		final MOB mob=(MOB)affected;

		if(tickID!=Tickable.TICKID_MOB) return true;
		if(!proficiencyCheck(null,0,false)) return true;

		if((mob.curState().getHunger()<=0)
		||(mob.curState().getThirst()<=0))
		{
			if(mob.curState().getThirst()<=0)
				mob.tell(_("Your mouth is dry!"));
			else
				mob.tell(_("Your stomach growls!"));
			unInvoke();
			return false;
		}

		if((!mob.isInCombat())
		&&(CMLib.flags().isSitting(mob)))
		{
			final double man=((mob.charStats().getStat(CharStats.STAT_INTELLIGENCE)
							+(2*getXLEVELLevel(mob))
							+mob.charStats().getStat(CharStats.STAT_WISDOM)));
			mob.curState().adjMana( (int)Math.round( ( man * .1 ) + ( ( mob.phyStats().level() + ( 2.0 * getXLEVELLevel( mob ) ) ) / 2.0 ) ),
									mob.maxState() );
		}
		else
		{
			unInvoke();
			return false;
		}
		return super.tick(ticking,tickID);
	}