internal void ApplyParameters(int seedOffset, ParameterApplicationFrequency frequency)
 {
     foreach (var parameter in parameters)
     {
         if (parameter.target.applicationFrequency == frequency)
         {
             parameter.ApplyToTarget(seedOffset);
         }
     }
 }
        /// <summary>
        /// Assigns a new target
        /// </summary>
        /// <param name="targetObject">The target GameObject</param>
        /// <param name="targetComponent">The target component on the target GameObject</param>
        /// <param name="fieldOrPropertyName">The name of the property to apply the parameter to</param>
        /// <param name="frequency">How often to apply the parameter to its target</param>
        public void AssignNewTarget(
            GameObject targetObject,
            Component targetComponent,
            string fieldOrPropertyName,
            ParameterApplicationFrequency frequency)
        {
            gameObject           = targetObject;
            component            = targetComponent;
            propertyName         = fieldOrPropertyName;
            applicationFrequency = frequency;
            var componentType = component.GetType();

            fieldOrProperty = componentType.GetField(fieldOrPropertyName) != null
                ? FieldOrProperty.Field
                : FieldOrProperty.Property;
        }