Beispiel #1
0
        public void Setup()
        {
            unSpentFuse = null;
            List <Thing> listFacilities         = this.TryGetComp <CompAffectedByFacilities>()?.LinkedFacilitiesListForReading;
            List <Building_Mechafuse> listFuses = new List <Building_Mechafuse>();

            foreach (Thing facility in listFacilities)
            {
                Building_Mechafuse fuse = facility as Building_Mechafuse;
                listFuses.Add(fuse);
            }
            listFuses.Where(x => (x.active == true)).TryRandomElement(out unSpentFuse);
            progress = 0;
            this.Map.mapDrawer.MapMeshDirty(this.Position, MapMeshFlag.Things | MapMeshFlag.Buildings);
            oneRaidPerProgress = false;
        }
        public override void ProcessInput(Event ev)
        {
            base.ProcessInput(ev);
            List <FloatMenuOption> list = new List <FloatMenuOption>();

            List <Thing> listFacilities         = building.TryGetComp <CompAffectedByFacilities>()?.LinkedFacilitiesListForReading;
            List <Building_Mechafuse> listFuses = new List <Building_Mechafuse>();

            foreach (Thing facility in listFacilities)
            {
                Building_Mechafuse fuse = facility as Building_Mechafuse;
                listFuses.Add(fuse);
            }
            Building_Mechafuse unSpentFuse;

            listFuses.Where(x => (x.active == true)).TryRandomElement(out unSpentFuse);
            if (unSpentFuse == null)
            {
                Messages.Message("GR_WarningNoFusesLeft".Translate(), building, MessageTypeDefOf.NeutralEvent);
            }



            listOfPawns = Find.CurrentMap.mapPawns.SpawnedColonyAnimals.Where(x => (x.kindDef.HasModExtension <DefExtension_Paragon>())).ToList();

            foreach (Pawn pawn in listOfPawns)
            {
                list.Add(new FloatMenuOption(pawn.LabelCap, delegate
                {
                    pawn.Map.GetComponent <ArchotechExtractableAnimals_MapComponent>().AddParagonToCarry(pawn, building);
                }, MenuOptionPriority.Default, null, null, 29f, null, null));
            }



            if (list.Count > 0)
            {
                list = list.OrderBy(item => item.Label).ToList();
            }
            else
            {
                list.Add(new FloatMenuOption("GR_NoValidParagonsToConvert".Translate(), delegate
                {
                }, MenuOptionPriority.Default, null, null, 29f, null, null));
            }
            Find.WindowStack.Add(new FloatMenu(list));
        }