Ejemplo n.º 1
0
        protected override bool CanFireNowSub(IIncidentTarget target)
        {
            Faction faction;
            Faction faction2;
            int     num;

            return(base.CanFireNowSub(target) && this.TryFindFactions(out faction, out faction2) && TileFinder.TryFindNewSiteTile(out num, 8, 30, false, true, -1));
        }
 public override IEnumerable <FiringIncident> MakeIntervalIncidents(IIncidentTarget target)
 {
     foreach (FiringIncident item in ThreatsGenerator.MakeIntervalIncidents(Props.parms, target, (target as Map)?.generationTick ?? 0))
     {
         item.source = this;
         yield return(item);
     }
 }
        private void GenerateForcedIncidents(IIncidentTarget target, IncidentParms parms)
        {
            List <IncidentDef> defs = (from def in base.UsableIncidentsInCategory(this.Props.IncidentCategory, parms)
                                       where parms.points >= def.minThreatPoints
                                       select def).ToList();

            GenerateVotesFromDefs(defs, parms);
        }
 protected override bool CanFireNowSub(IIncidentTarget target)
 {
     if (target is Map)
     {
         return(true);
     }
     return(CaravanIncidentUtility.CanFireIncidentWhichWantsToGenerateMapAt(target.Tile));
 }
Ejemplo n.º 5
0
        protected override bool CanFireNowSub(IIncidentTarget target)
        {
            int         num;
            SitePartDef sitePartDef;
            Faction     faction;

            return(base.CanFireNowSub(target) && Find.AnyPlayerHomeMap != null && CommsConsoleUtility.PlayerHasPoweredCommsConsole() && this.TryFindTile(out num) && SiteMakerHelper.TryFindSiteParams_SingleSitePart(SiteCoreDefOf.PrisonerWillingToJoin, IncidentWorker_QuestPrisonerWillingToJoin.PrisonerWillingToJoinQuestThreatTag, out sitePartDef, out faction, null, true, null));
        }
Ejemplo n.º 6
0
 protected override bool CanFireNowSub(IIncidentTarget target)
 {
     if (!this.PotentialVictims(target).Any())
     {
         return(false);
     }
     return(true);
 }
Ejemplo n.º 7
0
 public string DebugString()
 {
     if (Time.frameCount % 60 == 0)
     {
         StringBuilder stringBuilder = new StringBuilder();
         stringBuilder.AppendLine("GLOBAL STORYTELLER STATS");
         stringBuilder.AppendLine("------------------------");
         stringBuilder.AppendLine("Storyteller: ".PadRight(40) + def.label);
         stringBuilder.AppendLine("Adaptation days: ".PadRight(40) + Find.StoryWatcher.watcherAdaptation.AdaptDays.ToString("F1"));
         stringBuilder.AppendLine("Adapt points factor: ".PadRight(40) + Find.StoryWatcher.watcherAdaptation.TotalThreatPointsFactor.ToString("F2"));
         stringBuilder.AppendLine("Time points factor: ".PadRight(40) + Find.Storyteller.def.pointsFactorFromDaysPassed.Evaluate(GenDate.DaysPassed).ToString("F2"));
         stringBuilder.AppendLine();
         stringBuilder.AppendLine("Ally incident fraction (neutral or ally): ".PadRight(40) + StorytellerUtility.AllyIncidentFraction(fullAlliesOnly: false).ToString("F2"));
         stringBuilder.AppendLine("Ally incident fraction (ally only): ".PadRight(40) + StorytellerUtility.AllyIncidentFraction(fullAlliesOnly: true).ToString("F2"));
         stringBuilder.AppendLine();
         stringBuilder.AppendLine(StorytellerUtilityPopulation.DebugReadout().TrimEndNewlines());
         IIncidentTarget incidentTarget = Find.WorldSelector.SingleSelectedObject as IIncidentTarget;
         if (incidentTarget == null)
         {
             incidentTarget = Find.CurrentMap;
         }
         if (incidentTarget != null)
         {
             Map map = incidentTarget as Map;
             stringBuilder.AppendLine();
             stringBuilder.AppendLine("STATS FOR INCIDENT TARGET: " + incidentTarget);
             stringBuilder.AppendLine("------------------------");
             stringBuilder.AppendLine("Progress score: ".PadRight(40) + StorytellerUtility.GetProgressScore(incidentTarget).ToString("F2"));
             stringBuilder.AppendLine("Base points: ".PadRight(40) + StorytellerUtility.DefaultThreatPointsNow(incidentTarget).ToString("F0"));
             stringBuilder.AppendLine("Points factor random range: ".PadRight(40) + incidentTarget.IncidentPointsRandomFactorRange);
             stringBuilder.AppendLine("Wealth: ".PadRight(40) + incidentTarget.PlayerWealthForStoryteller.ToString("F0"));
             if (map != null)
             {
                 stringBuilder.AppendLine("- Items: ".PadRight(40) + map.wealthWatcher.WealthItems.ToString("F0"));
                 stringBuilder.AppendLine("- Buildings: ".PadRight(40) + map.wealthWatcher.WealthBuildings.ToString("F0"));
                 stringBuilder.AppendLine("- Floors: ".PadRight(40) + map.wealthWatcher.WealthFloorsOnly.ToString("F0"));
                 stringBuilder.AppendLine("- Pawns: ".PadRight(40) + map.wealthWatcher.WealthPawns.ToString("F0"));
             }
             stringBuilder.AppendLine("Pawn count human: ".PadRight(40) + incidentTarget.PlayerPawnsForStoryteller.Where((Pawn p) => p.def.race.Humanlike).Count());
             stringBuilder.AppendLine("Pawn count animal: ".PadRight(40) + incidentTarget.PlayerPawnsForStoryteller.Where((Pawn p) => p.def.race.Animal).Count());
             if (map != null)
             {
                 stringBuilder.AppendLine("StoryDanger: ".PadRight(40) + map.dangerWatcher.DangerRating);
                 stringBuilder.AppendLine("FireDanger: ".PadRight(40) + map.fireWatcher.FireDanger.ToString("F2"));
                 stringBuilder.AppendLine("LastThreatBigTick days ago: ".PadRight(40) + (Find.TickManager.TicksGame - map.storyState.LastThreatBigTick).ToStringTicksToDays());
             }
         }
         stringBuilder.AppendLine();
         stringBuilder.AppendLine("LIST OF ALL INCIDENT TARGETS");
         stringBuilder.AppendLine("------------------------");
         for (int i = 0; i < AllIncidentTargets.Count; i++)
         {
             stringBuilder.AppendLine(i + ". " + AllIncidentTargets[i].ToString());
         }
         debugStringCached = stringBuilder.ToString();
     }
     return(debugStringCached);
 }
Ejemplo n.º 8
0
 public string DebugString()
 {
     if (Time.frameCount % 60 == 0)
     {
         StringBuilder stringBuilder = new StringBuilder();
         stringBuilder.AppendLine("Storyteller : " + this.def.label);
         stringBuilder.AppendLine("------------- Global threats data ---------------");
         stringBuilder.AppendLine("   NumRaidsEnemy: " + Find.StoryWatcher.statsRecord.numRaidsEnemy);
         stringBuilder.AppendLine("   TotalThreatPointsFactor: " + Find.StoryWatcher.watcherRampUp.TotalThreatPointsFactor.ToString("F5"));
         stringBuilder.AppendLine("      ShortTermFactor: " + Find.StoryWatcher.watcherRampUp.ShortTermFactor.ToString("F5"));
         stringBuilder.AppendLine("      LongTermFactor: " + Find.StoryWatcher.watcherRampUp.LongTermFactor.ToString("F5"));
         stringBuilder.AppendLine("   AllyAssistanceMTBMultiplier (ally): " + StorytellerUtility.AllyIncidentMTBMultiplier(false).ToString());
         stringBuilder.AppendLine("   AllyAssistanceMTBMultiplier (non-hostile): " + StorytellerUtility.AllyIncidentMTBMultiplier(true).ToString());
         stringBuilder.AppendLine();
         stringBuilder.AppendLine("-------------- Global population data --------------");
         stringBuilder.AppendLine(this.intenderPopulation.DebugReadout);
         stringBuilder.AppendLine("------------- All incident targets --------------");
         for (int i = 0; i < this.AllIncidentTargets.Count; i++)
         {
             stringBuilder.AppendLine("   " + this.AllIncidentTargets[i].ToString());
         }
         IIncidentTarget incidentTarget = Find.WorldSelector.SingleSelectedObject as IIncidentTarget;
         if (incidentTarget == null)
         {
             incidentTarget = Find.CurrentMap;
         }
         if (incidentTarget != null)
         {
             stringBuilder.AppendLine();
             stringBuilder.AppendLine("---------- Selected: " + incidentTarget + " --------");
             stringBuilder.AppendLine("   Wealth: " + incidentTarget.PlayerWealthForStoryteller.ToString("F0"));
             stringBuilder.AppendLine("   IncidentPointsRandomFactorRange: " + incidentTarget.IncidentPointsRandomFactorRange);
             stringBuilder.AppendLine("   Pawns-Humanlikes: " + (from p in incidentTarget.PlayerPawnsForStoryteller
                                                                 where p.def.race.Humanlike
                                                                 select p).Count <Pawn>());
             stringBuilder.AppendLine("   Pawns-Animals: " + (from p in incidentTarget.PlayerPawnsForStoryteller
                                                              where p.def.race.Animal
                                                              select p).Count <Pawn>());
             Map map = incidentTarget as Map;
             if (map != null)
             {
                 stringBuilder.AppendLine("   StoryDanger: " + map.dangerWatcher.DangerRating);
                 stringBuilder.AppendLine("   FireDanger: " + map.fireWatcher.FireDanger.ToString("F2"));
                 stringBuilder.AppendLine("   DaysSinceSeriousDamage: " + map.damageWatcher.DaysSinceSeriousDamage.ToString("F1"));
                 stringBuilder.AppendLine("   LastThreatBigQueueTick: " + map.storyState.LastThreatBigTick.ToStringTicksToPeriod());
             }
             stringBuilder.AppendLine("   Current points (ignoring early raid factors): " + StorytellerUtility.DefaultThreatPointsNow(incidentTarget).ToString("F0"));
             stringBuilder.AppendLine("   Current points for specific IncidentMakers:");
             for (int j = 0; j < this.storytellerComps.Count; j++)
             {
                 IncidentParms incidentParms = this.storytellerComps[j].GenerateParms(IncidentCategoryDefOf.ThreatBig, incidentTarget);
                 stringBuilder.AppendLine("      " + this.storytellerComps[j].GetType().ToString().Substring(23) + ": " + incidentParms.points.ToString("F0"));
             }
         }
         this.debugStringCached = stringBuilder.ToString();
     }
     return(this.debugStringCached);
 }
        public override bool IsPossible(string message, Viewer viewer, bool separateChannel = false)
        {
            ToolkitPatchLogger.Log(incidentDef.defName, "Checking if possible..");
            this.separateChannel = separateChannel;
            this.Viewer          = viewer;
            string[] command = message.Split(' ');
            if (command.Length < 3)
            {
                Toolkit.client.SendMessage($"@{viewer.username} syntax is {this.storeIncident.syntax}", separateChannel);
                return(false);
            }

            if (!VariablesHelpers.PointsWagerIsValid(
                    command[2],
                    viewer,
                    ref pointsWager,
                    ref storeIncident,
                    separateChannel
                    ))
            {
                return(false);
            }

            ToolkitPatchLogger.Log(incidentDef.defName, $"Got the points wager of '{pointsWager}' and incident of '{storeIncident.abbreviation}:{storeIncident.defName}'");

            target = Current.Game.AnyPlayerHomeMap;
            if (target == null)
            {
                return(false);
            }

            ToolkitPatchLogger.Log(incidentDef.defName, $"Target found '{target.Tile}'");

            parms        = StorytellerUtility.DefaultParmsNow(categoryDef, target);
            parms.points = IncidentHelper_PointsHelper.RollProportionalGamePoints(storeIncident, pointsWager, parms.points);
            if (raidStratDef != null)
            {
                parms.raidStrategy = raidStratDef;
            }
            if (pawnArrivalModeDef != null)
            {
                parms.raidArrivalMode = pawnArrivalModeDef;
            }

            worker     = Activator.CreateInstance <T>();
            worker.def = incidentDef;

            bool success = worker.CanFireNow(parms);

            if (!success)
            {
                WorkerCanFireCheck.CheckDefaultFireNowConditions(worker, parms, incidentDef);
            }

            ToolkitPatchLogger.Log(incidentDef.defName, $"Can fire with params '{parms.ToString()}' on worker {worker.ToString()}? {success}");

            return(success);
        }
Ejemplo n.º 10
0
        public void Update()
        {
            IIncidentTarget incidentTarget = Find.CurrentMap;

            if (incidentTarget != null)
            {
                rps = RadePointsSummary.Get(Find.CurrentMap);
            }
        }
Ejemplo n.º 11
0
        public static bool DoExecuteIncidentDebugAction_PreFix(Dialog_DebugActionsMenu __instance, IIncidentTarget target, IIncidentTarget altTarget)
        {
            //Log.Message("1");
            if (Find.Storyteller?.storytellerComps?.FirstOrDefault(x => x is StorytellerComp_OmenThreatCycle) != null)
            {
                //Log.Message("2");
                AccessTools.Method(typeof(Dialog_DebugActionsMenu), "DebugAction").Invoke(__instance, new object[]
                {
                    "Execute incident...", new Action(delegate
                    {
                        //Log.Message("3");
                        List <DebugMenuOption> list = new List <DebugMenuOption>();
                        foreach (IncidentDef current in from d in DefDatabase <IncidentDef> .AllDefs
                                 where d.TargetAllowed(target) || (altTarget != null && d.TargetAllowed(altTarget))
                                 orderby !d.TargetAllowed(target), d.defName
                                 select d)
                        {
                            IIncidentTarget arg_98_1;
                            if (current.TargetAllowed(target))
                            {
                                IIncidentTarget target2 = target;
                                arg_98_1 = target2;
                            }
                            else
                            {
                                arg_98_1 = altTarget;
                            }
                            var thisIncidentTarget = arg_98_1;

                            string text = current.defName;
                            if (!current.Worker.CanFireNow(thisIncidentTarget))
                            {
                                text += " [NO]";
                            }
                            if (thisIncidentTarget == altTarget)
                            {
                                text = text + " (" + altTarget.GetType().Name.Truncate(52f, null) + ")";
                            }
                            list.Add(new DebugMenuOption(text, DebugMenuOptionMode.Action, delegate
                            {
                                IncidentParms incidentParms = StorytellerUtility.DefaultParmsNow(Find.Storyteller.def, current.category, thisIncidentTarget);
                                if (current.pointsScaleable)
                                {
                                    StorytellerComp storytellerComp = Find.Storyteller.storytellerComps.First((StorytellerComp x) => x is StorytellerComp_ThreatCycle || x is StorytellerComp_RandomMain || x is StorytellerComp_OmenThreatCycle);
                                    incidentParms = storytellerComp.GenerateParms(current.category, incidentParms.target);
                                }
                                current.Worker.TryExecute(incidentParms);
                            }));
                        }
                        ;
                        Find.WindowStack.Add(new Dialog_DebugOptionListLister(list));
                    })
                });
                return(false);
            }
            return(true);
        }
Ejemplo n.º 12
0
        public override IEnumerable <FiringIncident> MakeIntervalIncidents(IIncidentTarget target)
        {
            if (this.Props.incident.TargetAllowed(target) && Rand.MTBEventOccurs(this.Props.mtbDays, 60000f, 1000f))
            {
                yield return(new FiringIncident(this.Props.incident, this, this.GenerateParms(this.Props.incident.category, target)));

                /*Error: Unable to find new state assignment for yield return*/;
            }
        }
Ejemplo n.º 13
0
        public override IEnumerable <FiringIncident> MakeIntervalIncidents(IIncidentTarget target)
        {
            if (!ToolkitSettings.UseToryTalkerWithHodlBot)
            {
                return(null);
            }

            return(base.MakeIntervalIncidents(target));
        }
Ejemplo n.º 14
0
        public override IEnumerable <FiringIncident> MakeIntervalIncidents(IIncidentTarget target)
        {
            IncidentDef selectedDef;

            if (Rand.MTBEventOccurs(this.Props.mtbDays, 60000f, 1000f) && this.UsableIncidentsInCategory(this.Props.category, target).TryRandomElementByWeight((IncidentDef incDef) => this.$this.IncidentChanceFinal(incDef), out selectedDef))
            {
                yield return(new FiringIncident(selectedDef, this, this.GenerateParms(selectedDef.category, target)));
            }
        }
        private Lord lord;                  //The Star Vampire AI manager

        protected override bool CanFireNowSub(IIncidentTarget target)
        {
            if (GenDate.DaysPassed < (ModInfo.cosmicHorrorRaidDelay + this.def.earliestDay))
            {
                Log.Message("Cosmic Horrors :: CantFireDueTo Time :: " + GenDate.DaysPassed + " days passed, but we need " + ModInfo.cosmicHorrorRaidDelay.ToString() + " days + " + this.def.earliestDay);
                return(false);
            }
            return(true);
        }
Ejemplo n.º 16
0
 static void Prefix(IIncidentTarget target, ref Map __state)
 {
     if (MultiplayerWorldComp.tickingWorld && target is Map map)
     {
         MapAsyncTimeComp.tickingMap = map;
         map.AsyncTime().PreContext();
         __state = map;
     }
 }
        //
        //        (( B18 ))
        //        private FiringIncident GenerateQueuedThreatSmall(IIncidentTarget target)
        //        {
        //            IncidentDef incidentDef;
        //            if (!this.UsableIncidentsInCategory(IncidentCategoryDefOf.ThreatSmall, target)
        //                .TryRandomElementByWeight(new Func<IncidentDef, float>(base.IncidentChanceFinal), out incidentDef))
        //            {
        //                return null;
        //            }
        //            return new FiringIncident(incidentDef, this, null)
        //            {
        //                parms = this.GenerateParms(incidentDef.category, target)
        //            };
        //        }


        private FiringIncident GenerateIncident(IIncidentTarget target)
        {
            var parms = GenerateParms(Props.IncidentCategory, target);

            return(new FiringIncident(IncidentDef.Named("HPLovecraft_OmenIncident"), this)
            {
                parms = parms
            });
        }
        protected override bool CanFireNowSub(IIncidentTarget target)
        {
            Map         map = (Map)target;
            PawnKindDef pawnKindDef;
            IntVec3     intVec;
            IntVec3     intVec2;

            return(this.TryFindAnimalKind(map.Tile, out pawnKindDef) && this.TryFindStartAndEndCells(map, out intVec, out intVec2));
        }
        public override IEnumerable <FiringIncident> MakeIntervalIncidents(IIncidentTarget target)
        {
            if (target is World)
            {
                yield break;
            }
            List <IncidentDef> allIncidents = DefDatabase <IncidentDef> .AllDefsListForReading;
            int i = 0;

            while (i < allIncidents.Count)
            {
                IncidentDef inc = allIncidents[i];
                if (inc.category == this.Props.category)
                {
                    BiomeDef biome = Find.WorldGrid[target.Tile].biome;
                    if (inc.mtbDaysByBiome != null)
                    {
                        MTBByBiome entry = inc.mtbDaysByBiome.Find((MTBByBiome x) => x.biome == biome);
                        if (entry != null)
                        {
                            float mtb = entry.mtbDays;
                            if (this.Props.applyCaravanVisibility)
                            {
                                Caravan caravan = target as Caravan;
                                if (caravan != null)
                                {
                                    mtb /= caravan.Visibility;
                                }
                                else
                                {
                                    Map map = target as Map;
                                    if (map != null && map.Parent.def.isTempIncidentMapOwner)
                                    {
                                        IEnumerable <Pawn> pawns = map.mapPawns.SpawnedPawnsInFaction(Faction.OfPlayer).Concat(map.mapPawns.PrisonersOfColonySpawned);
                                        mtb /= CaravanVisibilityCalculator.Visibility(pawns, false, null);
                                    }
                                }
                            }
                            if (Rand.MTBEventOccurs(mtb, 60000f, 1000f))
                            {
                                IncidentParms parms = this.GenerateParms(inc.category, target);
                                if (inc.Worker.CanFireNow(parms))
                                {
                                    yield return(new FiringIncident(inc, this, parms));
                                }
                            }
                        }
                    }
                }
IL_24E:
                i++;
                continue;
                goto IL_24E;
            }
            yield break;
        }
Ejemplo n.º 20
0
        public override IEnumerable <FiringIncident> MakeIntervalIncidents(IIncidentTarget target)
        {
            if (!(target is World))
            {
                List <IncidentDef> allIncidents = DefDatabase <IncidentDef> .AllDefsListForReading;
                int         i = 0;
                IncidentDef inc;
                while (true)
                {
                    if (i < allIncidents.Count)
                    {
                        inc = allIncidents[i];
                        if (inc.category == this.Props.category)
                        {
                            _003CMakeIntervalIncidents_003Ec__Iterator0 _003CMakeIntervalIncidents_003Ec__Iterator = (_003CMakeIntervalIncidents_003Ec__Iterator0) /*Error near IL_0095: stateMachine*/;
                            BiomeDef biome = Find.WorldGrid[target.Tile].biome;
                            if (inc.mtbDaysByBiome != null)
                            {
                                MTBByBiome entry = inc.mtbDaysByBiome.Find((MTBByBiome x) => x.biome == biome);
                                if (entry != null)
                                {
                                    float mtb = entry.mtbDays;
                                    if (this.Props.applyCaravanStealthFactor)
                                    {
                                        Caravan caravan = target as Caravan;
                                        if (caravan != null)
                                        {
                                            mtb *= CaravanIncidentUtility.CalculateCaravanStealthFactor(caravan.PawnsListForReading.Count);
                                        }
                                        else
                                        {
                                            Map map = target as Map;
                                            if (map != null && map.info.parent.def.isTempIncidentMapOwner)
                                            {
                                                int pawnCount = map.mapPawns.SpawnedPawnsInFaction(Faction.OfPlayer).Count + map.mapPawns.PrisonersOfColonySpawnedCount;
                                                mtb *= CaravanIncidentUtility.CalculateCaravanStealthFactor(pawnCount);
                                            }
                                        }
                                    }
                                    if (Rand.MTBEventOccurs(mtb, 60000f, 1000f) && inc.Worker.CanFireNow(target))
                                    {
                                        break;
                                    }
                                }
                            }
                        }
                        i++;
                        continue;
                    }
                    yield break;
                }
                yield return(new FiringIncident(inc, this, this.GenerateParms(inc.category, target)));

                /*Error: Unable to find new state assignment for yield return*/;
            }
        }
Ejemplo n.º 21
0
        protected override bool CanFireNowSub(IIncidentTarget target)
        {
            if (!base.CanFireNowSub(target))
            {
                return(false);
            }
            Map map = (Map)target;

            return(map.mapTemperature.SeasonalTemp >= 20f);
        }
Ejemplo n.º 22
0
 public override IEnumerable <FiringIncident> MakeIntervalIncidents(IIncidentTarget target)
 {
     if (this.Props.incident.TargetAllowed(target))
     {
         if (Rand.MTBEventOccurs(this.Props.mtbDays, 60000f, 1000f))
         {
             yield return(new FiringIncident(this.Props.incident, this, this.GenerateParms(this.Props.incident.category, target)));
         }
     }
 }
        public override IncidentParms GenerateParms(IncidentCategoryDef incCat, IIncidentTarget target)
        {
            IncidentParms incidentParms = StorytellerUtility.DefaultParmsNow(incCat, target);

            if (incidentParms.points >= 0f)
            {
                incidentParms.points *= Props.randomPointsFactorRange.RandomInRange;
            }
            return(incidentParms);
        }
        protected override bool CanFireNowSub(IIncidentTarget target)
        {
            Map map = (Map)target;

            if (map.gameConditionManager.ConditionIsActive(GameConditionDefOf.PsychicDrone))
            {
                return(false);
            }
            return(base.CanFireNowSub(target));
        }
        protected override bool CanFireNowSub(IIncidentTarget target)
        {
            Map map = (Map)target;

            if (GenDate.DaysPassed < (ModInfo.cosmicHorrorRaidDelay + this.def.earliestDay))
            {
                return(false);
            }
            return(base.CanFireNowSub(target));
        }
Ejemplo n.º 26
0
        protected override bool CanFireNowSub(IIncidentTarget target)
        {
            if (!base.CanFireNowSub(target))
            {
                return(false);
            }
            Map map = (Map)target;

            return(GenCelestial.CurCelestialSunGlow(map) <= 0.5f && GenCelestial.CelestialSunGlow(map, Find.TickManager.TicksAbs + 5000) <= 0.5f);
        }
Ejemplo n.º 27
0
 private IEnumerable <Pawn> PotentialVictimCandidates(IIncidentTarget target)
 {
     if (target is Map map)
     {
         return(map.mapPawns.FreeColonistsAndPrisoners);
     }
     return(from x in ((Caravan)target).PawnsListForReading
            where x.IsFreeColonist || x.IsPrisonerOfColony
            select x);
 }
        protected override bool CanFireNowSub(IIncidentTarget target)
        {
            if (!base.CanFireNowSub(target))
            {
                return(false);
            }
            Map map = (Map)target;

            return(TryFindRootCell(map, out IntVec3 c));
        }
        protected override bool CanFireNowSub(IIncidentTarget target)
        {
            Map map = (Map)target;

            if (map.Biome == Util_CaveBiome.CaveBiomeDef)
            {
                return(false);
            }
            return(base.CanFireNowSub(target));
        }
        protected override bool CanFireNowSub(IIncidentTarget target)
        {
            Map map = (Map)target;

            if (map.gameConditionManager.ConditionIsActive(GameConditionDefOf.ToxicFallout))
            {
                return(false);
            }
            return(true);
        }
Ejemplo n.º 31
0
 protected override bool CanFireNowSub(IIncidentTarget target)
 {
     return UsableBatteries((Map)target).Any();
 }