public override void ComposeSensorTargetSet(GameActor gameActor, Reflex reflex)
        {
            List <Filter> filters = reflex.Filters;

            if (this.playerIndex == PlayerId.Dynamic)
            {
                PlayerId dynamicPlayerId = PlayerId.All;
                // check filters for the player
                for (int indexFilter = 0; indexFilter < filters.Count; indexFilter++)
                {
                    PlayerFilter filter = filters[indexFilter] as PlayerFilter;
                    object       param;
                    if (filter != null && filter.MatchAction(reflex, out param))
                    {
                        dynamicPlayerId = (PlayerId)param;
                        break;
                    }
                }
                reflex.targetSet.Param = dynamicPlayerId;
            }
            else
            {
                reflex.targetSet.Param = this.playerIndex;
            }

            reflex.targetSet.Action = TestObjectSet(reflex);
        }
        public override ProgrammingElement Clone()
        {
            PlayerFilter clone = new PlayerFilter();

            CopyTo(clone);
            return(clone);
        }
 protected void CopyTo(PlayerFilter clone)
 {
     base.CopyTo(clone);
     clone.playerIndex = this.playerIndex;
 }