Class MilitaryCampaignAnalyzer
java.lang.Object
org.episteme.social.history.MilitaryCampaignAnalyzer
Analyzes historical military campaigns from a logistical and strategic perspective.
Estimates supply requirements, movement speeds, and attrition rates across different terrains.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordComposition and capabilities of a military force.static final recordFinal report of campaign feasibility and requirements.static final recordQuantified daily needs for a specific army.static enumCategories of military supplies required for operations.static final recordPhysical characteristics of a geographical segment of a campaign route. -
Method Summary
Modifier and TypeMethodDescriptionanalyzeCampaign(MilitaryCampaignAnalyzer.Army army, List<MilitaryCampaignAnalyzer.TerrainSegment> route) Conducts a detailed logistical analysis of a planned route for a specific army.static doublecalculateAttrition(MilitaryCampaignAnalyzer.Army army, List<MilitaryCampaignAnalyzer.TerrainSegment> route, int days) Estimates non-combat losses due to disease, desertion, and exhaustion.Calculates the daily supply requirements based on force composition.static RealmaxOperationalRange(MilitaryCampaignAnalyzer.Army army, double carryCapacityPercentage) Calculates the maximum distance an army can project without external resupply.
-
Method Details
-
calculateDailyRequirements
public static MilitaryCampaignAnalyzer.SupplyRequirements calculateDailyRequirements(MilitaryCampaignAnalyzer.Army army) Calculates the daily supply requirements based on force composition.- Parameters:
army- the military force- Returns:
- daily requirements as
MilitaryCampaignAnalyzer.SupplyRequirements - Throws:
NullPointerException- if army is null
-
analyzeCampaign
public static MilitaryCampaignAnalyzer.CampaignAnalysis analyzeCampaign(MilitaryCampaignAnalyzer.Army army, List<MilitaryCampaignAnalyzer.TerrainSegment> route) Conducts a detailed logistical analysis of a planned route for a specific army.- Parameters:
army- the military forceroute- list of terrain segments to traverse- Returns:
- findings of the analysis as
MilitaryCampaignAnalyzer.CampaignAnalysis - Throws:
NullPointerException- if army or route is null
-
calculateAttrition
public static double calculateAttrition(MilitaryCampaignAnalyzer.Army army, List<MilitaryCampaignAnalyzer.TerrainSegment> route, int days) Estimates non-combat losses due to disease, desertion, and exhaustion.- Parameters:
army- the military forceroute- route traverseddays- duration of the campaign in days- Returns:
- percentage of force lost to attrition (0.0 to 1.0)
-
maxOperationalRange
public static Real maxOperationalRange(MilitaryCampaignAnalyzer.Army army, double carryCapacityPercentage) Calculates the maximum distance an army can project without external resupply.- Parameters:
army- military forcecarryCapacityPercentage- efficiency of transport (0.0 to 1.0)- Returns:
- maximum range in kilometers as a
Realnumber - Throws:
NullPointerException- if army is null
-