Example #1
0
        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);
        }
Example #2
0
        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);
 }
Example #4
0
 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);
 }
Example #5
0
 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);
 }
Example #6
0
 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);
        }
Example #11
0
        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);
        }
Example #12
0
 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);
 }