public static void TradeRequests() { Map currentMap = Find.CurrentMap; IncidentWorker_QuestTradeRequest incidentWorker_QuestTradeRequest = (IncidentWorker_QuestTradeRequest)IncidentDefOf.Quest_TradeRequest.Worker; StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("Randomly-generated trade requests for map " + currentMap.ToString() + ":"); stringBuilder.AppendLine(); for (int i = 0; i < 50; i++) { SettlementBase settlementBase = IncidentWorker_QuestTradeRequest.RandomNearbyTradeableSettlement(currentMap.Tile); if (settlementBase == null) { break; } stringBuilder.AppendLine("Settlement: " + settlementBase.LabelCap); TradeRequestComp component = settlementBase.GetComponent <TradeRequestComp>(); if (incidentWorker_QuestTradeRequest.TryGenerateTradeRequest(component, currentMap)) { stringBuilder.AppendLine("Duration: " + (component.expiration - Find.TickManager.TicksGame).ToStringTicksToDays("F1")); string str = GenLabel.ThingLabel(component.requestThingDef, null, component.requestCount) + " ($" + (component.requestThingDef.BaseMarketValue * (float)component.requestCount).ToString("F0") + ")"; stringBuilder.AppendLine("Request: " + str); string str2 = GenThing.ThingsToCommaList(component.rewards, false, true, -1) + " ($" + (from t in component.rewards select t.MarketValue * (float)t.stackCount).Sum().ToString("F0") + ")"; stringBuilder.AppendLine("Reward: " + str2); } else { stringBuilder.AppendLine("TryGenerateTradeRequest failed."); } stringBuilder.AppendLine(); settlementBase.GetComponent <TradeRequestComp>().Disable(); } Log.Message(stringBuilder.ToString(), false); }
public override string CompInspectStringExtra() { string result; if (this.contents.Any) { string text = GenThing.ThingsToCommaList(this.contents, true, true, 5).CapitalizeFirst(); if (this.contents.Count > 5) { result = "SomeItemStashContents".Translate(new object[] { text }); } else { result = "ItemStashContents".Translate(new object[] { text }); } } else { result = null; } return(result); }
public override string CompInspectStringExtra() { if (active) { string value = GenThing.ThingsToCommaList(rewards, useAnd: true, aggregate: true, 5).CapitalizeFirst(); return("QuestTargetDestroyInspectString".Translate(requestingFaction.Name, value, GenThing.GetMarketValue(rewards).ToStringMoney()).CapitalizeFirst()); } return(null); }
public override string CompInspectStringExtra() { if (contents.Any) { string value = GenThing.ThingsToCommaList(contents, useAnd: true, aggregate: true, 5).CapitalizeFirst(); return("ItemStashContents".Translate(value, GenThing.GetMarketValue(contents).ToStringMoney())); } return(null); }
public override string CompInspectStringExtra() { if (this.contents.Any) { string text = GenThing.ThingsToCommaList(this.contents, true, true, 5).CapitalizeFirst(); return("ItemStashContents".Translate(new object[] { text, GenThing.GetMarketValue(this.contents).ToStringMoney(null) })); } return(null); }
public override string CompInspectStringExtra() { if (this.active) { string text = GenThing.ThingsToCommaList(this.rewards, true, true, 5).CapitalizeFirst(); return("QuestTargetDestroyInspectString".Translate(new object[] { this.requestingFaction.Name, text, GenThing.GetMarketValue(this.rewards).ToStringMoney(null) }).CapitalizeFirst()); } return(null); }
public override string CompInspectStringExtra() { if (this.ActiveRequest) { return("CaravanRequestInfo".Translate(new object[] { TradeRequestUtility.RequestedThingLabel(this.requestThingDef, this.requestCount).CapitalizeFirst(), GenThing.ThingsToCommaList(this.rewards, true, true, -1).CapitalizeFirst(), (this.expiration - Find.TickManager.TicksGame).ToStringTicksToDays("F1"), (this.requestThingDef.GetStatValueAbstract(StatDefOf.MarketValue, null) * (float)this.requestCount).ToStringMoney(null), GenThing.GetMarketValue(this.rewards).ToStringMoney(null) })); } return(null); }
public override string CompInspectStringExtra() { string result; if (this.ActiveRequest) { result = "CaravanRequestInfo".Translate(new object[] { TradeRequestUtility.RequestedThingLabel(this.requestThingDef, this.requestCount).CapitalizeFirst(), GenThing.ThingsToCommaList(this.rewards, true, true, -1).CapitalizeFirst(), (this.expiration - Find.TickManager.TicksGame).ToStringTicksToDays("F1") }); } else { result = null; } return(result); }
private Command FulfillRequestCommand(Caravan caravan) { Command_Action command_Action = new Command_Action(); command_Action.defaultLabel = "CommandFulfillTradeOffer".Translate(); command_Action.defaultDesc = "CommandFulfillTradeOfferDesc".Translate(); command_Action.icon = TradeRequestComp.TradeCommandTex; command_Action.action = delegate() { if (!this.ActiveRequest) { Log.Error("Attempted to fulfill an unavailable request", false); } else if (!CaravanInventoryUtility.HasThings(caravan, this.requestThingDef, this.requestCount, new Func <Thing, bool>(this.PlayerCanGive))) { Messages.Message("CommandFulfillTradeOfferFailInsufficient".Translate(new object[] { TradeRequestUtility.RequestedThingLabel(this.requestThingDef, this.requestCount) }), MessageTypeDefOf.RejectInput, false); } else { Find.WindowStack.Add(Dialog_MessageBox.CreateConfirmation("CommandFulfillTradeOfferConfirm".Translate(new object[] { GenLabel.ThingLabel(this.requestThingDef, null, this.requestCount), GenThing.ThingsToCommaList(this.rewards, true, true, -1) }), delegate { this.Fulfill(caravan); }, false, null)); } }; if (!CaravanInventoryUtility.HasThings(caravan, this.requestThingDef, this.requestCount, new Func <Thing, bool>(this.PlayerCanGive))) { command_Action.Disable("CommandFulfillTradeOfferFailInsufficient".Translate(new object[] { TradeRequestUtility.RequestedThingLabel(this.requestThingDef, this.requestCount) })); } return(command_Action); }
public virtual string GenerateRewards(Pawn pawn, Caravan caravan, Predicate <ThingDef> globalValidator, ThingSetMakerDef thingSetMakerDef) { List <Thing> rewards = new List <Thing>(); if (thingSetMakerDef != null) { ThingSetMakerParams parms = default; parms.validator = globalValidator; parms.qualityGenerator = QualityGenerator.Reward; rewards = thingSetMakerDef.root.Generate(parms); } string rewardsToCommaList = GenThing.ThingsToCommaList(rewards); GenThing.TryAppendSingleRewardInfo(ref rewardsToCommaList, rewards); foreach (Thing itemReward in rewards) { caravan.AddPawnOrItem(itemReward, true); } return(rewardsToCommaList); }
private Command FulfillRequestCommand(Caravan caravan) { Command_Action command_Action = new Command_Action(); command_Action.defaultLabel = "CommandFulfillTradeOffer".Translate(); command_Action.defaultDesc = "CommandFulfillTradeOfferDesc".Translate(); command_Action.icon = TradeCommandTex; command_Action.action = delegate { if (!ActiveRequest) { Log.Error("Attempted to fulfill an unavailable request"); } else if (!CaravanInventoryUtility.HasThings(caravan, requestThingDef, requestCount, PlayerCanGive)) { Messages.Message("CommandFulfillTradeOfferFailInsufficient".Translate(TradeRequestUtility.RequestedThingLabel(requestThingDef, requestCount)), MessageTypeDefOf.RejectInput, historical: false); } else { Find.WindowStack.Add(Dialog_MessageBox.CreateConfirmation("CommandFulfillTradeOfferConfirm".Translate(GenLabel.ThingLabel(requestThingDef, null, requestCount), GenThing.ThingsToCommaList(rewards, useAnd: true)), delegate { Fulfill(caravan); })); } }; if (!CaravanInventoryUtility.HasThings(caravan, requestThingDef, requestCount, PlayerCanGive)) { command_Action.Disable("CommandFulfillTradeOfferFailInsufficient".Translate(TradeRequestUtility.RequestedThingLabel(requestThingDef, requestCount))); } return(command_Action); }
public override string CompInspectStringExtra() { if (ActiveRequest) { return("CaravanRequestInfo".Translate(TradeRequestUtility.RequestedThingLabel(requestThingDef, requestCount).CapitalizeFirst(), GenThing.ThingsToCommaList(rewards, useAnd: true).CapitalizeFirst(), (expiration - Find.TickManager.TicksGame).ToStringTicksToDays(), (requestThingDef.GetStatValueAbstract(StatDefOf.MarketValue) * (float)requestCount).ToStringMoney(), GenThing.GetMarketValue(rewards).ToStringMoney())); } return(null); }