Skip to content

Commit 29ba409

Browse files
jziggasterragon-labs[bot]
andauthored
Fix Ultrathink Triumph and Despair Calculation in Dice Results with Extensive Rule Tests (#18)
* fix(dice): correct counting of triumphs and despairs in dice results The summing logic for dice results was updated to include triumphs in successes and despairs in failures. Additionally, dice face definitions for proficiency and challenge dice were corrected to not double count successes and failures with triumphs and despairs respectively. Corresponding tests were updated to reflect these changes. Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com> * test(triumph-despair-rules): add comprehensive tests for triumphs and despairs counting Add a new test suite verifying the Star Wars RPG rule that triumphs count as successes and despairs count as failures. The tests cover rolled and automatic triumphs/despairs, their combination with regular successes/failures, net success/failure calculations, and ensure no double-counting occurs. Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com> --------- Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>
1 parent 2153f11 commit 29ba409

File tree

4 files changed

+359
-6
lines changed

4 files changed

+359
-6
lines changed

src/dice.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,8 @@ const sumResults = (
216216
): DiceResult => {
217217
const sums = results.reduce(
218218
(acc, curr) => ({
219-
successes: acc.successes + curr.successes,
220-
failures: acc.failures + curr.failures,
219+
successes: acc.successes + curr.successes + curr.triumphs,
220+
failures: acc.failures + curr.failures + curr.despair,
221221
advantages: acc.advantages + curr.advantages,
222222
threats: acc.threats + curr.threats,
223223
triumphs: acc.triumphs + curr.triumphs,

src/diceFaces.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export const PROFICIENCY_DIE_FACES: Record<number, DieFaceSymbols> = {
5252
9: { successes: 1, advantages: 1 }, // (S)(A)
5353
10: { advantages: 2 }, // (A)(A)
5454
11: { advantages: 2 }, // (A)(A)
55-
12: { triumphs: 1, successes: 1 }, // (TR) - Triumph also counts as Success
55+
12: { triumphs: 1 }, // (TR) - Triumph also counts as Success
5656
};
5757

5858
export const CHALLENGE_DIE_FACES: Record<number, DieFaceSymbols> = {
@@ -67,7 +67,7 @@ export const CHALLENGE_DIE_FACES: Record<number, DieFaceSymbols> = {
6767
9: { failures: 1, threats: 1 }, // (F)(TH)
6868
10: { threats: 2 }, // (TH)(TH)
6969
11: { threats: 2 }, // (TH)(TH)
70-
12: { despairs: 1, failures: 1 }, // (D) - Despair also counts as Failure
70+
12: { despairs: 1 }, // (D) - Despair also counts as Failure
7171
};
7272

7373
export const FORCE_DIE_FACES: Record<number, DieFaceSymbols> = {

tests/diceFaces.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ describe("Dice Face Configurations", () => {
7171
expect(PROFICIENCY_DIE_FACES[9]).toEqual({ successes: 1, advantages: 1 }); // (S)(A)
7272
expect(PROFICIENCY_DIE_FACES[10]).toEqual({ advantages: 2 }); // (A)(A)
7373
expect(PROFICIENCY_DIE_FACES[11]).toEqual({ advantages: 2 }); // (A)(A)
74-
expect(PROFICIENCY_DIE_FACES[12]).toEqual({ triumphs: 1, successes: 1 }); // (TR) - Triumph also counts as Success
74+
expect(PROFICIENCY_DIE_FACES[12]).toEqual({ triumphs: 1 }); // (TR) - Triumph also counts as Success
7575
});
7676
});
7777

@@ -88,7 +88,7 @@ describe("Dice Face Configurations", () => {
8888
expect(CHALLENGE_DIE_FACES[9]).toEqual({ failures: 1, threats: 1 }); // (F)(TH)
8989
expect(CHALLENGE_DIE_FACES[10]).toEqual({ threats: 2 }); // (TH)(TH)
9090
expect(CHALLENGE_DIE_FACES[11]).toEqual({ threats: 2 }); // (TH)(TH)
91-
expect(CHALLENGE_DIE_FACES[12]).toEqual({ despairs: 1, failures: 1 }); // (D) - Despair also counts as Failure
91+
expect(CHALLENGE_DIE_FACES[12]).toEqual({ despairs: 1 }); // (D) - Despair also counts as Failure
9292
});
9393
});
9494

0 commit comments

Comments
 (0)