private Ability setPresenceReaction(MOB M, Physical myHost)
		{
			if((!CMLib.flags().canBeSeenBy(myHost, M))&&(!CMLib.flags().canBeHeardMovingBy(myHost,M)))
				return null;

			Vector<Object> myReactions=null;
			List<Faction.FReactionItem> tempReactSet=null;
			for(int d=0;d<currentReactionSets.size();d++)
				if(CMLib.masking().maskCheck((MaskingLibrary.CompiledZapperMask)currentReactionSets.elementAt(d,1),M,true))
				{
					if(myReactions==null) myReactions=new Vector<Object>();
					tempReactSet=(List)currentReactionSets.elementAt(d,2);
					for(final Faction.FReactionItem reactionItem : tempReactSet)
						myReactions.add(reactionItem.reactionObjectID()+"="+reactionItem.parameters());
				}
			if(myReactions!=null)
				if(useLightReactions())
				{
					presenceReactionPrototype.invoke(M,myReactions,myHost,false,0);
					if(myReactions.size()==1)
					{
						final Ability A=(Ability)myReactions.firstElement();
						A.setInvoker(M);
						return A;
					}
				}
				else
					presenceReactionPrototype.invoke(M,myReactions,myHost,true,0);
			return null;
		}