Esempio n. 1
0
        private string GetLetterText(Faction alliedFaction, string tradeShipKind, int days, Site site, SitePart sitePart)
        {
            string text = string.Format(this.def.letterText, new object[]
            {
                alliedFaction.leader.LabelShort,
                alliedFaction.def.leaderTitle,
                alliedFaction.Name,
                tradeShipKind,
                days.ToString(),
                SitePartUtility.GetDescriptionDialogue(site, sitePart)
            }).CapitalizeFirst();

            return(text);
        }
        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);
        }
Esempio n. 3
0
        private void GetLetterText(Pawn prisoner, Site site, SitePart sitePart, int days, out string letter, out string label)
        {
            letter = this.def.letterText.Formatted(site.Faction.Name, prisoner.ageTracker.AgeBiologicalYears, prisoner.story.Title, SitePartUtility.GetDescriptionDialogue(site, sitePart), prisoner.Named("PAWN")).AdjustedFor(prisoner, "PAWN").CapitalizeFirst();
            if (PawnUtility.EverBeenColonistOrTameAnimal(prisoner))
            {
                letter = letter + "\n\n" + "PawnWasFormerlyColonist".Translate(prisoner.LabelShort, prisoner);
            }
            Helper.Log("Was Formally a colonist");
            string text;

            PawnRelationUtility.Notify_PawnsSeenByPlayer(Gen.YieldSingle <Pawn>(prisoner), out text, true, false);
            label = this.def.letterLabel;
            if (!text.NullOrEmpty())
            {
                string text2 = letter;
                letter = string.Concat(new string[]
                {
                    text2,
                    "\n\n",
                    "PawnHasTheseRelationshipsWithColonists".Translate(prisoner.LabelShort, prisoner),
                    "\n\n",
                    text
                });
                label = label + " " + "RelationshipAppendedLetterSuffix".Translate();
            }
            letter = letter + "\n\n" + "PrisonerRescueTimeout".Translate(days, prisoner.LabelShort, prisoner.Named("PRISONER"));
        }
        // Token: 0x06000075 RID: 117 RVA: 0x00004B08 File Offset: 0x00002D08
        private string GetLetterText(Faction alliedFaction, List <Thing> items, int days, Site site, SitePart sitePart)
        {
            string result = GrammarResolverSimpleStringExtensions.Formatted(this.def.letterText, alliedFaction.leader.LabelShort, alliedFaction.def.leaderTitle, alliedFaction.Name, GenLabel.ThingsLabel(items, "  - "), days.ToString(), SitePartUtility.GetDescriptionDialogue(site, sitePart), GenThing.GetMarketValue(items).ToStringMoney(null)).CapitalizeFirst();

            GenThing.TryAppendSingleRewardInfo(ref result, items);
            return(result);
        }