Spaces:
Sleeping
Sleeping
Commit ·
a887da3
1
Parent(s): 0580d95
feat(lore): OWN_FRAGMENTS become the deepening Caor/Gaunt arc
Browse filesCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- character.py +5 -3
- tests/test_character.py +8 -0
- tests/test_render.py +4 -3
character.py
CHANGED
|
@@ -76,9 +76,11 @@ _MEMORY_PLEA = [
|
|
| 76 |
# Hollow's own buried past, surfaced one fragment at a time by sustained
|
| 77 |
# warmth (tone milestones). Pure data — the finale recites them all.
|
| 78 |
OWN_FRAGMENTS = [
|
| 79 |
-
"i remember hunger.
|
| 80 |
-
"there
|
| 81 |
-
"
|
|
|
|
|
|
|
| 82 |
]
|
| 83 |
FRAGMENT_TONES = (15, 25, 35)
|
| 84 |
|
|
|
|
| 76 |
# Hollow's own buried past, surfaced one fragment at a time by sustained
|
| 77 |
# warmth (tone milestones). Pure data — the finale recites them all.
|
| 78 |
OWN_FRAGMENTS = [
|
| 79 |
+
"i remember hunger. the kind that eats your name before it eats you.",
|
| 80 |
+
"there was a village in the salt-fens. Caor. peat-smoke — and my brother, braiding my hair, calling me a name i can't hear anymore.",
|
| 81 |
+
"three winters, no grain. the elders said the wood takes one child and spares the rest. my mother stopped looking at me.",
|
| 82 |
+
"reed masks. cold hands. they bound me at the treeline and said wait, something is coming for you. then they left.",
|
| 83 |
+
"no one came. i got so small. the Gaunt breathed in, and i was part of it. nobody buried me.",
|
| 84 |
]
|
| 85 |
FRAGMENT_TONES = (15, 25, 35)
|
| 86 |
|
tests/test_character.py
CHANGED
|
@@ -101,3 +101,11 @@ class TestMemoryPlea:
|
|
| 101 |
# each higher level adds a distinct, more explicit instruction
|
| 102 |
assert p1 != p0 and p2 != p1 and p3 != p2
|
| 103 |
assert "a person they loved" in p3 and "a moment they can still see" in p3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 101 |
# each higher level adds a distinct, more explicit instruction
|
| 102 |
assert p1 != p0 and p2 != p1 and p3 != p2
|
| 103 |
assert "a person they loved" in p3 and "a moment they can still see" in p3
|
| 104 |
+
|
| 105 |
+
|
| 106 |
+
def test_own_fragments_caor_arc():
|
| 107 |
+
from character import OWN_FRAGMENTS
|
| 108 |
+
assert len(OWN_FRAGMENTS) == 5
|
| 109 |
+
joined = " ".join(OWN_FRAGMENTS).lower()
|
| 110 |
+
assert "caor" in joined and "gaunt" in joined and "brother" in joined
|
| 111 |
+
assert "hunger" in OWN_FRAGMENTS[0].lower() # arc still opens on hunger
|
tests/test_render.py
CHANGED
|
@@ -23,11 +23,12 @@ class TestRenderRecovered:
|
|
| 23 |
assert "drawer-head" in out
|
| 24 |
|
| 25 |
def test_reveals_fragments_in_order(self):
|
|
|
|
| 26 |
from character import OWN_FRAGMENTS
|
| 27 |
out = render_recovered(2)
|
| 28 |
-
assert OWN_FRAGMENTS[0] in out
|
| 29 |
-
assert OWN_FRAGMENTS[1] in out
|
| 30 |
-
assert OWN_FRAGMENTS[2] not in out
|
| 31 |
|
| 32 |
def test_capped_at_total_fragments(self):
|
| 33 |
from character import OWN_FRAGMENTS
|
|
|
|
| 23 |
assert "drawer-head" in out
|
| 24 |
|
| 25 |
def test_reveals_fragments_in_order(self):
|
| 26 |
+
import html as _html
|
| 27 |
from character import OWN_FRAGMENTS
|
| 28 |
out = render_recovered(2)
|
| 29 |
+
assert _html.escape(OWN_FRAGMENTS[0], quote=True) in out
|
| 30 |
+
assert _html.escape(OWN_FRAGMENTS[1], quote=True) in out
|
| 31 |
+
assert _html.escape(OWN_FRAGMENTS[2], quote=True) not in out
|
| 32 |
|
| 33 |
def test_capped_at_total_fragments(self):
|
| 34 |
from character import OWN_FRAGMENTS
|