protected override ValuedSlimeTrait <int> CombineTraits(ValuedSlimeTrait <int> original, ValuedSlimeTrait <int> other, SpliceSettings settings)
        {
            var trait = settings.PickBetween(original, other);

            return(settings.MaybeMutate(trait, (x) =>
            {
                x.Value += (int)Mathf.Sign(UnityEngine.Random.value * 2 - 1);
                return x;
            }));
        }
        protected override ValuedSlimeTrait <SlimeEat.FoodGroup[]> CombineTraits(ValuedSlimeTrait <SlimeEat.FoodGroup[]> original, ValuedSlimeTrait <SlimeEat.FoodGroup[]> other, SpliceSettings settings)
        {
            var trait = CreateDefaultTrait() as ValuedSlimeTrait <SlimeEat.FoodGroup[]>;

            trait.Value = original.Value.Concat(other.Value).Distinct().ToArray();
            return(trait);
        }
Exemplo n.º 3
0
 protected override ValuedSlimeTrait <float> CombineTraits(ValuedSlimeTrait <float> original, ValuedSlimeTrait <float> other, SpliceSettings settings)
 {
     return(UnityEngine.Random.value > .5 ? original : other);
 }