private static ThingDef GenerateMutationGenome([NotNull] MutationCategoryDef mDef) { var tDef = new ThingDef { defName = GENOME_PREAMBLE + mDef.defName + "_Implicit", label = LABEL_TTAG.Translate(mDef.Named("MUTATION")), description = GetGenomeDesc(mDef), resourceReadoutPriority = ResourceCountPriority.Middle, category = ThingCategory.Item, thingClass = typeof(ThingWithComps), thingCategories = new List <ThingCategoryDef> { PMThingCategoryDefOf.PM_MutationGenome }, graphicData = GenerateGenomeGraphicData(mDef), useHitPoints = true, selectable = true, thingSetMakerTags = new List <string> { GENOME_SET_MAKER_TAG }, altitudeLayer = AltitudeLayer.Item, tickerType = TickerType.Never, rotatable = false, pathCost = 15, drawGUIOverlay = true, modContentPack = mDef.modContentPack, tradeTags = new List <string> { GENOME_TRADER_TAGS } }; SetGenomeStats(tDef, mDef); AddComps(tDef, mDef); return(tDef); }
private static void SetGenomeStats([NotNull] ThingDef tDef, [NotNull] MutationCategoryDef mDef) { tDef.SetStatBaseValue(StatDefOf.MaxHitPoints, 100); tDef.SetStatBaseValue(StatDefOf.Flammability, 1); tDef.SetStatBaseValue(StatDefOf.MarketValue, GetGenomeMarketValue(mDef)); tDef.SetStatBaseValue(StatDefOf.Mass, 0.03f); tDef.SetStatBaseValue(StatDefOf.SellPriceFactor, 0.1f); }
private static string GetGenomeDesc([NotNull] MutationCategoryDef mDef) { if (!string.IsNullOrEmpty(mDef.customGenomeDescription)) { return(mDef.customGenomeDescription); } return(GENOME_DESC_TAG.Translate(mDef.Named("MUTATION"))); }
private static GraphicData GenerateGenomeGraphicData([NotNull] MutationCategoryDef mDef) { return(new GraphicData { graphicClass = typeof(Graphic_Single), texPath = "Things/Item/Genecard" }); }
static GraphicData GenerateGenomeGraphicData([NotNull] MutationCategoryDef mDef) { return(new GraphicData() { graphicClass = typeof(Graphic_Single), texPath = "Things/Item/Special/TechprintUltratech" //TODO replace with our own graphics }); }
private static ThingDef GenerateMutationGenome([NotNull] MutationCategoryDef mDef) { string desc = GetGenomeDesc(mDef); string label = LABEL_TTAG.Translate(mDef.Named("MUTATION")); GraphicData gData = GenerateGenomeGraphicData(mDef); ThingDef tDef = GenerateNewDef(mDef, desc, label, gData); SetGenomeStats(tDef, mDef); AddComps(tDef, mDef); return(tDef); }
private static void AddComps([NotNull] ThingDef tDef, [NotNull] MutationCategoryDef mDef) { var comps = new List <CompProperties> { new CompProperties_Forbiddable(), new MutationGenomeStorageProps { mutation = mDef } }; tDef.comps = comps; }
private static float GetGenomeMarketValue([NotNull] MutationCategoryDef mDef) { float averageMkValue = 0; var counter = 0; foreach (MutationDef mutationDef in mDef.AllMutations.Where(m => m.isTaggable)) { averageMkValue += mutationDef.GetMarketValueFor(); counter++; } return(Mathf.Max(100, 100 + averageMkValue / counter)); //don't go below 100 silver for any mutations }