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); }
public new void Initialize(HawkDNA dna) { babyDNA = dna; speed = dna.speed; foodViewRange = dna.foodViewRange; waterViewRange = dna.waterViewRange; sex = dna.sex; }
public void Initialize(HawkDNA dna) { this.dna = dna; speed = dna.speed; foodViewRange = dna.foodViewRange; waterViewRange = dna.waterViewRange; flybySpeedRate = dna.flybySpeedRate; sex = dna.sex; }
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); }
protected virtual void Reproduce(HawkDNA dna) { }