@Override
	public boolean tick(Tickable ticking, int tickID)
	{
		if(!super.tick(ticking, tickID))
			return false;
		if(affected instanceof MOB)
		{
			final MOB M=(MOB)affected;
			if((M.riding()!=null)
			&& (M.riding() != lastRider)
			&& (M.riding() instanceof MOB))
			{
				lastRider=M.riding();
				final Room R=((MOB)lastRider).location();
				if((R != null)
				&&(CMLib.flags().flaggedAffects(lastRider,Ability.FLAG_SUMMONING).size()==0))
				{
					int x=ridden.indexOfFirst(Integer.valueOf(lastRider.hashCode()));
					final Pair<Integer,Rideable> addMe;
					if(x>0)
						addMe=ridden.remove(x);
					else
					{
						final Rideable copyR=(Rideable)lastRider.copyOf();
						R.delInhabitant((MOB)copyR);
						((MOB)copyR).setLocation(null);
						CMLib.threads().deleteAllTicks(copyR);
						addMe=new Pair<Integer,Rideable>(Integer.valueOf(lastRider.hashCode()),copyR);
					}
					ridden.add(addMe);
					if(ridden.size()>5)
						ridden.remove(0);
				}
			}
		}
		return true;
	}