예제 #1
0
        public List <Building_MobileProjector> GetPoweredAndIdleProjectorsWithGroupId(int groupId)
        {
            List <Building_MobileProjector> projectorsList = new List <Building_MobileProjector>();

            foreach (Building building in this.Map.listerBuildings.AllBuildingsColonistOfDef(Util_Projector.ProjectorTowerDef))
            {
                Building_MobileProjectorTower projector = building as Building_MobileProjectorTower;
                if ((projector != null) &&
                    (projector.groupId == groupId) &&
                    (projector.target == null) &&
                    (projector.isRoofed == false) &&
                    projector.powerComp.PowerOn)
                {
                    projectorsList.Add(projector);
                }
            }

            /**foreach (Building building in this.Map.listerBuildings.AllBuildingsColonistOfDef(Util_Projector.ProjectorTurretDef))
             * {
             *  Building_MobileProjectorTurret projector = building as Building_MobileProjectorTurret;
             *  if ((projector != null)
             *      && (projector.groupId == groupId)
             *      && (projector.target == null)
             *      && projector.powerComp.PowerOn)
             *  {
             *      projectorsList.Add(projector);
             *  }
             * }**/
            return(projectorsList);
        }
        public override AlertReport GetReport()
        {
            List <Map> maps = Find.Maps;

            for (int mapIndex = 0; mapIndex < maps.Count; mapIndex++)
            {
                foreach (Building building in maps[mapIndex].listerBuildings.AllBuildingsColonistOfDef(Util_Projector.ProjectorTowerDef))
                {
                    Building_MobileProjectorTower tower = building as Building_MobileProjectorTower;
                    if (tower.isRoofed)
                    {
                        return(AlertReport.CulpritIs(tower));
                    }
                }
            }
            return(AlertReport.Inactive);
        }