static bool Prefix(CompLongRangeMineralScanner __instance) { if (Traverse.Create(__instance).Field("targetMineable").GetValue <ThingDef>() == WTH_DefOf.WTH_MechanoidParts) { Traverse.Create(__instance).Field("daysWorkingSinceLastMinerals").SetValue(0f); if (!TileFinder.TryFindNewSiteTile(out int tile, MinDistance, MaxDistance, true, false)) { return(false); } Site site = SiteMaker.MakeSite(WTH_DefOf.WTH_MechanoidTempleCore, WTH_DefOf.WTH_MechanoidTemplePart, tile, Faction.OfMechanoids, ifHostileThenMustRemainHostile: true); if (site == null) { return(false); } int randomInRange = TimeoutDaysRange.RandomInRange; site.Tile = tile; site.GetComponent <TimeoutComp>().StartTimeout(ticks: randomInRange * GenDate.TicksPerDay); site.SetFaction(Faction.OfMechanoids); //site.customLabel = "TODO"; Find.WorldObjects.Add(o: site); Find.LetterStack.ReceiveLetter(label: "WTH_Letter_LRMS_Label".Translate(), text: "WTH_Letter_LRMS_Description".Translate(), textLetterDef: LetterDefOf.PositiveEvent, lookTargets: site); return(false); } return(true); }
private void AddSingleObject() { if (selectedFaction == null) { Messages.Message($"Select faction", MessageTypeDefOf.NeutralEvent, false); return; } if (edit) { editSite.parts.Clear(); editSite.parts.Add(new SitePart(editSite, part, part.Worker.GenerateDefaultParams(threatsFloat, editSite.Tile, editSite.Faction))); editSite.SetFaction(selectedFaction); Messages.Message($"Success", MessageTypeDefOf.NeutralEvent, false); return; } if (Find.WorldSelector.selectedTile == -1) { Messages.Message($"Select tile", MessageTypeDefOf.NeutralEvent, false); return; } Site site; site = SiteMaker.MakeSite(part, Find.WorldSelector.selectedTile, selectedFaction, threatPoints: threatsFloat); site.sitePartsKnown = true; Find.WorldObjects.Add(site); }
protected override bool TryExecuteWorker(IncidentParms parms) { if (!TryFindFactions(out Faction alliedFaction, out Faction enemyFaction)) { return(false); } if (!TryFindTile(out int tile)) { return(false); } Site site = SiteMaker.MakeSite(SiteCoreDefOf.Nothing, SitePartDefOf.Outpost, tile, enemyFaction); site.sitePartsKnown = true; List <Thing> list = GenerateRewards(alliedFaction, site.desiredThreatPoints); site.GetComponent <DefeatAllEnemiesQuestComp>().StartQuest(alliedFaction, 18, list); int randomInRange = SiteTuning.QuestSiteTimeoutDaysRange.RandomInRange; site.GetComponent <TimeoutComp>().StartTimeout(randomInRange * 60000); Find.WorldObjects.Add(site); string text = def.letterText.Formatted(alliedFaction.leader.LabelShort, alliedFaction.def.leaderTitle, alliedFaction.Name, GenLabel.ThingsLabel(list, string.Empty), randomInRange.ToString(), SitePartUtility.GetDescriptionDialogue(site, site.parts.FirstOrDefault()), GenThing.GetMarketValue(list).ToStringMoney()).CapitalizeFirst(); GenThing.TryAppendSingleRewardInfo(ref text, list); Find.LetterStack.ReceiveLetter(def.letterLabel, text, def.letterDef, site, alliedFaction); return(true); }
protected override bool TryExecuteWorker(IncidentParms parms) { int contingency = 0; bool tileFound = false; int tile = -1; while (contingency < 99 && !tileFound) { TileFinder.TryFindNewSiteTile(out tile, minDist, maxDist, false, true, -1); if (Find.WorldGrid[tile].temperature > 0f && Find.WorldGrid[tile].hilliness != Hilliness.Mountainous) { tileFound = true; } contingency++; } if (!tileFound || tile == -1) { return(false); } Site site = SiteMaker.MakeSite(SiteDefOf.AmbrosiaAnimalsLGE, sitePart: null, tile: tile, faction: Faction.OfAncients); site.GetComponent <TimeoutComp>().StartTimeout(TimeoutDaysRange.RandomInRange * 60000); Find.WorldObjects.Add(site); Find.LetterStack.ReceiveLetter("LetterLabelAmbrosiaAnimalsLGE".Translate(), "LetterAmbrosiaAnimalsLGE".Translate(), LetterDefOf.PositiveEvent, site, null); return(true); }
protected override bool TryExecuteWorker(IncidentParms parms) { if (!TryFindFaction(enemyFaction: out faction)) { return(false); } if (!TryGetRandomAvailableTargetMap(map: out Map map)) { return(false); } if (faction.leader == null) { return(false); } int pirateTile = RandomNearbyHostileSettlement(map.Tile)?.Tile ?? Tile.Invalid; if (pirateTile == Tile.Invalid) { return(false); } if (!TileFinder.TryFindNewSiteTile(out int tile, minDist: 2, maxDist: 8, allowCaravans: false, preferCloserTiles: true, nearThisTile: pirateTile)) { return(false); } Site site = SiteMaker.MakeSite(sitePart: SitePartDefOf.Outpost, tile: tile, faction: faction); site.Tile = tile; site.sitePartsKnown = true; Find.WorldObjects.Add(o: site); SendStandardLetter(parms, site, new NamedArgument[] { faction.leader?.LabelShort ?? "MFI_Representative".Translate(), faction.def.leaderTitle, faction.Name }); return(true); }
protected override bool TryExecuteWorker(IncidentParms parms) { if (!TryFindTile(tile: out int tile)) { return(false); } Site site = SiteMaker.MakeSite(WTH_DefOf.WTH_RoamingMechanoidsCore, WTH_DefOf.WTH_RoamingMechanoidsPart, tile, Faction.OfMechanoids, ifHostileThenMustRemainHostile: true); if (site == null) { return(false); } int randomInRange = TimeoutDaysRange.RandomInRange; site.Tile = tile; site.GetComponent <TimeoutComp>().StartTimeout(ticks: randomInRange * GenDate.TicksPerDay); site.SetFaction(Faction.OfMechanoids); Find.WorldObjects.Add(o: site); Find.LetterStack.ReceiveLetter(this.def.letterLabel, this.def.letterText, this.def.letterDef, site); return(true); }
protected override bool TryExecuteWorker(IncidentParms parms) { if (!TryFindFactions(out var faction, out var faction2)) { return(false); } if (!TileFinder.TryFindNewSiteTile(out var tile, 8, 30)) { return(false); } var site = SiteMaker.MakeSite(SitePartDefOf.DownedT5Android, tile, faction2); site.Tile = tile; var randomInRange = TimeoutDaysRange.RandomInRange; site.GetComponent <TimeoutComp>().StartTimeout(randomInRange * 60000); Find.WorldObjects.Add(site); var labelText = def.letterLabel; var letterText = def.letterText; Find.LetterStack.ReceiveLetter(labelText, letterText, def.letterDef, site); return(true); }
// Token: 0x06000DA9 RID: 3497 RVA: 0x000648C0 File Offset: 0x00062CC0 protected override bool TryExecuteWorker(IncidentParms parms) { Faction faction; Faction faction2; if (!this.TryFindFactions(out faction, out faction2)) { return(false); } int tile; if (!TileFinder.TryFindNewSiteTile(out tile, 8, 30, false, true, -1)) { return(false); } Site site = SiteMaker.MakeSite(SiteCoreDefOf.DownedT5Android, SitePartDefOf.Turrets, faction2); site.Tile = tile; int randomInRange = IncidentWorker_DownedT5Android.TimeoutDaysRange.RandomInRange; site.GetComponent <TimeoutComp>().StartTimeout(randomInRange * 60000); Find.WorldObjects.Add(site); base.SendStandardLetter(site, new string[] { faction.leader.LabelShort, faction.def.leaderTitle, faction.Name, }); return(true); }
protected override bool TryExecuteWorker(IncidentParms parms) { if (!TryFindFactions(out Faction ally, out Faction enemyFaction) || !TryFindTile(out int tile)) { return(false); } Site site = SiteMaker.MakeSite(SiteCoreDefOf.Nothing, EndGameDefOf.Outpost_defense, tile, ally, true); List <Thing> rewards = ThingSetMakerDefOf.Reward_StandardByDropPod.root.Generate(new ThingSetMakerParams() { totalMarketValueRange = new FloatRange?(SiteTuning.BanditCampQuestRewardMarketValueRange * SiteTuning.QuestRewardMarketValueThreatPointsFactor.Evaluate(StorytellerUtility.DefaultSiteThreatPointsNow() - 500)) }); int randomInRange = SiteTuning.QuestSiteTimeoutDaysRange.RandomInRange * Global.DayInTicks; site.GetComponent <WorldComp_SiteDefense>().StartComp(enemyFaction, rewards); site.GetComponent <TimeoutComp>().StartTimeout(randomInRange); Find.WorldObjects.Add(site); string text = def.letterText.Formatted(ally.leader.LabelShort, ally.def.leaderTitle, ally.Name, GenLabel.ThingsLabel(rewards, string.Empty), randomInRange.ToStringTicksToPeriod(), GenThing.GetMarketValue(rewards).ToStringMoney(null)).CapitalizeFirst(); GenThing.TryAppendSingleRewardInfo(ref text, rewards); Find.LetterStack.ReceiveLetter(def.letterLabel, text, def.letterDef, site, ally, null); return(true); }
protected override bool TryExecuteWorker(IncidentParms parms) { Faction faction; Faction faction2; if (!this.TryFindFactions(out faction, out faction2)) { return(false); } int tile; if (!TileFinder.TryFindNewSiteTile(out tile, 8, 30, false, true, -1)) { return(false); } Site site = SiteMaker.MakeSite(SiteCoreDefOf.Nothing, SitePartDefOf.Outpost, faction2); site.Tile = tile; List <Thing> list = this.GenerateRewards(faction); site.GetComponent <DefeatAllEnemiesQuestComp>().StartQuest(faction, 8f, list); Find.WorldObjects.Add(site); base.SendStandardLetter(site, new string[] { faction.leader.LabelShort, faction.def.leaderTitle, faction.Name, list[0].LabelCap }); return(true); }
protected override bool TryExecuteWorker(IncidentParms parms) { if (!TryFindFaction(enemyFaction: out this.faction)) { return(false); } if (!this.TryGetRandomAvailableTargetMap(map: out Map map)) { return(false); } int pirateTile = this.RandomNearbyHostileSettlement(map.Tile)?.Tile ?? Tile.Invalid; if (pirateTile == Tile.Invalid) { return(false); } if (!TileFinder.TryFindNewSiteTile(tile: out int tile, minDist: 2, maxDist: 8, allowCaravans: false, preferCloserTiles: true, nearThisTile: pirateTile)) { return(false); } Site site = SiteMaker.MakeSite(core: SiteCoreDefOf.Nothing, sitePart: SitePartDefOf.Outpost, tile: tile, faction: this.faction); site.Tile = tile; site.sitePartsKnown = true; Find.WorldObjects.Add(o: site); this.SendStandardLetter(lookTargets: site, relatedFaction: this.faction, textArgs: new string[] { this.faction.leader.LabelShort, this.faction.def.leaderTitle, this.faction.Name, }); return(true); }
public static Site CreateToxicCitySite(int tile, int days) { Site site = SiteMaker.MakeSite(SiteDefOf.ToxicLostCityLGE, sitePart: null, tile: tile, faction: Faction.OfAncients); site.GetComponent <TimeoutComp>().StartTimeout(days * 60000); Find.WorldObjects.Add(site); return(site); }
public override void AssignDebugData() { base.AssignDebugData(); if (TileFinder.TryFindNewSiteTile(out int tile)) { worldObject = SiteMaker.MakeSite((SitePartDef)null, tile, (Faction)null, ifHostileThenMustRemainHostile: true, (float?)null); } }
public static Site CreateBombardmentCitySite(int tile, int days) { Site site = SiteMaker.MakeSite(SiteDefOf.StandartLostCityLGE, SiteDefOf.OrbitalBombardmentLGE, tile, Faction.OfAncients); site.GetComponent <TimeoutComp>().StartTimeout(days * 60000); Find.WorldObjects.Add(site); return(site); }
private void CreateOpbase() { parent.Faction.TryAffectGoodwillWith(Faction.OfPlayer, -10); Site site = SiteMaker.MakeSite(SiteCoreDefOf.Nothing, EndGameDefOf.Outpost_opbase, parent.Tile, enemy, true, new float?()); site.GetComponent <TimeoutComp>().StartTimeout(SiteTuning.QuestSiteRefugeeTimeoutDaysRange.RandomInRange * Global.DayInTicks); site.GetComponent <WorldComp_opbase>().StartComp(); Find.WorldObjects.Add(site); }
private void AddLump() { if (resource == null) { Messages.Message($"Select resource", MessageTypeDefOf.NeutralEvent, false); return; } if (edit) { editSite.parts[0].parms.preciousLumpResources = resource; if (!string.IsNullOrEmpty(time) && int.TryParse(time, out int t)) { editSite.GetComponent <TimeoutComp>().StartTimeout(t * 60000); } else { editSite.GetComponent <TimeoutComp>().StartTimeout(-1); } editSite.parts.Clear(); editSite.parts.Add(new SitePart(editSite, part, part.Worker.GenerateDefaultParams(threatsFloat, editSite.Tile, editSite.Faction))); if (selectedFaction != null) { editSite.SetFaction(selectedFaction); } Messages.Message($"Success", MessageTypeDefOf.NeutralEvent, false); return; } if (Find.WorldSelector.selectedTile == -1) { Messages.Message($"Select tile", MessageTypeDefOf.NeutralEvent, false); return; } if (selectedFaction == null) { selectedFaction = Find.FactionManager.AllFactionsListForReading.RandomElement(); } Site site = SiteMaker.MakeSite(Gen.YieldSingle(part), Find.WorldSelector.selectedTile, selectedFaction, threatPoints: threatsFloat); site.sitePartsKnown = true; site.parts[0].parms.preciousLumpResources = resource; if (!string.IsNullOrEmpty(time) && int.TryParse(time, out int timeInt)) { site.GetComponent <TimeoutComp>().StartTimeout(timeInt * 60000); } Find.WorldObjects.Add(site); }
public static Site CreateSite(int tile, SitePartDef sitePart, int days, Faction siteFaction) { Site site = SiteMaker.MakeSite(SiteCoreDefOf.ItemStash, sitePart, tile, siteFaction); site.sitePartsKnown = true; site.GetComponent <TimeoutComp>().StartTimeout(days * 60000); Find.WorldObjects.Add(site); return(site); }
public static Site CreateSite(int tile, SitePartDef sitePart, int days, Faction siteFaction, IList <Thing> items) { Site site = SiteMaker.MakeSite(PolarisIncidentDefOf.Polaris_TradeShipPodCrashSiteCore, sitePart, tile, siteFaction, true); site.sitePartsKnown = true; site.GetComponent <TimeoutComp>().StartTimeout(days * 60000); site.GetComponent <ItemStashContentsComp>().contents.TryAddRangeOrTransfer(items, false, false); Find.WorldObjects.Add(site); return(site); }
private void Outcome_Triumph(Caravan caravan) { Set1.Faction.TryAffectGoodwillWith(Faction.OfPlayer, 45); Site site = SiteMaker.MakeSite(SiteCoreDefOf.Nothing, EndGameDefOf.Outpost_opbase, Tile, Set1.Faction, true); Utilities.FactionsWar().GetByFaction(site.Faction).resources += FE_WorldComp_FactionsWar.LARGE_EVENT_Cache_RESOURCE_VALUE; site.GetComponent <WorldComp_DisputeFOB>().StartComp(Set1, Set2); Find.WorldObjects.Add(site); Find.WorldObjects.Remove(this); Find.LetterStack.ReceiveLetter("LetterLabelDisputeTriumph".Translate(), "DisputeTriumph".Translate(BestCaravanPawnUtility.FindBestDiplomat(caravan), Set1, Set2) , LetterDefOf.PositiveEvent, site, null, null); }
internal void CreateAndRevealHackerSite() { this.foundHackingSite = true; this.hackingSite = SiteMaker.MakeSite(DefDatabase <SiteCoreDef> .GetNamed("ProblemHacker_HackingSite"), (SitePartDef)null, this.hacker.Faction); this.hackingSite.GetComponent <RemoteHackerComp> ().pawn.TryAdd(this.hacker, true); this.hackerCurrentlyHeld = false; //No longer hold the hacker ... this.hackingSite.GetComponent <TimeoutComp> ().StartTimeout(120000); this.hackingSite.Tile = this.hackingSourceTile; Find.WorldObjects.Add(this.hackingSite); //IntVec3 spawnCell = CellFinder.RandomSpawnCellForPawnNear (this.hackingSite.Map.Center, this.hackingSite.Map, 4); //GenSpawn.Spawn (this.hacker, spawnCell, this.hackingSite.Map, Rot4.Random, false); }
public override void CompTick() { if (!active) { return; } if (!ParentHasMap) { if (!enemy.HostileTo(ally)) { active = false; return; } if (timer <= Find.TickManager.TicksGame) { active = false; Utilities.FactionsWar().GetByFaction(ally).resources -= FE_WorldComp_FactionsWar.SETTLEMENT_RESOURCE_VALUE; if (!Find.WorldObjects.Settlements.Where(f => f.Faction == parent.Faction).Any()) { Find.LetterStack.ReceiveLetter("FactionDestroyed".Translate(), "LetterFactionBaseDefeated_FactionDestroyed".Translate(parent.Faction.Name), LetterDefOf.PositiveEvent, null, parent.Faction, null); parent.Faction.defeated = true; return; } Site resuce = SiteMaker.MakeSite(SiteCoreDefOf.Nothing, EndGameDefOf.Outpost_SiteResuce, parent.Tile, enemy, true, StorytellerUtility.DefaultSiteThreatPointsNow()); resuce.GetComponent <WorldComp_SettlementResuce>().StartComp(ally); resuce.GetComponent <TimeoutComp>().StartTimeout(new IntRange(9 * Global.DayInTicks, 15 * Global.DayInTicks).RandomInRange); Find.WorldObjects.Remove(parent); Find.WorldObjects.Add(resuce); Find.LetterStack.ReceiveLetter("LetterLabelSettlementDefenderIgnored".Translate(), TranslatorFormattedStringExtensions.Translate("SettlementDefenderIgnored", parent, parent.Faction.leader), LetterDefOf.ThreatBig, new LookTargets(parent.Tile), null, null); } return; } //Goodwill cost to unforbid items in the ally map foreach (Thing thing in FactionThings) { if (thing.Faction == Faction.OfPlayer || (thing.TryGetComp <CompForbiddable>() != null && !thing.IsForbidden(Faction.OfPlayer))) { parent.Faction.TryAffectGoodwillWith(Faction.OfPlayer, -5); FactionThings.Remove(thing); break; } } FriendliesDead(); HostileDefeated(); }
protected override bool TryExecuteWorker(IncidentParms parms) { int tile; if (!TileFinder.TryFindNewSiteTile(out tile)) { return(false); } Site site = SiteMaker.MakeSite(SiteCoreDefOf.Nothing, SitePartDefOf.Outpost, Find.FactionManager.FirstFactionOfDef(FactionDef.Named("ROMV_Sabbat"))); site.Tile = tile; site.GetComponent <HandleVampireQuestComp>().StartQuest(); Find.WorldObjects.Add(site); base.SendStandardLetter(site, "Potato"); return(true); }
protected override bool TryExecuteWorker(IncidentParms parms) { int tile; if (!TryFindNewSiteTile(out tile, 8, 30, false, true, -1)) { return(false); } Site site = SiteMaker.MakeSite(SiteCoreDefOf.Nothing, DefDatabase <SitePartDef> .GetNamed("ROMV_AncientVampireCrypt"), Find.FactionManager.FirstFactionOfDef(FactionDef.Named("ROMV_LegendaryVampires"))); site.Tile = tile; site.GetComponent <DefeatAllEnemiesQuestComp>().StartQuest(Faction.OfPlayer, 8f, GenerateRewards()); Find.WorldObjects.Add(site); base.SendStandardLetter(site); return(true); }
private void Outcome_Disaster(Caravan caravan) { Faction.TryAffectGoodwillWith(Faction.OfPlayer, -40); bool chance = Rand.Chance(0.5f); Settlement s = chance ? Set1 : Set2; Settlement turncoat = (Settlement)WorldObjectMaker.MakeWorldObject(WorldObjectDefOf.Settlement); turncoat.SetFaction(Find.FactionManager.AllFactionsVisible.Where(f => !f.IsPlayer && f.HostileTo(Faction.OfPlayer)).RandomElementWithFallback(null)); turncoat.Tile = s.Tile; turncoat.Name = s.Name; if (turncoat.Faction == null) { Outcome_Fail(caravan); return; } Settlement friendly = chance ? Set2 : Set1; Find.WorldObjects.Remove(s); Find.WorldObjects.Remove(chance ? Set2 : Set1); Find.WorldObjects.Add(turncoat); Site ambush = SiteMaker.MakeSite(SiteCoreDefOf.Nothing, SitePartDefOf.AmbushEdge, Tile, turncoat.Faction, true, StorytellerUtility.DefaultSiteThreatPointsNow()); Find.LetterStack.ReceiveLetter("LetterLabelDisputeDisaster".Translate(), "DisputeDisaster".Translate(turncoat, turncoat.Faction, friendly) , LetterDefOf.ThreatBig, turncoat, null, "Disaster"); LongEventHandler.QueueLongEvent(new Action(() => { MapGenerator.GenerateMap(new IntVec3(110, 1, 110), ambush, MapGeneratorDefOf.Encounter); List <PawnKindDef> kindDefs = new List <PawnKindDef>(); for (int i = 0; i < 2; i++) { kindDefs.Clear(); Lord lord = LordMaker.MakeNewLord(i == 0 ? turncoat.Faction : Faction, new LordJob_AssaultColony(i == 0 ? turncoat.Faction : Faction), ambush.Map); kindDefs = Utilities.GeneratePawnKindDef(45, i == 0 ? turncoat.Faction : Faction); // Balance IntVec3 vec = CellFinder.RandomClosewalkCellNear(new IntVec3(ambush.Map.Center.x - 30 + (i * 60), ambush.Map.Center.y, ambush.Map.Center.z), ambush.Map, 10); Utilities.GenerateFighter(StorytellerUtility.DefaultSiteThreatPointsNow() + 300, lord, kindDefs, ambush.Map, i == 0 ? turncoat.Faction : Faction, vec); } CaravanEnterMapUtility.Enter(caravan, ambush.Map, CaravanEnterMode.Center, CaravanDropInventoryMode.DoNotDrop, true); }), "GeneratingMapForNewEncounter", false, null); Utilities.FactionsWar().GetByFaction(turncoat.Faction).resources += FE_WorldComp_FactionsWar.SETTLEMENT_RESOURCE_VALUE * 2; Utilities.FactionsWar().GetByFaction(friendly.Faction).resources -= FE_WorldComp_FactionsWar.SETTLEMENT_RESOURCE_VALUE * 2; Find.WorldObjects.Remove(this); }
protected override bool TryExecuteWorker(IncidentParms parms) { Faction faction; Faction faction2; if (!this.TryFindFactions(out faction, out faction2)) { return(false); } int tile; if (!TileFinder.TryFindNewSiteTile(out tile, 4, 25, false, true, -1)) { return(false); } Site site = SiteMaker.MakeSite(SiteCoreDefOf.Nothing, SitePartDefOf.Outpost, tile, faction2, true); SitePart turrets = new SitePart(); turrets.def = SitePartDefOf.Turrets; site.parts.Add(turrets); SitePart arcaneBanditSquad = new SitePart(); arcaneBanditSquad.def = TorannMagicDefOf.ArcaneBanditSquad; site.parts.Add(arcaneBanditSquad); site.Tile = tile; List <Thing> list = this.GenerateRewards(faction, parms); site.GetComponent <DefeatAllEnemiesQuestComp>().StartQuest(faction, 12, list); Find.WorldObjects.Add(site); string itemList = ""; for (int i = 0; i < list.Count(); i++) { itemList += list[i].LabelShort + "\n"; } base.SendStandardLetter(site, faction, new string[] { faction.leader.LabelShort, faction.def.leaderTitle, faction.Name, itemList }); return(true); }
protected override bool TryExecuteWorker(IncidentParms parms) { Faction faction = parms.faction ?? Find.FactionManager.RandomAlliedFaction(allowHidden: false, allowDefeated: false, allowNonHumanlike: false); if (faction == null) { faction = Find.FactionManager.RandomNonHostileFaction(false, false, false); Log.ErrorOnce("MFI: No allied faction found, but event was forced. Using random faction.", 40830425); } if (!TryFindTile(tile: out int tile)) { return(false); } Site site = SiteMaker.MakeSite(core: MFI_DefOf.MFI_HuntersLodgeCore, sitePart: MFI_DefOf.MFI_HuntersLodgePart, tile: tile, faction: faction, ifHostileThenMustRemainHostile: false); if (site == null) { return(false); } int randomInRange = TimeoutDaysRange.RandomInRange; site.Tile = tile; site.GetComponent <TimeoutComp>().StartTimeout(ticks: randomInRange * GenDate.TicksPerDay); site.SetFaction(newFaction: faction); site.customLabel = site.def.LabelCap + site.parts.First(predicate: x => x.def == MFI_DefOf.MFI_HuntersLodgePart).def.Worker .GetPostProcessedThreatLabel(site, site.parts.FirstOrDefault()); Find.WorldObjects.Add(o: site); string text = string.Format(format: this.def.letterText, faction, faction.def.leaderTitle, SitePartUtility.GetDescriptionDialogue(site, site.parts.FirstOrDefault()), randomInRange) .CapitalizeFirst(); Find.LetterStack.ReceiveLetter(label: this.def.letterLabel, text: text, textLetterDef: this.def.letterDef, lookTargets: site); return(true); }
// Token: 0x06000DA9 RID: 3497 RVA: 0x000648C0 File Offset: 0x00062CC0 protected override bool TryExecuteWorker(IncidentParms parms) { Faction faction; if (!this.TryFindFactions(out faction)) { return(false); } int tile; if (!TileFinder.TryFindNewSiteTile(out tile, 8, 30, false, true, -1)) { return(false); } Faction zFaction = Faction.OfInsects; foreach (Faction factionZ in Find.FactionManager.AllFactionsListForReading) { if (factionZ.def.defName == "Zombie") { zFaction = factionZ; } } SitePartDef def = DefDatabase <SitePartDef> .GetNamed("ZombieOutpost", false); Site site = SiteMaker.MakeSite(SiteCoreDefOf.Nothing, def, tile, faction); //site.Tile = tile; List <Thing> list = this.GenerateRewards(faction); site.GetComponent <DefeatAllEnemiesQuestComp>().StartQuest(faction, 7, list); Find.WorldObjects.Add(site); /* * base.SendStandardLetter(site, new string[] * { * faction.leader.LabelShort, * faction.def.leaderTitle, * faction.Name, * list[0].LabelCap * }); */ return(true); }
protected override bool TryExecuteWorker(IncidentParms parms) { if (!tryFindTile(out int tile)) { return(false); } if (!SiteMakerHelper.TryFindSiteParams_SingleSitePart(CavesDefOf.Biomes_SkulltopSprout, (string)null, out SitePartDef sitePart, out Faction faction)) { return(false); } int timeout = SiteTuning.QuestSiteTimeoutDaysRange.RandomInRange; Site site = SiteMaker.MakeSite(CavesDefOf.Biomes_SkulltopSprout, sitePart, tile, faction); site.sitePartsKnown = true; site.GetComponent <TimeoutComp>().StartTimeout(SiteTuning.QuestSiteTimeoutDaysRange.RandomInRange * 60000); Find.WorldObjects.Add(site); SendStandardLetter(site); return(true); }
// Token: 0x06000DA9 RID: 3497 RVA: 0x000648C0 File Offset: 0x00062CC0 protected override bool TryExecuteWorker(IncidentParms parms) { if (!this.TryFindFactions(out Faction faction, out Faction faction2)) { return(false); } if (!TileFinder.TryFindNewSiteTile(out int tile, 8, 30, false, true, -1)) { return(false); } Site site = SiteMaker.MakeSite(SiteCoreDefOf.DownedT5Android, SitePartDefOf.Turrets, tile, faction2); site.Tile = tile; int randomInRange = IncidentWorker_DownedT5Android.TimeoutDaysRange.RandomInRange; site.GetComponent <TimeoutComp>().StartTimeout(randomInRange * 60000); Find.WorldObjects.Add(site); return(true); }
protected override bool TryExecuteWorker(IncidentParms parms) { var faction = parms.faction ?? Find.FactionManager.RandomAlliedFaction(false, false, false); if (faction == null) { Log.ErrorOnce("MFI: No allied faction found, but event was forced. Using random faction.", 40830425); faction = Find.FactionManager.RandomNonHostileFaction(allowNonHumanlike: false); } if (!TryFindTile(out var tile)) { return(false); } var site = SiteMaker.MakeSite(MFI_DefOf.MFI_HuntersLodgePart, tile, faction, false); if (site == null) { return(false); } var randomInRange = TimeoutDaysRange.RandomInRange; site.Tile = tile; site.GetComponent <TimeoutComp>().StartTimeout(randomInRange * GenDate.TicksPerDay); site.SetFaction(faction); site.customLabel = site.def.LabelCap + site.parts.First(x => x.def == MFI_DefOf.MFI_HuntersLodgePart).def .Worker.GetPostProcessedThreatLabel(site, site.parts.FirstOrDefault()); Find.WorldObjects.Add(site); var text = string.Format(def.letterText, faction, faction.def.leaderTitle, GetDescriptionDialogue(site, site.parts.FirstOrDefault()), randomInRange) .CapitalizeFirst(); Find.LetterStack.ReceiveLetter(def.letterLabel, text, def.letterDef, site); return(true); }