예제 #1
0
    public void setAgent(Agent agent)
    {
        this.agent = agent;

        // I know this is bad code
        if (agent is PlayerAgent)
        {
            henBreed = RaceStatsCalculator.playerHenBreed;
            SetMaterial();
        }
    }
예제 #2
0
    public HenMaterials GetHenMaterial(Raising.HenBreed breed)
    {
        switch (breed)
        {
        case Raising.HenBreed.RedStar:
            return(newHampshireMaterials);

        case Raising.HenBreed.Silkie:
            return(silkiematerials);

        case Raising.HenBreed.AyamCemani:
            return(ayamCemaniMaterials);
        }
        return(newHampshireMaterials);
    }
예제 #3
0
    public static Raising.HenBreed playerHenBreed; // BAD CODE

    //modifies static values in SelectedRaceStats based on the selected list of hens
    public static void calculateStats(List <HenInfo> hens)
    {
        if (hens.Count == 0)
        {
            //can't race with zero hens
            SelectedRaceParameters.mass             = 0;
            SelectedRaceParameters.controlAuthority = 0;
            SelectedRaceParameters.dragMultiplier   = 0;
            SelectedRaceParameters.wingspan         = 0;
            return;
        }

        float sizeSum    = 0;
        float featherSum = 0;
        float fitnessSum = 0;
        float loveSum    = 0;

        foreach (HenInfo hen in hens)
        {
            sizeSum    += hen.sizeStat;
            featherSum += hen.feathersStat;
            fitnessSum += hen.fitnessStat;
            loveSum    += hen.loveStat;

            playerHenBreed = (Raising.HenBreed)hen.breedNumber;
        }

        sizeSum    = Mathf.Clamp(sizeSum, 0, 100);
        featherSum = Mathf.Clamp(featherSum, 0, 100);
        fitnessSum = Mathf.Clamp(fitnessSum, 0, 100);
        loveSum    = Mathf.Clamp(loveSum, 0, 100);

        //calculate control authority
        float authorityBoostFactor = Mathf.Sqrt(loveSum * 0.01f);

        SelectedRaceParameters.controlAuthority = MIN_AUTHORITY + ((MAX_AUTHORITY - MIN_AUTHORITY) * authorityBoostFactor);

        //calculate wingspan
        SelectedRaceParameters.wingspan = MIN_WINGSPAN + ((MAX_WINGSPAN - MIN_WINGSPAN) * fitnessSum * 0.01f);

        //calculate mass
        SelectedRaceParameters.mass = MIN_WINGSPAN + ((MAX_MASS - MIN_MASS) * sizeSum * 0.01f);

        //calculate drag multiplier
        float dragReductionFactor = 1f - Mathf.Sqrt(featherSum * 0.01f);

        SelectedRaceParameters.dragMultiplier = MAX_AUTHORITY - ((MAX_AUTHORITY - MIN_AUTHORITY) * dragReductionFactor);
    }