calculate_experience
Calculate experience point distribution for D&D encounters based on party size, average level, and total encounter XP to determine fair rewards.
Instructions
Calculate experience points for an encounter.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| party_size | Yes | Number of party members | |
| party_level | Yes | Average party level | |
| encounter_xp | Yes | Total encounter XP value |
Implementation Reference
- src/gamemaster_mcp/main.py:823-844 (handler)The main handler function for the 'calculate_experience' tool. It calculates adjusted XP using party size multipliers from D&D 5e rules and divides by party size for XP per player.def calculate_experience( party_size: Annotated[int, Field(description="Number of party members", ge=1)], party_level: Annotated[int, Field(description="Average party level", ge=1, le=20)], encounter_xp: Annotated[int, Field(description="Total encounter XP value", ge=0)], ) -> str: """Calculate experience points for an encounter.""" # D&D 5e encounter multipliers based on party size if party_size < 3: multiplier = 1.5 elif party_size > 5: multiplier = 0.5 else: multiplier = 1.0 adjusted_xp = int(encounter_xp * multiplier) xp_per_player = adjusted_xp // party_size return f"""**Experience Calculation:** Base Encounter XP: {encounter_xp} Party Size Multiplier: {multiplier}x Adjusted XP: {adjusted_xp} **XP per Player: {xp_per_player}**"""