public static SlimeGenome CombineGenomes(SlimeGenome original, SlimeGenome other)
        {
            var spliceSettings = new SpliceSettings();
            var newGenome      = GetBaseGenome();

            foreach (var trait in original.AllTraits)
            {
                trait.Processor.AssembleSpliceSettings(trait, spliceSettings);
            }
            foreach (var trait in original.AllTraits)
            {
                newGenome[trait.FullID] = trait.Processor.CombineTraits(trait, other[trait.FullID], spliceSettings);
            }
            return(newGenome);
        }
 public virtual void AssembleSpliceSettings(SlimeTrait trait, SpliceSettings settings)
 {
 }
 public abstract SlimeTrait CombineTraits(SlimeTrait original, SlimeTrait other, SpliceSettings settings);