private void DoPestDiseaseDamage(object sender, EventArgs e) { OrganBiomassRemovalType consumption = new OrganBiomassRemovalType(); consumption.FractionLiveToRemove = Math.Max(1, ParentStage.TotalPopulation * RateOfOrganConsumptionPerIndividual.Value() * HostOrgan.Live.Wt); HostPlant.RemoveBiomass(HostOrgan.Name, "Graze", consumption); }
private void DoPestDiseaseDamage(object sender, EventArgs e) { if (HostOrgan.GetType() == typeof(ICanopy)) { HostPlant.ReduceCanopy(Reduction.Value()); } else if (HostOrgan.GetType() == typeof(IRoot)) { HostPlant.ReduceRootLengthDensity(Reduction.Value()); } else { throw new Exception("FunctionalDimensionReduction is only possible for organs implementing ICanopy or IRoot interfaces"); } }
private void DoPestDiseaseDamage(object sender, EventArgs e) { OrganBiomassRemovalType consumption = new OrganBiomassRemovalType(); double organWtConsumed = 0; if ((ParentPhase.Cohorts != null) && (HostPlant.IsAlive)) { foreach (Cohort c in ParentPhase.Cohorts) { ParentPhase.CurrentCohort = c; organWtConsumed += c.Population * OrganWtConsumptionPerIndividual.Value(); consumption.FractionLiveToRemove += Math.Max(1, organWtConsumed / HostOrgan.Live.Wt); } HostPlant.RemoveBiomass(HostOrgan.Name, "Graze", consumption); } }
private void DoPestDiseaseDamage(object sender, EventArgs e) { HostPlant.ReduceCanopy(ParentStage.TotalPopulation * RateOfOrganObstructionPerIndividual.Value()); }