Exemplo n.º 1
0
    public void UpdateAverages(BlobBehavior blob, StatType statType)
    {
        averageSize = CalculateNewAverage(averageSize, blob.size, statType);

        averageJogModifier = CalculateNewAverage(averageJogModifier, blob.jogModifier, statType);

        averageRunModifier = CalculateNewAverage(averageRunModifier, blob.runModifier, statType);

        averageRandomRotation = CalculateNewAverage(averageRandomRotation, blob.randomRotation, statType);

        averageAggression = CalculateNewAverage(averageAggression, blob.aggression, statType);

        averageFearOfPredator = CalculateNewAverage(averageFearOfPredator, blob.fearOfPredator, statType);

        averageWantOfPrey = CalculateNewAverage(averageWantOfPrey, blob.wantForPrey, statType);

        averageIncubationTicks = CalculateNewAverage(averageIncubationTicks, blob.incubationTicks, statType);

        averageReproductionLimit = CalculateNewAverage(averageReproductionLimit, blob.reproductionLimit, statType);

        //percentFemale = CalculateNewAverage(percentFemale, (int)blob.gender, statType);

        if (blob.gender.Equals(GenderType.Female) && statType == StatType.Death)
        {
            totalChildren -= blob.children;                                                                      //averageChildrenPerFemale = CalculateChildrenAverage(averageChildrenPerFemale, blob.children, statType);
        }
        numFruitEaten -= blob.fruitEaten;
        numBlobsEaten -= blob.blobsEaten;

        if (statType.Equals(StatType.Birth))
        {
            if (blob.generation > 0)
            {
                totalChildren++;
            }
            numBlobs++;
            if (blob.gender.Equals(GenderType.Female))
            {
                totalFemales++;
            }
            if (recordBlobCount < numBlobs)
            {
                recordBlobCount = numBlobs;
            }
        }
        else
        {
            numBlobs--;
            if (blob.gender.Equals(GenderType.Female))
            {
                totalFemales--;
            }
        }
    }
Exemplo n.º 2
0
    private float CalculateNewAverage(float currentAverage, float addition, StatType stateType)
    {
        var sign = stateType.Equals(StatType.Birth) ? 1 : -1;

        return((currentAverage * numBlobs + addition * sign) / (numBlobs + sign));
    }