@Override
	public void executeMsg(Environmental myHost, CMMsg msg)
	{
		super.executeMsg(myHost, msg);
		if(canBeUninvoked() && (invoker()!=null) && (!msg.source().isMonster()) && (msg.source()!=invoker()) && (msg.sourceMinor()==CMMsg.TYP_ENTER))
		{
			final Physical affected=super.affected;
			if(affected != null)
			{
				if(!CMLib.flags().isInTheGame(invoker(), true))
				{
					unInvoke();
					affected.delEffect(this);
					affected.recoverPhyStats();
				}
				else
				{
					final Set<MOB> grp=invoker().getGroupMembers(new HashSet<MOB>());
					if(!grp.contains(msg.source()))
					{
						unInvoke();
						affected.delEffect(this);
						affected.recoverPhyStats();
					}
				}
			}
		}
	}