示例#1
0
        private string GetLetterText(Faction alliedFaction, List <Thing> items, int days, Site site, SitePart sitePart)
        {
            string text = def.letterText.Formatted(alliedFaction.leader.LabelShort, alliedFaction.def.leaderTitle, alliedFaction.Name, GenLabel.ThingsLabel(items), days.ToString(), SitePartUtility.GetDescriptionDialogue(site, sitePart), GenThing.GetMarketValue(items).ToStringMoney()).CapitalizeFirst();

            GenThing.TryAppendSingleRewardInfo(ref text, items);
            return(text);
        }
示例#2
0
        protected override bool TryExecuteWorker(IncidentParms parms)
        {
            Map map;

            if (!this.TryGetRandomAvailableTargetMap(out map))
            {
                return(false);
            }
            SettlementBase settlementBase = IncidentWorker_QuestTradeRequest.RandomNearbyTradeableSettlement(map.Tile);

            if (settlementBase == null)
            {
                return(false);
            }
            TradeRequestComp component = settlementBase.GetComponent <TradeRequestComp>();

            if (!this.TryGenerateTradeRequest(component, map))
            {
                return(false);
            }
            string text = "LetterCaravanRequest".Translate(new object[]
            {
                settlementBase.Label,
                TradeRequestUtility.RequestedThingLabel(component.requestThingDef, component.requestCount).CapitalizeFirst(),
                (component.requestThingDef.GetStatValueAbstract(StatDefOf.MarketValue, null) * (float)component.requestCount).ToStringMoney("F0"),
                GenThing.ThingsToCommaList(component.rewards, true, true, -1).CapitalizeFirst(),
                GenThing.GetMarketValue(component.rewards).ToStringMoney("F0"),
                (component.expiration - Find.TickManager.TicksGame).ToStringTicksToDays("F0"),
                CaravanArrivalTimeEstimator.EstimatedTicksToArrive(map.Tile, settlementBase.Tile, null).ToStringTicksToDays("0.#")
            });

            GenThing.TryAppendSingleRewardInfo(ref text, component.rewards);
            Find.LetterStack.ReceiveLetter("LetterLabelCaravanRequest".Translate(), text, LetterDefOf.PositiveEvent, settlementBase, settlementBase.Faction, null);
            return(true);
        }
示例#3
0
        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);
        }
        private string GetLetterText(Faction alliedFaction, List <Thing> items, int days, Site site, SitePart sitePart)
        {
            string result = string.Format(this.def.letterText, new object[]
            {
                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);
        }