Exemple #1
0
        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"
     });
 }
Exemple #5
0
 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
        }