Exemple #1
0
    public BodyGenome(BodyGenome parentGenome, MutationSettingsInstance mutationSettings)
    {
        unlockedTech = new UnlockedTech(parentGenome.unlockedTech);
        data         = new BodyGenomeData(unlockedTech);

        FirstTimeInitializeCritterModuleGenomes();
        SetToMutatedCopyOfParentGenome(parentGenome, mutationSettings);
    }
Exemple #2
0
    public BodyGenome()
    {
        unlockedTech = lookup.baseInitialAbilities.GetInitialUnlocks();
        data         = new BodyGenomeData(unlockedTech);

        FirstTimeInitializeCritterModuleGenomes();
        GenerateInitialRandomBodyGenome();
    }
    // WPP: Not used (no templates)
    //public float[] waterGradX;  // plan B
    //public float[] waterGradY;  // plan B
    //public float[] depthSouth;
    //public float[] depthWest;

    //public float[] velTopRightX;
    //public float[] velTopLeftY;
    //public float[] velBottomLeftX;
    //public float[] velBottomRightY;

    public CritterModuleEnvironment(BodyGenomeData genomeData)
    {
        this.genomeData = genomeData;

        waterDepth = new float[1];
        waterVelX  = new float[1];
        waterVelY  = new float[1];

        depthGradX = new float[1];
        depthGradY = new float[1];
        //depthSouth = new float[1];
        //depthWest = new float[1];

        //velTopRightX = new float[1];
        //velTopLeftY = new float[1];
        //velBottomLeftX = new float[1];
        //velBottomRightY = new float[1];
    }
    public void Initialize(BodyGenomeData genome)
    {
        this.genome = genome;

        // * WPP: Vulnerable to index out of range errors (such as in UI)
        // consider initializing in variable declarations and leaving values at zero
        if (genome.useNutrients)
        {
            nutrientDensity = new float[1];
            nutrientGradX   = new float[1];
            nutrientGradY   = new float[1];
        }
        if (genome.useFoodPosition)
        {
            foodPlantPosX = new float[1];
            foodPlantPosY = new float[1];

            foodAnimalPosX = new float[1];
            foodAnimalPosY = new float[1];
        }
        if (genome.useFoodVelocity)
        {
            foodPlantVelX  = new float[1];
            foodPlantVelY  = new float[1];
            foodAnimalVelX = new float[1];
            foodAnimalVelY = new float[1];
        }
        foodPlantDistance = new float[1];
        foodPlantDirX     = new float[1];
        foodPlantDirY     = new float[1];

        foodAnimalDistance = new float[1];
        foodAnimalDirX     = new float[1];
        foodAnimalDirY     = new float[1];

        foodEggDistance = new float[1];
        foodEggDirX     = new float[1];
        foodEggDirY     = new float[1];

        foodCorpseDistance = new float[1];
        foodCorpseDirX     = new float[1];
        foodCorpseDirY     = new float[1];

        if (genome.useFoodStats)
        {
            foodPlantQuality  = new float[1];
            foodPlantRelSize  = new float[1];
            foodAnimalQuality = new float[1];
            foodAnimalRelSize = new float[1];
        }

        sensorRange = 16f; // TEMP HARDCODED *****

        /*foodPreferenceOrder = new int[3];  // 0 == particle, 1=egg, 2==creature
         * if(genome.preferenceParticles >= genome.preferenceEggs) {
         *  if(genome.preferenceParticles >= genome.preferenceCreatures) { // particles first place
         *      foodPreferenceOrder[0] = 0;
         *      if(genome.preferenceEggs >= genome.preferenceCreatures) { // particles --> eggs --> creatures
         *          foodPreferenceOrder[1] = 1;
         *          foodPreferenceOrder[2] = 2;
         *      }
         *      else {  // particles --> creatures --> eggs
         *          foodPreferenceOrder[1] = 2;
         *          foodPreferenceOrder[2] = 1;
         *      }
         *  }
         *  else { // creatures --> particles --> eggs
         *      foodPreferenceOrder[0] = 2;
         *      foodPreferenceOrder[1] = 0;
         *      foodPreferenceOrder[2] = 1;
         *  }
         * }
         * else {
         *  if(genome.preferenceEggs >= genome.preferenceCreatures) { // eggs first place!
         *      foodPreferenceOrder[0] = 1;
         *      if(genome.preferenceParticles >= genome.preferenceCreatures) { // eggs --> particles --> creatures
         *          foodPreferenceOrder[1] = 0;
         *          foodPreferenceOrder[2] = 2;
         *      }
         *      else {  // eggs --> creatures --> particles
         *          foodPreferenceOrder[1] = 2;
         *          foodPreferenceOrder[2] = 0;
         *      }
         *  }
         *  else {  // creatures --> eggs --> particles
         *      foodPreferenceOrder[0] = 2;
         *      foodPreferenceOrder[1] = 1;
         *      foodPreferenceOrder[2] = 0;
         *  }
         * }*/
    }
 public CritterModuleFood(BodyGenomeData genome)
 {
     Initialize(genome);
 }