Private
Public Access
1
0
Files
OrekiWoofsBeehives/TestScenarios/CropBoostScenarios.md
2026-03-11 02:01:27 +01:00

7.1 KiB

Crop Boost Scenarios

Shared setup

  • Use one beehive in range of a crop/farmland.
  • Keep distance fixed inside full-distance zone (PlantsFullBoostDistanceToHive) unless the scenario says otherwise.
  • Enable both boosts when validating both paths: SpeedBoost=true, YieldBoost=true.
  • Use non-zero bonuses to make differences visible: GrowthSpeedBonus=0.2, YieldMultiplier=1.2.

Shared config commands (copy/paste)

/beehives YieldBoost true
/beehives SpeedBoost true
/beehives GrowthSpeedBonus 0.2
/beehives YieldMultiplier 1.2
/beehives BeehiveRadius 35
/beehives PlantsFullBoostDistanceToHive 20
/beehives MinBeesForPlantBoost 1000
/beehives MaxBeePopulation 50000
/beehives PopulationPercentForMaxBoost 100
/beehives MultipleBeehivesBoostCombination Max

1) Full mode keeps legacy behavior

  • Config: BoostCalculation=Full
  • Set hive population below MinBeesForPlantBoost
  • Expected: no crop boost from that hive.
  • Raise population to MinBeesForPlantBoost
  • Expected: hive contributes full population factor (100%) immediately (same as old behavior).

Commands

/beehives BoostCalculation Full

2) LinearPopulation starts at 0% at min

  • Config: BoostCalculation=LinearPopulation, PopulationPercentForMaxBoost=100, MaxBeePopulation=50000, MinBeesForPlantBoost=1000
  • Set hive population to 1000
  • Expected: population factor is 0%.

Commands

/beehives BoostCalculation LinearPopulation
/beehives PopulationPercentForMaxBoost 100
/beehives MaxBeePopulation 50000
/beehives MinBeesForPlantBoost 1000

3) LinearPopulation reaches 100% at configured max percent

  • Same config as scenario 2
  • Set hive population to 50000 (100% of MaxBeePopulation)
  • Expected: population factor is 100%.

Commands

/beehives BoostCalculation LinearPopulation
/beehives PopulationPercentForMaxBoost 100
/beehives MaxBeePopulation 50000
/beehives MinBeesForPlantBoost 1000

4) LinearPopulation midpoint check

  • Same config as scenario 2
  • Set hive population to midpoint between min and target max (25500)
  • Expected: population factor is about 50%.

Commands

/beehives BoostCalculation LinearPopulation
/beehives PopulationPercentForMaxBoost 100
/beehives MaxBeePopulation 50000
/beehives MinBeesForPlantBoost 1000

5) NormalizedLogk10Population starts at 0% and ends at 100%

  • Config: BoostCalculation=NormalizedLogk10Population, same thresholds as scenario 2
  • At MinBeesForPlantBoost, expected 0%.
  • At configured target max, expected 100%.

Commands

/beehives BoostCalculation NormalizedLogk10Population
/beehives PopulationPercentForMaxBoost 100
/beehives MaxBeePopulation 50000
/beehives MinBeesForPlantBoost 1000

6) NormalizedLogk10Population is front-loaded vs linear

  • Compare LinearPopulation vs NormalizedLogk10Population at same midpoint population
  • Expected: log mode gives a higher factor than linear at midpoint.
  • Formula reference: f(x)=ln(1+10x)/ln(11) where x is normalized [0..1] between min and configured max.

Commands

/beehives PopulationPercentForMaxBoost 100
/beehives MaxBeePopulation 50000
/beehives MinBeesForPlantBoost 1000

7) PopulationPercentForMaxBoost lower than 100

  • Config: PopulationPercentForMaxBoost=50, MaxBeePopulation=50000
  • Target max population for full factor becomes 25000.
  • Expected: factor reaches 100% at 25000 and stays clamped at 100% above it.

Commands

/beehives BoostCalculation LinearPopulation
/beehives PopulationPercentForMaxBoost 50
/beehives MaxBeePopulation 50000
/beehives MinBeesForPlantBoost 1000

8) PopulationPercentForMaxBoost = 0 boundary

  • Config: PopulationPercentForMaxBoost=0, non-Full mode
  • Expected: implementation falls back to immediate full factor once min threshold is met (avoids divide-by-zero / inverted range).

Commands

/beehives BoostCalculation LinearPopulation
/beehives PopulationPercentForMaxBoost 0

9) Distance and population multiply together

  • Use non-Full mode with population factor around 50%.
  • Move crop just outside full-distance zone so distance effectiveness is also around 50%.
  • Expected: per-hive contribution is about 25% (0.5 * 0.5).

Commands

/beehives BoostCalculation LinearPopulation
/beehives PopulationPercentForMaxBoost 100
/beehives MaxBeePopulation 50000
/beehives MinBeesForPlantBoost 1000
/beehives PlantsFullBoostDistanceToHive 20
/beehives BeehiveRadius 35

10) Multi-hive accumulation still clamps at 100%

  • Place multiple valid hives in range.
  • Expected: summed effectiveness does not exceed 100% total.

Commands

/beehives BoostCalculation Full
/beehives YieldBoost true
/beehives SpeedBoost true
/beehives MultipleBeehivesBoostCombination Additive

10b) Multi-hive combination: Max mode

  • Place multiple valid hives in range with noticeably different effectiveness.
  • Expected: final effectiveness equals the highest single-hive effectiveness (no additive stacking).

Commands

/beehives MultipleBeehivesBoostCombination Max

10c) Multi-hive combination: Additive mode

  • Place multiple valid hives in range with partial effectiveness.
  • Expected: effectiveness is additive across hives and capped at 100%.

Commands

/beehives MultipleBeehivesBoostCombination Additive

11) Yield and speed consumers are consistent

  • Verify beehive info text and actual growth/drop behavior under same setup.
  • Expected: displayed boost trend matches runtime trend for growth speed and yield bonus when population changes.

Commands

/beehives YieldBoost true
/beehives SpeedBoost true
/beehives GrowthSpeedBonus 0.2
/beehives YieldMultiplier 1.2

12) Verbosity 1 uses level words (no percentages, no parentheses)

  • Config: effective InformationVerbosity = 1
  • Expected beehive block info line: Crop boost effectiveness: Low|Medium|High
  • Expected: no % and no (...) details.

Commands

/beehives InformationVerbosityServerSideType ServerForced
/beehives InformationVerbosityServer 1
/beehives YieldBoost true
/beehives SpeedBoost true

13) Verbosity > 1 shows detailed percentages and details

  • Config: effective InformationVerbosity = 2 (or higher)
  • Expected beehive block info line format: Crop boost effectiveness: X% (+Y% yield, +Z% speed).

Commands

/beehives InformationVerbosityServerSideType ServerForced
/beehives InformationVerbosityServer 2
/beehives YieldBoost true
/beehives SpeedBoost true

14) Crop boost line hidden when boost is disabled

  • Config: YieldBoost=false, SpeedBoost=false
  • Expected on beehive block info: no Crop boost effectiveness line and no Population too low for a crop boost warning.

Commands

/beehives YieldBoost false
/beehives SpeedBoost false

15) Low-population warning appears in yellow when boost is enabled

  • Config: boost enabled, nearby hive population below MinBeesForPlantBoost
  • Expected on beehive block info: yellow line Population too low for a crop boost.

Commands

/beehives YieldBoost true
/beehives SpeedBoost true
/beehives MinBeesForPlantBoost 1000