public void setAgent(Agent agent) { this.agent = agent; // I know this is bad code if (agent is PlayerAgent) { henBreed = RaceStatsCalculator.playerHenBreed; SetMaterial(); } }
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); }
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); }