[<hr style="border: 0; border-top: 3px double #da6fab;" />]\
|=
[The Cycling Winds]<Left|\
=|
(align: "===>")[v1.1]<Right|\
|=|
[<hr style="border: 0; border-top: 3px double #da6fab;" />]\
[Thank you for playing The Cycling Winds.
This game was developed in February 2025 as part of the FLEET: Edmonds Park residency with Kay Slater.]
<hr />\
<!--[[Customize character]]--!>\
(bg: white)[(link: "New Game")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Customize character")] ]
(if: $last is not "")[(link: "Return to Game")[(go-to: $last)]
]\
<hr />\
<!--[[Summary]]--!>\
(link: "Summary")[(go-to: "Summary")]
<!--[[Content Warnings]]--!>\
(link: "Content Warnings")[(go-to: "Content Warnings")]
<!--[[Credits and Log]]--!>\
(link: "Credits")[(go-to: "Credits and Log")]
<hr style="border: 0; border-top: 1px dotted #da6fab;"/>\
(link-repeat: "Play Haunted Island - FLEET Oct 2024")[(open-url:"https://kdot.ca/haunted-island/")]
<hr style="border: 0; border-top: 3px double #da6fab;" />(unless: $last is "")[(display: "startup")(forget-visits: -1)(set: $last to "")]\
In this game, you are role-playing as a sighted, hearing, non-disabled person. Your character can walk, smell, touch, and taste. They are privileged, though they may still experience housing or job instability.
If this description reflects you, you are encouraged to answer the following quiz as you would in real life—but it’s a game, and ultimately, the choice is yours!
<hr style="border: 0; border-top: 1px dashed;" />\
Does your character live in poverty?
[(link: "Yes")[(masteraudio: 'stopall')(track: 'positive', 'play')(set: $generosityStart to it + 5)YES(hide: ?d1)(hide: ?n1)]]<y1|[ | ]<d1|[(link: "No")[(masteraudio: 'stopall')(track: 'negative', 'play')NO(hide: ?d1)(hide: ?y1)]]<n1|
Does your character volunteer?
[(link: "Yes")[(masteraudio: 'stopall')(track: 'positive', 'play')(set: $generosityStart to it + 4)YES(hide: ?d2)(hide: ?n2)]]<y2|[ | ]<d2|[(link: "No")[(masteraudio: 'stopall')(track: 'negative', 'play')NO(hide: ?d2)(hide: ?y2)]]<n2|
Does your character give money to friends or family?
[(link: "Yes")[(masteraudio: 'stopall')(track: 'positive', 'play')(set: $generosityStart to it + 3)YES(hide: ?d3)(hide: ?n3)]]<y3|[ | ]<d3|[(link: "No")[(masteraudio: 'stopall')(track: 'negative', 'play')NO(hide: ?d3)(hide: ?y3)]]<n3|
Does your character donate to charity or non-profits?
[(link: "Yes")[(masteraudio: 'stopall')(track: 'positive', 'play')(set: $generosityStart to it + 2)YES(hide: ?d4)(hide: ?n4)]]<y4|[ | ]<d4|[(link: "No")[(masteraudio: 'stopall')(track: 'negative', 'play')NO(hide: ?d4)(hide: ?y4)]]<n4|
Does your character contribute to mutual aid for strangers or international causes?
[(link: "Yes")[(masteraudio: 'stopall')(track: 'positive', 'play')(set: $generosityStart to it + 3)YES(hide: ?d5)(hide: ?n5)]]<y5|[ | ]<d5|[(link: "No")[(masteraudio: 'stopall')(track: 'negative', 'play')NO(hide: ?d5)(hide: ?y5)]]<n5|
Is your character more likely to sell or give away a used item?
[(link: "Sell")[(masteraudio: 'stopall')(track: 'negative', 'play')(set: $generosityStart to it + 1)SELL(hide: ?d6)(hide: ?n6)]]<y6|[ | ]<d6|[(link: "Give")[(masteraudio: 'stopall')(track: 'positive', 'play')(set: $generosityStart to it + 3)GIVE(hide: ?d6)(hide: ?y6)]]<n6|
Does your character speak a language other than English?
[(link: "Yes")[(masteraudio: 'stopall')(track: 'positive', 'play')(set: $generosityStart to it + 2)YES(hide: ?d7)(hide: ?n7)]]<y7|[ | ]<d7|[(link: "No")[(masteraudio: 'stopall')(track: 'negative', 'play')NO(hide: ?d7)(hide: ?y7)]]<n7|
What season is it?
|summer>[(link: "Summer")[(masteraudio: 'stopall')(track: 'positive', 'play')(set: $season to "summer")SUMMER(hide: ?spring)(hide: ?fall)(hide: ?winter)(hide: ?d8)]][ | ]<d8||fall>[(link: "Fall")[(masteraudio: 'stopall')(track: 'positive', 'play')(set: $season to "fall")FALL(hide: ?spring)(hide: ?summer)(hide: ?winter)(hide: ?d8)]][ | ]<d8||winter>[(link: "Winter")[(masteraudio: 'stopall')(track: 'positive', 'play')(set: $season to "winter")WINTER(hide: ?spring)(hide: ?fall)(hide: ?summer)(hide: ?d8)]][ | ]<d8||spring>[(link: "Spring")[(masteraudio: 'stopall')(track: 'positive', 'play')(set: $season to "spring")SPRING(hide: ?summer)(hide: ?fall)(hide: ?winter)(hide: ?d8)]]
<hr style="border: 0; border-top: 1px dashed;" />\
<!--[[Go park entrance]]--!>\
(link: "Begin")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Go park entrance")]
(link: "Restart Quiz")[(masteraudio: 'stopall')(track: 'back', 'play')(go-to: "Customize character")]
<hr />You were dropped off at the northeast corner of the park by a friend after a previous appointment. You have about an hour and a half before meeting someone nearby, so you decide to spend some time here. You set a timer on your phone.
(if: $season is "summer")[You are wearing a new hat,](else:)[You are wearing a new scarf,] a gift from your friend given to you earlier today.
As you enter the park, a malicious wind sweeps it away, holding your gift just out of reach. You move to chase it, but something catches your attention—an injured bird, perched on a rock near the park sign.
[The bird calls out:
“Caw, caw—help me!”
]<action|\
<hr style="border: 0; border-top: 1px dashed;" />\
(link: "Call Animal Control
")[\
(set: $generosityGain to it +2, $generositySpend to it +1, $timer to it -5, $completed to it + (a: "called"))(replace: ?countdown)[$timer]\
(masteraudio: 'stopall')(track: 'twinkle', 'play')\
(append: ?action)[\
You call Animal Control. Animal control says they can’t make it right away.
“Can you drive it here?” they ask. No. You don’t have a car. The person on the phone says they will try to send someone, but you’re not sure if they actually will.
]\
(if: $generosity >= 5)[\
(link: "Take a taxi to Animal Control")[\
(masteraudio: 'stopall')(track: 'woosh', 'play')\
(set: $generosityGain to it +5, $generositySpend to +7)\
(go-to: "Taxi to Animal Control")\
]
]<taxi|\
(link: "Believe they will send someone
")[(set: $generosityGain to it +1)(hide: ?taxi)\
(masteraudio: 'stopall')(track: 'twinkle', 'play')\
(append: ?action)[You hope for the best and move on.
]\
]\
]<!--[[Move On]]--!>\
(link: "Head into Park")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Move On")] (if: (history:)'s last is "FLEET")[The trailer is still, the wasps have moved away...for now.
<hr style="border: 0; border-top: 1px dashed;" />\
]\
(else:)[\
You approach the FLEET trailer, a mobile artist residency sitting at a key intersection in the park. Multiple paths stretch out from here, leading in different directions.
(if: visits is 1)[\
Above you, the (if: $season is "summer")[hat](else:)[scarf] tumbles unpredictably, caught in the grip of a wind. It dives low, then pulls away, as if teasing you.
The crow lands nearby, watching. It tilts its head, eyes flicking between you and the swirling cloth.](else:)[Your new crow friend watches as your (if: $season is "summer")[hat](else:)[scarf] tumbles unpredictably above in the breeze.]
(if: (history:) contains "FLEET")[\
(if: (history:)'s last is not "FLEET")[\
(if: $completed contains "maintenanceWasps")[](else:)[The wasps are back—and once again, the artist is trapped inside.\
{\
(if: $generosity >3)[You hope another person with a solution comes along soon.]\
(else-if: $generosity <2)[That's someone else's problem now...]\
(else:)[Ugh, again?!]\
}]
<hr style="border: 0; border-top: 1px dashed;" />\
]\
(else:)[]\
]\
(else:)[\
[\
(if: visits is 1)[\
The trailer’s entrance is up a short ramp and stairs, leading to a small balcony. But a cyclone of angry wasps swirls in front of the door, blocking the way. From inside the trailer, you hear loud banging—someone is trapped.](else:)[(if: $completed contains "maintenanceWasps")[](else:)[Near the trailer's entrance, a swirl of angry wasps blocks any occupant's egress.]]\
]<trapped|
<hr style="border: 0; border-top: 1px dashed;" />\
[\
(link: "Help the person inside (run at wasps [again](again|)
")[\
(set: $generositySpend to it +3, $generosityGain to it +1, $completed to it + (a: "runWasps", "waspAction"), $timer to it -2)(replace: ?countdown)[$timer]\
(masteraudio: 'stopall')(track: 'wasps', 'play')\
(append: ?trapped)[
You run at the wasps, flailing your arms wildly.
The crow screams at you to stop, but you charge forward anyway.
The wind shifts suddenly, blowing the wasps straight at you.
They sting—again and again. You are forced to retreat.
Ouch!]\
]\
]<wasps|\
(if: $inventory is "a smoking branch")[\
(link: "Use the smoking branch on the wasps
")[\
{(hide: ?nav)(hide: ?help)
(hide: ?wasps)(hide: ?swat)(show: ?smoke)
(set: $generositySpend to it +2, $generosityGain to it +4, $inventory to "", $timer to it -2, $completed to it + (a: "waspAction", "escape"))(replace: ?countdown)[$timer]}\
(masteraudio: 'stopall')(track: 'positive', 'play')\
(append: ?trapped)[
You approach the entrance with your smoking branch.
The wind lifts the wasps and the smoke, pulling them up and away from the trailer.
The branch smolders out, and the crow swoops down, snatching it before flying back toward the picnic area.
The trailer door creaks open.
A person steps out—an older white adult with short grey hair shaved on the sides, a bun atop their head, and a wide grin that crinkles their eyes into half-moons.
"Thank you, thank you!" they say.
Without another word, they dash toward the blue building to the east.]\
]\
]<branch|\
(if: $inventory is "a broom")[\
<!--[[Swat wasps]]--!>\
(link: "Swat at wasps with broom")[(set: $completed to it + (a: "waspAction"))(masteraudio: 'stopall')(track: 'negative', 'play')(track: 'wasps', 'play')(go-to: "Swat wasps")]
]<swat|\
(else:)[\
(link: "Search for something to help
")[(set: $generosityGain to it +1, $timer to it -2, $completed to it + (a: "waspAction"))(replace: ?countdown)[$timer]\
(masteraudio: 'stopall')(track: 'twinkle', 'play')\
(append: ?trapped)[
You decide to look for something to help the person trapped inside. Nothing here! Maybe nearby?]\
]]<help|]]\
[<!--[[Tennis Court]]--!>\
(link: "Go Northwest - Tennis Courts")[(masteraudio: 'stopall')(track: 'tennis', 'play')(go-to: "Tennis Court")]
<!--[[Waterpark]]--!>\
(link: "Go Southwest - Waterpark")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Waterpark")]
<!--[[Fork 2 Water]]--!>\
(link: "Go South - Another folking path")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Fork 2 Water")]
<!--[[Playground]]--!>\
(link: "Go Southeast - Playground")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Playground")]
<!--[[Washroom]]--!>\
(link: "Go East - Washroom")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Washroom")]
<!--[[Leave Park North]]--!>\
(link: "Go North - Leave Park")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Leave Park North")] ]<nav|\
<!--[[FLEET]]--!>\
[(link: "Peek inside the FLEET trailer")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "FLEET")]](smoke|\
(if: $completed contains "runWasps")[(show: ?again)]\
(if: $completed contains "maintenanceWasps")[(show: ?smoke)]You decide you have had enough of the park today, and walk around the neighbourhood until your appointment time. (display: "completed")
As you return towards the north exit, your friend the crow decides to take action and flies up, wrestling your (if: $season is "summer")[hat](else:)[scarf] from the playful wind. It flies down and returns it to sit next to the wounded bird(if: $completed contains "called")[, waiting for animal control to show up].
The END.
<hr style="border: 0; border-top: 1px dotted;"/>\
You started with $generosityStart generosity points. You collected $generosityGain. You spent $generositySpend.
<hr style="border: 0; border-top: 1px dotted;"/>\
(link: "Play again?")[(masteraudio: 'stopall')(track: 'back', 'play')(restart:)](if: visits is 1)[It seems your (if: $season is "summer")[hat](else:)[scarf] didn’t fly this way. So where is it?
The tennis courts are occupied. You pause, watching the game for a moment.
//Tok. Tok. Tok.// The ball moves back and forth, back and forth. The rhythm is soothing.](else-if: visits > 1)[//Tok. Tok. Tok.// You return to the tennis court and take a seat on a nearby bench. The ball moves back and forth, back and forth.
//Tok. Tok. Tok.//
The rhythm is soothing.
//Tok. Tok. Tok.//](else:)[//Tok. Tok. Tok.// You again return to the tennis court, drawn to the laughter and soft sounds of the tennis ball and rackets. A calm overtakes you as you watch the ball move back and forth, back and forth.
//Tok. Tok. Tok.//
The rhythm is so soothing.
//Tok. Tok. Tok.//
Time passes...]
A sudden CAW! The crow interrupts your thoughts.
“Hey! Don’t you want to get your (if: $season is "summer")[hat](else:)[scarf]?”
<hr style="border: 0; border-top: 1px dashed;" />\
<!--[[Fork 1]]--!>\
[ (link: "Go Northeast (near trailer)")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Fork 1")] ]<fork1|
(if: visits >2)[(set: $timer to it -30)(replace: ?countdown)[$timer]](if: (history:)'s last is "Swat wasps")[The crow drags the broom back near the maintenance supplies, clamping at the bristles with its beak, and making akward backwards hops. It spits it out and then looks at you through one intense eye.
"CAW. I don't think that wind or those wasps are gonna let you back again."
[It flies up and lands on one of the tall water features and looks back towards the FLEET trailer.
]<action|
<hr style="border: 0; border-top: 1px dashed;" />\
(link: "Grab the broom
")[(masteraudio: 'stopall')(track: 'confirm', 'play')(set: $inventory to "a broom")[
You pick up the broom.
](replace: ?inventory)[]]](else:)[\
The water park is empty today. A sign near the entrance reads: CLOSED FOR MAINTENANCE.
(if: visits is 1)[A few children linger nearby, still playing on the dry pavement, their imaginations filling in the gaps where the water should be.
It’s probably for the best—the wind has caught your (if: $season is "summer")[hat](else:)[scarf] on top of one of the tall water features, shaped like a tulip.](else:)[The crow eyes your (if: $season is "summer")[hat](else:)[scarf] caught on one of the water features.]
[Nearby, [a broom and ]<broom|other janitorial supplies have been left behind—likely by the maintenance crew. The crow lands nearby, watching.
]<action|
<hr style="border: 0; border-top: 1px dashed;" />\
[(link: "Grab the broom
")[(masteraudio: 'stopall')(track: 'confirm', 'play')(append: ?action)[(unless: $inventory is "a broom" or "")[
You drop the $inventory. The crow sweeps in and picks it up. It flies away. ](set: $inventory to "a broom")[
You pick up the broom.
]](replace: ?inventory)[]]]<broom|]\
<!--[[Fork 2 Water]]--!>\
(link: "Go South (forking path near swings)")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Fork 2 Water")]
<!--[[Fork 1]]--!>\
[ (link: "Go Northeast (near trailer)")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Fork 1")] ]<fork1|
(if: $inventory is "a broom")[(hide: ?broom)](if: visit is 1)[ [Your (if: $season is "summer")[hat](else:)[scarf] is caught in a mischievous wind, never settling. It dances through the playground, teasing the children—sometimes drifting close, then lifting away again.
They squeal with laughter, chasing after it like a parade of delighted followers.
But something else catches your attention.
A large puddle, deep and murky, has been marked off on three sides, but the fourth side is loose, its caution tape snapping in the wind.
A few parents notice with alarm, calling out and standing up to stop their children—who are running straight toward it.
You’re nearby.
]<parade|
<hr style="border: 0; border-top: 1px dashed;" />\
[(if: $generosity >= 3)[(link: "Distract the children and direct the parade
")[(set: $generositySpend to it +3, $generosityGain to it +4, $completed to it + (a: "clown"), $timer to it -5)(replace: ?countdown)[$timer](hide: ?optionb)\
(masteraudio: 'stopall')(track: 'twinkle', 'play')\
(append: ?parade)[
You break into a silly dance, waving your arms and stepping in exaggerated motions. The children notice immediately—then, one by one, they start to mirror your movements.
You add a nonsense song, calling out a string of playful sounds.
The children repeat them back joyfully, caught up in the game.
With their attention now on you, you gently lead them away from the puddle.
Behind you, a parent arrives, refastening the loose caution tape.
You turn to the children and announce, “Time for hide and seek!”
Pointing to one of them, you declare them “IT.”
Without hesitation, the child squeezes their eyes shut and starts screaming a countdown from 30.
As the laughter and chaos continue behind you, you glance up—just in time to see your (if: $season is "summer")[hat](else:)[scarf] gliding away behind the trees.
Before you can follow, a shadow flickers overhead.
The crow lands on a nearby post, watching. It tilts its head, considering the scene.
“Didn’t expect that,” it mutters.
It ruffles its feathers, gives one last glance at the playing children, then lifts off into the wind.
You leave the happy children to their game and follow.]]]]<optiona|\
[(link: "Let the children wade the puddle
")[(set: $generosityGain to it -1, $timer to it -5)(replace: ?countdown)[$timer](set: $completed to it + (a: "puddle"))(hide: ?optiona)\
(masteraudio: 'stopall')(track: 'splash', 'play')\
(append: ?parade)[You do nothing.
The children run through the puddle, and it’s deeper than expected.
The first few in the group trip, setting off a chain reaction—one child stumbles into another, then another. They collapse into the water, a tangled mass of flailing limbs.
Laughter turns to wails. Some are trapped beneath others, struggling to get up. Even the children who only stepped into the puddle—still dry—become swept up in the chaos and begin crying too.
You stand there and watch.
Parents rush in, pulling their children free. Some glare at you, their anger clear, but you ignore them.
Above the commotion, you see your (if: $season is "summer")[hat](else:)[scarf], forgotten by the children, catch another gust of wind and disappear behind the trees.
]]]<optionb|]\
(else:)[(if: $completed contains "clown")[Happy children play here as your (if: $season is "summer")[hat](else:)[scarf] breezes past.
](else:)[You follow your (if: $season is "summer")[hat](else:)[scarf] into the playground and notice the angry stares of parents. Some of the children notice and start to cry as you walk by.
]
<hr style="border: 0; border-top: 1px dashed;" />]\
<!--[[Fork 1]]--!>\
[ (link: "Go Northeast (near trailer)")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Fork 1")] ]<fork1|
<!--[[The Swings]]--!>\
(link: "Go Southwest - Towards the Swings")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "The Swings")]
<!--[[Humphries North]]--!>\
(link: "Go East - East Park Edge")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Humphries North")](if: $completed does not contain "tp")[\
[In front of the blue building, shaped like a small gabled house, a nervous figure paces back and forth, shifting their weight from foot to foot.
They look distressed, their movements hesitant.
You quickly spot the cause—a long strip of dirty toilet paper, caught in a malicious breeze. It flutters and twists, drifting toward them with eerie precision.
Each time they step away, the wind follows, whipping the paper like a fabric toy dangled in front of a cat—taunting, teasing, relentless.
The person shudders as it inches closer.
]<distress|
<hr style="border: 0; border-top: 1px dashed;" />\
(if: $inventory is "a broom")[\
(link: "Sweep the paper down (with the broom)
")[\
{(hide: ?optiona)
(hide: ?optionb)
(set: $generosityGain to it + 2, $generositySpend to it +1, $timer to it -1, $completed to it + (a: "tp"))
(replace: ?countdown)[$timer]}\
(masteraudio: 'stopall')(track: 'positive', 'play')\
(append: ?distress)[
You wave the broom at the paper, sweeping it through the air.
The wind-swept paper is caught mid-arc, pulling it for a moment—before suddenly letting go.
The paper flutters to the ground and finally stays still.
A rush of wind whips past your face, and you instinctively close your eyes. When you open them, displayed dirt marks the path the wind took.
The parkgoer squeals with appreciation and relief before darting into the washroom, escaping their tormentor.
You cautiously lift the broom, but the paper remains still.
Above you, the crow lets out an approving CAW. It hops down to inspect the fallen paper, pecking at it once before tilting its head toward you.
“Clever. Didn’t even have to touch it.”
Then, as if suddenly remembering something, it flaps its wings and takes off, chasing after the next gust of wind.
]\
]\
]<broomoption|\
[(link: "Grab the paper (with your bare hands)
")[\
{(hide: ?broomoption)
(hide: ?optionb)
(set: $generosityGain to it + 1, $generositySpend to it +3, $timer to it -5, $completed to it + (a: "tp", "shower"))
(replace: ?countdown)[$timer]}\
(masteraudio: 'stopall')(track: 'eww', 'play')\
(append: ?distress)[You step in front of the distressed parkgoer and grab the toilet paper with your bare hands.
The wind twists at the last second, and the soggy, dirty paper slaps against your chin and shoulder, clinging to your skin and clothes.
The parkgoer lets out a horrified moan before bolting past you into the washroom.
From the nearby playground, a child’s voice rings out—
“You have poo-poo paper on you!”
A chorus of laughter erupts, children gleefully chanting as you peel the sticky, damp mess from your clothes and toss it into the garbage.
You head into the washroom, scrubbing your face and hands.
You’ll need a shower later.
]\
]]<optiona|\
[(link: "Search for something to help
")[\
(set: $generosityGain to it +1, $timer to it -2)(replace: ?countdown)[$timer](hide: ?optiona)\
(masteraudio: 'stopall')(track: 'positive', 'play')\
(append: ?distress)[ You decide to look for something (if: $inventory is "a broom")[other than a broom] to help the person, and start looking for something (if: $inventory is "a broom")[else] that could help...nothing here (if: $inventory is "a broom")[(except this broom...)]. Maybe nearby?]]]<optionb|]\
(else:)[The washroom building, painted a pale sky shade of blue, sits quietly at the park’s edge, its gabled roof casting a sharp shadow on the pavement. The path leading back to the FLEET trailer and the north entrance stretches ahead—just a little longer than the direct route across the grass, which runs parallel to the park’s east side. To the east, the path opens onto Humphries Street, leading into a dense residential area. To the southeast, it curves gently down, weaving between cedar trees and scattered picnic tables, where laughter and chatter drift through the air.
<hr style="border: 0; border-top: 1px dashed;" />\
]\
<!--[[Humphries North]]--!>\
(link: "Go Southeast - East Park Edge")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Humphries North")]
<!--[[Fork 1]]--!>\
[ (link: "Go Northeast (near trailer)")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Fork 1")] ]<fork1|
<!--[[Rosewood and Humphries]]--!>\
(link: "Go Northeast - Exit Park")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Rosewood and Humphries")](set: $timer to it -2)\
Inside, you see a few tables and chairs covered in maps of the park and game markers, as if for a board game.
Large sheets of paper hang on the walls, filled with white figures on a black background. Words are scrawled atop them, but you can't make them out from here.
A vinyl sign on the door describes the FLEET mobile artist residencies. The person you freed must be the current artist-in-residence.
(unless: $completed contains "maintenanceWasps")[\
The crow returns.
"You know that smoke doesn't //really// affect wasps other than to anger them. You're lucky that wind didn't like it, or that wouldn't have worked. CAW CAW CAW!"]
<hr style="border: 0; border-top: 1px dashed;" />\
<!--[[Fork 1]]--!>\
(link: "Back to the Trailer")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Fork 1")]This route follows the eastern edge of the park, running parallel to Humphries Street. It leads north to the park’s entrance and south toward Edmonds Community Centre. A row of perpendicular parking spaces separates the park from the road, and beyond that, a residential neighborhood stretches eastward.
The path curves in a gentle S-shape, weaving through tall cedar trees that provide shade and a natural buffer from the street. Tucked between the trees, picnic tables sit in semi-private nooks.
(if: $completed contains "maintenanceGlass")[The picnic tables are mostly occupied. Families sit comfortably, chatting over meals or using the surfaces to hold their bags and toys while children run freely across the field and playground.
<hr style="border: 0; border-top: 1px dashed;" />\
](else-if: $completed contains "glass")[The sun catches the scattered fragments of glass still littering the surfaces and ground. A dull itching sensation lingers on your arm—a reminder of your earlier attempts at "generosity".
<hr style="border: 0; border-top: 1px dashed;" />\
](else-if: $completed contains "sweptGlass")[The table you cleared is now occupied by the family you assisted earlier. However, the broom is gone.
The crow is nowhere in sight. You scan the park and the sky, searching for its familiar dark silhouette.
Instead, your eyes catch on something else—your (if: $season is "summer")[hat](else:)[scarf] flickers high above in the breeze, as if mockingly waving before disappearing beyond the trees.
<hr style="border: 0; border-top: 1px dashed;" />\
]\
(else:)[\
However, broken glass glitters across the pavement—evidence of recent vandalism. It’s clear that bottles were smashed against the tables, leaving jagged shards scattered across the seating areas. Several families hover nearby, searching for a safe table.
Children cry and squirm in their parents’ arms, eager to sit and eat, but their guardians hold them back, wary of the dangerous debris. Some parents shuffle anxiously, scanning for a clean spot to set down their (if: $season is "summer")[picnic treats] (else:)[bags and park gear].
[Overhead, the crow circles, scanning for an open table. Below, the wind plays puppeteer, making your hat/scarf flutter in an eerie imitation of the bird’s search.]<glass|
<hr style="border: 0; border-top: 1px dashed;" />\
(if: $inventory is "a broom")[\
(link: "Sweep the picnic tables clear of broken glass
")[(hide: ?sweep)(set: $generosityGain to it +1, $generositySpend to it +2, $inventory to "", $completed to it + (a: "sweptGlass"))\
(append: ?glass)[
Taking care not to cut yourself, you methodically move from table to table, sweeping the shards into small piles. With nothing to collect them in, you attempt to push the glass into the corners of the pavement beneath each table.
One of the impatient families rushes forward and claims a table before you finish, barely acknowledging your efforts.
Mistaking you for a park worker, a parent mutters a flat thanks—but then immediately waves you over to deal with another pile of glass, adding a thinly veiled threat:
“Can you finish this or do I need to show you how to do your job?”
You hesitate. After a beat, you simply set the broom against an unused table and walk away. If they want a clean table, they can handle the rest. The crow eyes the broom as if conflicted and then follows you down the path.]]]\
[(link: "Use your arm and feet to ‘sweep’ away the glass
")[(set: $generosityGain to it +1, $generositySpend to it +3, $completed to it + (a: "glass"), $timer to it -6)(replace: ?countdown)[$timer]\
(append: ?glass)[
You approach the nearest table, where a harried parent juggles impatient, squirming children.
With a dramatic flourish, you pull your sleeve over your hand and sweep the glass off the table in one grand motion.
A glittering arc of shards scatters unpredictably—dusting the benches, pavement, and surrounding grass.
Tiny fragments cling to your sleeve, and as you attempt to shake them off, they prickle at your skin.
You continue your well-intentioned but clumsy cleanup, shuffling across the pavement to push the glass aside with your shoe. Instead, you grind the shards into smaller, sharper pieces—or worse, embed them into the sole of your shoe.
When you finally look up, expecting acknowledgment or gratitude, you realize the family has quietly left—finding another part of the park instead.]]]<sweep|
]\
[[Go West - Playground|Playground]]
[[Go Northwest - Washroom|Washroom]]
[[Go Southeast - Towards the Community Centre|Humphries South]]
[[Go Northeast - Exit Park|Rosewood and Humphries]]You decide you have had enough of the park today, and walk around the neighbourhood until your appointment time. (display: "completed")
As you head towards the exit, your friend the crow decides to take action and flies up, wrestling your (if: $season is "summer")[hat](else:)[scarf] from the playful wind. It flies down and returns it to you before flying north(if: $completed contains "called")[, you assume to wait with their feathered pal for animal control to show up].
The END.
<hr style="border: 0; border-top: 1px dotted;"/>\
You started with $generosityStart generosity points. You collected $generosityGain. You spent $generositySpend.
<hr style="border: 0; border-top: 1px dotted;"/>\
(link: "Play again?")[(masteraudio: 'stopall')(track: 'back', 'play')(restart:)](if: $completed contains "maintenanceFire")[\
The picnic tables near the playground are mostly occupied by families, and the occasional group of teens. The covered picnic area is now empty, but there is a lingering smell of smoke.
<hr style="border: 0; border-top: 1px dashed;" />\
]\
(else:)[\
[\
Throughout the park, picnic tables are scattered in clusters—especially near the playground, where children screech and play. Many adults sit at these tables, watching over strollers or scrolling through their phones as they wait.
Two covered picnic areas sit further from the playground. This one, behind the swings, is occupied by a large group that has taken over three picnic tables and the paved area.
The smoke wafting out comes from what you first assume is a BBQ—but as you get closer, you realize they’ve dragged a small firepit into the park.
You’re pretty sure that’s not allowed… but then you have a thought.\
]<swings|
<hr style="border: 0; border-top: 1px dashed;" />\
<!--[[Call the cops]]--!>\
(link: "Call the cops")[(masteraudio: 'stopall')(track: 'woosh', 'play')(track: 'negative', 'play')(go-to: "Call the cops")]
[(link: "Ask the group for a piece of smoking wood
")[(masteraudio: 'stopall')(track: 'confirm', 'play')\
(append: ?swings)[
(unless: $inventory is "a smoking branch" or "")[You drop $inventory. The crow sweeps in and picks it up. It flies away.](set: $timer to it -3)(replace: ?countdown)[$timer]\
You walk over and ask if they would give you a piece of smoking wood from their fire pit. The group looks startled by your request.
One of the people tending the fire—holding a metal skewer lined with roasting marshmallows—pauses, then picks out a small piece of smoking kindling and hands it to you.
You thank them and continue on your way.
(set: $inventory to "a smoking branch")[You pick up the smoking wood.](replace: ?inventory)[]]]]<smoke|]\
<!--[[West edge path]]--!>\
(link: "Go Southeast - Towards the Community Centre")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "West edge path")]
<!--[[Fork 2 Water]]--!>\
(link: "Go Northwest - Towards the path near Waterpark")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Fork 2 Water")]
<!--[[Playground]]--!>\
(link: "Go Northeast - Towards the Playground")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Playground")]
(if: $inventory is "a smoking branch")[(hide: ?smoke)](unless: $completed contains "maintenanceFire")[(if: visits is 1)[(go-to: "Snot")]]\
The paved path stretches southwest toward the community centre’s outdoor parking lot. To the east, a wide courtyard opens up before the building’s main entrance. To the northeast, the path curves gently, leading back into the park toward a covered wooden trellis. Northwest heads back into the park, the path leading towards (if: (history:)'s last is "Gross")[the darn smoke coming from ]covered picnic tables near a swingset.
(unless: $completed contains "returned")[From the east, shouting echoes up the path.
]\
<hr style="border: 0; border-top: 1px dashed;" />\
<!--[[The Swings]]--!>\
(link: "Go Northwest - Towards the Swings")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "The Swings")]
<!--[[Courtyard]]--!>\
(link: "Go East - Towards Community Centre Courtyard")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Courtyard")]
<!--[[Humphries South]]--!>\
(link: "Go North - Towards Trellis and East Park Edge")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Humphries South")]
<!--[[Parking lot]]--!>\
(link: "Go South - Exit Park")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Parking lot")]
(if: $inventory is "a smoking branch")[(hide: ?smoke)]At the edge of the west field, the park opens up. A set of swings stands nearby, alongside a covered picnic area and a large open field stretching across most of the northwest side of the park.
(if: visits is 1)[Beyond the fence to the west and south, residential buildings and apartments line the park’s edge.
]\
(unless: $completed contains "mainteanceFire")[From behind the swings, a thin trail of smoke rises into the air.
]\
(if: visits is 1)[Above you, the (if: $season is "summer")[hat](else:)[scarf] dances wildly, tugged by the wind in an unpredictable loop—up, down, left, right, back again, as if caught in a restless carousel.
The crow lands beside you, eyes on the swirling cloth.
“Where next? The wind seems undecided!”
It hops once, then waits.
]\
<hr style="border: 0; border-top: 1px dashed;" />\
<!--[[The Swings]]--!>\
(link: "Go Southeast - Towards the Swings")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "The Swings")]
<!--[[Fork 1]]--!>\
[ (link: "Go Northeast (near trailer)")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Fork 1")] ]<fork1|
<!--[[Waterpark]]--!>\
(link: "Go North - Towards the Waterpark")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Waterpark")]
<!--[[Field]]--!>\
(link: "Go Southwest - Towards the Big Grassy Field")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Field")]A vast grassy field stretches before you, enclosed by a low fence on all sides.
To the west, the path curves gently in a wide arc, leading toward the northwest exit of the park.
Scattered across the open space, a few dogs race back and forth, some bounding after tennis balls, others darting in wide circles of joyous, unrestrained energy. Their humans stand nearby, watching, laughing, calling out names.
Along the path’s edge are slender trees with(if: $season is "summer" or "spring")[lush green leaves and soft blossoms sway gently in the warm breeze.](else-if: $season is "fall")[sparse autumn leaves clinging stubbornly to thin branches, their edges crisping in the cool air.](else:)[bare limbs stretch toward the sky, skeletal and still against the winter wind.]
(if: $completed does not contain "returned" or $inventory is not "a golf umbrella")[A large umbrella, impossibly wide and heavy, twists and tumbles across the field—caught in the unruly grip of the wind.
It spins wildly, rolling toward a tree, where its curved handle hooks around the trunk for a moment.
The wind laughs and pulls, shaking it free, sending it cartwheeling toward another tree—where it is snagged once again, twirling like a runaway dancer.
The crow lands nearby, watching the spectacle with an expression that can only be described as mild disapproval.
“CAW. IT’S GOING TO GET AWAY.”
The crow flaps its wings once and lets the wind lift it effortlessly into the air, gliding ahead of the runaway [umbrella.
]<action|
]\
<hr style="border: 0; border-top: 1px dashed;" />\
(if: $completed does not contain "returned" or $inventory is not "a golf umbrella")[(link: "Grab the umbrella
")[(masteraudio: 'stopall')(track: 'confirm', 'play')(append: ?action)[(unless: $inventory is "a golf umbrella" or "")[You drop the $inventory. The crow sweeps in and picks it up. It flies away. ](set: $inventory to "a golf umbrella", $timer to it -1)[You grab the umbrella and snap it shut.
]](replace: ?inventory)[]]]\
<!--[[Fork 2 Water]]--!>\
(link: "Return to the Forking Path (rear swings)")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Fork 2 Water")]
<!--[[West Exit]]--!>\
(link: "Leave the Park at the West Exit")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "West Exit")]With that, your phone begins to buzz. You have 5 minutes to make it to your appointment. (display: "completed")
Your friend the crow decides to take action and flies up, wrestling your (if: $season is "summer")[hat](else:)[scarf] from the playful wind. It flies down and returns it to you before flying north(if: $completed contains "called")[, you assume to wait with their feathered pal for animal control to show up].
You head off at a bit of a jog to your meeting.
Goodbye Edmond's Park. Goodbye crow. Goodbye wind. Until we meet again.
The END.
<hr style="border: 0; border-top: 1px dotted;"/>\
You started with $generosityStart generosity points. You collected $generosityGain. You spent $generositySpend.
<hr style="border: 0; border-top: 1px dotted;"/>\
(link: "Play again?")[(masteraudio: 'stopall')(track: 'back', 'play')(restart:)]\
(if: $completed contains "glass")[(show: ?glass)]\
(if: $completed contains "runWasps")[(show: ?wasps)]You decide you have had enough of the park today, and walk around the neighbourhood until your appointment time. (display: "completed")
As you head towards the west exit, your friend the crow decides to take action and flies up, wrestling your (if: $season is "summer")[hat](else:)[scarf] from the playful wind. It flies down and returns it to you before flying north(if: $completed contains "called")[, you assume to wait with their feathered pal for animal control to show up].
The END.
<hr style="border: 0; border-top: 1px dotted;"/>\
You started with $generosityStart generosity points. You collected $generosityGain. You spent $generositySpend.
<hr style="border: 0; border-top: 1px dotted;"/>\
(link: "Play again?")[(masteraudio: 'stopall')(track: 'back', 'play')(restart:)]
The courtyard is a large, open, paved space nestled between Edmonds Park and the Edmonds Community Centre.
A curved glass wall stretches the height of the building, offering a clear view of the indoor pool. The scene inside is lively—cascading waterfalls, a giant waterslide, and the bobbing heads of swimmers moving through shimmering blue water.
This open plaza could serve as a gathering place, a natural crossroads between the park and the centre. (if: $completed does not contain "returned")[Today, however, it is mostly empty.
A few pedestrians hurry past, their heads down, deliberately avoiding the scene unfolding near the centre of the space.
Others, spotting the commotion ahead, pivot sharply, choosing a different route rather than walking through the heated exchange between a city worker in a neon safety vest and a eldery figure in a floral jumpsuit, gesturing wildly.
Their shouts echo across the courtyard, their voice sharp with frustration.
They are angrily demanding answers about a missing umbrella.
<hr style="border: 0; border-top: 1px dashed;" />\
(if: $inventory contains "a golf umbrella")[\
<!--[[Return umbrella]]--!>\
(link: "Return umbrella to distressed person")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Return umbrella")]
]\
](else:)[(if: (history:)'s last is "Return umbrella")[Now,](else:)[Today,] the courtyard is just a crossroads. People move through it with purpose, some heading toward the park, others stepping into the community centre. No one lingers.
<hr style="border: 0; border-top: 1px dashed;" />\
]\
<!--[[West edge path]]--!>\
(link: "Return to the Park Path (West)")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "West edge path")]
<!--[[Community Centre]]--!>\
(link: "Leave Park - Go to Community Centre")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Community Centre")]The eastern edge of the park curves toward a courtyard near the rear entrance of Edmonds Community Centre. A wooden trellis marks a staircase leading down into the courtyard, but the path also splits—allowing visitors to continue southwest without using the stairs.
[Angry voices carry up from the courtyard below. ]<yelling|\
(if: visits is 1)[\
Closer, a panicked voice cuts through the air. It's coming from behind a nearby cedar that quivers and shakes. The occassional pinecone bounces and skitters on the path.
]\
(else-if: visits <3)[\
Shouting continues to sound behind the quivering, nearby cedar. Pinecones occassionally fall and bounce across the paved path.
]\
(else:)[\
Many pinecones litter the path and grass - fallen from a nearby cedar tree.
]
<hr style="border: 0; border-top: 1px dashed;" />\
(if: visits <4)[ <!--[[Investigate]]--!>\
(link: "Investigate the cedar")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Investigate")]
]\
<!--[[Humphries North]]--!>\
(link: "Go Northwest - East Park Edge")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Humphries North")]
<!--[[Trellis]]--!>\
(link: "Go East - Trellis near Community Centre")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Trellis")]
<!--[[West edge path]]--!>\
(link: "Go South - Towards the Parking Lot")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "West edge path")]
<!--[[Holly and Humphries]]--!>\
(link: "Go Northeast - Exit Park")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Holly and Humphries")]
(if: $completed contains "returned")[(hide: ?yelling)]You approach a covered section of the path, where a wooden trellis arches over a short flight of concrete steps, leading down into the sunken courtyard at the rear of Edmonds Community Centre.
It’s easy to imagine this as a pleasant spot for a wedding or a shady refuge for people resting on the steps. Yet, the design feels a little odd—the courtyard is already accessible from the street and park via a sloping path, making the steps unnecessary for most visitors.
[Before you can dwell on the layout, a sharp voice cuts through the air.
(text-style: "rumble")[“IT’S NOT OVER HERE!”]
The shout bounces off the trellis beams, rattling between the wooden posts and the dense draping greenery. Instinctively, you pause, listening for a reply—but as you do, a gust of wind rushes past your ear, carrying the voice away.
If there was ever a response, it has been swallowed by the wind.
The voice rises again—just as loud, just as certain.
(text-style: "rumble")[“NOT HERE EITHER!”]
<hr style="border: 0; border-top: 1px dashed;" />\
<!--[[Shout]]--!>\
(link: "Look for source of shouting")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Shout")] ]<searching|[The breeze here is mild, drifting lazily through the trellis.
The crow perches atop the wooden beams, observing the courtyard below and the people wandering through the open space.](still|\
[
<hr style="border: 0; border-top: 1px dashed;" />\
<!--[[Humphries South]]--!>\
(link: "Return to the Park Path (East)")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Humphries South")] ]<menu|\
(if: $completed contains "returned")[(hide: ?searching)(show: ?still)](else:)[(hide: ?menu)]You decide you have had enough of the park today, and walk around the neighbourhood until your appointment time. (display: "completed")
As you head towards the exit, your friend the crow decides to take action and flies up, wrestling your (if: $season is "summer")[hat](else:)[scarf] from the playful wind. It flies down and returns it to you before flying north(if: $completed contains "called")[, you assume to wait with their feathered pal for animal control to show up].
The END.
<hr style="border: 0; border-top: 1px dotted;"/>\
You started with $generosityStart generosity points. You collected $generosityGain. You spent $generositySpend.
<hr style="border: 0; border-top: 1px dotted;"/>\
(link: "Play again?")[(masteraudio: 'stopall')(track: 'back', 'play')(restart:)](set:
$timer to 91,
$inventory to "",
$generosityStart to 2,
$generosityGain to 0,
$generositySpend to 0,
$completed to (a:),
$last to "",
$season to "spring")(unless: (passage:)'s tags contains "admin")[<a href="#footer" class="skip-link" aria-label="Skip to Footer">Skip to Footer</a>]\
<span id="content-start">
(unless: (passage:)'s tags contains "admin")[
{(if: (passage:)'s name is "Spent")[]
(else:)[
(set: $generosity to $generosityStart + $generosityGain - $generositySpend)
(if: $generosity <1)[(go-to: "Spent")]]
(if: (passage:)'s name is "Times up")[](else-if: (passage:)'s tags contains "admin")[](else:)[(set: $timer to it -1)
(if: $timer <5)[(set: $timer to 6)(go-to: "Times up")]]}\
[(if: $inventory is "")[](else:)[You are carrying $inventory.
]]<inventory|]//Nope.//
You are suddenly exhausted and you feel the start of a headache. (display: "completed")
You're not sure if you are going to have enough energy to make your appointment.
You decide to leave the park, wishing you had been a little more generous to yourself, knowing you had responsibilities and plans later. You'll call the community centre later to see if someone has turned in your (if: $season is "summer")[hat](else:)[scarf].
The END.
<hr style="border: 0; border-top: 1px dotted;"/>\
You started with $generosityStart generosity points. You collected $generosityGain. You spent $generositySpend.
<hr style="border: 0; border-top: 1px dotted;"/>\
(link: "Play again?")[(masteraudio: 'stopall')(track: 'back', 'play')(restart:)]#Summary
This game is a quick prototype developed during the FLEET: Edmonds Park residency with Kay Slater. It is their second game built within a residency period, typically spanning between 96-150 hours of development. An additional 24 hours of time after the residency concluded was then spent to polish and test.
Both games are place-based, meaning they are designed to create an augmented version of visiting the residency location and surrounding land. If you have access to Wi-Fi and are ambulatory with the ability to visit these places, you are encouraged to do so with your device and walk the area as you play. What do you smell, see, hear, feel, or even taste? What is absent from your experience that the game describes?
In this game, which takes place in Edmonds Park, the main antagonists are the wind and generosity debt.
The wind is indifferent—it does not care, yet it affects everything. It can be neutral, positive, and disruptive all at once. We are shaped by it, we try to catch it, harness it, but in the end, the wind moves on, renews, fades, and builds again.
As you move through the park, you will encounter situations where you can build or spend generosity points. However, no matter what you choose, the wind will continue—causing mischief, repeating patterns, and shifting the landscape again. This game asks:
• Is generosity a renewable resource? Even when it feels scarce?
• If you only have a little, will you still give? At what cost?
• If you help someone, and they struggle again, will you help again?
Kay’s philosophy is informed by restorative justice, a practice that is challenging when we are taught to revere the western legal system, meritocracy, and white supremacy. Kay believes generosity is **not limitless** within a single person, but within a community, it could be practiced and generated more effectively. If we shared the responsibility for care—rather than demanding it from a few and at the expense of those who need it most—what could change?
This is not an easy question. There are no simple answers. But for a brief moment, while you play, Kay invites you to consider and wrestle with it.
Enjoy Edmonds Park, in this virtual setting, and come back again soon. Even if your own reserves are low today, Kay will always offer you a few generosity points to start.
<span id="footerCredits">[(link: "Return to Menu")[(masteraudio: 'stopall')(track: 'back', 'play')(go-to: "Cycling Winds")]]</span>#Content Warning
Character creation asks a question about poverty.
One passage mentions law enforcement. It is up to the player to engage - take care of yourself.
One passage offers an audist/ableist comment as a potential path.
Otherwise, there is nothing else that //Kay// has identified as a trigger; however, they will acknowledge that they are a white settler, with european ancestry, currently working on the ancestral and unceded homelands of the <span aria-hidden="true">hən̓q̓əmin̓əm̓ and Sḵwx̱wú7mesh Sníchim</span><span class="hide">Hunquminum and Squamish Language</span> speaking peoples. speaking peoples as an uninvited guest. Kay does not pretend to speak for or understand every lived experience. Take care of yourself!
This game takes place on land that has been named public by the colonial law that now rules this land, but this has not always been the case. If you have capacity, please consider donating to the Indigenous Residential School Survivors and learn more about their history. By learning and respecting history, especially ones that benefit us now that came at the expense of others in the past, we do a *tiny* repair to build better futures together.
Thank you.
If you do find something in this work that you consider a harmful trigger, please get in contact at kay at kdot dot ca. Please note that being offended is not the same as perpetuating harm, but again, take care of *yourself*.
<span id="footerCredits">[(link: "Return to Menu")[(masteraudio: 'stopall')(track: 'back', 'play')(go-to: "Cycling Winds")]]</span><a href="#thanks" class="skip-link" aria-label="Skip to Thank You">Skip to Thank You</a><a href="#log" class="skip-link" aria-label="Skip to Log">Skip to Update Log</a><a href="#audio" class="skip-link" aria-label="Skip to Audio Credits">Skip to Audio Credits</a><a href="#footerCredits" class="skip-link" aria-label="Skip to Footer">Skip to Footer</a>\
#Credits
<p xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><a property="dct:title" rel="cc:attributionURL" href="https://kdot.ca/cycling-winds/">The Cycling Winds</a> by <a rel="cc:attributionURL dct:creator" property="cc:attributionName" href="https://kdot.ca">Kay Slater</a> is licensed under <a href="https://creativecommons.org/licenses/by-nc/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">CC BY-NC 4.0<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1" alt=""><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1" alt=""><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/nc.svg?ref=chooser-v1" alt=""></a></p>
Concept, writing and development: Kay Slater.
Additional edits: chatGPT 4o, Grammarly
It is possible for me to make the things I make because I am loved and cared for by my partner, friends and co-workers. In otherwords, this labour of love was fuelled by love. I am very lucky indeed.
Share love, care, and hope by donating to the <a href="https://www.irsss.ca/donate">IRSSS (Indigenous Residential School Survivors)</a> if you can. If not, spend and give freely to those in your community. Give more than you take, but demand the same from others. Mutual aid and community codependancy is the way. //Rest. Love. Repeat.//
This story and game was created during Slater's 2025 February residency hosted by othersights and the city of Burnaby at (link: "The FLEET: Edmond's mobile artist studio (opens new tab)")[(open-url: "https://www.fleetstudios.org/")] situated within colonially named Burnaby, BC, on the unceeded and ancestral lands of the <span aria-hidden="true">hən̓q̓əmin̓əm̓ and Sḵwx̱wú7mesh Sníchim</span><span class="hide">Hunquminum and Squamish Language</span> speaking peoples.
The story was created using Twine, an interactive fiction tool created and maintained by Chris Klimas, using the story format Harlowe, created and maintained by Leon Arnott. Twine is a registered trademark of the
(link: "Interactive Technology Foundation (opens new tab)")[(open-url: "https://iftechfoundation.org/")]. Sound has been added through the use of HAL, the (link: "Harlowe Audio Library (opens new tab)")[(open-url: "https://twinelab.net/harlowe-audio/#/")] with thanks to Chapel.
<span id="thanks">[\
#Thank you
Thank you to (link: "other sights (opens new tab)")[(open-url: "https://othersights.ca/")] and (link: "The City of Burnaby (opens new tab)")[(open-url: "https://www.burnaby.ca/")], the FLEET producers, and the FLEET funders. I want to also say a big thank you to the many artists, creatives, and community members who came by to visit, supported this endeavour. I was not as public on socials with this residency, and still felt very supported and seen which is a big gift.
Big thanks to Allison Collins and Jay Pahre for their care and attention throughout the residency. I will always be grateful to you both for sharing sunsets, snacks and many different temperatures of silence together. Your trust was a gift.]
</span>
<span id="log">[\
#Log (updates):
* Version 1.1 - Mar 2 - Bug fixes where returning the umbrella didn't register and Topher's gender pronouns weren't updated. Edits to menu (now return to menu in footer), and there is a path where Topher can now dismiss wasps, clear glass, and evict the picnic fire users (no cops!).
* Version 1.0 - Feb 26 - First edition release! First bug free run through with all inventory items collected and used. Added sound effects.
* Version 0.2.2 - Feb 25 - Completed passage descriptions for Humphries South, the Courtyard, Trellis, West edge path, and the field. Now all passages have descriptions and narrative roles!
* Version 0.2.1 - Feb 24 - Tweaks and edits (appending hooks to appear in line as links are clicked). Added footer. Added "sweep wasps".
* Version 0.2 - Feb 23 - Open House and Launch Party @ FLEET Edmond's Park. Spelling error updates. Fixed "time/generosity" run out endings. Fixed playground paths. Tweaked inventory.
* Version 0.1.5 - Feb 22 - Add Summary, Content Warnings & Credits. Updated passage descriptions (2/3 complete). All endings restart game.
* Version 0.1.4 - Feb 21 - Add branching path + inventory mechanic (1/3 passages)
* Version 0.1.3 - Feb 20 - Add player customization quiz (generosity points)
* Version 0.1.2 - Feb 12 - Added descriptions to main fork, fleet trailer, and washroom.
* Version 0.1.1 - Feb 10 - Locations completed (no descriptions), and endings
* Version 0.1 - Feb 4 2025 - Layout and prototype]
</span>
<span id="audio">[\
#Audio Credits and Track List
Credits for the Royalty-free sound effects used in The Cycling Winds. Please note - clicking these links will navigate you away from the game.
* //woosh// Sound Effect generated by AI, credited to <a href="https://pixabay.com/users/ribhavagrawal-39286533/?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=230554">Ribhav Agrawal</a> from <a href="https://pixabay.com//?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=230554">Pixabay</a>
* //charming twinkle sound for fantasy and magic// Sound Effect by <a href="https://pixabay.com/users/universfield-28281460/?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=250240">UNIVERSFIELD</a> from <a href="https://pixabay.com//?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=250240">Pixabay</a>
* //UI back sound// Sound Effect from <a href="https://pixabay.com/?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=100590">Pixabay</a>
* //New Level// Sound Effect by <a href="https://pixabay.com/users/universfield-28281460/?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=142995">UNIVERSFIELD</a> from <a href="https://pixabay.com//?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=142995">Pixabay</a>
* //Positive 5// and //Negative 8// by <a href="https://pixabay.com/users/floraphonic-38928062/?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=224402">floraphonic</a> from <a href="https://pixabay.com//?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=224402">Pixabay</a>
* //Agressive Bees// Effect by <a href="https://pixabay.com/users/freesound_community-46691455/?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=45822">``freesound_community``</a> from <a href="https://pixabay.com/sound-effects//?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=45822">Pixabay</a>
* //Splash Pool// by Joozz -- https://freesound.org/s/531744/ -- License: Attribution 4.0
* //Ewww Effect// by <a href="https://pixabay.com/users/dobcommunications-31857705/?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=284810">Michael Mroziak</a> from <a href="https://pixabay.com/sound-effects//?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=284810">Pixabay</a>
* //Playing Tennis// by <a href="https://pixabay.com/users/freesound_community-46691455/?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=70574">``freesound_community``</a> from <a href="https://pixabay.com/sound-effects//?utm_source=link-attribution&utm_medium=referral&utm_campaign=music&utm_content=70574">Pixabay</a>
]</span>
<span id="footerCredits">[(link: "Return to Menu")[(masteraudio: 'stopall')(track: 'back', 'play')(go-to: "Cycling Winds")]]</span>You call a taxi. You also call your appointment and cancel.
You spend the rest of the day driving the bird to animal control in another city.
You helped a bird. That was enough.
The END.
You started with $generosityStart generosity points. You collected $generosityGain generosity points. You spent $generositySpend.
[[Play again?|Cycling Winds]]As you step away, another bird lands nearby—a crow. It tilts its head, watching you.
“The wind is particularly mean today,” it says.
Your (if: $season is "summer")[hat](else:)[scarf] flies even further away.
“Let’s go get that—come on.”
The crow takes off, leading you forward.
<hr style="border: 0; border-top: 1px dashed;" />\
<!--[[Fork 1]]--!>\
(link: "South")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Fork 1")]You walk over to the group and loudly announce that they are breaking the law—that you’re calling the cops.
One of the adults steps forward, asking you to stop. You ignore them.
You dial 9-1-1 and report an irresponsible group of criminals, claiming they are setting fire to the park.
The group reacts immediately. Some scramble to pack up and douse their small, contained firepit. Others shout at you, angry at your interference. A few start chasing after you, trying to stop you.
You run, leaving the park behind.
Did you save the park? Who knows?
Later, at your appointment, you tell the story of how you were chased out for being a good Samaritan. Some people nod in approval. One person gives you a sour look and doesn’t speak to you for the rest of the meeting.
It isn't until you get home later, that you realize you forgot to gather your new(if: $season is "summer")[ hat](else:)[ scarf] and bitterly wonder if someone ended up stealing it.
The END.
<hr style="border: 0; border-top: 1px dotted;"/>\
You started with $generosityStart generosity points. You collected $generosityGain. You spent $generositySpend.
<hr style="border: 0; border-top: 1px dotted;"/>\
(link: "Play again?")[(restart:)](unless: (passage:)'s tags contains "admin")[</span>\
<hr>\
<span id="footer">\
(text-color:purple)[(link: "Return to menu")[(set: $last to (passage:)'s name)(masteraudio: 'stopall')(track: 'back', 'play')(go-to: "Cycling Winds")]] | ⏱ [$timer]<countdown|
{(if: $completed contains "swatWasps")[(if: $completed contains "maintenanceWasps")[](else:)[(replace: ?fork1)[(link: "Return to Trailer")[(masteraudio: 'stopall')(track: 'wasps', 'play')(text-style: "strike")[Go Southeast] - Angry wasps and a wind repulse you from visiting this path.]]]]}
</span>]{(set: $generositySpend to it +2, $generosityGain to it +1, $completed to it + (a: "swatWasps"), $inventory to "")}\
You sweep the broom in great arcs, trying to disrupt the swarm.
The crow screams at you to stop, but you swing anyway.
The gusts of wind scatter the wasps, momentarily confusing them.
The trailer door opens cautiously, and a person steps out—the same older adult. They glance at you, eyes filled with relief and gratitude.
But the wasps recover.
The wind suddenly howls, sending a sharp gust past your face. Your eyes sting.
Then—WHAM. The swarm turns on you.
"Ow, ow! RUN!"
The person bolts southeast toward the blue building, while you sprint toward the Tennis Courts.
The wind pushes you along—both helping and hurrying you away.
As you bend over to catch your breath, you see the crow grab the broom in the chaos, dragging it toward the Waterpark.
<hr style="border: 0; border-top: 1px dashed;" />\
<!--[[Waterpark]]--!>\
(link: "Take refuge at the Waterpark")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Waterpark")]You open the large umbrella, angling it to shield yourself from the falling pinecones as you inch closer. The rhythmic drumming of pinecones against the taut fabric reminds you of hail against a car roof.
You stop, then take another measured step.
You repeat the pattern, waiting between each step.
[Gradually, the flurry of debris slows, and the trapped figure notices you. They freeze, still agitated but no longer fighting blindly.
]<approach|
<hr style="border: 0; border-top: 1px dashed;" />\
[\
(link: "Approach and Untangle Them")[\
(set: $generosityGain to it +2, $generositySpend to it +3, , $timer to it -4, $completed to it + (a: "tangleAttempt"))(replace: ?countdown)[$timer]\
(masteraudio: 'stopall')(track: 'negative', 'play')\
(append: ?approach)[
You step forward and reach for their hair, attempting to free them.
The moment your one-handed attempt stumbles, you accidentally tug. They let out a sharp, pained moan and instinctively jerk away.
This only worsens the knots.
The flurry of pinecones resumes, hammering down.
The trapped figure thrashes wildly, and one flailing arm smacks into your umbrella, nearly knocking it from your hands. You overcompensate as you attempt to right your umbrella and end up hitting them with the edge of the taut fabric. They scream—focusing their panic on you.
The crow flaps its wings furiously, squawking:
“You’re NOT helping! CAW! GET BACK! GET BACK!”
The trapped figure’s struggles grow worse, and you realize you need to retreat before you become tangled too.
]
(replace: ?leave)[ <!--[[Humphries North]]--!>\
(link: "Retreat to Path")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Humphries North")] ]\
(hide: ?choice)\
]
(link: "Ask if They Need Help
")[\
(set: $generosityGain to it +1, $timer to it -1)(replace: ?countdown)[$timer]\
(masteraudio: 'stopall')(track: 'twinkle', 'play')\
(append: ?approach)[\
You call out and offer assistance, but they don’t respond.
You wait, but they remain silent.
]\
(link: "Ask if they are deaf or mute or something?
")[\
(set: $generosityGain to it -2, $timer to it -1)(replace: ?countdown)[$timer]\
(masteraudio: 'stopall')(track: 'negative', 'play')\
(append: ?approach)[
They don’t respond.
The crow’s head snaps toward you, a sharp black eye locking onto your face.
“And if they are?”
The bird shakes its head sharply, then hops back, watching.
]\
]\
(link: "Crouch and Gesture
")[\
(if: $completed contains "tangleAttempt")[(set: $completed to it - (a: "tangleAttempt"))](set: $completed to it + (a: "freedom"), $generosityGain to it +2, $generositySpend to it +1, $timer to it - 1)\
(masteraudio: 'stopall')(track: 'twinkle', 'play')\
(append: ?approach)[
You switch tactics, raising a low thumbs-up in a slow, deliberate motion.
They hesitate—then, relax slightly and respond with a thumbs-up of their own.
The crow tilts its head, watching closely.
“CAW, looks like you’re good to approach. CAW CAW.”
Now that the storm of pinecones has ceased, you close the umbrella and step forward. You carefully unravel their tangled hair and clothes. They follow your silent cues, twisting in place as you free them from the branches.
When at last they uncurl, their face is red and streaked with tears and snot. They turn away, embarrassed. You step back and turn slightly, giving them space.
After a pause, they reach out and press a hand to your shoulder.
You turn back, and they touch their chin with their fingertips, then wave at you—a silent ‘thank you.’
The crow caws softly, then lifts into the air.
You retrieve your umbrella and step away from the trees.
]\
(hide: ?choice)\
]\
]\
]<choice|\
[ <!--[[Humphries South]]--!>\
(link: "Return to Path")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Humphries South")] ]<leave|(set: $generosityGain to it +2, $generositySpend to it +3, $timer to it -4, $completed to it + (a: "tangleAttempt"))(replace: ?countdown)[$timer]\
You charge forward and reach for their tangled hair.
A perfectly timed pinecone smacks you dead center on the bridge of your nose.
Pain shoots through your face, your eyes water, and your teeth ache from the impact.
Half-blinded, you grab for the person’s hair again—but only manage to pull their head toward you, failing to free them.
They scream.
Their flailing limbs connect with your hands, arms, and shoulders, pushing you back.
You try again, but their kicking grows violent—they want you gone, whether or not they remain trapped. You hold your throbbing nose and stumble up the path North where you rest on a bench for a moment to regain your composure.
You distract yourself using your phone for 10 minutes before a nearby parked and idling car causes you to move back into the park.
<hr style="border: 0; border-top: 1px dashed;" />\
[[Return to Path|Humphries North]][You catch up to the city worker. You glance at their nametag—“Topher (He/Him).
"What?"
Topher seems impatient to leave the courtyard.
]<action|
[The parks worker doesn't turn back, but waves a hand over his head.
The crow, which had kept a wary distance, finally hops forward now that the chaos has passed.
It pecks at the pavement, then tilts its head at you, one black eye shining.
“CAW. THAT WAS LOUD.”
It ruffles its feathers, shaking off some unseen tension.
Then, as if sensing the last echoes of the woman’s distress, it flaps into the air, circling once over the empty courtyard before gliding toward the park’s west edge.](end|
<hr style="border: 0; border-top: 1px dashed;" />\
(if: $completed contains "glass" or "sweptGlass")[(link: "Tell Topher about the Broken Glass
")[(masteraudio: 'stopall')(track: 'twinkle', 'play')\(set: $completed to it + (a: "maintenanceGlass"), $generosityGain to it +2, $generositySpend to it +1, $timer to it -1)(replace: ?countdown)[$timer]\
(append: ?action)[
He nods, unsurprised. (if: $completed contains "glass")[You notice him looking at your shirt and smirking.]
“Oh yeah, bored teenagers. That happens a lot.”
With a practiced turn of his cart, he veers off toward the northeast path, heading to clean up the mess.]]\
]\
(if: $completed contains "waspAction")[(link: "Tell Topher about the Wasps
")[(masteraudio: 'stopall')(track: 'twinkle', 'play')\(set: $completed to it + (a: "maintenanceWasps"), $generosityGain to it +2, $generositySpend to it +1, $timer to it -1)(replace: ?countdown)[$timer](append: ?action)[
The park's worker pauses.
"Oh, are they back again? Thanks. There's someone working there so I gotta take care of that right away."
He pushes his cart a little quicker up the path.]]\
]\
(if: (history:) contains "The Swings")[(link: "Tell Topher about the Picnic Fire
")[(masteraudio: 'stopall')(track: 'twinkle', 'play')\(set: $completed to it + (a: "maintenanceFire"), $generosityGain to it +1, $generositySpend to +1, $timer to it -1)(replace: ?countdown)[$timer](append: ?action)[
The park worker stops.
"Like an open fire? On the grass?" There is panic in his voice.
You describe the fire pit to Topher and see his shoulder soften. He nods, but doesn't say anything else and pushes his cart along the east path.]]\
]\
(link: "Thank Topher")[(masteraudio: 'stopall')(track: 'twinkle', 'play')(set: $generosityGain to it +1, $completed to it + (a: "thanks"))(show: ?end)]
<!--[[West edge path]]--!>\
(link: "Return to the Path (West)")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "West edge path")](if: (history:) contains "The Swings")[The smoke from the picnic area is thicker here.](else:)[As you step into this section of the park, a sharp smell of smoke clings to the air.]
A sudden gust forces it into your nose and eyes, triggering a sneeze so violent it nearly knocks you off balance. You stumble, instinctively arching your back in a desperate attempt to keep the string of dripping snot from touching your clothes.
The wind is not on your side.
It twists and tugs at the swaying strand, making it stretch and dance in midair like a cruel marionette. You are locked in an absurd battle, trying to outmaneuver your own mucus. There is no dignified escape.
<hr style="border: 0; border-top: 1px dashed;" />\
<!--[[Gross]]--!>\
(link: "Use your fingers")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Gross")]In the end, you resort to using your fingers, peeling the tenacious thread free before rubbing your hands in the grass.
You take a deep breath, willing yourself to recover from the ordeal—only to look up and realize a nearby family has been watching the entire thing. Their expressions range from mild amusement to quiet horror.
Your face flushes hot.
(if: (history:) contains "The Swings")[Annoyed, you wonder if the group cooking at the picnic area is even allowed to have an open flame in the park.](else:)[Where is that smoke coming from? Is it even allowed in the park?
]\
Above, the crow swoops down and lands on a nearby branch, its sharp eyes tracking something just out of reach. Your (if: $season is "summer")[hat](else:)[scarf] flutters wildly, tangled in the upper limbs of a leaning cedar.
The crow cocks its head, calculating.
Then, with a powerful hop, it launches itself upward. Clawing at the bark, it scales the branch, tilting and flapping for balance. Just as it reaches the fabric, the wind yanks it free.
The crow snaps its beak in irritation and immediately gives chase.
The (if: $season is "summer")[hat](else:)[scarf] twists, flips, and sails upward, and for a brief moment, the crow nearly catches it—only for the wind to snatch it away again. With a loud, frustrated caw, the crow plunges after it, vanishing beyond the trees.
You watch the whole spectacle, momentarily forgetting about your own humiliating encounter with physics and mucus.
<hr style="border: 0; border-top: 1px dashed;" />\
<!--[[West edge path]]--!>\
(link: "Continue")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "West edge path")]woosh: ./audio/woosh.mp3, ./audio/woosh.ogg
twinkle: ./audio/twinkle.mp3, ./audio/twinkle.ogg
back: ./audio/back.mp3, ./audio/back.ogg
confirm: ./audio/confirm.mp3, ./audio/confirm.ogg
positive: ./audio/positive.mp3, ./audio/positive.ogg
negative: ./audio/negative.mp3, ./audio/negative.ogg
wasps: ./audio/wasps.mp3, ./audio/wasps.ogg
tennis: ./audio/tennis.mp3, ./audio/tennis.ogg
eww: ./audio/eww.mp3, ./audio/eww.ogg
splash: ./audio/splash.mp3, ./audio/splash.oggAs you approach, the city worker’s eyes flick toward you. Their expression shifts from weary patience to quiet relief.
The crow lands nearby, hopping with anticipation.
The moment the shouting elder sees the umbrella in your hand, and spins on you with laser focus.
(text-style: "rumble")[“HOW DARE YOU STEAL MY UMBRELLA?!”]
They lunge forward, snatching it from your grip before you can respond. They hurl accusations, their already high voice rising in a fresh wave of anger, now directed at both you and the city worker, who takes a cautious step back.
Just as you’re about to protest, explain, or simply leave, (if: (history:) contains "Trellis")[a familiar figure rushes down the nearby steps—the person you encountered earlier near the trellis.](else:)[a stranger approaches, moving with calm purpose.]
“Oh! You found it!” they exclaim, their tone sugary-sweet.
They beam at the distressed figure, clapping a hand on their shoulder.
“Well done. You’re such a clever girl.”
The change is instantaneous. The yelling stops. The previously furious woman freezes, her rage deflating as she throws herself into the newcomer’s arms, sobbing loudly. The stranger wraps an arm around the crying woman, leading her away with gentle nods and soft words. As they walk off, the woman’s sobs fill the space, her anger dissolving into sniffles and sighs as she recounts the whole saga of her missing umbrella.
You exchange a look with the city worker. They shrug.
“Used to it,” they murmur, then push their cart toward the park’s northeast path.
<hr style="border: 0; border-top: 1px dashed;" />\
(if: (history:) contains "Humphries North" or "The Swings")[\
<!--[[Park Clean-up]]--!>\
(link: "Call out to Parks Worker")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Park Clean-up")]
](else-if: $completed contains "waspAction")[\
<!--[[Park Clean-up]]--!>\
(link: "Call out to Parks Worker")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Park Clean-up")]
]\
<!--[[Courtyard]]--!>\
(link: "Return to courtyard")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Courtyard")]
(set: $generosityGain to it +3, $generositySpend to +2, $inventory to "", $completed to it + (a: "returned"), $timer to it -4)(replace: ?countdown)[$timer](print: (history:))You decide you have had enough of the park today. (display: "completed")
As you head towards the community centre's parking lot, the crow decides to take action and flies up, wrestling your (if: $season is "summer")[hat](else:)[scarf] from the playful wind. It flies down and returns it to you before flying north(if: $completed contains "called")[, you assume to wait with their feathered pal for animal control to show up].
You don the (if: $season is "summer")[hat](else:)[scarf], and walk towards Edmond's street. You window-shop until your appointment time.
The END.
<hr style="border: 0; border-top: 1px dotted;"/>\
You started with $generosityStart generosity points. You collected $generosityGain. You spent $generositySpend.
<hr style="border: 0; border-top: 1px dotted;"/>\
(link: "Play again?")[(masteraudio: 'stopall')(track: 'back', 'play')(restart:)]You decide you have had enough of the park today. (display: "completed")
As you head toward the community centre’s north exit, the crow decides to take action and flies up, wrestling your (if: $season is "summer")[hat](else:)[scarf] from the playful wind. It flies down and returns it to you before flying north(if: $completed contains "called")[, you assume to wait with their feathered pal for animal control to show up].
You pocket the (if: $season is "summer")[hat](else:)[scarf], and step inside the community centre.
The sharp scent of chlorine hits you immediately, curling out from the pool area.
(if: $completed contains "tp")[You make a beeline for the front desk and ask about showers. The attendant nods, pointing you toward the gendered washrooms across from the café.
You take a quick rinse, scrubbing off what you can with the pink, all-in-one soap-shampoo before patting yourself dry with your hands.
Your (if: $completed contains "glass")[glass-encrusted ]clothes cling uncomfortably, but at least it’s a different kind of gross now.
You leave the community centre and rush off to your appointment.](else:)[You walk towards the café near the south exit. You grab a drink, and exit to Edmond's street where you window-shop until your appointment.]
The END.
<hr style="border: 0; border-top: 1px dotted;"/>\
You started with $generosityStart generosity points. You collected $generosityGain. You spent $generositySpend.
<hr style="border: 0; border-top: 1px dotted;"/>\
(link: "Play again?")[(masteraudio: 'stopall')(track: 'back', 'play')(restart:)](if: visit >2)[\
(if: $completed contains "freedom")[The cedar bows that had previously caught the tangled park patron are distressed and are decorated with shining lines of sable coloured hair. The grass beneath the scene is trampled, but it is now mostly quiet but for the sounds of nearby children in the playground[, and some muffled shouting from the courtyard]<yelling|.]
(else:)[The tangled figure is gone.
Only a shirt remains, twisted into a tight knot around a cedar branch, as if caught in a trap that no longer holds its prey.
Beneath it, hundreds of pinecones litter the ground, marking where the storm once raged.
The crow lands lightly nearby, staring at the abandoned fabric.
It pecks at the collar once, then hops away.]\
<hr style="border: 0; border-top: 1px dashed;" />\
]\
(else:)[\
[Again, you round the cedar tree. ](returned| A person has become ensnared in the low-hanging branches, their clothes and hair hopelessly tangled in the cedar’s bows.
Their head is bent forward, their face obscured by a mass of knotted hair, rendering them sightless, voiceless, helpless.[ Each frantic movement tightens the trap, pulling them deeper into the branches and folds of fabric, their clothes twisting into knots against the limbs.
Above, the crow picks up their distress, flapping its wings in agitation.
“CAW—CALM DOWN! CAW—CALM DOWN!”
But the sudden noise spooks the trapped figure, sending them into another wave of frantic thrashing.](first|[ Their muffled moans and gasping cries are filled with frustration and fear. Panic fuels their struggle, but it only makes things worse.
The crow hops back and forth nearby, but remains silent.](returned|
Pinecones and cedar needles rain down, shaken loose by their movements.
<hr style="border: 0; border-top: 1px dashed;" />\
(if: $inventory is "a golf umbrella")[\
<!--[[Umbrella shield]]--!>\
(link: "Approach Carefully, (Use Umbrella as Shield)")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Umbrella shield")]
]\
<!--[[Untangle]]--!>\
(link: "Rush in and Help")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Untangle")]
]\
<!--[[Humphries South]]--!>\
(link: "Return to Park Path - East Park Edge")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Humphries South")]
<!--[[Holly and Humphries]]--!>\
(link: "Exit Park")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Holly and Humphries")]\
(if: $completed contains "returned")[(hide: ?yelling)]\
(if: visits >1)[(show: ?returned)](else:)[(set: $generosityGain to it +1)(show: ?first)]A figure stomps back and forth beneath the trellis, their feet dragging with exaggerated weight as they peer dramatically between the wooden beams and leaves. Each time they bellow, the wind picks up, as if amplifying their frustration.
Below, in the courtyard, the crow lands. It tilts its head, scanning the ground with careful precision. The bird’s deliberate search contrasts starkly with the wild, theatrical movements of the shouting person. Neither of them seem interested in you.
If you step too close, the shouting figure turns and yells directly into your ear.
(text-style: "rumble")[“STILL NOTHING!”]
That seems to be your cue to leave them to their performance.
<hr style="border: 0; border-top: 1px dashed;" />\
<!--[[Humphries South]]--!>\
(link: "Return to the Park Path (East)")[(masteraudio: 'stopall')(track: 'woosh', 'play')(go-to: "Humphries South")](if: $completed contains "clown")[You played with some children. ]\
(if: $completed contains "tangleAttempt")[You tried to free someone from a tangle - but couldn't. ]\
(if: $completed contains "freedom")[You freed someone from a tough tangle! You practiced consent. ]\
(if: $completed contains "escape" and "tp")[You helped two people take a bio break.](else-if: $completed contains "escape" or "tp")[You helped someone get to the washroom before it was too late! ]\
(if: $completed contains "returned")[You found someone's lost property. ]\
(if: $completed contains "thanks")[You thanked a park caretaker. ]\
(if: $completed contains "runWasps")[Your wasp-stings still throb. ]\
(if: $completed contains "glass")[Your shirt sleeve itches, the tiny glass shards pricking at your skin. ]\
(if: $completed contains "shower")[You could really use a shower...]