public override void DoEnter(Caravan caravan) { Pawn t = caravan.PawnsListForReading[0]; bool flag2 = !MapParent.HasMap; Verse.Map orGenerateMap = GetOrGenerateMap(MapParent.Tile, MapSize, null); if (flag2) { Find.TickManager.Notify_GeneratedPotentiallyHostileMap(); PawnRelationUtility.Notify_PawnsSeenByPlayer_Letter_Send(orGenerateMap.mapPawns.AllPawns, "LetterRelatedPawnsSite".Translate(Faction.OfPlayer.def.pawnsPlural), LetterDefOf.NeutralEvent, informEvenIfSeenBefore: true); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("LetterCaravanEnteredMap".Translate(caravan.Label, Site).CapitalizeFirst()); Find.LetterStack.ReceiveLetter($"{Translator.Translate("CaravanEnteredMassiveFire")} {Site.Label}", stringBuilder.ToString(), LetterDefOf.NeutralEvent); } else { Find.LetterStack.ReceiveLetter($"{Translator.Translate("CaravanEnteredMassiveFire")} {Site.Label}", "LetterCaravanEnteredMap".Translate(caravan.Label, Site).CapitalizeFirst(), LetterDefOf.NeutralEvent, t); } Verse.Map map = orGenerateMap; IntVec3 enterPos = new IntVec3(82, 0, 5); CaravanEnterMapUtility.Enter(caravan, map, (Pawn p) => enterPos); DoomsdaySite site = (DoomsdaySite)MapParent; var comp = site.GetComponent <DoomsdayUltimatumComp>(); if (comp.HelpingFactions != null) { CacheAndChangeRelations(comp); GeneratePawns(comp, ref enterPos, map); } }
protected override bool TryExecuteWorker(IncidentParms parms) { if (!settings.Active) { return(false); } int spawnPoint = GetPlace(); DoomsdaySite site = (DoomsdaySite)WorldObjectMaker.MakeWorldObject(WorldObjectsDefOfLocal.DoomsdayUltimatumCamp); site.Tile = spawnPoint; site.SetFaction(GetEnemyFaction()); var comp = site.GetComponent <DoomsdayUltimatumComp>(); comp.SetTimer(Rand.Range(10, 20)); CommunicationDialog dialog = QuestsManager.Communications.AddCommunication(QuestsManager.Communications.UniqueIdManager.GetNextDialogID(), "DoomsdayCardLabel".Translate(), "DoomsdayDesc".Translate(site.Faction.Name), site.Faction, def, new List <CommOption> { new CommOption_DiscussWithOtherFactions(site, site.Faction) }); comp.Dialog = dialog; site.comp = comp; List <Faction> factions = Find.FactionManager.AllFactionsListForReading.Where(f => !f.IsPlayer && !f.def.hidden && f != site.Faction && f.RelationKindWith(site.Faction) == FactionRelationKind.Hostile).ToList(); comp.FactionSilver = Mathf.Clamp(factions.Count * Rand.Range(2000, 4000), 15000, 35000); Find.WorldObjects.Add(site); SendStandardLetter(parms, site); DoomsdaySite.ActiveSite = site; return(true); }