Exemplo n.º 1
0
    public static void CreateMonkey(float speed, float foodViewRange, float waterViewRange, Vector3 spawnPosition, BiologicalSex sex)
    {
        MonkeyDNA dna      = new MonkeyDNA();
        Mutation  mutation = new Mutation();

        dna.speed          = mutation.MutateGene(speed, DNA.SPEED_MIN, DNA.SPEED_MAX);
        dna.foodViewRange  = mutation.MutateGene(foodViewRange, DNA.FOODVIEWRANGE_MIN, DNA.FOODVIEWRANGE_MAX);
        dna.waterViewRange = mutation.MutateGene(waterViewRange, DNA.WATERVIEWRANGE_MIN, DNA.FOODVIEWRANGE_MAX);

        dna.sex = sex;

        Monkey monkey;

        if (dna.sex == BiologicalSex.Male)
        {
            monkey = Instantiate(Instance.maleMonkey, spawnPosition, Quaternion.identity).GetComponent <Monkey>();
        }
        else
        {
            monkey = Instantiate(Instance.femaleMonkey, spawnPosition, Quaternion.identity).GetComponent <Monkey>();
        }

        AnimalStatistics.Instance.AddAnimal(monkey);
        monkey.Initialize(dna);
    }
Exemplo n.º 2
0
    public void Initialize(MonkeyDNA dna)
    {
        this.dna = dna;

        speed          = dna.speed;
        foodViewRange  = dna.foodViewRange;
        waterViewRange = dna.waterViewRange;

        sex = dna.sex;
    }
Exemplo n.º 3
0
    public new void Initialize(MonkeyDNA dna)
    {
        print(dna.sex);
        print(babyDNA.sex);
        babyDNA = dna;

        speed          = dna.speed;
        foodViewRange  = dna.foodViewRange;
        waterViewRange = dna.waterViewRange;
        sex            = dna.sex;
    }
Exemplo n.º 4
0
    public static void CreateBabyMonkey(MonkeyDNA motherDNA, MonkeyDNA fatherDNA, Transform mother)
    {
        MonkeyDNA dna       = new MonkeyDNA();
        Mutation  mutation  = new Mutation();
        Crossover crossover = new Crossover();

        dna.speed          = mutation.MutateGene(crossover.Cross(motherDNA.speed, fatherDNA.speed), DNA.SPEED_MIN, DNA.SPEED_MAX);
        dna.foodViewRange  = mutation.MutateGene(crossover.Cross(motherDNA.foodViewRange, fatherDNA.foodViewRange), DNA.FOODVIEWRANGE_MIN, DNA.FOODVIEWRANGE_MAX);
        dna.waterViewRange = mutation.MutateGene(crossover.Cross(motherDNA.waterViewRange, fatherDNA.waterViewRange), DNA.WATERVIEWRANGE_MIN, DNA.FOODVIEWRANGE_MAX);

        dna.sex = mutation.RandomizeSex();

        var monkey = Instantiate(Instance.babyMonkey, mother.position, Quaternion.identity).GetComponent <BabyMonkey>();

        AnimalStatistics.Instance.AddAnimal(monkey.matureMaleMonkey);
        monkey.Initialize(dna);
    }
Exemplo n.º 5
0
 protected virtual void Reproduce(MonkeyDNA dna)
 {
 }