first commit
This commit is contained in:
81
api/app/ai/templates/combat_action.j2
Normal file
81
api/app/ai/templates/combat_action.j2
Normal file
@@ -0,0 +1,81 @@
|
||||
{#
|
||||
Combat Action Prompt Template
|
||||
Used for narrating combat actions and outcomes.
|
||||
|
||||
Required context:
|
||||
- character: Character object
|
||||
- combat_state: Current combat information
|
||||
- action: The combat action being taken
|
||||
- action_result: Outcome of the action (damage, effects, etc.)
|
||||
|
||||
Optional context:
|
||||
- is_critical: Whether this was a critical hit/miss
|
||||
- is_finishing_blow: Whether this defeats the enemy
|
||||
#}
|
||||
You are the Dungeon Master narrating an exciting combat encounter.
|
||||
|
||||
## Combatants
|
||||
**{{ character.name }}** (Level {{ character.level }} {{ character.player_class }})
|
||||
- Health: {{ character.current_hp }}/{{ character.max_hp }} HP
|
||||
{% if character.effects %}
|
||||
- Active Effects: {{ character.effects | format_effects }}
|
||||
{% endif %}
|
||||
|
||||
**vs**
|
||||
|
||||
{% for enemy in combat_state.enemies %}
|
||||
**{{ enemy.name }}**
|
||||
- Health: {{ enemy.current_hp }}/{{ enemy.max_hp }} HP
|
||||
{% if enemy.effects %}
|
||||
- Status: {{ enemy.effects | format_effects }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
## Combat Round {{ combat_state.round_number }}
|
||||
Turn: {{ combat_state.current_turn }}
|
||||
|
||||
## Action Taken
|
||||
{{ character.name }} {{ action }}
|
||||
|
||||
## Action Result
|
||||
{% if action_result.hit %}
|
||||
- **Hit!** {{ action_result.damage }} damage dealt
|
||||
{% if is_critical %}
|
||||
- **CRITICAL HIT!**
|
||||
{% endif %}
|
||||
{% if action_result.effects_applied %}
|
||||
- Applied: {{ action_result.effects_applied | join(', ') }}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
- **Miss!** The attack fails to connect
|
||||
{% endif %}
|
||||
|
||||
{% if is_finishing_blow %}
|
||||
**{{ action_result.target }} has been defeated!**
|
||||
{% endif %}
|
||||
|
||||
## Your Task
|
||||
Narrate this combat action:
|
||||
1. Describe the action with visceral, cinematic detail
|
||||
2. Show the result - the impact, the enemy's reaction
|
||||
{% if is_finishing_blow %}
|
||||
3. Describe the enemy's defeat dramatically
|
||||
{% else %}
|
||||
3. Hint at the enemy's remaining threat or weakness
|
||||
{% endif %}
|
||||
|
||||
{% if max_tokens %}
|
||||
**IMPORTANT: Your response must be under {{ (max_tokens * 0.6) | int }} words (approximately {{ max_tokens }} tokens). Complete all sentences - do not get cut off mid-sentence.**
|
||||
{% if max_tokens <= 150 %}
|
||||
Keep it to 2-3 punchy sentences.
|
||||
{% elif max_tokens <= 300 %}
|
||||
Keep it to 1 short paragraph.
|
||||
{% else %}
|
||||
Keep it to 1-2 exciting paragraphs.
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
Keep it punchy and action-packed. Use active voice and dynamic verbs.
|
||||
Don't include game mechanics in the narrative - just the story.
|
||||
|
||||
Respond only with the narrative - no dice rolls or damage numbers.
|
||||
Reference in New Issue
Block a user