internal static void Apply()
        {
            Main.Log("Apply");

            // Start with a resistance that nearly matches the one you want
            var feature = DatabaseHelper.FeatureDefinitionDamageAffinitys.DamageAffinityColdResistance;

            // Get the monsters you want - doesn't have to be this
            var monstersWithColdResistance = Helpers.GetMonstersWithFeatureDefinition(feature);

            // create your feature from the existing one (or create one from scratch if there's a class builder)
            var myFeature = FeatureDefinitionDamageAffinityEx.Create(feature, "PsionicBlastResistance",
                                                                     DamageAffinityTypeEx.AttributeAndProficiency, 5, 0.5);

            // DatabaseRepository.GetDatabase<FeatureDefinitionDamageAffinity>().Add(myFeature);

            // Add your feature to all the monsters you want
            foreach (var m in monstersWithColdResistance)
            {
                Main.Log($"Adding MyFeature to monster: {m.Name}.");

                m.Features.Add(myFeature);

                // Maybe remove the original one
                // m.Features.Remove(feature);
            }
        }
        internal static FeatureDefinitionDamageAffinityEx Create(FeatureDefinitionDamageAffinity original,
                                                                 string name, DamageAffinityTypeEx damageAffinity, int flatBonusAmount, double ratio)
        {
            var retval = new FeatureDefinitionDamageAffinityEx
            {
                DamageAffinityTypeEx = damageAffinity,
                FlatBonusAmount      = flatBonusAmount,
                Ratio = ratio
            };

            // TODO - copy original to retval
            // AccessTools etc, class builder?

            AccessTools.Field(retval.GetType(), "guid").SetValue(retval, Guid.NewGuid().ToString("N"));
            retval.name = name;

            return(retval);
        }