private IActor[] CheckForIntruders(IActor actor)
        {
            var foundIntruders = new List <IActor>();

            foreach (var target in _actorManager.Items)
            {
                if (target.Owner == actor.Owner)
                {
                    continue;
                }

                if (target.Person.Survival.IsDead)
                {
                    continue;
                }

                var isVisible = LogicHelper.CheckTargetVisible(_map, actor.Node, target.Node);
                if (!isVisible)
                {
                    continue;
                }

                foundIntruders.Add(target);
            }

            return(foundIntruders.ToArray());
        }
Exemple #2
0
        private static IEnumerable <IActor> CheckForIntruders(IActor actor, ISectorMap map, IActorManager actorManager)
        {
            foreach (var target in actorManager.Items)
            {
                if (target.Person.Fraction == actor.Person.Fraction ||
                    (target.Person.Fraction == Fractions.MilitiaFraction &&
                     actor.Person.Fraction == Fractions.MainPersonFraction) ||
                    (target.Person.Fraction == Fractions.MainPersonFraction &&
                     actor.Person.Fraction == Fractions.MilitiaFraction) ||
                    (target.Person.Fraction == Fractions.InterventionistFraction &&
                     actor.Person.Fraction == Fractions.TroublemakerFraction) ||
                    (target.Person.Fraction == Fractions.TroublemakerFraction &&
                     actor.Person.Fraction == Fractions.InterventionistFraction))
                {
                    continue;
                }

                if (target.Person.CheckIsDead())
                {
                    continue;
                }

                var isVisible = LogicHelper.CheckTargetVisible(map, actor.Node, target.Node);
                if (!isVisible)
                {
                    continue;
                }

                yield return(target);
            }
        }
        private IEnumerable <IActor> CheckForIntruders(IActor actor)
        {
            foreach (var target in _actorManager.Items)
            {
                if (target.Owner == actor.Owner)
                {
                    continue;
                }

                if (target.Person.Survival.IsDead)
                {
                    continue;
                }

                var isVisible = LogicHelper.CheckTargetVisible(_map, actor.Node, target.Node);
                if (!isVisible)
                {
                    continue;
                }

                yield return(target);
            }
        }