*save_checkpoint ch8
*set checkpoint8 true
*set fight_opponent_name "Queenie"
*set current_month "November"
*gosub_scene utils update_highest_friendship
*temp link_sender "none"
*temp link_sender_friendship 1
*if (((eric_subplot_scene >= 2) and (eric_subplot_status != "rejected")) and (eric_friendship >= link_sender_friendship))
    *set link_sender "Eric"
    *set link_sender_friendship eric_friendship
*if (((katie_subplot_scene >= 2) and (katie_subplot_status != "rejected")) and (katie_friendship >= link_sender_friendship))
    *set link_sender "Katie"
    *set link_sender_friendship katie_friendship
*if (((danny_subplot_scene >= 3) and (danny_subplot_status != "rejected")) and (danny_friendship >= link_sender_friendship))
    *set link_sender "Danny"
    *set link_sender_friendship danny_friendship
*if (((chloe_subplot_scene >= 2) and (chloe_subplot_status != "rejected")) and (chloe_friendship >= link_sender_friendship))
    *set link_sender "Chloe"
    *set link_sender_friendship chloe_friendship
Chapter 8: Queenie "Freestyle" Wai

Wednesday, 6 November 2024

You stretch in bed, muscles no longer sore, bruises yellowed. The fight against James was a week ago, but already it's a blur.

*if (link_sender = "none")
    One of the regulars posted a link in the MK Fight group chat after you went to bed last night.
*else
    ${link_sender} sent you a link after you went to bed last night.
You open it to see a news report from HK01 about a police operation. They broke up an underground fight. One person was arrested for illegal gambling, and cash and electronic devices confiscated at the scene.

Your hand's seized up into a fist around your phone, and you've popped loose the corner of the case. You unclench, click the corner back into place, and tap play. The video loads slowly. A man stumbles up a basement staircase and is bundled into a police van. He has a black hood over his head. Is that the bookmaker?

*if (link_sender = "Eric")
    You thank Eric for the info. "Good to know," you send, then scroll up and react to some older messages. Thumbs-up, thumbs-up, saluting face.
*elseif (link_sender = "Katie")
    You thank Katie for the info. "Thanks for thinking of me," you reply. Your phone vibrates, then again, and again. Links to ordinances, hotlines, a password-protected PDF.
*elseif (link_sender = "Danny")
    You thank Danny for the info. He doesn't reply. The link now says, "This message was deleted." Was it meant for you?
*elseif (link_sender = "Chloe")
    You thank Chloe for the info. "I'm sitting the next one out," she replies. A typing bubble comes up, then it goes away.
*elseif (link_sender = "none")
    You react with a thumbs-up, joining the nine already there. No one types anything.
*else
    *bug Invalid link_sender

You've only spoken with the bookmaker once. But you've seen him around a few times, hunched over his tablet, tapping at the screen, or grabbing a fistful of hundred-dollar bills.
*if highest_trait = "analysis"
    The confiscated devices are the bigger problem. If they contain records of the fights, the police have them now.
*elseif highest_trait = "composure"
    You force your shoulders to loosen. You take a deep breath, let it out. Nothing is confirmed yet. One thing at a time.
*elseif highest_trait = "empathy"
    He was mostly background. Now, for a moment, you recall his face, not just his role.
*else
    *bug Invalid trait

The morning broadcast says a cold front has moved in, twenty-two degrees, and shows people already in fur coats and thigh-high boots. You shiver on their behalf, then head down for macaroni soup with ham.

*page_break
Just as you're thinking about where to head for lunch, the message from your promoter rolls in.

"Queenie 'Freestyle' Wai, Tai Tong Organic EcoWorld. 29 November, 9:30pm."

Then a second message:

"Venue is approved by Heung Yee Kuk. If you need to decline, please notify by 15 November for logistical reasons."

*fake_choice
    #"Freestyle". Try to place the name.
        *gosub_scene utils show_stats

        Queenie "Freestyle" Wai. You draw a blank. An online search turns up nothing.
    #Wonder why she offered the choice to decline.
        *gosub_scene utils show_stats

        "Need to decline". That's new. She's left a door open. Are people getting cold feet?
    #Think about the Heung Yee Kuk approval.
        *gosub_scene utils show_stats

        "Approved by Heung Yee Kuk". No mention of licences, permits or permissions.

You've heard of Tai Tong Organic EcoWorld. It's said to be run by rural villagers, and is known for its fish ponds and ostriches. You've never been, but you've seen the advertisements a few times.

Time to train.

*gosub_scene utils tick_character_cooldowns
*gosub_scene utils character_unvisited_check
*gosub_scene utils fortnight_choice
*gosub_scene utils show_stats
*gosub_scene utils character_visit_options
*gosub_scene utils character_visit_choice
*gosub_scene utils check_and_show_achievements
Friday, 15 November 2024
*gosub_scene utils update_highest_friendship
*set epithet "water carboy replacer"

You're in the pantry when someone outside yells, "${first_name}, can you replace the ${office_water} water?" You grunt in assent, lift out the empty carboy and dump it in the corner. You tear the plastic seal off a new 5-gallon bottle. Squatting, you cup both hands around it and lift it up, slotting it into the water dispenser. Good form.

Back at the photocopier, you bump into Johnson-Jack-Jackson. He's printing a few copies of an interview portfolio, his two-year-old daughter's photo on the cover. He shrinks in on himself.

"Heh, it's just a few copies. We're applying... she's applying to York International and Victoria. We're getting baptised early next year, so there should be plenty of time before she interviews at the Christian schools."

The cover page slides out of the printer. One grid cell says, "Parents: Melody Chan, John Au". You wish John luck with the interviews.

*page_break
You've just sat down again when artificial vanilla hits you. Janet looms with a tight-lipped smile. She has her arms folded as she asks if you're free to discuss something in her office.

You follow her in and sit on the chair across from her desk. The smile is gone now. She looks down at the single sheet of paper on the desk.

"Ahem. Yes, ${first_name}. We've received anonymous reports that you have been engaging in... extracurricular combat activities."

She doesn't make eye contact with you.

*fake_choice
    #Say something.
        You fill the air. "Ah, is that so —"
    #Don't say anything.
        You keep your hands in your lap and wait for her to continue.

Janet proceeds as if you weren't there. "We inform you of this in the interests of full disclosure. The company does not proactively investigate the private actions of its employees."

*if highest_trait = "analysis"
    Careful wording. "Does not proactively investigate". They don't want to get involved.
*elseif highest_trait = "composure"
    An uncomfortable meeting. You understand it as a warning. You can decide what to do with it later.
*elseif highest_trait = "empathy"
    She's not making eye contact. She wants this over with as soon as possible. It's uncomfortable for her as well.
*else
    *bug Invalid trait

You nod and make non-committal noises.

Janet breathes through her teeth, then stands. She strides to the door and shows you out.

*page_break
You return to your desk. Last chance to decline the fight, if you want.

*choice
    #Fight this month.
        *set chapter_8_fight true
        *gosub_scene utils show_stats

        Queenie "Freestyle" Wai at the end of the month, then. You still don't know anything about her. Time to ask around. And train.

    #Don't fight this month.
        *set chapter_8_fight false
        *set fight_opponent_name "None"
        *gosub_scene utils show_stats

        "Sorry, I won't be fighting this month."

        "No problem. Thank you for informing me."

        You'll sit the fight out, then. General training this month, not for anything in particular. But that doesn't stop you.

*gosub_scene utils tick_character_cooldowns
*gosub_scene utils character_unvisited_check
*gosub_scene utils fortnight_choice
*gosub_scene utils show_stats
*gosub_scene utils character_visit_options
*gosub_scene utils character_visit_choice
*gosub_scene utils check_and_show_achievements
Friday, 29 November 2024
*gosub_scene utils update_highest_friendship
*gosub_scene utils show_stats

*if (boxing_insights_unspent > 0)
    *gosub_scene upgrades spend_insight_choices

*if (chapter_8_fight)
    Two weeks of asking around turn up nothing. Then, one day, as you're getting ready to leave MK Fight, a regular, the big one who brings rice balls, taps you on the shoulder. He sits down beside you on the bench by the door. As he laces up his boots, he says that Queenie uses a stick.

    "A stick?" you ask.

    "Yeah."

    "Oh."

    "Apparently a university student. You get all kinds."

    That's all he has, but you thank him anyway.

    *page_break
    After a light dinner of wonton noodles, you ride the Tuen Ma line out to Yuen Long and catch the red minibus at the stop across from Citistore. It trundles along Tai Tong Road for a few minutes, past banners for some kind of leaf-viewing thing. You yell out "[i]Yau lok![/i]" at the intersection, where a village restaurant has set its tables out across the pavement, plates of bones and sauces not yet cleared. "Local carp served in two styles," boasts the vinyl banner tied to the roadside railing.

    There's a large, unlit sign pointing the way to Tai Tong Organic EcoWorld, and you follow the path uphill. A wind starts to blow, bringing pond water and wet earth, and you slide your hands up into your sleeves. The path is narrow, but you walk it by phone-light, and after ten minutes you arrive at a large archway. The main lights are off, the gate open, the empty ticket booths still lit from inside.

    Propped against the pane of the nearest booth is a cardboard sign that says, "${last_name} vs. Wai, Come This Way". There's a hand-drawn arrow under it.

    You follow the sign past the stench of a dozen ostriches in an open-air pen, one still awake, its head swivelling to track you. At a row of family pedal carts, you see another of the signs, this one directing you past four ponds with a feed station between them. The station is a wooden box with a slot, a stack of paper feed bags, and a sign, "Five Dollars One Bag". The used bags are everywhere, on the dirt, in the water, stamped flat into the path. As you walk between the ponds, the carp scramble to the surface, mouths open.

    *if highest_trait = "analysis"
        The hand-made signs form a deliberate route through the dark, closed park. This has been planned, not improvised.
    *elseif highest_trait = "composure"
        Phone-light, narrow path, darkness. Everything else is background noise.
    *elseif highest_trait = "empathy"
        Pedal carts, discarded feed bags, empty attractions. None of the people these things were meant for.
    *else
        *bug Invalid trait

    There it is, the last sign, pointing into a corrugated metal warehouse.

    *page_break Queenie "Freestyle" Wai.
    *gosub queenie_fight
    *gosub_scene utils first_loss_notification
*else
    You pant as you slam a last flurry into the heavy bag. It swings back. A jab-cross to steady it. Then the changing room, where the showerhead runs for a moment before settling into a drip. You towel off, pull your street clothes on, then wave to Coach Lam as you head down. Nothing else to do for the rest of the night.

    It's only 7:15pm. What now? Your hands keep curling into fists, open, close, open.

    You walk down Tung Choi Street. A lamppost is strung with a vertical banner, sun-bleached, drooping. It announces "Night Vibes Hong Kong".

    There's so much to do. Retail therapy, dining out, nightlife. They're all enjoyable.

    Causeway Bay sounds good.
    *if (katie_donki)
        Katie took you to Don Don Donki recently, and there's plenty of other things to do.
    *else
        Crossing to the island would be a nice change of pace.

    *page_break Causeway Bay.
    *gosub fight_declined

*finish End of Chapter 8.



*label queenie_fight
*temp dc_easy 24
*temp dc_medium 32
*temp dc_hard 40
*set fight_momentum 5
*set trait_bonus_amount 2
*set upgrade_multiplier 3
*gosub_scene utils calc_adj_stats
You step inside and shut the door. A warm breeze, the room bathed in light. Then you see the stand-mounted fan heaters pointed at the entrance. And the ceiling lights are on, all of them.

There are two folding tables a few metres behind the entrance, where a middle-aged man is sitting, arms crossed, sunglasses on. On one table is a palm-sized metal bell and a rectangular digital timer. In the corner is the refreshments kiosk, now shuttered, the toilets beside it, and then an open concrete floor, dozens of fold-out plastic chairs shoved about. Towards the rear of the warehouse is a sea of navy-blue gym mats, tiled a good ten metres square, right to the walls. Beside it is a children's obstacle course — foam blocks, a tiny plastic slide, tubular tunnels, a climbing frame.

The crowd is around thirty strong, university students and the usual uncles, some milling around, some seated. A stout woman you haven't seen before, in a North Face fleece, is working the crowd with a notepad, taking bets. And standing near the gym mats is a young woman, around your height, black hair in a messy bun, rumpled T-shirt, green knee-length shorts, leather knee and elbow pads, and scuffed white Feiyue shoes. She holds a foam-wrapped stick, a metre and a half long, stiff, the tip giving a little when she leans her weight on it.

She's talking to a man wearing a yellow REFEREE vest and sunglasses. You drift over. Only her voice reaches you:

"What do you mean weapons aren't allowed? This isn't a weapon!"

A click of the tongue. "Of course it's not. It's wrapped in foam! How could I hit someone with it?"

She plants herself in front of the referee. "I'm serious! Look, take it and hit me with it as hard as you can. Just whack me with it."

You're beside them now. The referee's holding the stick with one hand and scratching his head with the other.

She catches sight of you and her face softens. "Oh, hi! You must be ${first_name}. I'm Queenie."

*fake_choice
    #Say hello back.
        "Hello, I'm ${first_name}. I'll be fighting you tonight. Nice to meet you."

        You extend your hand, and she squeezes it lightly, once, then lets go. "Nice to meet you too."

    #Ask about the stick.
        "Hello, yes, I'm ${first_name}. What's going on with the stick?"

        She nods at the referee. "I was just telling him that it's not a weapon."

The referee hefts the stick in his hands and gives the side of her thigh a quick whack. It slaps flat and springs back. He whacks it again, hard. Queenie doesn't move. Nodding to himself, he says, "Okay, the stick is cleared."

That's that, then.

Queenie holds out both her hands for the stick back and thanks him. You duck into the changing stalls and get changed, then put on your hand wraps and mouthguard. You emerge, boxing gloves in hand. Queenie's nearly finished warming up.

The referee calls you and Queenie to the middle of the mats and triple-taps his microphone. Two small speakers between the seating area and the mats echo it, three low thumps.

"Okay, everyone, tonight it's ${last_name} against Wai. Let's give them a round of applause! Have fun!" He puts the microphone on the officiating table and claps with his arms raised. The crowd, now seated, obliges.

Queenie beams and gives a small bow. You nod to the crowd and put on your gloves. Then you tap gloves — glove against stick, actually — and step back.

"Begin!"

The bell rings. Queenie keeps a few metres away, circling whenever you approach. She holds her stick low and out to her right.

*gosub_scene utils show_fight_momentum

*choice
    #Advance behind your ${jab}.
        You step in, then step in again, lead hand snapping out. No danger, but no progress; she gives ground sideways, always three metres away.

    #Cut the angle and intercept her.@{fight_vision  [i](Technique, Mental)[/i]|}
        *gosub_scene utils calculate_trait_bonus "analysis"
        *if (((adj_technique * 0.6) + (adj_mental * 0.4)) + trait_bonus_applied) >= ((dc_medium * 0.5) + (dc_hard * 0.5))    
            Instead of chasing her, you read the weight. Your left. You step diagonally to meet her. She's slow into the step. Your jab comes out, the cross ready, but she drops and rolls sideways, stick with her. Your jab meets air as she pushes herself up.
        *else
            Instead of chasing her, you read the weight. Your left. You step diagonally to meet her. She plants on that foot and drives off it to your right, facing you side-on. You try again, but she's too fast — you go left, she's already right. You go right, she's already gone.
    #Hold the centre and wait for her to commit.
        You take the centre and set your feet. She circles you, left, right, left, but you turn on the spot and keep her square. She stops circling, stands straight, and looks you up and down.

Queenie rolls her shoulders and shakes her arms out. Her speed picks up, left and right and left, her soles peeling off the mats, and you're turning the whole time. She darts in to your right, then, as you turn, she plants her stick in the mat and pushes off it. She's crossed to your left.

You're still facing where she was. You square up, and she grins and flashes you a V-sign, palm out.

"Here I come!"

Queenie dashes diagonally, on course to pass outside your right shoulder. When she's two metres away, she drives the end of the stick into the mat. It lands a metre from your lead foot, ahead and to your right.

*gosub_scene utils show_fight_momentum

*choice
    #Meet her with your guard.@{fight_vision  [i](Toughness, Power)[/i]|}
        *gosub_scene utils calculate_trait_bonus "composure"
        *set upgrade_bonus (upgrade_multiplier * block_level)
        You bring your gloves up and turn with her. She doesn't slow at all. Both hands clamp on the stick, her arms straighten, and her feet leave the mat. Her body swings out around it, the stick flexing.

        *if (((adj_toughness * 0.7) + (adj_power * 0.3)) + (trait_bonus_applied + upgrade_bonus)) >= ((dc_easy * 0.5) + (dc_medium * 0.5))
            She comes round from your right and her lead leg snaps out. You've already turned, forearms stacked. Her shin slams into your guard, and you hold.

            Queenie goes with it, ricocheting back and away. The stick pulls free with her, and she rolls backwards before jamming the stick into the mat and shoving herself up, stick at her side.

        *else
            *set fight_momentum -1
            She comes round from your right and her lead leg snaps out. The swing carries her wide, and you're a quarter-turn short. Her shin catches you in the ribs, half a kick, but your breath goes anyway.

            Your feet don't move, and she lands, then jams the stick into the mat and shoves off it, pulling it free as she goes. The stick settles at her side.

    #Step away, out of her arc.@{fight_vision  [i](Technique, Toughness)[/i]|}
        *gosub_scene utils calculate_trait_bonus "analysis"
        You push off your lead foot, giving ground. She doesn't slow. Both hands clamp on the stick, her arms straighten, and her feet leave the mat. Her body swings out around it, the stick flexing.

        *if (((adj_technique * 0.7) + (adj_toughness * 0.3)) + trait_bonus_applied) >= dc_medium
            She comes round from your right and her lead leg snaps out. You've stepped back two paces, and the sole of her shoe passes a hand's width from your chest. She swings out and away and then lands on her feet, stick at her side.

        *else
            *set fight_momentum -1
            She comes round from your right and her lead leg snaps out. You've stepped back a pace, but the edge of her foot catches your chest, enough to turn you sideways.

            As you square up again, she swings out and away and then lands on her feet, stick at her side.

    *selectable_if (counter_level > 0) #Step inside, ready to counter.@{fight_vision  [i](Mental, Technique)[/i]|}
        *gosub_scene utils calculate_trait_bonus "analysis"
        *set upgrade_bonus (upgrade_multiplier * counter_level)
        You step into the stick. She doesn't slow at all. Both hands clamp on the stick, her arms straighten, and her feet leave the mat. Her body swings out around it, the stick flexing.

        *if (((adj_mental * 0.6) + (adj_technique * 0.4)) + (trait_bonus_applied + upgrade_bonus)) >= ((dc_medium * 0.5) + (dc_hard * 0.5))
            *set fight_momentum +1
            She comes round from your right and her lead leg snaps out. But you've stepped forwards into the space. Her hip crashes against you instead, and you take it on your shoulder. She stops dead.

            She comes down, off balance, one hand still on the stick. It's too close, so you go for a body hook with your free hand. Her free hand takes some of it, but enough gets through, and she grunts.

            Queenie pushes off the stick and steps back, then pulls it free. By the time you step in again, she's set.
        *else
            *set fight_momentum -1
            She comes round from your right. You've stepped forwards into the space, crowding her. But she's folded into a tuck instead. Her knees crash into your side, and you stumble.

            Queenie drops onto the mat and is slow getting up. You get your feet back under you and turn to face her.

You bounce on your toes, arms loose, breath quick. Queenie taps the stick on the mat twice and winks at you. You go in tight, gloves up, then loose, but each time she plants the stick and pivots off it.

The stick. You stop watching her hands and watch the tip.

*gosub_scene utils show_fight_momentum

*choice
    #Probe her with a ${jab} at the moment she plants the stick.@{fight_vision  [i](Technique, Mental)[/i]|}
        *gosub_scene utils calculate_trait_bonus "analysis"
        *set upgrade_bonus (upgrade_multiplier * jab_level)
        *if (((adj_technique * 0.6) + (adj_mental * 0.4)) + (trait_bonus_applied + upgrade_bonus)) >= ((dc_easy * 0.5) + (dc_medium * 0.5))
            *set fight_momentum +1
            She goes left, comes back right. The tip sinks into the mat.

            She grips the top of the stick with both hands and boosts herself up, riding it like a pogo stick. Your jab lands on her shin. She tips back, and the stick goes with her, flexing and pulling free. She lands on her feet and rubs her shin. "Ow," she says, smiling.

            What was that about?
        *else
            *set fight_momentum -1
            She goes left, comes back right. The tip sinks into the mat.

            She grips the top of the stick with both hands and boosts herself up, riding it like a pogo stick. Your jab grazes her shin, and she tips back with it, the stick bending with her.
            *if (unlocked_eric_training)
                A flicker of energy at the bend. She pulls her knees in, and the stick snaps upright.
            *else
                Then she pulls her knees in, and the stick snaps upright.
            It throws her forward, and her padded knee clips your cheekbone.

            Your head turns. She hops off the stick and pulls it free, then beams at you.

            What was that?

    #Read her arc around the stick and meet her with a ${combo}.@{fight_vision  [i](Technique, Power)[/i]|}
        *gosub_scene utils calculate_trait_bonus "analysis"
        *set upgrade_bonus (upgrade_multiplier * combo_level)
        *if (((adj_technique * 0.5) + (adj_power * 0.5)) + (trait_bonus_applied + upgrade_bonus)) >= dc_medium
            *set fight_momentum +1
            She steps left. The tip comes down early, well ahead of her.

            As she swings around, you cut outside the stick and send the punches out earlier than is comfortable: jab, hook, jab. Her feet stay low this time, skimming the mat. Her soles drag, eating the speed, and she hauls on the stick to swing out the other side.

            Your punches meet air. She comes out of the turn slow, so you step in, jab-cross-hook. The jab catches her clean on the cheek, and then she's dropped and gone sideways.
        *else
            She steps left. The tip comes down early, well ahead of her.

            As she swings around, you cut outside the stick and send the punches out earlier than is comfortable: jab, hook, jab. Her feet stay low this time, skimming the mat. Her soles drag, eating the speed, and she hauls on the stick to swing out the other side.

            Your punches meet air. She comes out of the turn slow, so you step in with a jab-cross-hook, but your weight's on the wrong foot. By the time you square up, she's gone sideways.
    #Close with a ${flurry} before she can plant the stick.@{fight_vision  [i](Power, Toughness)[/i]|}
        *gosub_scene utils calculate_trait_bonus "analysis"
        *set upgrade_bonus (upgrade_multiplier * flurry_level)
        *if (((adj_power * 0.6) + (adj_toughness * 0.4)) + (trait_bonus_applied + upgrade_bonus)) >= ((dc_medium * 0.6) + (dc_hard * 0.4))
            *set fight_momentum +2
            The plant is easy to see, but the moment before it is not. You find it — the tip comes clear of the mat, her weight goes the other way — and you step in, both hands.

            Her stick arm is still out wide. Two to the body, one to the jaw. She twists off your line and away, upper body arched back. The stick never leaves her hand.
        *else
            The plant is easy to see, but the moment before it is not. You think you have it — the tip comes clear of the mat, her weight goes the other way — and you step in, both hands.

            Not quite. She draws her stick back and plants it at her feet, then bounds high and back, the stick throwing her further. Half a dozen fast punches, all air, until you stop and breathe. Queenie wipes her brow and purses her lips, and then she grins at you.

The bell rings.

*page_break
*if fight_momentum < 5
    Your shirt sticks to your back. Air comes in through your mouth. Nose, not mouth. You close it.

    Queenie's bouncing from foot to foot. She twirls the stick, then holds it across her shoulders like a barbell, and twists at the waist, one way, then the other.

*else
    Your shirt sticks to your back. You steady your breath.
    
    Queenie's bouncing from foot to foot. She wanders over to the children's obstacle course and prods the plastic slide with her stick.

The timer runs down and the bell rings. Glove against stick again.

Angles. You start closing them. Step in, making her give ground; take the centre, shrink her half. Queenie breaks left, then right, then left, showing you gaps that aren't there. You don't follow. Two minutes, maybe, and the corrugated steel comes up behind her. She doesn't look. Her free hand reaches back and finds the metal. Less than a metre of mat behind her.

*gosub_scene utils show_fight_momentum

*choice
    #Go in light and lead with your ${jab}.
        You step in light, side-on, eyes on the tip. You move, and she moves, stick down at her feet, shoving herself back with both hands. Queenie's shoes land on the wall, higher than your head, and then she drives off it, out and across, and lands behind you.

        Your gloves never got near her, and she's back in the centre.
    #Step in fast with your ${combo}.
        You step in fast, weight forward, eyes on the tip. You move, and she moves, stick down at her feet, shoving herself back with both hands. Queenie's shoes land on the wall, higher than your head, and then she drives off it, out and across, and lands behind you.

        Your gloves never got near her, and she's back in the centre.
    #Take it slow behind your ${block}.
        You walk her down, gloves up, no rush. As you edge forward, she plants the stick at her feet and shoves herself back with both hands. Her shoes land on the wall, higher than your head, and then she drives off it, out and across, and lands behind you.

        She's back in the centre.

Annoying. Cutting the angles isn't enough when she can go up. You try again. Step, step, turn. The corrugated steel comes up behind her again.

This time you have it. Her weight goes forward, the tip falls.

*gosub_scene utils show_fight_momentum

*choice
    #Move in behind your ${jab}, but hold it until she commits.@{fight_vision  [i](Mental, Technique)[/i]|}
        *gosub_scene utils calculate_trait_bonus "composure"
        *set upgrade_bonus (upgrade_multiplier * jab_level)
        *if (((adj_mental * 0.6) + (adj_technique * 0.4)) + (trait_bonus_applied + upgrade_bonus)) >= ((dc_medium * 0.8) + (dc_hard * 0.2))
            *set fight_momentum +1
            You go in just as Queenie plants the stick, lead hand cocked. She goes back to the wall, then drives off it, out and across. You turn before she lands, and you're on her as she spins around.

            All arm, no hip. Right on the mouth. Her head goes back with it and she takes a step back. Then she's bouncing again, stick to the side.

        *else
            You go in just as Queenie plants the stick, lead hand cocked. She goes back to the wall, then drives off it, out and across.

            You're late again. She's three metres away, the stick planted upright, one hand resting on top of it, the other on her hip.

    #Rush her with a ${flurry} before she can vault.@{fight_vision  [i](Power, Toughness)[/i]|}
        *gosub_scene utils calculate_trait_bonus "composure"
        *set upgrade_bonus (upgrade_multiplier * flurry_level)
        *if (((adj_power * 0.6) + (adj_toughness * 0.4)) + (trait_bonus_applied + upgrade_bonus)) >= ((dc_medium * 0.8) + (dc_hard * 0.2))
            *set fight_momentum +1
            You go in just as Queenie plants the stick, both hands going. She arches back. Two punches land at full stretch, then she shoves off the stick, back and away.

            Off the wall, out to your left. She gives you a thumbs-up with her free hand.

        *else
            You go in just as Queenie plants the stick, both hands going. She arches back. Your punches pass in front of her face, then she shoves off the stick, back and away.

            Off the wall, out to your left. She puffs out her cheeks and blows.

    #Feint a step-in and then step back.@{fight_vision  [i](Mental, Technique)[/i]|}
        *gosub_scene utils calculate_trait_bonus "empathy"
        *if (((adj_mental * 0.6) + (adj_technique * 0.4)) + trait_bonus_applied) >= dc_medium
            *set fight_momentum +1
            You go in just as Queenie plants the stick, weight going forward. Then you take it back. Queenie's already on the wall and off, driving out and across. You're there as she comes down. Punches, whatever comes out. She takes the first two on her arms, but the next one gets under her ribs. She folds around it.

            You set your feet again, and she's gone. "Good one!" she says.

        *else
            You go in just as Queenie plants the stick, weight going forward. Then you take it back. Queenie's already on the wall, knees folded, but then she looks where she's going. And she doesn't jump; she drops down. You move in, but she runs the wall line.

            She takes the centre again, then wags a finger at you, grinning.

And the bell rings. Queenie stands across the mats. 
*if (unlocked_eric_training)
    The air wobbles around her, pulsing in and out. It's thick, springy.
    *if (unlocked_chloe_training)
        Her tells are there too: arms loose, shoulders down, heels lifting and dropping. She's having a good time.
*elseif (unlocked_chloe_training)
    The tells are there: arms loose, shoulders down, heels lifting and dropping. She's having a good time.
*else
    She twirls the stick and looks around at the crowd, the referee, the walls.

After a while, your breathing settles. You shift your weight from foot to foot, waiting for the bell. This is a long minute.

The referee turns to the officiating table. He pulls off his sunglasses and waits.

The man at the table looks down at the timer. Still on 1:00.

"Sorry! Forgot to start it." Both hands go up beside his head, palms out, and he bows, quick. He rings the bell.

*page_break
Last round. You stand in the middle. Queenie goes left, plants the stick, goes right, swings around, swings back. You turn on the spot.

She comes in close, a metre away, stick at her side. Your hands stay put, and she bounds backwards. In and out, in and out. 

Sweat runs down her face, and her landings slap the mat. Four metres out, she plants the stick upright, and her chest rises and falls. Your gaze wanders past her to the timer: less than a minute left.

Queenie's no longer there. She's running straight at you, two metres out.

Oh.

*gosub_scene utils show_fight_momentum

*choice
    #Get a ${jab} out quick.@{fight_vision  [i](Technique, Mental)[/i]|}
        *gosub_scene utils calculate_trait_bonus "composure"
        *set upgrade_bonus (upgrade_multiplier * jab_level)
        *if (((adj_technique * 0.5) + (adj_mental * 0.5)) + (trait_bonus_applied + upgrade_bonus)) >= dc_medium
            The jab goes out. Queenie drops, her stick trailing behind her as her lead foot comes out low, the sole coming at your shins.

            You punch nothing — your jab made her drop early — and the sweep gets you late, no power. Your weight goes onto your rear leg. She slides past and rolls, and comes back up on her feet.

        *else
            *set fight_momentum -1
            Queenie gets another step forward before your jab comes out. She drops, her stick trailing behind her as her lead foot comes out low, the sole coming at your shins.

            You punch nothing, and the sweep takes your legs. You go down sideways, forearm hitting the mat, as she carries on past. You push yourself up. She's already on her feet.
            
    #Brace behind your ${block}.@{fight_vision  [i](Toughness, Power)[/i]|}
        *gosub_scene utils calculate_trait_bonus "composure"
        *set upgrade_bonus (upgrade_multiplier * block_level)
        *if (((adj_toughness * 0.7) + (adj_power * 0.3)) + (trait_bonus_applied + upgrade_bonus)) >= dc_medium
            Queenie drops, her stick trailing behind her as her lead foot comes out low, the sole coming at your shins.

            Your knees bend, weight going down through your heels. Her sole clips your shin. You stay, and she slides past and kicks back up onto her feet.

        *else
            *set fight_momentum -1
            Queenie drops, her stick trailing behind her as her lead foot comes out low, the sole coming at your shins.

            Your arms are still up at your ears, and the sweep takes your legs. You go down sideways, forearm hitting the mat, as she carries on past. You push yourself up. She's already on her feet.

    *selectable_if (dodge_level > 0) #Escape her with your ${dodge}.@{fight_vision  [i](Technique, Toughness)[/i]|}
        *gosub_scene utils calculate_trait_bonus "analysis"
        *set upgrade_bonus (upgrade_multiplier * dodge_level)
        *if (((adj_technique * 0.6) + (adj_toughness * 0.4)) + (trait_bonus_applied + upgrade_bonus)) >= dc_medium
            Queenie drops, her stick trailing behind her as her lead foot comes out low, the sole coming at your shins.

            Your feet leave the mat, out and to the side. Her foot passes under. She slides past and rolls, comes back up on her feet.

        *else
            *set fight_momentum -1
            Another step, and then Queenie drops. Her stick trails behind her as her lead foot comes out low, the sole coming at your shins.

            Your feet are stuck to the mat, and the sweep takes your legs. You go down sideways, forearm hitting the mat, as she carries on past. You push yourself up. She's already on her feet.

Queenie turns to face you, and she stops bouncing. She glances at the timer and waits. Then she draws a breath.
*if (unlocked_eric_training)
    The air wobbles around her again, thicker now.

She runs straight at you. Two metres out, she plants the stick and vaults, higher than your head, and then pulls the stick free with one hand.

She reaches the top of her arc and hangs there above you. Her free hand is out in front, one leg with it.

She's coming down on top of you, all of it aimed at your head. No time to dodge.

*gosub_scene utils show_fight_momentum

*choice
    #Turn side-on and meet her with a ${jab}.@{fight_vision  [i](Technique, Power)[/i]|}
        *gosub_scene utils calculate_trait_bonus "composure"
        *set upgrade_bonus (upgrade_multiplier * jab_level)
        The stick swings down ahead of her. The tip thunks into the mat, a metre in front of you. Both hands wrap around the top, and she drives straight down into it. The stick bends and holds.
        *if (unlocked_eric_training)
            The air around the shaft thickens and swells. The stick flings Queenie up a second time, lower and faster.
        *else
            It flings Queenie up a second time, lower and faster.

        *if (((adj_technique * 0.5) + (adj_power * 0.5)) + (trait_bonus_applied + upgrade_bonus)) >= ((dc_easy * 0.5) + (dc_medium * 0.5))
            The jab goes out but the bounce carries her over it. Your glove comes back and she lands on your guard. Her hands are off the stick, scrabbling at your arms, finding nothing. The two of you fall away from each other, both stumbling.
        *else
            *set fight_momentum -1
            The bounce throws off your timing and your jab finds air. Her hands are off the stick as she drops onto you. Her palms hit your face and she rides you down, a knee across your chest.

            Winded, you curl up into a defence. Nothing's coming.

    #Shell up and meet it with your ${block}.
        The stick swings down ahead of her. The tip thunks into the mat, a metre in front of you. Both hands wrap around the top, and she drives straight down into it. The stick bends and holds.
        *if (unlocked_eric_training)
            The air around the shaft thickens and swells. The stick flings Queenie up a second time, lower and faster.
        *else
            It flings Queenie up a second time, lower and faster.

        Her hands are off the stick as she lands on your forearms, all her weight arriving at once. She scrabbles for a grip, finding nothing.

        The two of you fall away from each other, both stumbling.

    *selectable_if (counter_level > 0) #Ready your ${counter} for when she lands.@{fight_vision  [i](Mental, Power)[/i]|}
        *gosub_scene utils calculate_trait_bonus "analysis"
        *set upgrade_bonus (upgrade_multiplier * counter_level)
        Your rear hand cocks at your jaw. The stick swings down ahead of her. The tip thunks into the mat, a metre in front of you. Both hands wrap around the top, and she drives straight down into it. The stick bends and holds.
        *if (unlocked_eric_training)
            The air around the shaft thickens and swells. The stick flings Queenie up a second time, lower and faster.
        *else
            It flings Queenie up a second time, lower and faster.

        *if (((adj_mental * 0.5) + (adj_power * 0.5)) + (trait_bonus_applied + upgrade_bonus)) >= ((dc_medium * 0.5) + (dc_hard * 0.5))
            *set fight_momentum +1
            You almost let the cross go early. Almost. She drops onto you and you throw it. She's let go of the stick, hands forward, and your punch goes through to her collarbone. It thumps. The two of you fall away from each other.
        *else
            *set fight_momentum -1
            The bounce throws off your timing and your cross finds air. Her hands are off the stick as she drops onto you. Your rear hand's still out. Her palms hit your face and she rides you down, a knee across your chest.

            Winded, you curl up into a defence. Nothing's coming.

Then the bell rings. Queenie steps back, gets her stick, and laughs, not too loud. She's still going, knees loose, shoulders rolling.

You find your breath. You both wait for the referee. After a brief consultation with the timekeeper, he comes back and stands between you. He takes your hand in his left and hers in his right, and holds them low.

*if (fight_momentum > 5)
    *set record_wins +1
    *set queenie_result "win"
    He raises your hand. "Winner is ${last_name}!"
*else
    *set record_losses +1
    *set queenie_result "loss"
    He raises Queenie's hand. "Winner is Wai!"

The crowd, silent during the match, now erupts into applause. "Woohoo! Great show! Bravo!"

A standing ovation. Queenie bows and nods at a group of three university-aged students. You nod your head as well.
 
The applause continues for a while and then dies down. The bookmaker goes around. The referee lets go and goes back to the table, taking off his vest. Queenie beams at you. "That was amazing! It's my second time at these!"

*fake_choice
    #Congratulate her on her agility.
        "You're really fast," you say.

        "Thanks! You're pretty tough yourself!"

        She holds out her knuckles. You tap your glove against them.

    #Ask her why she fights.
        "Why do you fight?" you ask her.

        She holds still. Her brows furrow; then she shrugs.

        "Haven't thought about it."

    #Thank her for the fight.
        "Good fight," you say.

        "Yeah! That was fun."

        She holds out her knuckles. You tap your glove against them.

The timekeeper approaches and thanks you and Queenie for coming. He hands each of you a glossy ticket — Tai Tong Organic EcoWorld, Admit One — and gestures towards the changing room.

"No more chatting, sorry. Rules are rules. Please enjoy your next visit with our compliments. Oh, and an extra one for the winner."
*if (queenie_result = "win")
    He hands you another ticket.
*elseif (queenie_result = "loss")
    He hands Queenie another ticket.
*else
    *bug Invalid queenie_result

Queenie waves to you as she goes to the group of three students, and they chat excitedly. You go to change.

*return

*label fight_declined
You come out at Causeway Bay, Exit E, up onto Great George Street. The sky's been dark for hours, but shopfront light floods the pavement. It's almost eight and you haven't eaten. You read the directory board at Island Beverley: Thai, Sichuan hotpot, Korean. A bit heavy. You walk down the street to Laforet, which has only a single sushi place on the second floor. You had that last week.

Giving up on the arcades, you head towards the harbour. On your right, a hoarding of metal and plywood. Above it, a tower of glass, unlit all the way up. Used to be a hotel, low chairs in the lobby, where you could sit and no one would chase you away. You arrive at the World Trade Centre — "wwwtc mall", they call it now, more lowercase, more luxury — and look at the floor guide.

Tonkichi. That's one you haven't had in a while. Japanese-style pork cutlets, so high-class that they offer free refills of shredded cabbage and rice. Not cheap, but it's Friday.

The lifts are at the back, past the toilets. Thirteenth floor. There's no queue and a waitress in a knotted scarf leads you to a side booth for two. The pleather bench is still warm. The table is dark wood and set with a tray of sauces, a canister of sesame seeds, and a buzzer. The waitress brushes her scarf aside, clears away the chopsticks from the seat opposite, and leaves you with the heavy menu.

You turn straight to the [i]tonkatsu[/i] pages. Just one set, then. Every cutlet is photographed at actual size.

*temp katsu_choice ""
*temp katsu_price ""
*fake_choice
    #Deep-Fried Premium Pork Loin Set, for $268.
        *set katsu_choice "pork loin set"
        *set katsu_price "almost three hundred"
        You settle on the photo of the Deep-Fried Premium Pork Loin Set: an enormous breaded pork loin, deep-fried to a golden brown, cut into inch-thick slices and stood up on a metal grille over a black rectangular plate. The set comes with a fluffy ball of shredded cabbage, a lemon wedge, and a single unexplained cherry tomato.

    #Deep-Fried Premium King Prawns and Pork Loin Set, for $378.
        *set katsu_choice "prawns and pork loin set"
        *set katsu_price "over four hundred"
        You settle on the photo of the Deep-Fried Premium King Prawns and Pork Loin Set: three breaded prawns, their tails jutting from the breadcrumb coating, and an enormous pork loin, deep-fried to a golden brown and cut into inch-thick slices, all of it on a metal grille over a black rectangular plate. The set comes with a fluffy ball of shredded cabbage, a lemon wedge, and a single unexplained tomato slice.

    #Deep-Fried Thick Cut Japan Premium Royal Pork Loin Set, for $368.
        *set katsu_choice "thick cut pork loin set"
        *set katsu_price "just over four hundred"
        You settle on the photo of the Deep-Fried Thick Cut Japan Premium Royal Pork Loin Set: an enormous breaded pork loin, thicker than the others, deep-fried to a golden brown, cut into inch-thick slices and stood up on a metal grille over a black rectangular plate. The set comes with a fluffy ball of shredded cabbage, a lemon wedge, and a single unexplained cherry tomato.

You press the buzzer, and the light glows red. Seconds later, the waitress is back, tablet in hand. You tell her you'd like the ${katsu_choice}, and that's all, thank you. She taps the tablet three times and leaves. A minute later, she's back with a teapot, a cup, and a mortar and pestle.

"Have you dined with us before?"

You have, but the last time the restaurant was on the fourth floor. "No."

She fills your cup with dark brown tea. Then she slides the mortar in front of you and turns the canister of sesame seeds to face you.

"You put the seeds in and grind them with this. Then you pour some of the [i]tonkatsu[/i] sauce in and stir it until it thickens. It's a great dipping sauce for the pork. And here is the ponzu dressing for the salad." She gestures with her palm to a slim bottle on the tray.

That's right, salad. Not shredded cabbage. You had forgotten the thinly sliced onions they put on top. You thank her for the explanation, and she takes the menu with her.

*page_break
You grind the sesame. Each seed crumbles against the grooves in the bowl, and you tip the pot over the bowl, the sauce coming out slow. It smells of vinegar. You stir, and it drags on the pestle.

A little while later, your set arrives on a black lacquer tray. A small bowl of rice next to a bowl of miso soup, steam coming off both, and three slices of yellow radish pickle, and the fluffy ball of shredded cabbage. No onion on top. Must have misremembered.
*if katsu_choice = "pork loin set"
    The pork loin sits on its grille, as big as the photo, crackling, whiskers of breadcrumb trembling in the heat.
*elseif katsu_choice = "thick cut pork loin set"
    The pork loin sits on its grille, as big as the photo, crackling, whiskers of breadcrumb trembling in the heat.
*elseif katsu_choice = "prawns and pork loin set"
    The pork loin sits on its grille, as big as the photo, crackling, whiskers of breadcrumb trembling in the heat, with three prawns standing on their tails beside it.
*else
    *bug Invalid katsu_choice

You squeeze the dressing onto the cabbage, a spurt of cloudy oil with each press. You take a slab of pork between your chopsticks: crust, a pale seam, pink meat, then seam and crust again. You dip one end into the sauce and bite off half. It crunches. The crust gives. Warm fat runs out across your tongue.

You chew, then swallow. A smile. A sip of tea. You dip the remaining half in the sauce again and put it in your mouth, this time with a mouthful of rice. You chew them together, the rice soaking up the fat and the sauce. Then you take a bite of the cabbage. Too much dressing.

The bill comes to ${katsu_price} dollars with the service charge. You pay it. Down thirteen floors, past the toilets, out onto Jaffe Road. It's just after nine.

*page_break
Time for Friday night fun. You walk to Windsor House and ride the escalators up two floors. The corner unit is Jumpin Gym U.S.A. Hardly any claw machines at this branch, mostly coin pushers and a rainbow coin toss table. Busy tonight, mostly families, and a few teenagers in leather jackets, hands in pockets, by the air hockey tables. Every machine plays its own music at maximum volume.

You pull a Jumpin Gym membership card out of your wallet and tap it on the reader by the reception counter. You're not even sure why you have it; maybe it was a raffle prize. Still valid, three hundred credits on it.

You approach the coin pushers. There's one where a model train with coin-filled carriages puffs around an octagon, a station on each of its eight sides, the lower shelves heaped with coins past the edge. Another has the same sliding shelf at the bottom, but the backboard shows an anime woman in a bodysuit with a starship behind her, a jumble of slots and toggles in front, and an instruction panel with numbered diagrams detailing power-ups, bonus rounds and coin towers. There's also a bank of four coin pushers, topped with a moulded plastic clown head, mouth open in a grimace. The head's playing a ten-second loop of circus music.

*fake_choice
    #Play at the train machine.
        You sit down at one of the open sides and tap your card to the reader. You press the large red button — there's only one button — and a coin rattles down the chute. There's a slot marked BONUS in the middle, which it misses, clinking onto a pile on the upper shelf.

        You try again, waiting for the upper shelf to extend. The coin misses again, but lands on a clear part. As the shelf retracts, your coin pushes a few others down to the lower shelf. You keep going. Every so often, a coin slides into the bonus slot, and five more coins drop down the chute. The overhang on the lower shelf grows, but doesn't fall.

        Dinging on your left, then a siren, then flashing red lights. The train stops at that side. The carriages tip out their coins, one by one, crash after crash. The woman there stares at the coins, then presses the button again.

    #Play at the starship machine.
        You sit down at the machine and tap your card to the reader. You press the large red button — there's only one button — and a coin rattles down the chute. It bounces around the triangular rows of pins, misses all the bonus lanes, and lands on a pile on the upper shelf.

        You try again, and the coin misses again. And again. Finally, one drops into a bonus slot, and the backboard turns white as three reels start to spin. Laser pistol, laser pistol, coin. No match.

        You mash the button and coins clatter down. One drops into a slot on the right-hand side, and a dozen coins shoot in from a side ramp. A few coins go over the front edge. Six more tickets on your card.

    #Play at the clown machine.
        You sit down at one of the machines and tap your card to the reader. You press the large red button — there's only one button — and a coin shoots out into a spinning carousel. It circles twice and misses the ramp at its rim, falling onto a pile on the shelf below it.

        You try again, and the coin misses again. And again. And again. You start counting the misses. After eighteen, a coin goes up the ramp and in. The wheel on the backboard spins, slows, and comes to rest with the pointer on ten.

        Ten tickets added to your card. The clown head turns left, then right. "Hee hee hee," it says.

*page_break
*set queenie_result "frog"
Behind you, [i]tink-tink-tink-tink-tink[/i], coins going down a chute into someone's tub. You stand up from the coin pusher and cross to the token dispenser. You hold a hand-sized tub under the chute, tap your card on the machine for fifty coins, and they clatter out.

Then you make for the Rainbow of Happiness: a varnished board at hip height, larger than a ping-pong table, rainbows painted across it, red widest, then yellow, then green, then a spot of blue no wider than a coin, each arc lined in black. A two-foot-wide aisle separates the board from a counter that wraps around on three sides. Two high-schoolers in dark blue polo shirts stand at attention in the aisle, windscreen wipers at the ready, as if defending the rows of plushes on the backboard.

It's shoulder-to-shoulder, no room to throw. You stand in the second row, and then a plump boy leaves, clutching a handful of tickets and a bag of potato chips. You take his place, a centre spot, with a clear throw down the middle. Coins rain down on the table, fall off the sides, get swept off by the two with the wipers. You toss your coins one by one. Most of them go wide or straddle the black lines, but half a dozen of the coins land on the fat red arcs — ten tickets each — and one lands on green, for a smiling plush frog bigger than your hand.

Then, down to the last few coins, you toss one, and it slides, slides, into the centre rainbow, into the blue. Nothing at first, then a murmur, more people notice, it swells, building to a roar — "wah" — and the coins stop landing.

The staff glance at each other, then the shorter one nods, jogs away, and returns in seconds with a glass dome that's a foot wide. She sets it down over your coin with both hands. The noise dies off and the coins start dropping again.

A minute later, a middle-aged woman in a black vest steps in. She raises both arms above her head and says, "Stop."

Everyone stops, and she lifts the glass dome and takes out a phone from her vest pocket. She leans over, snaps a few photos, then declares, "Touched the line. No prize."

"Ooo..."

The coins rain down again. You leave, frog in hand.

*page_break
Half an hour later, you're on Argyle Street. The pavement's down to a few couples and a group of teenagers huddled outside a Circle K. You start walking the short distance home. A young couple comes the other way, and the man sees your plush frog and gives you a thumbs-up.

You reach your building. One lift ride up to your shoebox flat. Before going up, you turn back and watch the street. A private car rolls past, and the lights go off in the shop opposite.

It's too early to turn in, so you go to MK Fight instead. You climb the three storeys and push open the door. Just Coach Lam and two others on the mats.

Coach Lam turns his head towards you, then he's back to the fighters. You sit down against the wall. They're drilling a combination, a one-two-five, and Coach Lam moves between them with his mitts.

Coach Lam says a few words to the fighters and comes over to you. His eyes land on your frog. He sits down next to you and hands you a water bottle. You crack open the cap and take a long drink.

You both sit there, staring straight ahead, as the fighters finish their cooldowns and pack up.
*return
