public override void Notify_GeneratedByQuestGen(SitePart part, Slate slate, List <Rule> outExtraDescriptionRules, Dictionary <string, string> outExtraDescriptionConstants) { base.Notify_GeneratedByQuestGen(part, slate, outExtraDescriptionRules, outExtraDescriptionConstants); ThingDef thingDef = slate.Get <ThingDef>("itemStashSingleThing"); IEnumerable <ThingDef> enumerable = slate.Get <IEnumerable <ThingDef> >("itemStashThings"); List <Thing> list; if (thingDef != null) { list = new List <Thing>(); list.Add(ThingMaker.MakeThing(thingDef)); } else if (enumerable != null) { list = new List <Thing>(); foreach (ThingDef item in enumerable) { list.Add(ThingMaker.MakeThing(item)); } } else { float x = slate.Get("points", 0f); ThingSetMakerParams parms = default(ThingSetMakerParams); parms.totalMarketValueRange = new FloatRange(0.7f, 1.3f) * QuestTuning.PointsToRewardMarketValueCurve.Evaluate(x); list = ThingSetMakerDefOf.Reward_ItemsStandard.root.Generate(parms); } part.things = new ThingOwner <Thing>(part, oneStackOnly: false); part.things.TryAddRangeOrTransfer(list, canMergeWithExistingStacks: false); slate.Set("generatedItemStashThings", list); outExtraDescriptionRules.Add(new Rule_String("itemStashContents", GenLabel.ThingsLabel(list))); outExtraDescriptionRules.Add(new Rule_String("itemStashContentsValue", GenThing.GetMarketValue(list).ToStringMoney())); }
private string GetTitle() { if (thing != null) { return(thing.LabelCapNoCount); } if (worldObject != null) { return(worldObject.LabelCap); } ThingDef thingDef = Def as ThingDef; if (thingDef != null) { return(GenLabel.ThingLabel(thingDef, stuff).CapitalizeFirst()); } AbilityDef abilityDef = Def as AbilityDef; if (abilityDef != null) { return(abilityDef.LabelCap); } if (titleDef != null) { return(titleDef.GetLabelCapForBothGenders()); } if (faction != null) { return(faction.Name); } return(Def.LabelCap); }
public override string CompInspectStringExtra() { string txt = ""; bool holeHere = true; Thing thingHole = this.parent.Map.thingGrid.ThingAt(this.parent.Position, ThingDef.Named("AB_TarHole")); if (thingHole == null || thingHole.Position != this.parent.Position) { txt += "AB_WarningLowEfficiency".Translate(); holeHere = false; } if (this.PropsSpawner.writeTimeLeftToSpawn && (!this.PropsSpawner.requiresPower || this.PowerOn)) { if (!holeHere) { txt += "\n" + "NextSpawnedItemIn".Translate(GenLabel.ThingLabel(this.PropsSpawner.thingToSpawn, null, (int)(this.PropsSpawner.spawnCount / 3))) + ": " + this.ticksUntilSpawn.ToStringTicksToPeriod(true, false, true, true) + "\n" + "NextSpawnedItemIn".Translate(GenLabel.ThingLabel(this.PropsSpawner.SecondaryThingToSpawn, null, (int)(this.PropsSpawner.secondarySpawnCount / 3))) + ": " + this.ticksUntilSpawn.ToStringTicksToPeriod(true, false, true, true); } else { txt += "NextSpawnedItemIn".Translate(GenLabel.ThingLabel(this.PropsSpawner.thingToSpawn, null, this.PropsSpawner.spawnCount)) + ": " + this.ticksUntilSpawn.ToStringTicksToPeriod(true, false, true, true) + "\n" + "NextSpawnedItemIn".Translate(GenLabel.ThingLabel(this.PropsSpawner.SecondaryThingToSpawn, null, this.PropsSpawner.secondarySpawnCount)) + ": " + this.ticksUntilSpawn.ToStringTicksToPeriod(true, false, true, true); } } if (txt != "") { return(txt); } else { return(null); } }
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 static bool PatchMethod_Prefix(ref Thing ap, Pawn_ApparelTracker __instance) { if ((bool)DurableClothes_Settings.toggleFullRepair) // Only do full repair if the setting is enabled { ap.HitPoints = ap.MaxHitPoints; //Log.Message("Repair to full"); return(false); } if (DurableClothes_Settings.wearPercent == 0) { //Log.Message("No deterioraton"); return(false); } var num = GenMath.RoundRandom(ap.def.apparel.wearPerDay * DurableClothes_Settings.wearPercent / 100); //Log.Message("Take damage "+ num); if (num > 0) { ap.TakeDamage(new DamageInfo(DamageDefOf.Deterioration, (float)num, 0f, -1f, null, null, null, DamageInfo.SourceCategory.ThingOrUnknown, null)); } if (ap.Destroyed && PawnUtility.ShouldSendNotificationAbout(__instance.pawn) && !__instance.pawn.Dead) { Messages.Message("MessageWornApparelDeterioratedAway".Translate(GenLabel.ThingLabel(ap.def, ap.Stuff, 1), __instance.pawn).CapitalizeFirst(), __instance.pawn, MessageTypeDefOf.NegativeEvent, true); } return(false); // don't run the original logic to degrade apparel either way }
protected override void RunInt() { Quest quest = QuestGen.quest; Slate slate = QuestGen.slate; Map map = QuestGen_Get.GetMap(); Faction faction = slate.Get <Faction>("faction"); FloatRange marketValueRange = slate.Get <FloatRange>("marketValueRange"); Pawn val = slate.Get <Pawn>("rewardGiver"); quest.ReservePawns(Gen.YieldSingle(val)); quest.ReserveFaction(faction); int num = Rand.Range(5, 20) * 60000; slate.Set("rewardDelayTicks", num); quest.Delay(num, delegate { ThingSetMakerParams parms = default(ThingSetMakerParams); parms.totalMarketValueRange = marketValueRange; parms.qualityGenerator = QualityGenerator.Reward; parms.makingFaction = faction; List <Thing> list = ThingSetMakerDefOf.Reward_ItemsStandard.root.Generate(parms); slate.Set("listOfRewards", GenLabel.ThingsLabel(list)); quest.DropPods(map.Parent, list, null, null, "[rewardLetterText]", null, true); QuestGen_End.End(quest, QuestEndOutcome.Unknown); }, null, null, null, reactivatable: false, null, null, isQuestTimeout: false, null, null, "RewardDelay"); }
protected override bool TryExecuteWorker(IncidentParms parms) { Map map; bool result; if (!this.TryGetRandomAvailableTargetMap(out map)) { result = false; } else { Settlement settlement = IncidentWorker_ArcaneScriptCaravan.RandomNearbyTradeableSettlement(parms.target.Tile); if (settlement == null) { return(false); } else { TradeRequestComp component = settlement.GetComponent <TradeRequestComp>(); if (!this.GenerateCaravanRequest(component, (Map)parms.target)) { return(false); } Find.LetterStack.ReceiveLetter("LetterLabelArcaneScriptCaravan".Translate(), "LetterArcaneScriptCaravan".Translate(new object[] { settlement.Label, GenLabel.ThingLabel(component.requestThingDef, null, component.requestCount).CapitalizeFirst(), component.rewards[0].LabelCap, (component.expiration - Find.TickManager.TicksGame).ToStringTicksToDays("F0") }), LetterDefOf.PositiveEvent, settlement, null); return(true); } } return(result); }
private string GetTitle() { string result; if (this.thing != null) { result = this.thing.LabelCapNoCount; } else if (this.worldObject != null) { result = this.worldObject.LabelCap; } else { ThingDef thingDef = this.Def as ThingDef; if (thingDef != null) { result = GenLabel.ThingLabel(thingDef, this.stuff, 1).CapitalizeFirst(); } else { result = this.Def.LabelCap; } } return(result); }
public override string CompInspectStringExtra() { if (this.ActiveRequest) { return("CaravanRequestInfo".Translate(GenLabel.ThingLabel(this.requestThingDef, null, this.requestCount).CapitalizeFirst(), this.rewards[0].LabelCap, (this.expiration - Find.TickManager.TicksGame).ToStringTicksToDays("F1"))); } return(null); }
public override string CompInspectStringExtra() { if (Props.writeTimeLeftToSpawn && (!Props.requiresPower || PowerOn)) { return("NextSpawnedItemIn".Translate(GenLabel.ThingLabel(Props.thingToSpawn, null, Props.spawnCount)) + ": " + ticksUntilSpawn.ToStringTicksToPeriod()); } return(null); }
public override string GetPostProcessedThreatLabel(Site site, SiteCoreOrPartBase siteCoreOrPart) { return(string.Concat(base.GetPostProcessedThreatLabel(site, siteCoreOrPart), " (", GenLabel.BestKindLabel(siteCoreOrPart.parms.animalKind, Gender.None, true), ")" )); }
// Token: 0x0600575B RID: 22363 RVA: 0x001D481C File Offset: 0x001D2A1C public override string CompInspectStringExtra() { if (this.PropsSpawner.writeTimeLeftToSpawn && (!this.PropsSpawner.requiresPower || this.PowerOn)) { return("NextSpawnedItemIn".Translate(GenLabel.ThingLabel(this.PropsSpawner.thingToSpawn, null, this.PropsSpawner.spawnCount)) + ": " + this.ticksUntilSpawn.ToStringTicksToPeriod(true, false, true, true)); } return(null); }
public static string RequestedThingLabel(ThingDef def, int count) { string text = GenLabel.ThingLabel(def, null, count); if (def.HasComp(typeof(CompQuality))) { text = text + " (" + "NormalQualityOrBetter".Translate() + ")"; } return(text); }
protected void LogInventory() { foreach (InventoryRecord current in this.allRecords.Values) { if (current.count != 0) { Log.Message(GenLabel.ThingLabel(current.thingDef, current.stuffDef, current.count)); } } }
public static string GetThingDefLabel(ThingDef thingDef, int count = 1, bool capitalizeFirst = true) { string label = GenLabel.ThingLabel(thingDef, null, count); if (capitalizeFirst) { label = label.CapitalizeFirst(); } return(label); }
internal string RewardsText() { string stringBuilder = ""; foreach (Thing current in GetReward()) { string stringLabel = GenLabel.ThingLabel(current.def, null, current.stackCount).CapitalizeFirst(); stringBuilder += (" -" + stringLabel + "\n"); } return(stringBuilder); }
public override IEnumerable <string> GetSummaryListEntries(string tag) { if (tag == "PlayerStartsWith") { return(new List <string> { GenText.CapitalizeFirst(GenLabel.ThingLabel(thingDef, stuff, count)) }); } return(Enumerable.Empty <string>()); }
public override void Notify_GeneratedByQuestGen(SitePart part, Slate slate, List <Rule> outExtraDescriptionRules, Dictionary <string, string> outExtraDescriptionConstants) { base.Notify_GeneratedByQuestGen(part, slate, outExtraDescriptionRules, outExtraDescriptionConstants); ThingDef thingDef = slate.Get <ThingDef>("itemStashSingleThing", null, false); IEnumerable <ThingDef> enumerable = slate.Get <IEnumerable <ThingDef> >("itemStashThings", null, false); List <Thing> list = this.GenThingList(); part.things = new ThingOwner <Thing>(part, false, LookMode.Deep); part.things.TryAddRangeOrTransfer(list, false, false); outExtraDescriptionRules.Add(new Rule_String("itemStashContents", GenLabel.ThingsLabel(list, " - "))); outExtraDescriptionRules.Add(new Rule_String("itemStashContentsValue", GenThing.GetMarketValue(list).ToStringMoney(null))); }
private GenControl CreateGenControl(string groupName, string controlType) { var panel = FindPanel(groupName); GenControl control = null; bool flowbreak = false; if (controlType.ToUpper() == "COMBOBOX") { control = new GenComboBox(); } if (controlType.ToUpper() == "DATE") { control = new GenDate(); } if (controlType.ToUpper() == "LINEBREAK") { control = new GenLineBreak(); flowbreak = true; } if (controlType.ToUpper() == "TEXTBOX") { control = new GenTextBox(); } if (controlType.ToUpper() == "LABEL") { control = new GenLabel(); } if (controlType.ToUpper() == "MEMO") { control = new GenMemo(); } if (controlType.ToUpper() == "CHECKBOX") { control = new GenCheckBox(); } if (controlType.ToUpper() == "RADIOGROUP") { control = new GenRadioGroup(); } panel.Controls.Add(control); panel.SetFlowBreak(control, flowbreak); this.GenControls.Add(control); return(control); }
public override string GetInspectString() { StringBuilder builder = new StringBuilder(); string str = base.GetInspectString(); if (!string.IsNullOrEmpty(str)) { builder.AppendLine(str); } builder.Append("NextSpawnedItemIn".Translate(GenLabel.ThingLabel(PRFDefOf.Paperclip, null, 10000)) + ": " + ((250 - workDone) * 10).ToStringTicksToPeriod()); return(builder.ToString().TrimEndNewlines()); }
public override IEnumerable <string> GetSummaryListEntries(string tag) { if (tag == "PlayerStartsWith") { List <string> entries = new List <string>(); entries.Add(GenLabel.ThingLabel(thingDef, stuff, count).CapitalizeFirst()); return(entries); } else { return(Enumerable.Empty <string>()); } }
private static void <DoPlayLoad> m__1() { DeepProfiler.Start("Inject selected language data into game data."); try { LanguageDatabase.activeLanguage.InjectIntoData_AfterImpliedDefs(); GenLabel.ClearCache(); } finally { DeepProfiler.End(); } }
public static void Postfix(Designator_Build __instance, Event ev) { var _Map = ((Map)Traverse.Create(__instance).Property("Map").GetValue()); var _entDef = (BuildableDef)Traverse.Create(__instance).Field("entDef").GetValue(); ThingDef thingDef = _entDef as ThingDef; if (thingDef == null || !thingDef.MadeFromStuff) { return; } FloatMenu floatMenu = (FloatMenu)Find.WindowStack.Windows.LastOrDefault(x => x.GetType() == typeof(FloatMenu) && !x.GetType().IsSubclassOf(typeof(FloatMenu))); if (floatMenu == null) { return; } List <FloatMenuOption> optionsList = (List <FloatMenuOption>)AccessTools.Field(typeof(FloatMenu), "options").GetValue(floatMenu); foreach (ThingDef thingDef2 in _Map.resourceCounter.AllCountedAmounts.Keys) { if (thingDef2.IsStuff && thingDef2.stuffProps.CanMake(thingDef) && _Map.listerThings.ThingsOfDef(thingDef2).Count > 0) { ThingDef localStuffDef = thingDef2; string label = GenLabel.ThingLabel(_entDef, localStuffDef, 1).CapitalizeFirst(); FloatMenuOption option; try { option = optionsList.SingleOrDefault(x => x.Label == label); } catch (InvalidOperationException e) { option = null; Log.Warning("StuffCount: Two or more different stuff with same name " + label + "!"); } if (option != null) { int stuffCount = (localStuffDef.CountAsResource) ? _Map.resourceCounter.GetCount(localStuffDef) : _Map.listerThings.ThingsOfDef(localStuffDef).Count; string labelCapNew = label + " (" + stuffCount + ")"; option.Label = labelCapNew; } } } Traverse.Create(floatMenu).Method("SetInitialSizeAndPosition").GetValue(); }
public override string GetReport() { string text = JobDefOf.Sow.reportString; if (job.plantDefToSow != null) { text = text.Replace("TargetA", GenLabel.ThingLabel(job.plantDefToSow, null, 1)); } else { text = text.Replace("TargetA", "area"); } return(text); }
private string GetTitle() { if (_apparel != null) { return(_apparel.LabelCap); } if (Def is ThingDef thingDef) { return(GenLabel.ThingLabel(thingDef, _stuff).CapitalizeFirst()); } return(Def?.LabelCap); }
private string GetTitle() { if (this._apparel != null) { return(this._apparel.LabelCap); } ThingDef thingDef = this.Def as ThingDef; if (thingDef != null) { return(GenLabel.ThingLabel(thingDef, this._stuff).CapitalizeFirst()); } return(this.Def?.LabelCap); }
/// <summary> /// Degrades an item /// </summary> /// <param name="item">The item in question</param> /// <param name="pawn">The pawn with the item</param> /// <param name="damageIncrease">Extra damage</param> /// <param name="random">If damage should be randomized</param> public static void Degrade(Thing item, Pawn pawn, float damageIncrease, bool random) { float damage = random && damageIncrease >= 1 ? Rand.Range(1, damageIncrease) : damageIncrease; if (damage > 0) { item.TakeDamage(new DamageInfo(DamageDefOf.Deterioration, damage)); } if (item != null && item.Destroyed && PawnUtility.ShouldSendNotificationAbout(pawn) && !pawn.Dead) { pawn.jobs.ClearQueuedJobs(); string str = "MessageWornApparelDeterioratedAway".Translate(GenLabel.ThingLabel(item.def, item.Stuff), pawn); str = str.CapitalizeFirst(); Messages.Message(str, pawn, MessageTypeDefOf.NegativeEvent); } }
private string GetTitle() { if (this.thing != null) { return(this.thing.LabelCapNoCount); } if (this.worldObject != null) { return(this.worldObject.LabelCap); } ThingDef thingDef = this.Def as ThingDef; if (thingDef != null) { return(GenLabel.ThingLabel(thingDef, this.stuff, 1).CapitalizeFirst()); } return(this.Def.LabelCap); }
private void Outcome_Triumph(Caravan caravan) { FactionRelationKind playerRelationKind = base.Faction.PlayerRelationKind; int randomInRange = DiplomacyTuning.Goodwill_PeaceTalksTriumphRange.RandomInRange; base.Faction.TryAffectGoodwillWith(Faction.OfPlayer, randomInRange, false, false, null, null); List <Thing> list = ThingSetMakerDefOf.Reward_PeaceTalksGift.root.Generate(); for (int i = 0; i < list.Count; i++) { caravan.AddPawnOrItem(list[i], true); } Find.LetterStack.ReceiveLetter("LetterLabelPeaceTalks_Triumph".Translate(), this.GetLetterText("LetterPeaceTalks_Triumph".Translate(new object[] { base.Faction.Name, randomInRange, GenLabel.ThingsLabel(list, " - ") }), caravan, playerRelationKind), LetterDefOf.PositiveEvent, caravan, base.Faction, null); }
public static void EnableTwinkie(bool enable) { var def = ThingDefOf.MealSurvivalPack; var cachedGraphic = Traverse.Create(def.graphicData).Field("cachedGraphic"); if (mealLabel == null) { mealLabel = def.label; } if (mealDescription == null) { mealDescription = def.description; } if (mealGraphic == null) { mealGraphic = cachedGraphic.GetValue <Graphic>(); } if (enable) { def.label = "Twinkie"; def.description = "A Twinkie is an American snack cake, marketed as a \"Golden Sponge Cake with Creamy Filling\"."; cachedGraphic.SetValue(GraphicsDatabase.TwinkieGraphic); } else { def.label = mealLabel; def.description = mealDescription; cachedGraphic.SetValue(mealGraphic); } def.graphic = def.graphicData.Graphic; GenLabel.ClearCache(); var game = Current.Game; if (game != null) { game.Maps.SelectMany(map => map.listerThings.ThingsOfDef(def)) .Do(meal => { Traverse.Create(meal).Field("graphicInt").SetValue(null); }); } }