fortunes_foundation/liturgy.lua
2024-02-12 17:50:38 -08:00

151 lines
3.8 KiB
Lua

liturgy={
holy_book=gsv[[rood 1`1,2,3
rood 2`4,5,6,7
rood 3`8,9,10
rood 4`11,12,13
rood 5`14,15,16,17,18
rood 6`19,20
rood 7`21,22,23
rood 8`24,25,26]],
sacred_text_lines=gsv
[[1`one meerkat, one day
1`stood on two legs. it said:
1`'come into this thicket.
1` i have a bright wreath.
1` my laurel is vibrant.'
2`all sweet things tolerated,
2`those who came when called
2`were sheared of their fur.
2`this was the first day:
2`the dandelions blown.
3`the hollow,
3`which opens to a key: music.
3`the meerkats were led there.
3`where they stood.
4`now even the water
4`knows how to talk.
4`their leader, first to stand,
4`calls them to choir.
5`a dulcimer's sweet harmony and,
5`pretending to weep,
5`it announces the title of
5`a scroll: 'the fate.'
6`now they are a regiment.
6`gather them.
6`pour oil.
7`catching a leaf, ride it.
7`suture its veins.
7`scatter glass in the vineyard.
8`lanias came in silver.
8`he milled the wheat and barley.
8`he took oranges from the trees.
8`meerkats dashed to the ferns.
8`he raised his bow and screamed.
9`the bolt became the wind.
9`the silver sails lashed.
9`the silver ospreys swarmed.
9`the silver shadow wailed.
10`burning oil from bay to sky.
10`scampering keas in bags!
10`there was no one in the field.
10`lanias came and went in silver.
11`ravens are an old people.
11`but the mandate is new.
11`the spry one turns in the egg.
12`it reads 'the fate':
12`'man is woman'
12`'a house in heaven
12` is bought on earth.'
12`and not by hatching.
13`the egg turns. it cracks.
13`a meerkat tumbles out.
13`cold, it breathes its last.
14`when lanias drags down stars
14`in his net, he cannot
14`take down one: beauty.
15`he cannot envy the vain,
15`so lanias wrote this rood:
15`the vain will not have it.
16`no longer is 'the fate':
16`there are many fates.
16`the music is over now.
16`it is quiet in the garden.
17`where are you? a small bird,
17`divine. you are in the fences.
17`you are seedling, little one.
17`the gorgeous lily blooms.
18`a star in the sky shines
18`and you are born.
18`accept its blessing: caw,
18`do not sing.
19`you have your room.
19`i have mine.
19`let's dig a river,
19`and build a bridge.
20`let's dig a trap.
20`let's line it with spikes.
20`let's cover it with a sheet,
20`and bury it in soil.
21`a cuckoo stole an egg.
21`in the nest it left its young.
21`the summer was so lean
21`and the snow so deep.
22`it was plump as a berry
22`and it hatched.
22`meerkats were in the trees.
23`lanias said: old men suffer
23`and die for nothing. listen:
23`when you grow: you won't
23`understand it. you want what
23`you cannot have.
24`night is here.
24`you're asleep.
24`you leave this body.
24`you won't want to come back.
25`cross your eyes: 'the fate'
25`is in them, their tears,
25`their music, their silence.
26`our rood is the final one.
26`those we killed have been
26`planted like seeds. this rood,
26`like this city, will not
26`be destroyed.]]
}
function liturgy:init()
local verse_lines={}
for line in all(self.sacred_text_lines) do
local verse=tonum(line[1])
if (not verse_lines[verse]) verse_lines[verse]={}
add(verse_lines[verse], line[2])
end
local annotated_verses={}
for bookdata in all(self.holy_book) do
local name=bookdata[1]
local ix=1
for verse in all(split(bookdata[2])) do
local annotated_verse_name=name
local lines=verse_lines[verse]
annotated_verse_name..=":"..ix.."-"
ix+=#lines
annotated_verse_name..=ix-1
local annotated_verse=""
for l in all(lines) do
if (annotated_verse!="") annotated_verse..="\n"
annotated_verse..=l
end
annotated_verses[verse]={annotated_verse_name,annotated_verse}
end
end
self.annotated_verses=annotated_verses
end
liturgy:init()
function liturgy:suggest_verse(ruleset,card)
local meta=ruleset.deck.cards[card]
local i=2+meta.rank
if (meta.suit!="a") i=ruleset.preferred_verse or i
return i, unpack(liturgy.annotated_verses[i])
end