Пример #1
0
        public static SlimeGenome GetBaseGenome()
        {
            var genome = new SlimeGenome();

            foreach (var p in SlimeTraitRegistry.Processors)
            {
                genome.AddTrait(p.CreateDefaultTrait());
            }
            return(genome);
        }
Пример #2
0
        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);
        }