Exemplo n.º 1
0
 bool ActorGrantsValidArea(Actor a, RequiresBuildableAreaInfo rba)
 {
     return(rba.AreaTypes.Overlaps(a.TraitsImplementing <GivesBuildableArea>()
                                   .SelectMany(gba => gba.AreaTypes)));
 }
Exemplo n.º 2
0
        static bool AnyGivesBuildableArea(IEnumerable <Actor> actors, Player p, bool allyBuildEnabled, RequiresBuildableAreaInfo rba)
        {
            foreach (var a in actors)
            {
                if (!a.IsInWorld)
                {
                    continue;
                }

                if (a.Owner != p && (!allyBuildEnabled || a.Owner.RelationshipWith(p) != PlayerRelationship.Ally))
                {
                    continue;
                }

                var overlaps = rba.AreaTypes.Overlaps(a.TraitsImplementing <GivesBuildableArea>()
                                                      .SelectMany(gba => gba.AreaTypes));

                if (overlaps)
                {
                    return(true);
                }
            }

            return(false);
        }