Ejemplo n.º 1
0
    public static void CreateHawk(float speed, float foodViewRange, float waterViewRange, float flybySpeedRate, Vector3 spawnPosition, BiologicalSex sex)
    {
        HawkDNA  dna      = new HawkDNA();
        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.flybySpeedRate = mutation.MutateGene(flybySpeedRate, HawkDNA.FLYBY_SPEEDRATE_MIN, HawkDNA.FLYBY_SPEEDRATE_MAX);

        dna.sex = sex;

        Hawk hawk;

        if (dna.sex == BiologicalSex.Male)
        {
            hawk = Instantiate(Instance.maleHawk, spawnPosition, Quaternion.identity).GetComponent <Hawk>();
        }
        else
        {
            hawk = Instantiate(Instance.femaleHawk, spawnPosition, Quaternion.identity).GetComponent <Hawk>();
        }

        AnimalStatistics.Instance.AddAnimal(hawk);
        hawk.Initialize(dna);
    }
Ejemplo n.º 2
0
    public new void Initialize(HawkDNA dna)
    {
        babyDNA = dna;

        speed          = dna.speed;
        foodViewRange  = dna.foodViewRange;
        waterViewRange = dna.waterViewRange;
        sex            = dna.sex;
    }
Ejemplo n.º 3
0
    public void Initialize(HawkDNA dna)
    {
        this.dna = dna;

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

        sex = dna.sex;
    }
Ejemplo n.º 4
0
    public static void CreateBabyHawk(HawkDNA motherDNA, HawkDNA fatherDNA, Transform mother)
    {
        HawkDNA   dna       = new HawkDNA();
        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);

        var hawk = Instantiate(Instance.babyHawk, mother.position, Quaternion.identity).GetComponent <BabyHawk>();

        AnimalStatistics.Instance.AddAnimal(hawk.matureHawk);
        hawk.Initialize(dna);
    }
Ejemplo n.º 5
0
 protected virtual void Reproduce(HawkDNA dna)
 {
 }