@Override
	public boolean tick(Tickable ticking, int tickID)
	{
		if(!super.tick(ticking,tickID))
			return false;
		if((ticking instanceof MOB)&&(tickID==Tickable.TICKID_MOB))
		{
			final MOB mob=(MOB)ticking;
			if(hpToKeep<=0)
			{
				hpToKeep=mob.curState().getHitPoints();
				mob.recoverMaxState();
			}
			else
			{
				if(mob.curState().getHitPoints()>hpToKeep)
					mob.curState().setHitPoints(hpToKeep);
				final int maxMana=(int)Math.round(CMath.mul(mob.maxState().getMana(),healthPct(mob)));
				if(mob.curState().getMana()>maxMana)
					mob.curState().setMana(maxMana);
				final int maxMovement=(int)Math.round(CMath.mul(mob.maxState().getMovement(),healthPct(mob)));
				if(mob.curState().getMovement()>maxMovement)
					mob.curState().setMovement(maxMovement);
			}
		}
		return true;
	}