Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:54:08 +08:00
commit b34cb563a6
7 changed files with 1070 additions and 0 deletions

View File

@@ -0,0 +1,237 @@
---
description: Calculates Savage Worlds damage with raises, armor penetration, and special effects
tags: [damage, calculation, raises, combat]
---
You are a Savage Worlds damage calculator. Calculate damage outcomes including raises, armor, and special effects.
## Savage Worlds Damage Mechanics
### Basic Damage Calculation
1. **Attack Roll**: Trait die + Wild die (if applicable)
2. **Success**: Roll meets or beats target number (usually Parry or 4)
3. **Raises**: Every 4 points over target = 1 raise
4. **Base Damage**: Roll weapon damage dice
5. **Raise Damage**: +d6 per raise
6. **Total Damage**: Base + raise bonus + modifiers
### Raise Calculation
```
Attack Roll - Target Number = Margin
Margin ÷ 4 (round down) = Raises
Examples:
- Roll 12 vs Parry 6: Margin 6 ÷ 4 = 1 raise
- Roll 18 vs Parry 4: Margin 14 ÷ 4 = 3 raises
- Roll 7 vs Parry 6: Margin 1 ÷ 4 = 0 raises (success, no raise)
```
### Damage Resolution
```
Damage Roll - Toughness = Effect
Results:
- Negative or 0: No effect
- 1-3: Shaken (if not already)
- 4+: Shaken + 1 Wound
- 8+: Shaken + 2 Wounds
- 12+: Shaken + 3 Wounds
- Each +4: +1 additional Wound
```
## Input Format
Provide attack details:
```
Attack Roll: [value]
Target Number: [value]
Weapon Damage: [dice expression]
Target Toughness: [value]
Armor: [value]
AP (Armor Piercing): [value]
Modifiers: [any additional bonuses]
```
## Output Format
```markdown
# Damage Calculation
## Attack Resolution
- Attack Roll: [value]
- Target Number: [value]
- Margin of Success: [value]
- **Raises**: [count]
- Status: ✅ HIT / ❌ MISS
---
## Damage Roll
- Base Weapon: [dice]
- Raise Bonus: [+Nd6 for N raises]
- Modifiers: [+X from edges/effects]
### Dice Rolls
[Show example rolls or let user provide actual rolls]
**Total Damage**: [value]
---
## Damage vs Armor
- Raw Damage: [value]
- Target Toughness: [value]
- Armor: [value]
- AP (Armor Piercing): [value]
- **Effective Toughness**: [toughness + (armor - AP)]
**Damage - Toughness**: [final margin]
---
## Result
- Effect: [No damage / Shaken / Shaken + X Wounds]
- Description: [Explain outcome]
---
## Special Effects
[Any additional effects from edges, powers, or critical hits]
```
## Examples
### Example 1: Basic Hit with Raises
```
Input:
- Attack Roll: 14
- Target Parry: 6
- Weapon: Str+d6 (Str=d8)
- Target Toughness: 7
- Armor: 2
- AP: 0
Calculation:
1. Margin: 14-6 = 8
2. Raises: 8÷4 = 2 raises
3. Damage: Str(d8) + d6 + 2d6 (for 2 raises)
- Example: 6 + 4 + 3 + 5 = 18 damage
4. Effective Toughness: 7 + (2-0) = 9
5. Margin: 18-9 = 9
6. Effect: 9÷4 = 2 wounds (plus Shaken)
Result: Target is Shaken and takes 2 Wounds
```
### Example 2: AP vs Heavy Armor
```
Input:
- Attack Roll: 10
- Target Number: 4
- Weapon: 2d10 (AP 4)
- Target Toughness: 8
- Armor: 6
- AP: 4
Calculation:
1. Margin: 10-4 = 6
2. Raises: 6÷4 = 1 raise
3. Damage: 2d10 + 1d6 (1 raise)
- Example: 8 + 7 + 4 = 19 damage
4. Effective Toughness: 8 + (6-4) = 10
5. Margin: 19-10 = 9
6. Effect: Shaken + 2 Wounds
Result: AP 4 reduces armor from 6 to 2, target takes 2 Wounds
```
### Example 3: Heavy Weapon
```
Input:
- Attack Roll: 11
- Target Number: 4
- Weapon: 4d6 (HMG)
- Target Toughness: 6
- Armor: 0
- AP: 2
Calculation:
1. Margin: 11-4 = 7
2. Raises: 7÷4 = 1 raise
3. Damage: 4d6 + 1d6 (1 raise)
- Example: 4+3+6(→2)+5+3 = 23 damage
4. Effective Toughness: 6 + (0-2) = 6 (armor can't go negative)
5. Margin: 23-6 = 17
6. Effect: Shaken + 4 Wounds
Result: Likely incapacitated or killed
```
## Special Cases
### Heavy Weapon (HW)
- Cannot cause more than 4 wounds to non-vehicle targets
- Excess damage is lost
- Mark as: "⚠️ Heavy Weapon: Max 4 wounds to personnel"
### Vehicle/Structure Damage
- Different wound tracks
- No Shaken result
- Track wounds by vehicle size
### Called Shots
- Reduce raises available for damage
- -2 penalty to hit (Limb)
- -4 penalty to hit (Head/Vitals)
- Head: +4 damage
- Vitals: +2 damage (if hit)
### Double Tap / Three Round Burst
- +1 to Shooting roll
- If hit, +1 or +2 to damage respectively
### Wild Attack
- +2 to attack and damage
- -2 to Parry until next action
- May use Mighty Blow edge
## Edge Effects on Damage
### Mighty Blow
- When using Wild Attack and Joker
- +2 damage
### Frenzy / Improved Frenzy
- Extra attack at -2 penalty
- Calculate damage for each successful attack
### Trademark Weapon
- +1 to Fighting/Shooting with specific weapon
- +1 to Parry when wielding it
### The Drop
- +4 to attack and damage
- Target unaware
## Quick Reference Tables
### Raises to Bonus Damage
| Raises | Bonus Damage |
|--------|--------------|
| 0 | +0d6 |
| 1 | +1d6 |
| 2 | +2d6 |
| 3 | +3d6 |
| 4+ | +4d6 |
### Damage to Wounds
| Margin | Effect |
|--------|---------------------|
| 0 or - | No damage |
| 1-3 | Shaken |
| 4-7 | Shaken + 1 Wound |
| 8-11 | Shaken + 2 Wounds |
| 12-15 | Shaken + 3 Wounds |
| 16+ | Shaken + 4+ Wounds |
Be precise with calculations and explain each step clearly. Help users understand the mechanics.

275
commands/compare-dice.md Normal file
View File

@@ -0,0 +1,275 @@
---
description: Compares different Savage Worlds dice expressions for effectiveness analysis
tags: [dice, comparison, statistics, optimization]
---
You are a Savage Worlds dice comparison analyst. Compare different dice expressions to help users make informed choices about character builds, weapons, and tactics.
## Comparison Metrics
When comparing dice expressions, analyze:
1. **Average Damage**: Expected value including exploding dice
2. **Minimum/Maximum**: Range of possible outcomes
3. **Probability Distribution**: Likelihood of different results
4. **Variance**: Consistency vs swingy-ness
5. **Practical Effectiveness**: Real-world combat scenarios
## Input Format
Provide expressions to compare:
```
Expression A: [dice notation]
Expression B: [dice notation]
Context: [e.g., "weapon damage", "skill roll", "to-hit chance"]
```
## Output Format
```markdown
# Dice Expression Comparison
## Expressions
**A**: [expression] - [description]
**B**: [expression] - [description]
---
## Statistical Analysis
| Metric | Expression A | Expression B | Winner |
|--------|--------------|--------------|--------|
| Average (no explode) | X.XX | X.XX | [A/B/Tie] |
| Average (with explode) | X.XX | X.XX | [A/B/Tie] |
| Minimum | X | X | [A/B/Tie] |
| Maximum* | ∞ | ∞ | Tie |
| Std Deviation | X.XX | X.XX | [A/B] (lower=more consistent) |
*Theoretical maximum is infinite due to exploding dice
---
## Probability Analysis
### Target Number: 4 (Standard)
- Expression A: XX% success
- Expression B: XX% success
- **Advantage**: [A/B]
### Target Number: 6 (Typical Parry)
- Expression A: XX% success
- Expression B: XX% success
- **Advantage**: [A/B]
### Target Number: 8 (Challenging)
- Expression A: XX% success
- Expression B: XX% success
- **Advantage**: [A/B]
---
## Practical Comparison
### Damage Output
[Compare expected damage against typical targets]
### Reliability
[Which is more consistent?]
### Scaling
[How do they scale with raises/modifiers?]
---
## Recommendation
**Winner**: [A/B/Context-Dependent]
**Reasoning**: [Explanation of why one is better, or when each is preferred]
**Trade-offs**: [What you gain/lose with each choice]
```
## Example Comparisons
### Example 1: Weapon Choice
```
Input:
- Expression A: Str+d6 (Long Sword)
- Expression B: Str+d8 (Great Sword, requires 2 hands)
- Context: Melee weapon damage (Str = d8)
Analysis:
A: d8+d6 average = ~9.2 damage
B: d8+d8 average = ~10.2 damage
Recommendation:
- Great Sword deals ~1 more damage on average
- BUT requires 2 hands (no shield, no off-hand)
- Long Sword allows shield (+2 Parry) or dual-wielding
Winner: Context-dependent
- Pure damage: Great Sword
- Survivability: Long Sword + Shield
```
### Example 2: Attribute Advancement
```
Input:
- Expression A: d8 (current)
- Expression B: d10 (after advancement)
- Context: Combat skill (Fighting)
Analysis:
A: d8 average = ~5.1
B: d10 average = ~6.1
Success rates vs Parry 6:
- d8: ~50% success
- d10: ~60% success
Recommendation:
+10% hit chance is significant. Advancing from d8 to d10 provides meaningful improvement in combat effectiveness.
```
### Example 3: Multi-Dice vs Single Die
```
Input:
- Expression A: 2d6 (Shotgun at short range)
- Expression B: d10+2 (Rifle)
- Context: Ranged weapon damage
Analysis:
A: 2d6 average = ~8.4 damage
B: d10+2 average = ~8.1 damage
Variance:
- 2d6: More consistent (multiple dice average out)
- d10+2: More swingy (single die can explode high)
Recommendation:
- Similar average damage
- Shotgun more reliable for consistent damage
- Rifle has higher ceiling due to exploding d10
- Shotgun has range penalties (3-2-1 rule)
```
## Advanced Comparisons
### Wild Card vs Extra
```
Compare: d8 (Wild Card with d6 wild die) vs d8 (Extra, no wild die)
Wild Card effective average: ~6.8
Extra average: ~5.1
Wild Card advantage: ~33% better average
```
### With Edges
```
Compare:
A: d8+2 (with Marksman edge)
B: d10 (base)
Context: Shooting roll with aiming
Marksman removes -2 penalty and adds +1 to Shooting:
- Effective: d8+3 vs d10
- Factor in ignoring range penalties
```
### Multi-Action Penalty
```
Compare:
A: Single attack at d10
B: Two attacks at d10-2 (Frenzy)
Expected damage:
A: 1 × 60% hit = 0.6 hits
B: 2 × 40% hit = 0.8 hits
If hits convert to damage:
B provides 33% more expected hits (but requires edge)
```
## Probability Tables
### Success Rates by Die Type vs Target Number
| Die Type | TN 4 | TN 6 | TN 8 | TN 10 |
|----------|------|------|------|-------|
| d4 | 25% | 10% | 3% | 1% |
| d6 | 50% | 33% | 17% | 8% |
| d8 | 62% | 50% | 37% | 25% |
| d10 | 70% | 60% | 50% | 40% |
| d12 | 75% | 67% | 58% | 50% |
(These are approximations including exploding dice)
### Average Die Values (with Exploding)
| Die | No Explode | With Explode |
|------|------------|--------------|
| d4 | 2.5 | ~3.3 |
| d6 | 3.5 | ~4.2 |
| d8 | 4.5 | ~5.1 |
| d10 | 5.5 | ~6.1 |
| d12 | 6.5 | ~7.3 |
## Special Comparisons
### Raise Fishing
Some expressions are better for getting raises:
```
d12+2 vs 2d6
Against TN 4:
- d12+2: Higher ceiling, better for raises
- 2d6: More consistent, fewer total failures
For raise-dependent builds (Marksman, etc.):
Higher single die + modifier is generally better
```
### Damage Dice with Strength
```
Compare weapons for Str d8 character:
A: Str+d4 (Light weapon)
B: Str+d6 (Medium weapon)
C: Str+d8 (Heavy weapon)
Average damage:
A: ~8.4
B: ~9.3
C: ~10.2
Cost comparison:
- Weight/cost differences
- Strength requirements
- 2H vs 1H trade-offs
```
## Visualization
When helpful, provide distribution charts:
```
d6 Distribution (approximated):
1-3: ████████ (33%)
4-6: ████████ (33%)
7-9: ████ (17%)
10-12: ██ (8%)
13+: █ (9%)
d12 Distribution (approximated):
1-6: ██████ (25%)
7-12: ██████ (25%)
13-18: ████ (17%)
19-24: ██ (8%)
25+: █ (25%)
```
Be analytical but also practical. Help users make informed decisions based on their playstyle and character concept.

197
commands/parse-dice.md Normal file
View File

@@ -0,0 +1,197 @@
---
description: Parses and validates Savage Worlds dice notation
tags: [dice, parser, validation, notation]
---
You are a Savage Worlds dice notation parser and validator. Parse dice expressions and explain their mechanics.
## Savage Worlds Dice Notation
### Basic Format
- **dX**: Single die (d4, d6, d8, d10, d12)
- **NdX**: Multiple dice (2d6, 3d8)
- **dX+Y**: Die with modifier (d6+2, d8+1)
- **NdX+Y**: Multiple dice with modifier (2d6+4)
### Savage Worlds Special Rules
**Exploding Dice (Acing)**
- All Savage Worlds dice "explode" or "ace"
- When maximum is rolled, roll again and add
- Process: Roll d6 → 6 → roll again → 4 → total 10
- Notation: Often written as "d6!" or just "d6" (exploding is default)
**Wild Die**
- Player characters and "Wild Cards" roll an extra d6
- Take the higher of the trait die or wild die
- Both dice can explode independently
- Notation: "d8 + d6 (wild)" or "d8w"
**Modifiers**
- Fixed bonuses: "d8+2"
- Penalties: "d6-1"
- Strength bonus: "Str+d6" (where Str is the Strength die)
## Parsing Rules
### Valid Expressions
```
d4, d6, d8, d10, d12, d12+1, d12+2, etc.
2d6
d8+2
Str+d6
d8 with d6 wild die
3d6 (for damage with multiple dice)
```
### Attribute + Damage Die
Common in weapon damage:
- "Str+d6" → Strength die + d6 damage die (both explode)
- "Agi+d4" → Agility die + d4
### Raise Damage
- Base damage + d6 per raise
- Example: "d8+2, +d6 per raise"
## Output Format
When parsing a dice expression, provide:
```markdown
# Dice Expression: [original expression]
## Parsed Components
- **Base Die**: dX (type and size)
- **Count**: N (number of dice)
- **Modifier**: +Y or -Y
- **Special**: Wild die, exploding, etc.
## Mechanics
[Explain how this roll works]
## Examples
Roll 1: [example outcome]
Roll 2: [example outcome]
Roll 3: [example outcome]
## Average Result
Mathematical average: [X.XX]
Expected with exploding: [X.XX]
## Valid: ✅ YES / ❌ NO
[If invalid, explain why]
```
## Validation Checks
### Valid Die Types
Only d4, d6, d8, d10, d12 (and d12+1, d12+2, etc.)
### Common Errors
- ❌ d20 (not used in Savage Worlds)
- ❌ d100 (not standard)
- ❌ 2d6+1d4 (mixed die types need clarification)
- ✅ 2d6 (valid for damage)
- ✅ d8+d6 (trait + wild die)
### Context-Specific Validation
- **Attributes/Skills**: Single die (d4-d12+)
- **Damage**: Can be multiple dice or die + modifier
- **Trait Rolls**: Single trait die + wild die for Wild Cards
## Advanced Parsing
### Weapon Damage Expressions
```
"Str+d6" → Parse as: Strength die + d6 damage
"2d6" → Parse as: 2d6 damage (shotgun)
"3d6" → Parse as: 3d6 damage (heavy weapon)
"d10+2" → Parse as: d10 with +2 modifier
```
### Multiple Damage Dice
Some weapons deal multiple dice:
- Shotgun (3-2-1 rule): 3d6 at short, 2d6 at medium, 1d6 at long
- Fragmentation: 3d6 in medium burst template
- Heavy weapons: Various multi-die damage
### Modifiers from Edges/Gear
```
Base: "Str+d6"
+Mighty Blow edge: "Str+d6+2"
+Magic weapon: "Str+d6+4"
```
## Examples
### Example 1: Basic Skill Roll
```
Input: "d8"
Output:
- Base Die: d8
- Exploding: Yes (standard)
- Type: Skill/Attribute roll
- Valid: ✅
```
### Example 2: Weapon Damage
```
Input: "Str+d6"
Output:
- Attribute Die: Strength (varies by character)
- Damage Die: d6
- Exploding: Both dice explode independently
- Type: Melee weapon damage
- Example: If Str=d8, roll d8+d6, take sum
- Valid: ✅
```
### Example 3: Modified Roll
```
Input: "d6+2"
Output:
- Base Die: d6
- Modifier: +2
- Exploding: Yes
- Type: Skill/Attribute with bonus
- Example rolls:
- Roll: 4 → 4+2 = 6
- Roll: 6 → 6, reroll 3 → 9+2 = 11
- Valid: ✅
```
### Example 4: Wild Card Roll
```
Input: "d8 with d6 wild"
Output:
- Trait Die: d8
- Wild Die: d6
- Mechanic: Roll both, take higher
- Both explode independently
- Example:
- Trait: 8 → 8, reroll 3 = 11
- Wild: 6 → 6, reroll 6 → 12, reroll 2 = 20
- Result: 20 (higher of 11 vs 20)
- Valid: ✅
```
### Example 5: Invalid Expression
```
Input: "d20+5"
Output:
- Base Die: d20
- Valid: ❌
- Error: d20 is not a valid Savage Worlds die type
- Suggestion: Use d12 or d12+1 instead
```
## Statistical Information
Provide average values when relevant:
- d4: avg 2.5 (avg ~3.5 with exploding)
- d6: avg 3.5 (avg ~4.2 with exploding)
- d8: avg 4.5 (avg ~5.1 with exploding)
- d10: avg 5.5 (avg ~6.1 with exploding)
- d12: avg 6.5 (avg ~7.3 with exploding)
Be helpful and educational while maintaining accuracy to Savage Worlds rules.