protected override bool TryExecuteWorker(IncidentParms parms)
        {
            Map  map = parms.target as Map;
            bool result;

            if (this.GetHasGoodStoryConditions(map))
            {
                Pawn pawn;
                if (!this.CanFindPsychic(map, out pawn))
                {
                    result = false;
                }
                else
                {
                    int randomInRange = IncidentWorker_OsirisCasket.TimeoutDaysRange.RandomInRange;

                    int tile;
                    if (TileFinder.TryFindNewSiteTile(out tile))
                    {
                        Site site = (Site)WorldObjectMaker.MakeWorldObject(SiteDefOfReconAndDiscovery.RD_Adventure);
                        site.Tile = tile;
                        Faction faction = Faction.OfInsects;
                        site.SetFaction(faction);
                        site.AddPart(new SitePart(site, SiteDefOfReconAndDiscovery.RD_AbandonedCastle,
                                                  SiteDefOfReconAndDiscovery.RD_AbandonedCastle.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction)));
                        IEnumerable <PowerNet> source = from net in map.powerNetManager.AllNetsListForReading
                                                        where net.hasPowerSource
                                                        select net;
                        if (source.Count <PowerNet>() > 0)
                        {
                            SitePart osirisCasket = new SitePart(site, SiteDefOfReconAndDiscovery.RD_OsirisCasket, SiteDefOfReconAndDiscovery.RD_OsirisCasket.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                            osirisCasket.hidden = true;
                            site.parts.Add(osirisCasket);
                        }
                        if (Rand.Value < 0.15f)
                        {
                            SitePart weatherSat = new SitePart(site, SiteDefOfReconAndDiscovery.RD_WeatherSat, SiteDefOfReconAndDiscovery.RD_WeatherSat.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                            weatherSat.hidden = true;
                            site.parts.Add(weatherSat);
                        }
                        site.GetComponent <TimeoutComp>().StartTimeout(randomInRange * 60000);
                        if (Rand.Value < 0.25f)
                        {
                            SitePart scatteredManhunters = new SitePart(site, SiteDefOfReconAndDiscovery.RD_ScatteredManhunters, SiteDefOfReconAndDiscovery.RD_ScatteredManhunters.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                            scatteredManhunters.hidden = true;
                            site.parts.Add(scatteredManhunters);
                        }
                        if (Rand.Value < 0.1f)
                        {
                            SitePart scatteredTreasure = new SitePart(site, SiteDefOfReconAndDiscovery.RD_ScatteredTreasure, SiteDefOfReconAndDiscovery.RD_ScatteredTreasure.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                            scatteredTreasure.hidden = true;
                            site.parts.Add(scatteredTreasure);
                        }
                        if (Rand.Value < 1f)
                        {
                            SitePart enemyRaidOnArrival = new SitePart(site, SiteDefOfReconAndDiscovery.RD_EnemyRaidOnArrival, SiteDefOfReconAndDiscovery.RD_EnemyRaidOnArrival.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                            enemyRaidOnArrival.hidden = true;
                            site.parts.Add(enemyRaidOnArrival);
                        }
                        if (Rand.Value < 0.9f)
                        {
                            SitePart enemyRaidOnArrival = new SitePart(site, SiteDefOfReconAndDiscovery.RD_EnemyRaidOnArrival, SiteDefOfReconAndDiscovery.RD_EnemyRaidOnArrival.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                            enemyRaidOnArrival.hidden = true;
                            site.parts.Add(enemyRaidOnArrival);
                        }
                        if (Rand.Value < 0.6f)
                        {
                            SitePart enemyRaidOnArrival = new SitePart(site, SiteDefOfReconAndDiscovery.RD_EnemyRaidOnArrival, SiteDefOfReconAndDiscovery.RD_EnemyRaidOnArrival.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                            enemyRaidOnArrival.hidden = true;
                            site.parts.Add(enemyRaidOnArrival);
                        }
                        Find.WorldObjects.Add(site);
                        QueuedIncident qi = new QueuedIncident(new FiringIncident(IncidentDef.Named("PsychicDrone"), null, parms), Find.TickManager.TicksGame + 1);
                        Find.Storyteller.incidentQueue.Add(qi);
                        Find.LetterStack.ReceiveLetter("RD_PsychicMessage".Translate(),
                                                       GrammarResolverSimpleStringExtensions.Formatted(Translator
                                                                                                       .Translate("RD_ReceivedVisionBattle"), NamedArgumentUtility.Named(pawn, "PAWN"))
                                                       .AdjustedFor(pawn, "PAWN", true)
                                                       //has received visions accompanying the drone, showing a battle and crying out for help. Others must have noticed, so the site will probably be dangerous.
                                                       , LetterDefOf.PositiveEvent, null);
                        result = true;
                    }
                    else
                    {
                        result = false;
                    }
                }
            }
            else
            {
                result = false;
            }
            return(result);
        }
Beispiel #2
0
        protected override bool TryExecuteWorker(IncidentParms parms)
        {
            Map  map = parms.target as Map;
            bool result;
            int  tile;

            if (map == null)
            {
                result = false;
            }
            else if (!TileFinder.TryFindNewSiteTile(out tile))
            {
                result = false;
            }
            else
            {
                bool flag  = false;
                bool flag2 = true;
                IEnumerable <Pawn> source = from p in map.mapPawns.FreeColonistsSpawned
                                            where p.CurJob.def == JobDefOfReconAndDiscovery.Skygaze || p.CurJob.def == JobDefOfReconAndDiscovery.UseTelescope
                                            select p;
                Pawn pawn = null;
                if (map.listerBuildings.ColonistsHaveBuilding(ThingDef.Named("CommsConsole")))
                {
                    if (Rand.Chance(0.5f))
                    {
                        flag = true;
                    }
                }
                else if (source.Count <Pawn>() > 0)
                {
                    flag  = true;
                    flag2 = false;
                    pawn  = source.RandomElement <Pawn>();
                }
                if (!flag)
                {
                    result = false;
                }
                else
                {
                    bool flag3 = Rand.Value < 0.4f;
                    Site site;
                    if (flag3)
                    {
                        site = (Site)WorldObjectMaker.MakeWorldObject(SiteDefOfReconAndDiscovery.RD_AdventureMedical);
                    }
                    else
                    {
                        site = (Site)WorldObjectMaker.MakeWorldObject(SiteDefOfReconAndDiscovery.RD_Adventure);
                    }
                    site.Tile = tile;
                    Faction faction = Find.FactionManager.RandomEnemyFaction(true, false, true, TechLevel.Spacer);
                    site.SetFaction(faction);
                    site.AddPart(new SitePart(site, SiteDefOfReconAndDiscovery.RD_CrashedShip,
                                              SiteDefOfReconAndDiscovery.RD_CrashedShip.Worker.GenerateDefaultParams
                                                  (StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction)));
                    if (flag3)
                    {
                        SitePart medicalEmergency = new SitePart(site, SiteDefOfReconAndDiscovery.RD_MedicalEmergency, SiteDefOfReconAndDiscovery.RD_MedicalEmergency.Worker.GenerateDefaultParams
                                                                     (StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                        medicalEmergency.hidden = true;
                        site.parts.Add(medicalEmergency);
                        QuestComp_MedicalEmergency component = site.GetComponent <QuestComp_MedicalEmergency>();
                        component.parent = site;
                        component.Initialize(new WorldObjectCompProperties_MedicalEmergency());
                        component.maxPawns = Rand.RangeInclusive(3, 12);
                        List <Thing> rewards = this.GenerateRewards();
                        component.StartQuest(rewards);
                    }
                    else if (!Rand.Chance(0.75f))
                    {
                        SitePart rareBeasts = new SitePart(site, SiteDefOfReconAndDiscovery.RD_RareBeasts, SiteDefOfReconAndDiscovery.RD_RareBeasts.Worker.GenerateDefaultParams
                                                               (StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));

                        rareBeasts.hidden = true;

                        site.parts.Add(rareBeasts);
                    }
                    if (Rand.Value < 0.85f)
                    {
                        SitePart scatteredTreasure = new SitePart(site, SiteDefOfReconAndDiscovery.RD_ScatteredTreasure, SiteDefOfReconAndDiscovery.RD_ScatteredTreasure.Worker.GenerateDefaultParams
                                                                      (StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));

                        scatteredTreasure.hidden = true;

                        site.parts.Add(scatteredTreasure);
                    }
                    if (Rand.Value < 0.1f)
                    {
                        SitePart scatteredManhunters = new SitePart(site, SiteDefOfReconAndDiscovery.RD_ScatteredManhunters, SiteDefOfReconAndDiscovery.RD_ScatteredManhunters.Worker.GenerateDefaultParams
                                                                        (StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                        scatteredManhunters.hidden = true;
                        site.parts.Add(scatteredManhunters);
                    }
                    if (Rand.Value < 0.1f)
                    {
                        SitePart mechanoidForces = new SitePart(site, SiteDefOfReconAndDiscovery.RD_MechanoidForces, SiteDefOfReconAndDiscovery.RD_MechanoidForces.Worker.GenerateDefaultParams
                                                                    (StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                        mechanoidForces.hidden = true;
                        site.parts.Add(mechanoidForces);
                    }
                    if (Rand.Value < 0.5f)
                    {
                        SitePart enemyRaidOnArrival = new SitePart(site, SiteDefOfReconAndDiscovery.RD_EnemyRaidOnArrival, SiteDefOfReconAndDiscovery.RD_EnemyRaidOnArrival.Worker.GenerateDefaultParams
                                                                       (StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                        enemyRaidOnArrival.hidden = true;
                        site.parts.Add(enemyRaidOnArrival);
                    }
                    int randomInRange = IncidentWorker_CrashedShip.TimeoutDaysRange.RandomInRange;
                    site.GetComponent <TimeoutComp>().StartTimeout(randomInRange * 60000);
                    Find.WorldObjects.Add(site);
                    if (flag2)
                    {
                        base.SendStandardLetter(parms, site);
                    }
                    else
                    {
                        Find.LetterStack.ReceiveLetter("RD_ShootingStar".Translate(), "SawFallFromSky".Translate(pawn.Named("PAWN"))                         //just saw something fall from the sky near here!
                                                       , LetterDefOf.PositiveEvent, site, null);
                    }
                    result = true;
                }
            }
            return(result);
        }
        protected override bool CanFireNowSub(IIncidentTarget target)
        {
            if (!base.CanFireNowSub(target))
            {
                return(false);
            }
            int     num     = default(int);
            Faction faction = default(Faction);

            return(Find.FactionManager.RandomAlliedFaction(false, false, false, TechLevel.Undefined) != null && TileFinder.TryFindNewSiteTile(out num, 8, 30, false, true, -1) && SiteMakerHelper.TryFindRandomFactionFor(SiteCoreDefOf.ItemStash, (IEnumerable <SitePartDef>)null, out faction, true, (Predicate <Faction>)null));
        }
Beispiel #4
0
 private static bool TryFindTile(out int tile) => TileFinder.TryFindNewSiteTile(tile: out tile, minDist: 5, maxDist: 13, allowCaravans: false, preferCloserTiles: false);
Beispiel #5
0
 private bool TryFindTile(out int tile)
 {
     return(TileFinder.TryFindNewSiteTile(out tile, 2, 20, false, false, -1));
 }
Beispiel #6
0
        // Token: 0x06000DA8 RID: 3496 RVA: 0x00064888 File Offset: 0x00062C88
        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));
        }
Beispiel #7
0
        protected override bool TryExecuteWorker(IncidentParms parms)
        {
            Map  map = parms.target as Map;
            bool result;

            if (this.GetHasGoodStoryConditions(map))
            {
                Pawn pawn;
                Pawn pawn2;
                if (!this.CanFindVisitor(map, out pawn))
                {
                    result = false;
                }
                else if (!this.CanFindLuciferiumAddict(map, out pawn2))
                {
                    result = false;
                }
                else
                {
                    int tile;
                    if (TileFinder.TryFindNewSiteTile(out tile))
                    {
                        Site site = (Site)WorldObjectMaker.MakeWorldObject(SiteDefOfReconAndDiscovery.RD_Adventure);
                        site.Tile = tile;
                        Faction faction = Faction.OfInsects;
                        site.AddPart(new SitePart(site, SiteDefOfReconAndDiscovery.RD_SeraphitesQuest,
                                                  SiteDefOfReconAndDiscovery.RD_SeraphitesQuest.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction)));
                        SitePart sitePart_Computer = new SitePart(site, SiteDefOfReconAndDiscovery.RD_SitePart_Computer, SiteDefOfReconAndDiscovery.RD_SitePart_Computer.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                        sitePart_Computer.hidden = true;
                        site.parts.Add(sitePart_Computer);
                        foreach (SitePartDef sitePartDef in site.parts.Select(x => x.def))
                        {
                            if (sitePartDef.Worker is SitePartWorker_Computer)
                            {
                                (sitePartDef.Worker as SitePartWorker_Computer).action = ActionDefOfReconAndDiscovery.RD_ActionSeraphites;
                            }
                        }
                        if (Rand.Value < 0.15f)
                        {
                            SitePart scatteredManhunters = new SitePart(site, SiteDefOfReconAndDiscovery.RD_ScatteredManhunters, SiteDefOfReconAndDiscovery.RD_ScatteredManhunters.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                            scatteredManhunters.hidden = true;
                            site.parts.Add(scatteredManhunters);
                        }
                        if (Rand.Value < 0.3f)
                        {
                            SitePart scatteredTreasure = new SitePart(site, SiteDefOfReconAndDiscovery.RD_ScatteredTreasure, SiteDefOfReconAndDiscovery.RD_ScatteredTreasure.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                            scatteredTreasure.hidden = true;
                            site.parts.Add(scatteredTreasure);
                        }
                        if (Rand.Value < 0.1f)
                        {
                            SitePart enemyRaidOnArrival = new SitePart(site, SiteDefOfReconAndDiscovery.RD_EnemyRaidOnArrival, SiteDefOfReconAndDiscovery.RD_EnemyRaidOnArrival.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                            enemyRaidOnArrival.hidden = true;
                            site.parts.Add(enemyRaidOnArrival);
                        }
                        if (Rand.Value < 0.1f)
                        {
                            SitePart mechanoidForces = new SitePart(site, SiteDefOfReconAndDiscovery.RD_MechanoidForces, SiteDefOfReconAndDiscovery.RD_MechanoidForces.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                            mechanoidForces.hidden = true;
                            site.parts.Add(mechanoidForces);
                        }
                        base.SendStandardLetter(parms, site, new NamedArgument[]
                        {
                            pawn.Label,
                            pawn2.Label
                        });
                        Find.WorldObjects.Add(site);
                        result = true;
                    }
                    else
                    {
                        result = false;
                    }
                }
            }
            else
            {
                result = false;
            }
            return(result);
        }
        private bool TryFindTile(out int tile)
        {
            IntRange peaceTalksQuestSiteDistanceRange = SiteTuning.PeaceTalksQuestSiteDistanceRange;

            return(TileFinder.TryFindNewSiteTile(out tile, peaceTalksQuestSiteDistanceRange.min, peaceTalksQuestSiteDistanceRange.max, false, false, -1));
        }
Beispiel #9
0
        protected override bool TryExecuteWorker(IncidentParms parms)
        {
            Map  map = parms.target as Map;
            bool result;

            if (this.GetHasGoodStoryConditions(map))
            {
                Pawn pawn;
                Pawn pawn2;
                if (!this.CanFindVisitor(map, out pawn))
                {
                    result = false;
                }
                else if (!this.CanFindPsychic(map, out pawn2))
                {
                    result = false;
                }
                else
                {
                    int tile;
                    if (TileFinder.TryFindNewSiteTile(out tile))
                    {
                        Site site = (Site)WorldObjectMaker.MakeWorldObject(SiteDefOfReconAndDiscovery.RD_Adventure);

                        site.Tile = tile;

                        Faction faction = Faction.OfInsects;
                        site.AddPart(new SitePart(site, SiteDefOfReconAndDiscovery.RD_PsiMachine,
                                                  SiteDefOfReconAndDiscovery.RD_PsiMachine.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction)));

                        SitePart warIdol = new SitePart(site, SiteDefOfReconAndDiscovery.RD_SitePart_WarIdol, SiteDefOfReconAndDiscovery.RD_SitePart_WarIdol.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));

                        warIdol.hidden = true;

                        site.parts.Add(warIdol);
                        if (Rand.Value < 0.15f)
                        {
                            SitePart scatteredManhunters = new SitePart(site, SiteDefOfReconAndDiscovery.RD_ScatteredManhunters, SiteDefOfReconAndDiscovery.RD_ScatteredManhunters.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                            scatteredManhunters.hidden = true;
                            site.parts.Add(scatteredManhunters);
                        }
                        if (Rand.Value < 0.3f)
                        {
                            SitePart scatteredTreasure = new SitePart(site, SiteDefOfReconAndDiscovery.RD_ScatteredTreasure, SiteDefOfReconAndDiscovery.RD_ScatteredTreasure.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                            scatteredTreasure.hidden = true;
                            site.parts.Add(scatteredTreasure);
                        }
                        if (Rand.Value < 0.3f)
                        {
                            SitePart enemyRaidOnArrival = new SitePart(site, SiteDefOfReconAndDiscovery.RD_EnemyRaidOnArrival, SiteDefOfReconAndDiscovery.RD_EnemyRaidOnArrival.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                            enemyRaidOnArrival.hidden = true;
                            site.parts.Add(enemyRaidOnArrival);
                        }
                        if (Rand.Value < 0.1f)
                        {
                            SitePart mechanoidForces = new SitePart(site, SiteDefOfReconAndDiscovery.RD_MechanoidForces, SiteDefOfReconAndDiscovery.RD_MechanoidForces.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, faction));
                            mechanoidForces.hidden = true;
                            site.parts.Add(mechanoidForces);
                        }
                        Find.WorldObjects.Add(site);
                        if (site == null)
                        {
                            result = false;
                        }
                        base.SendStandardLetter(parms, site, new NamedArgument[]
                        {
                            pawn.Label,
                            pawn2.Label
                        });
                        result = true;
                    }
                    else
                    {
                        result = false;
                    }
                }
            }
            else
            {
                result = false;
            }
            return(result);
        }
Beispiel #10
0
        protected override bool CanFireNowSub(IncidentParms parms)
        {
            int     num;
            Faction faction;

            return(base.CanFireNowSub(parms) && (Find.FactionManager.RandomNonHostileFaction(false, false, false, TechLevel.Undefined) != null && TileFinder.TryFindNewSiteTile(out num, 7, 27, false, true, -1)) && SiteMakerHelper.TryFindRandomFactionFor(PolarisIncidentDefOf.Polaris_TradeShipPodCrashSiteCore, null, out faction, true, null));
        }
Beispiel #11
0
 private static bool TryFindTile(out int tile) => TileFinder.TryFindNewSiteTile(out tile, 5, 15, false, false, -1);
        protected override bool CanFireNowSub(IncidentParms parms)
        {
            int tile;

            return(base.CanFireNowSub(parms) && TileFinder.TryFindNewSiteTile(out tile, minDist, maxDist, false, true, -1) && CommsConsoleUtility.PlayerHasPoweredCommsConsole());
        }
        protected override bool CanFireNowSub(IncidentParms parms)
        {
            int tile;

            return(base.CanFireNowSub(parms) && TileFinder.TryFindNewSiteTile(out tile, minDist, maxDist, false, true, -1));
        }
        protected override bool CanFireNowSub(IIncidentTarget target)
        {
            int     num;
            Faction faction;

            return(base.CanFireNowSub(target) && (Find.FactionManager.RandomAlliedFaction(false, false, false, TechLevel.Undefined) != null && TileFinder.TryFindNewSiteTile(out num, 8, 30, false, true, -1)) && SiteMakerHelper.TryFindRandomFactionFor(SiteCoreDefOf.ItemStash, null, out faction, true, null));
        }
 protected virtual bool TryFindSiteTile(out int tile)
 {
     return(TileFinder.TryFindNewSiteTile(out tile, 80, 85));
 }
Beispiel #16
0
        private bool TryFindTile(out int tile)
        {
            IntRange banditCampQuestSiteDistanceRange = SiteTuning.BanditCampQuestSiteDistanceRange;

            return(TileFinder.TryFindNewSiteTile(out tile, banditCampQuestSiteDistanceRange.min, banditCampQuestSiteDistanceRange.max, false, true, -1));
        }
        protected override bool TryExecuteWorker(IncidentParms parms)
        {
            Map  map = parms.target as Map;
            bool result;

            if (map == null)
            {
                result = false;
            }
            else if ((from wo in Find.WorldObjects.AllWorldObjects
                      where wo is Site && (wo as Site).parts.Select(x => x.def) == SiteDefOfReconAndDiscovery.RD_QuakesQuest
                      select wo).Count <WorldObject>() > 0)
            {
                result = false;
            }
            else
            {
                int tile;
                if (TileFinder.TryFindNewSiteTile(out tile))
                {
                    Site site = (Site)WorldObjectMaker.MakeWorldObject(SiteDefOfReconAndDiscovery.RD_AdventureThingCounter);
                    site.Tile = tile;
                    site.AddPart(new SitePart(site, SiteDefOfReconAndDiscovery.RD_SiteRadiationQuest,
                                              SiteDefOfReconAndDiscovery.RD_SiteRadiationQuest.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, null)));
                    SitePart radioactiveDust = new SitePart(site, SiteDefOfReconAndDiscovery.RD_SitePart_RadioactiveDust, SiteDefOfReconAndDiscovery.RD_SitePart_RadioactiveDust.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, null));
                    radioactiveDust.hidden = true;
                    site.parts.Add(radioactiveDust);
                    QuestComp_CountThings component = site.GetComponent <QuestComp_CountThings>();
                    component.targetNumber        = 200;
                    component.ticksTarget         = 60000;
                    component.ticksHeld           = 0;
                    component.worldTileAffected   = map.Tile;
                    component.gameConditionCaused = GameConditionDef.Named("RD_Radiation");
                    component.StartQuest(ThingDef.Named("Plant_Psychoid"));
                    if (Rand.Value < 0.1f)
                    {
                        SitePart scatteredTreasure = new SitePart(site, SiteDefOfReconAndDiscovery.RD_ScatteredTreasure, SiteDefOfReconAndDiscovery.RD_ScatteredTreasure.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, null));
                        scatteredTreasure.hidden = true;
                        site.parts.Add(scatteredTreasure);
                    }
                    if (Rand.Value < 0.05f)
                    {
                        SitePart scatteredManhunters = new SitePart(site, SiteDefOfReconAndDiscovery.RD_ScatteredManhunters, SiteDefOfReconAndDiscovery.RD_ScatteredManhunters.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, null));
                        scatteredManhunters.hidden = true;
                        site.parts.Add(scatteredManhunters);
                    }
                    if (Rand.Value < 0.05f)
                    {
                        SitePart mechanoidForces = new SitePart(site, SiteDefOfReconAndDiscovery.RD_MechanoidForces, SiteDefOfReconAndDiscovery.RD_MechanoidForces.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, null));
                        mechanoidForces.hidden = true;
                        site.parts.Add(mechanoidForces);
                    }
                    if (Rand.Value < 0.05f)
                    {
                        SitePart enemyRaidOnArrival = new SitePart(site, SiteDefOfReconAndDiscovery.RD_EnemyRaidOnArrival, SiteDefOfReconAndDiscovery.RD_EnemyRaidOnArrival.Worker.GenerateDefaultParams(StorytellerUtility.DefaultSiteThreatPointsNow(), tile, null));
                        enemyRaidOnArrival.hidden = true;
                        site.parts.Add(enemyRaidOnArrival);
                    }

                    if (Find.World.tileTemperatures.GetSeasonalTemp(site.Tile) < 10f || Find.World.tileTemperatures.GetSeasonalTemp(site.Tile) > 40f)
                    {
                        result = false;
                    }
                    else
                    {
                        int           num           = 30;
                        GameCondition gameCondition = GameConditionMaker.MakeCondition(GameConditionDef.Named("RD_Radiation"), 60000 * num);
                        map.gameConditionManager.RegisterCondition(gameCondition);
                        site.GetComponent <TimeoutComp>().StartTimeout(num * 60000);
                        base.SendStandardLetter(parms, site);
                        Find.WorldObjects.Add(site);
                        result = true;
                    }
                }
                else
                {
                    result = false;
                }
            }
            return(result);
        }
Beispiel #18
0
 private static bool TryFindTile(out int tile)
 {
     return(TileFinder.TryFindNewSiteTile(out tile, 5, 13));
 }
Beispiel #19
0
        private bool TryFindTile(out int tile)
        {
            IntRange peaceTalksQuestSiteDistanceRange = SiteTuning.PeaceTalksQuestSiteDistanceRange;

            return(TileFinder.TryFindNewSiteTile(out tile, peaceTalksQuestSiteDistanceRange.min, peaceTalksQuestSiteDistanceRange.max, allowCaravans: false, preferCloserTiles: false));
        }
 private static bool TryFindTile(out int tile)
 => TileFinder.TryFindNewSiteTile(out tile, MinDistance, MaxDistance, allowCaravans: true, preferCloserTiles: false);
        private bool TryFindTile(out int tile)
        {
            IntRange itemStashQuestSiteDistanceRange = new IntRange(5, 30);

            return(TileFinder.TryFindNewSiteTile(out tile, itemStashQuestSiteDistanceRange.min, itemStashQuestSiteDistanceRange.max, false, true, -1));
        }
Beispiel #22
0
 private static bool TryFindTile(out int tile)
 {
     return(TileFinder.TryFindNewSiteTile(tile: out tile, minDist: MinDistance, maxDist: MaxDistance, allowCaravans: true, preferCloserTiles: false));
 }
        // Token: 0x06000F33 RID: 3891 RVA: 0x00070DC8 File Offset: 0x0006F1C8
        private bool TryFindTile(out int tile)
        {
            IntRange prisonerRescueQuestSiteDistanceRange = SiteTuning.PrisonerRescueQuestSiteDistanceRange;

            return(TileFinder.TryFindNewSiteTile(out tile, prisonerRescueQuestSiteDistanceRange.min, prisonerRescueQuestSiteDistanceRange.max, false, false, -1));
        }
        private bool TryFindTile(out int tile)
        {
            IntRange ruinsRange = new IntRange(5, 30);

            return(TileFinder.TryFindNewSiteTile(out tile, ruinsRange.min, ruinsRange.max, false, TileFinderMode.Random, -1, false));
        }
Beispiel #25
0
        protected override bool CanFireNowSub(IncidentParms parms)
        {
            int num;

            return(base.CanFireNowSub(parms) && TileFinder.TryFindNewSiteTile(out num));
        }
 private static bool TryFindTile(out int tile)
 {
     return(TileFinder.TryFindNewSiteTile(out tile, MinDistance, MaxDistance, true));
 }
Beispiel #27
0
        protected override bool CanFireNowSub(IncidentParms parms)
        {
            Faction faction;
            Faction faction2;
            int     num;

            return(base.CanFireNowSub(parms) && this.TryFindFactions(out faction, out faction2) && TileFinder.TryFindNewSiteTile(out num, 7, 27, false, true, -1));
        }
Beispiel #28
0
 private bool TryFindTile(out int tile)
 {
     return(TileFinder.TryFindNewSiteTile(out tile, 7, 15, true, false));
 }
Beispiel #29
0
        private bool TryFindTile(out int tile)
        {
            IntRange downedRefugeeQuestSiteDistanceRange = SiteTuning.DownedRefugeeQuestSiteDistanceRange;

            return(TileFinder.TryFindNewSiteTile(out tile, downedRefugeeQuestSiteDistanceRange.min, downedRefugeeQuestSiteDistanceRange.max, true, false, -1));
        }
Beispiel #30
0
        private bool TryFindTile(out int tile)
        {
            IntRange downedRefugeeQuestSiteDistanceRange = SiteTuning.DownedRefugeeQuestSiteDistanceRange;

            return(TileFinder.TryFindNewSiteTile(out tile, downedRefugeeQuestSiteDistanceRange.min, downedRefugeeQuestSiteDistanceRange.max, allowCaravans: true, preferCloserTiles: false));
        }