# Ravenclaw vs. Hufflepuff

label start_hufflepuff_match:
    # Chat with Cho the day before the match

    cho "" (xpos="mid", ypos="base", trans=fade)
    gen "[name_cho_genie], what do you say... ready for your first game of the season?" ("base", xpos="far_left", ypos="head")
    cho "To be honest, [name_genie_cho], I'm feeling quite nervous." ("soft", "base", "worried", "R")
    gen "Don't worry. I believe you are ready..." ("base", xpos="far_left", ypos="head")
    gen "When are you going to play against Hufflepuff?" ("base", xpos="far_left", ypos="head")
    cho "That's up to you, [name_genie_cho]. As headmaster, you decide when the games will be held..." ("open", "base", "base", "mid")
    gen "So if I were to say tomorrow, it will happen tomorrow?" ("base", xpos="far_left", ypos="head")
    cho "Yes, [name_genie_cho]." ("base", "base", "base", "mid")
    gen "Well then, tomorrow it is!" ("grin", xpos="far_left", ypos="head")

    if states.env.weather in {"rain", "storm"}:
        cho "Sounds great, [name_genie_cho]. I just hope it stops raining before then." ("soft", "base", "base", "R")
    elif states.env.weather in {"snow", "blizzard"}:
        cho "Sounds great, [name_genie_cho]. I just hope it stops snowing before then." ("soft", "base", "base", "R")
    elif states.env.weather == "overcast":
        cho "Sounds great, [name_genie_cho]. I just hope the weather doesn't get worse." ("soft", "base", "base", "R")
    else:
        cho "Sounds great, [name_genie_cho]. I just hope the weather stays like it is." ("soft", "base", "base", "R")

    gen "With our tactics, this will be a piece of cake!" ("base", xpos="far_left", ypos="head")
    cho "I hope you're right, [name_genie_cho]." ("base", "base", "base", "mid")
    cho "Anyhow, I need to prepare for the game." ("soft", "base", "base", "R")
    cho "See you then, [name_genie_cho]!" ("smile", "base", "base", "mid")
    gen "Good luck!" ("base", xpos="far_left", ypos="head")

    call cho_walk(action="leave")

    $ states.cho.ev.quidditch.lock_training = True
    $ states.cho.ev.quidditch.lock_practice = True

    $ cc_event_pause  += 1 # Event starts on the next day
    $ cc_summon_pause += 1 # Can't be summoned until next event

    $ states.cho.busy = True

    $ states.cho.ev.quidditch.hufflepuff_stage = "start"

    jump end_cho_event


label hufflepuff_match:
    # Quidditch match: Ravenclaw vs. Hufflepuff

    $ cho_outfit_last.save()
    $ her_outfit_last.save()

    $ cho.equip(cho_outfit_quidditch)
    $ hermione.equip(her_outfit_default)

    stop music fadeout 1

    # Start in the office
    call sna_walk(action="enter", xpos="mid", ypos="base")
    pause .5

    play music "music/Dark Fog.ogg" fadein 1 if_changed
    sna "Are you ready to go?" ("snape_03", xpos="base", ypos="base")
    gen "Can't you bloody knock?!" ("angry", xpos="far_left", ypos="head")
    sna "Should I?{w=0.3} I was sure you were already waiting for me..." ("snape_05")
    gen "For what?" ("base", xpos="far_left", ypos="head")
    sna "We have to head out for the pitch. The whole school is waiting on you." ("snape_24")
    gen "Didn't you nag me earlier not to leave this room unless absolutely necessary?" ("base", xpos="far_left", ypos="head")
    sna "A rule which I'm sure you have disregarded a great many times already..." ("snape_29")
    sna "You'll have to join me on this one. As headmaster, you are expected to attend the Quidditch matches." ("snape_06")
    gen "And that's today?" ("base", xpos="far_left", ypos="head")
    sna "Indeed." ("snape_03")
    gen "(...)" ("base", xpos="far_left", ypos="head")
    gen "Wouldn't the other teachers see me if I went?" ("base", xpos="far_left", ypos="head")
    sna "Don't worry. I've arranged to have us moved from the teachers' seats to the commentator booth." ("snape_24")
    sna "Just the two of us..." ("snape_23")
    gen "And Miss Granger?" ("base", xpos="far_left", ypos="head")
    sna "Granger..." ("snape_08")
    sna "Well, that's very displeasing to say the least..." ("snape_07")
    sna "In any case, you won't be seen up close by any of the other teachers." ("snape_09")
    gen "Sounds like a snore. Can't I stay here, and you'll tell them I'm ill or something?" ("base", xpos="far_left", ypos="head")
    sna "No." ("snape_04")
    sna "That would just prompt the nurse to examine you closely..." ("snape_03")
    gen "Well... I wouldn't mind that." ("base", xpos="far_left", ypos="head")
    sna "I'm sure you wouldn't..." ("snape_06")
    sna "Good thing though is that we'll be able to bring a little something to keep us occupied." ("snape_20")
    scene onlayer dolls
    with d3

    # Show wine
    call give_reward(text=_(">Not grape-juice."), gift="interface/icons/wine.webp")

    gen "That's all the persuasion I needed, my friend!" ("base", xpos="far_left", ypos="head")
    hide screen bld1
    with d3
    pause .2

    # Teleport to door
    play sound "sounds/kick.ogg"
    call gen_chibi("hide")
    with d3

    call gen_chibi("stand", "door", "base")
    call teleport(position="genie", effect=False)
    pause .5

    call gen_chibi("stand", "door", "base", flip=False)
    with d3
    pause .2

    call bld
    gen "What are we waiting for. Let's go!" ("base", xpos="far_left", ypos="head")

    call sna_chibi("stand", "mid", "base", flip=True)
    with d3
    pause .2

    sna "(When did he?...)" ("snape_05", ypos="head")
    sna "After you..." ("snape_09", ypos="head")
    pause .8

    gen "Actually, I have no idea where we're going." ("base", xpos="far_left", ypos="head")

    call gen_chibi("stand", "door", "base")
    with d3
    pause .2

    call bld
    gen "You should lead the way..." ("base", xpos="far_left", ypos="head")
    sna "Right you are. Time to get smashed!" ("snape_02", ypos="head")

    call sna_walk(700, "base")

    # Blackfade
    stop music fadeout 2
    stop background fadeout 2
    play sound "sounds/door.ogg"
    call blkfade
    pause 2

    nar "You make your way towards the pitch with Snape, pondering if this was such a good idea."
    play sound "sounds/steps_grass.ogg"
    nar "After walking for a while across the school grounds, a huge oval-shaped pitch with massive towers around it looms before you."
    nar "Amazed by...{w=0.6}{nw}"
    gen "Agrabah towers are larger..." ("base", xpos="far_left", ypos="head")
    nar "Amazed... by the sight, Snape then leads you to the base of one of the towers."

    # Pitch entrance
    centered "At the Quidditch pitch..."

    call room("quidditch_pitch")
    play background "sounds/outskirts.ogg" fadein 2
    call sna_chibi("stand", "right", "base")
    call gen_chibi("stand", "mid", "base", flip=True)
    call hide_blkfade
    pause .8

    call bld
    gen "So, this is it? This is where the quidditch is played?" ("base", xpos="far_left", ypos="head")
    sna "Of course, did you expect something else?" ("snape_05", ypos="head")
    gen "I mean... What's the point of the grass and sand? Isn't it played in the air?" ("base", xpos="far_left", ypos="head")
    sna "..." ("snape_25", ypos="head")
    gen "Wouldn't it make more sense to have the ground be something soft if they fall?" ("base", xpos="far_left", ypos="head")
    gen "Like...{w=0.3} magic marshmallow or something..." ("grin", xpos="far_left", ypos="head")
    sna "You think there's a spell for everything?" ("snape_35", ypos="head")
    gen "From previous experiences with this world so far...{w} yes, pretty much." ("base", xpos="far_left", ypos="head")
    sna "Anyhow... time to get moving.{w=0.6} This place will be filled with teachers and students any minute now." ("snape_03", ypos="head")
    sna "After me..." ("snape_02", ypos="head")

    call sna_walk(path=[("stairs_base", "base"),("stairs_up", "stairs_up")])
    call gen_walk(650)
    call chibi_emote("exclaim", "genie")
    pause 0.3

    call chibi_emote("hide", "genie")
    call gen_chibi("stand_alt")
    with d3
    pause 0.5

    call bld
    gen "(*He-heh*... \"Snape sux\"...)" ("grin", xpos="far_left", ypos="head")
    call gen_chibi("stand")
    call gen_walk(path=[("stairs_base", "base"),("stairs_up", "stairs_up")])

    call blkfade

    # Sound check
    if get_volume_preference('music') < 0.1 or get_volume_preference('sfx') < 0.1:
        nar "This section of the game is best played with the sound turned on. Go to settings, then audio to adjust the volume."

    pause 1

    # Quidditch stands
    call room("quidditch_stands")
    call quidditch_stands(crowd=crowd_mid)

    ### Snape Chibi Postions ###
    # First Step R:     call sna_chibi("stand", flip=True, 25, 234)
    # Second Step R:    call sna_chibi("stand", flip=True, 85, 260)
    # Third Step R:     call sna_chibi("stand", 120, 295, flip=True)
    # Fourth Step R:    call sna_chibi("stand", flip=True, 160, 330)

    ### Genie Postions ###
    ## Sprite:          call gen_main(face="base", base="base", xpos=-10, ypos=140)
    # First Step Mid:   call gen_chibi("stand", flip=True, -20, 270)
    # Second Step L:    call gen_chibi("stand", flip=True, -20, 320)
    # Second Step Mid:  call gen_chibi("stand", flip=True, 0, 360)
    # Third Step L:     call gen_chibi("stand", 20, 365, flip=True)
    # Third Step Mid:   call gen_chibi("stand", 65, 340, flip=True)
    # Floor Mid:        call gen_chibi("stand", flip=True, 170, 400)
    # Podium:           call gen_chibi("stand", 280, 400, flip=True)

    ### Hermione Postions ###
    ## Sprite:          her "" (flip=True, xpos=290, ypos="base")
    # Second Step Mid:  call her_chibi("stand", 40, 295, flip=True)
    # Floor Mid:        call her_chibi("stand", flip=True, 180, 400)
    # Podium:           call her_chibi("stand", 300, 400, flip=True)
    # Podium Sidestep:  call her_chibi("stand", 260, 460, flip=True)

    ### Tonks Positions ###
    # 1st Step R:       call ton_chibi("stand", flip=True, 55, 235)
    # 4th Step R:       call ton_chibi("stand", flip=True, 180, 340)
    # Floor mid:        call ton_chibi("stand", flip=True, 180, 400)
    # Floor R:          call ton_chibi("stand", flip=True, 230, 370)
    # Podium:           call ton_chibi("stand", flip=True, 300, 400)
    # Sitting:          call ton_chibi("sit", flip=True, xpos=-140, ypos=125)

    ### Cho Positions ###
    ## Flying Sprite:   call cho_main(xpos=580, ypos=-200)
    # Flying Chibi:     call cho_chibi("fly", 530, 360)

    $ snape_chibi.zorder = 2
    $ hermione_chibi.zorder = 3
    $ genie_chibi.zorder = 4

    # Match starts
    play background "sounds/crowd.ogg" fadein 2
    call hide_blkfade
    pause 1

    play sound "sounds/footsteps.ogg"
    pause .8

    call sna_chibi("stand", 120, 295, flip=True)
    with d3
    pause .8
    call sna_chibi("stand", flip=False)
    with d3

    sna "Careful at the top. Don't hit your head." ("snape_35", ypos="head")
    play sound "sounds/kick.ogg"
    with hpunch
    pause .6
    gen "Bloody hell!" ("angry", xpos="far_left", ypos="head")
    play sound "sounds/footsteps.ogg"
    pause .8
    call gen_chibi("stand", 20, 365, flip=True)
    with d3
    pause .5
    call sna_chibi("stand", flip=True)
    with d3
    sna "Well, here we are..." ("snape_09")
    sna "Now we are only waiting for--" ("snape_03")
    play sound "sounds/footsteps.ogg"
    call her_chibi("stand", 40, 295, flip=True)
    with d3
    pause .5
    call sna_chibi("stand", flip=False)
    with d3
    pause .2
    her "Professors." ("open", "closed", "base", "mid", ypos="head", flip=True)
    sna "Granger..." ("snape_35")
    call sna_chibi("stand", flip=True)
    with d3
    pause .2

    call her_walk(path=[(180, 400),(300, 400)])
    call her_chibi("stand", 300, 400, flip=True) # Temp Bugfix
    pause .5

    her "Good morning everyone, and welcome to the i-inaugural--" ("soft", "base", "worried", "mid", flip=True, xpos=290, ypos="base", trans=d3)
    her "" ("normal", "base", "worried", "mid")
    sna "Speak up girl! And would it kill you to enunciate?!" ("snape_03", ypos="head")
    her "*Grrr*" ("mad", "narrow", "angry", "R")
    her "" ("open", "closed", "angry", "mid")
    her "Welcome to the first Quidditch game of the season...{fast}" ("open", "base", "worried", "mid")

    call quidditch_stands(crowd=crowd_full)
    with d5
    sna "Better... You've advanced from Troll to Dreadful..." ("snape_09", ypos="head")
    her "" ("normal", "closed", "base", "mid")
    gen "{size=-4}Troll?{/size}" ("base", xpos="far_left", ypos="head")
    sna "{size=-4}Those are grades we give out to our students, for decidedly poor performances, like Granger's...{/size}" ("snape_01", ypos="head")
    her "..." ("mad", "base", "angry", "mid")
    with hpunch

    stop background fadeout 4

    her "{size=+5}Quiet Please!{/size}" ("scream", "base", "angry", "mid")
    her "..." ("normal", "closed", "angry", "mid")

    play background "sounds/crowd_low.ogg" fadein 2

    her "Thank you..." ("open", "happy", "base", "mid_soft")
    her "L-let's begin!" ("base", "base", "base", "mid")

    play music "music/machinations-by-kevin-macleod.ogg" fadein 1 fadeout 1 if_changed

    her "Hufflepuff versus Ravenclaw!" ("smile", "base", "base", "mid_soft")

    call quidditch_stands(crowd_react=["emo8", "emo7", "emo8"])
    with d3

    play sound "sounds/crowd_cheer.ogg"
    nar "A loud cheer roars from the grandstands."

    # Speech
    her "And now, to say a few words and declare the games open, Professor Dumbledore!" ("open", "closed", "base", "mid")
    her "" ("base", "base", "base", "mid_soft")
    call ctc

    hide hermione_main
    with d3

    gen "{size=-4}What? Isn't that me?{/size}" ("base", xpos="far_left", ypos="head")
    sna "It is." ("snape_02", ypos="head")

    call quidditch_stands(crowd_react=[None, "emo7", "emo8"])
    with d3

    gen "Why did no one warn me about this?" ("base", xpos="far_left", ypos="head")

    call quidditch_stands(crowd_react=[None, None, "emo8"])
    with d3

    sna "I've been looking forward to watching you bumble your way through this..." ("snape_22", ypos="head")

    call quidditch_stands(crowd_react=[None, None, None])
    with d3

    sna "Besides, you only have to give some trivial speech about team spirit, gesticulate wildly and say \"let the games begin\". A child could manage it." ("snape_24", ypos="head")
    sna "Now get up there!" ("snape_10", ypos="head")

    stop background fadeout 4
    stop music fadeout 2

    $ hermione_chibi.zorder = 4
    $ genie_chibi.zorder = 3
    #call her_chibi("stand",350,185+186, flip=True)
    call her_chibi("stand", 260, 460, flip=True)
    with d3
    pause .5

    call gen_chibi("stand", 65, 340, flip=True)
    with d3

    call gen_walk(path=[(170, 400),(280, 400)])
    call gen_chibi("stand", 280, 400, flip=True) # Temp Bugfix
    with d3
    pause .5

    $ states.gen.image.zorder = 15

    show screen blktone
    with d5
    pause 1.0
    gen "" ("base", xpos=0, ypos="base")
    show genie zorder states.gen.image.zorder
    with d3
    pause 2.0

    menu:
        gen "(Shit, what do I even talk about?)" ("angry")
        "-Miracles-":
            play background "music/fanfare.ogg" fadein 1.0
            gen "Great moments are born from great opportunity." ("base")
            nar "A reverent hush falls over the crowd..."
            gen "And that's what you have here tonight--" ("base")
            gen "That's what you've earned here tonight!" ("base")

            pause .8
            play sound "sounds/killswitch_on.ogg"
            hide screen blktone
            call quidditch_stands(spotlight=True)
            with d1
            pause .8

            show genie zorder states.gen.image.zorder
            with d3
            gen "One game..." ("base")
            gen "Tonight, WE are the greatest hockey team in the world!" ("base")
            gen "You were born to be hockey players..." ("base")
            gen "Every one of you..." ("base")

            call quidditch_stands(crowd_react=["emoq", None, None])
            with d3

            gen "And you were meant to be here tonight!" ("base")
            gen "This is your time..." ("base")

            gen "Their time is done, it's over! I'm sick and tired of hearing what a great hockey team the soviets have!" ("base")

            call quidditch_stands(crowd_react=["emoq", "qu", None])
            with d3
            pause 1.5

            mal "I think Dumbledore has finally started to lose his marbles..."
            mal2 "I think you might be right."
            play background "sounds/wind_long_loop.ogg" fadein 2 fadeout 2

            call quidditch_stands(crowd_react=["sur", None, None])
            with d3

            gen "Screw it! This is our time..." ("base")

            call quidditch_stands(crowd_react=["sal", None, None])
            with d3

            mal "..."
            play sound "sounds/cough_male.ogg"
            call quidditch_stands(crowd_react=["sal", "sal", None])
            with d3

            mal2 "..."
            call quidditch_stands(crowd_react=[None, None, None], spotlight=False)
            with d1

            play sound "sounds/killswitch_off.ogg"
            gen "Now let the games begin!" ("base")

        "-Freedom-":
            play background "music/fanfare.ogg" fadein 1.0
            gen "Sons of Scotland!" ("base")

            pause .8
            play sound "sounds/killswitch_on.ogg"
            hide screen blktone
            call quidditch_stands(spotlight=True)
            with d1
            pause .8

            gen "I am William Wallace..." ("base")

            call quidditch_stands(crowd_react=["qu", None, None])
            with d3

            nar "A confused murmur falls over the crowd."
            sna "{size=-4}William Wallace?{/size}" ("snape_05", ypos="head")
            gen "{size=-4}That's not your line...{/size}" ("angry")
            gen "Yes... I am William Wallace!" ("grin")
            gen "And I see a whole army of my countrymen, here in the defiance of tyranny..." ("grin")
            gen "You have come to fight as free men, and free men you are. What would you do with that freedom? Will you fight?" ("grin")

            play sound "sounds/murmur.ogg"
            call quidditch_stands(crowd_react=["qu", "emoq", None])
            with d3

            nar "The sound of confused murmuring increases even further..."
            mal "Fight? Against what?"
            gen "{size=-4}See, that guy knows his lines...{/size}" ("base")
            sna "..." ("snape_03")
            gen "Aye... fight, and you may die." ("base")

            call sna_chibi("stand", 230, 400, flip=True)
            with d3
            pause .2

            sna "I think it's time for you to step down from the..." ("snape_01")
            gen "No, I'm just about to get to the best part!" ("angry")
            play sound "sounds/cloth_sound.ogg"
            stop background fadeout 2.0

            hide genie
            call sna_chibi("stand", 210, 400, flip=True)
            call gen_chibi("stand", 260, 400, flip=True)
            with d3

            nar "Snape then begins to drag you away from the podium."
            play background "sounds/wind_long_loop.ogg"

            show genie zorder states.gen.image.zorder
            with d3
            gen "This is our chance... they may take away our microphones...{w=1.0} But they...{nw}{w=0.3}" ("angry")
            play sound "sounds/microphone_feedback.ogg"

            call sna_chibi("stand", 230, 400, flip=True)
            call gen_chibi("stand", 280, 400, flip=True)
            with d3

            gen "This is our chance... they may take away our microphones...{w=1.0} But they... {fast}But they...{w=0.5}{nw}" ("angry")

            call sna_chibi("stand", 190, 400, flip=True)
            call gen_chibi("stand", 240, 400, flip=True)
            with d3

            gen "But they'll never take away {shake}our freedom!{/shake}" ("angry")

            hide genie
            call quidditch_stands(crowd_react=[None, None, None], spotlight=False)
            with d3

            play sound "sounds/killswitch_off.ogg"

            $ snape_chibi.zorder = 3
            $ genie_chibi.zorder = 2
            call sna_chibi("stand", 170, 400, flip=True)
            call gen_chibi("stand", 240, 400, flip=False)
            with d3

        "-Nam-":
            play background "sounds/wind_long_loop.ogg"

            pause .8
            play sound "sounds/killswitch_on.ogg"
            hide screen blktone
            call quidditch_stands(spotlight=True)
            with d1
            pause .8

            gen "{cps=7}Goooooooood{/cps}  morning,{w=0.1} Vietnam!" ("grin")
            gen "Hey, this is not a test... This is rock and roll!" ("grin")
            gen "Time to rock it from the delta to the DMZ!" ("grin")
            gen "Is that me, or does that sound like an Elvis Presley movie?" ("grin")

            call quidditch_stands(crowd_react=["sal", "emoq", None])
            with d3

            nar "A confused murmur falls over the crowd."
            gen "*Ugh*..." ("base")

            play sound "sounds/microphone_feedback.ogg"
            gen "Is this thing on?" ("base")

            call quidditch_stands(crowd_react=["sal", "sal", None])
            with d3
            play sound "sounds/cough_male.ogg"
            mal "..."

            call quidditch_stands(crowd_react=["emoq", "qu", None])
            with d3

            gen "It's O six hundred, what does the O stand for?" ("grin")
            gen "Ooooh my god it's early!" ("grin")

            play sound "sounds/murmur.ogg"
            nar "The sound of confused murmuring increases even further..."
            mal "What's he on about? Is the fire lit but the cauldron empty?"
            mal2 "Looks like it..."

            call quidditch_stands(crowd_react=[None, None, None], spotlight=False)
            with d1

            play sound "sounds/killswitch_off.ogg"

            gen "Tough crowd... Anyway, let the games begin!" ("base")

    hide genie
    with d3

    play music "music/machinations-by-kevin-macleod.ogg" fadein 1 fadeout 1 if_changed

    play background "sounds/crowd_low.ogg" fadein 3 fadeout 2
    play sound "sounds/crowd_cheer.ogg"
    call quidditch_stands(crowd_react=["emo8", "emo7", "emo8"])
    with d3

    nar "After a moment of confusion, the crowd cheers excitedly, eager to see the match kick-off."

    call quidditch_stands(crowd_react=[None, None, None])
    with d3

    call gen_walk(path=[(170, 400),(65, 340)])

    $ snape_chibi.zorder = 2
    $ genie_chibi.zorder = 3
    call gen_chibi("stand", 20, 365, flip=True)
    call sna_chibi("stand", 120, 295, flip=True)
    with d5
    pause .2

    # Hermione commentates again
    $ hermione_chibi.zorder = 3
    call her_chibi("stand", 300, 400, flip=True)
    with d3
    pause .8

    her "*Ugh*... Thank you for that, professor Dumbledore..." ("soft", "narrow", "base", "R_soft", flip=True, xpos=290, ypos="base", trans=d3)
    her "Now, to get this game underway!" ("open", "closed", "base", "mid")

    # Player introduction
    her "First, let's welcome everyone's favourite underdogs, Ravenclaw!" ("base", "happy", "base", "R")
    play sound "sounds/crowd_stomping.ogg"
    call quidditch_stands(crowd_react=["emo8", "emo7", None])
    with d3

    her "" ("base", "base", "base", "mid")
    nar "The blue grandstand shakes violently with enthusiasm."
    sna "At least try to sound like you're awake, Miss Granger." ("snape_03", ypos="head")
    her @ cheeks blush "..." ("normal", "closed", "angry", "mid")

    call quidditch_stands(crowd_react=[None, None, None])
    with d3

    her @ cheeks blush "And coming onto the field to face them are the equally impressive, Hufflepuff!" ("open", "base", "base", "mid")
    play sound "sounds/crowd_cheer2.ogg"

    call quidditch_stands(crowd_react=[None, None, "emo8"])
    with d3

    her @ cheeks blush "" ("base", "base", "base", "mid")
    nar "The yellow grandstand bursts into a mix of applause and whistles."
    hide hermione_main
    with d3
    sna "Back down to Troll..." ("snape_09", ypos="head")

    call her_chibi("stand", flip=False)
    with d3
    pause .1

    her "*Grrrrr*"

    call quidditch_stands(crowd_react=[None, None, None])
    with d3

    call her_chibi("stand", flip=True)
    with d3
    pause .1

    her "It appears we've got an interesting game ahead of us." ("open", "base", "base", "mid", flip=True, xpos=290, ypos="base", trans=d3)
    her "If I'm not mistaken, there's some history between our seekers, Cho Chang and Cedric Diggory..." ("crooked_smile", "closed", "base", "mid")
    her "" ("smile", "happy", "base", "mid_soft")
    nar "Even though they are far down below on the pitch, you can clearly see Cho and Cedric glaring up at Hermione."
    her "Given how essential the seeker's role is in Quidditch, their complex past might cost one of them the game..." ("open", "base", "base", "mid_soft")
    sna "Complex past..." ("snape_01", ypos="head")
    her "" ("base", "closed", "base", "mid")
    sna "I practically caught them chewing each other's tongues off at one point." ("snape_02", ypos="head")
    her "But before we begin, I just realised that as the inaugural game, I should cover the rules of the game for any first-years watching." ("open", "happy", "base", "R")

    # Reading the rules
    stop music fadeout 4
    stop background fadeout 2
    hide hermione_main
    with d3
    nar "Hermione heaves a heavy rulebook{nw}"
    play sound "sounds/punch01.ogg"
    nar "Hermione heaves a heavy rulebook{fast} from under the table and begins to monotonously recite it to the crowd."
    play sound "sounds/sniff.ogg"
    her "..."
    play background "sounds/wind_long_loop.ogg" fadein 2
    her "The capturing of the snitch is worth 150 points--" ("open", "narrow", "base", "down", flip=True, xpos=290, ypos="base", trans=d3)

    call quidditch_stands(crowd_react=["th", None, None])
    with d3
    play sound "sounds/murmur.ogg"

    her "The game may not conclude until it has been caught, or an agreement is made between both capt--" ("open", "base", "base", "mid")

    call quidditch_stands(crowd_react=["th", "an", None])
    with d3
    play background "sounds/crowd.ogg" fadein 8 fadeout 2
    hide hermione_main
    with d3

    mal "Just get on with it already you big-titted slag!"

    call quidditch_stands(crowd_react=["th", "an", "excl"])
    with d3

    mal2 "Yeah! Start the game!"
    qcr "START THE GAME! START THE GAME!"
    nar "Hermione's voice eventually gets drowned out by the growing restlessness of the crowd."
    her "" ("normal", "base", "base", "mid", xpos=290, ypos="base", flip=True)
    her "*Ugh*, fine...{w=0.3} If everyone wants us to begin play without knowing {b}a single thing{/b}...{w=0.8} then that's {b}OK!{/b}" ("annoyed", "narrow", "annoyed", "R", trans=d3)
    her "A good commentator knows when to accommodate for a crowd's impatience!" ("soft", "closed", "base", "mid")
    hide hermione_main
    with d3
    sna "{size=-4}This should be good.{/size}" ("snape_02", ypos="head") # Small text.

    play sound "sounds/crowd_cheer.ogg"
    call quidditch_stands(crowd_react=["emo8", "emo7", "emo8"])
    with d3

    nar "With that, the snitch and bludgers are released and fly off into the air."

    call quidditch_stands(crowd_react=[None, None, None])
    with d3
    play background "sounds/crowd_low.ogg" fadein 0.5 fadeout 0.5
    her @ cheeks blush "Now then..." ("open", "closed", "base", "mid", flip=True, xpos=290, ypos="base", trans=d3)
    her @ cheeks blush "Let's begin!" ("base", "happy", "base", "mid_soft")
    hide hermione_main
    with d3
    pause .1

    # Start of the game
    play sound "sounds/referee.ogg"
    play music "music/machinations-by-kevin-macleod.ogg" fadein 1 fadeout 1 if_changed
    nar "A fit looking woman then throws the quaffle into the air -- which signals the start of the match -- and the players quickly take off!"

    her "Oh, wow... They're going quite f-fast..." ("normal", "wide", "worried", "shocked", flip=True, xpos=290, ypos="base", trans=d3)
    her "" ("normal", "happyCl", "base", "mid")
    sna "Great commentary there girl... You might want to let them know the colour of the grass next..." ("snape_10", ypos="head")
    play sound "sounds/ball_hit.ogg"
    her "*Umm*, I'm not sure if anyone's scored yet..." ("normal", "happy", "base", "mid")
    her "Wait, that guy has the quaffle... I think..." ("open", "squint", "base", "mid")
    her "Scratch that last bit, he has a stick, so he must be a beater!" ("mad", "happy", "base", "mid")
    sna "{size=-4}Good grief...{/size}" ("snape_05", ypos="head")

    pause .5

    her "Higher up, Cho seems to have caught an eye on the snitch and is chasing after it, directly followed by Cedric who..." ("open", "slit", "low", "stare", flip=True)
    her "Hold on a minute... Is Cho wearing a skirt?" ("scream", "wide", "worried", "stare")

    show expression "CG quidditch cho_flashing" as cg zorder 17
    with fade

    play sound "sounds/crowd_gasp.ogg"
    call quidditch_stands(crowd_react=["emo02", "excl", "sur"])
    with d3

    call ctc

    her @ cheeks blush "" ("open", "wide", "worried", "shocked")
    qcr "{shudder}!!!{/shudder}"
    play background "sounds/crowd.ogg" fadein 2
    mal "..."
    play sound "sounds/murmur.ogg"
    her @ cheeks blush "" ("open", "happyCl", "base", "mid")
    mal "She totally is!"
    play sound "sounds/giggle2_loud.ogg"
    hide hermione_main
    with d3
    fem "What a slut!"
    call ctc

    # Pack to stands.
    hide expression cg
    with fade
    pause .1

    call her_chibi("stand", flip=False)
    with d3
    pause .3

    her "Professor, why won't you say something?{w=0.8} She's clearly breaking the very basics of Quidditch rules!" ("clench", "narrow", "angry", "mid", ypos="head", flip=False)
    gen "I fail to see anything wrong with the way she's dressed." ("base", xpos="far_left", ypos="head")
    her @ cheeks blush "But... she's wearing a skirt!" ("clench", "wide", "base", "stare")
    her "Surely that must be against some kind of regulation..." ("annoyed", "narrow", "angry", "mid")
    gen "You tell me Miss Granger, you've got the rulebook right there..." ("base", xpos="far_left", ypos="head")
    sna "..." ("snape_13", ypos="head")
    her "Perhaps I could get Madam Hooch to pause the game..." ("open", "closed", "annoyed", "mid")
    pause .1

    call her_chibi("stand", flip=True)
    with d3
    pause .3

    sna "Knowing her, she's probably enjoying the sight of the Ravenclaw seeker rushing past her." ("snape_20", ypos="head")
    sna "{size=-4}Odds are she's already tried to take a peek.{/size}" ("snape_20", ypos="head")
    gen "{size=-4}Who's Madam Hooch?{/size}" ("base", xpos="far_left", ypos="head")
    sna "{size=-4}It's that fit lady on the pitch who is seemingly unable to take her eyes off the underside of miss Chang's... undergarments.{/size}" ("snape_09", ypos="head")
    sna "{size=-4}Great idea with the skirt, if I might add.{/size}" ("snape_13", ypos="head")
    gen "{size=-4}You're welcome.{/size}" ("base", xpos="far_left", ypos="head")
    sna "..." ("snape_12", ypos="head")
    play sound "sounds/ball_hit.ogg"
    sna "{size=-4}She is wearing something underneath I assume?{/size}" ("snape_13", ypos="head")
    gen "For now..." ("base", xpos="far_left", ypos="head")
    sna "Excellent..." ("snape_22", ypos="head")

    play sound "sounds/wolf_whistle.ogg"

    call quidditch_stands(crowd_react=["emo8", "excl", "sur"])
    with d3

    mal "Cho, show us your panties!"

    play sound "sounds/giggle2_loud.ogg"
    call quidditch_stands(crowd_react=["emo8", "emo7", "sur"])
    with d3

    fem "We want to see them!"

    play sound "sounds/crowd_cheer.ogg"
    call quidditch_stands(crowd_react=["emo8", "emo7", "emo8"])
    with d3

    # Back to commentating
    play music "music/machinations-by-kevin-macleod.ogg" fadein 1 fadeout 1 if_changed
    play background "sounds/crowd_low.ogg" fadein 0.5 fadeout 0.5
    her "..." ("normal", "squint", "angry", "mid", flip=True, xpos=290, ypos="base", trans=d3)
    her "Oh, apparently Ravenclaw scored during that... \"captivating\" bit of distraction..." ("open", "narrow", "annoyed", "mid")
    gen "Sarcasm much?" ("grin", xpos="far_left", ypos="head")
    her "" ("normal", "closed", "base", "mid")
    sna "..." ("snape_13", ypos="head")
    her "I think it's 10-20!" ("open", "happy", "base", "mid")
    her "Or is that 20-10... I'm not sure, aren't they both home teams...?" ("annoyed", "squint", "base", "mid")
    sna "Surely you must have learnt how to read by now, Miss Granger?" ("snape_03", ypos="head")

    play sound "sounds/ball_hit.ogg"
    call quidditch_stands(crowd_react=["emo8", "emo7", None])
    with d3

    her "Hey! I have excellent reading skills, I'll have you know..." ("mad", "narrow", "angry", "R")
    play sound "sounds/crowd_cheer2.ogg"

    her "..." ("normal", "closed", "angry", "mid")

    call quidditch_stands(crowd_react=["emo8", None, None])
    with d3

    her "Wait, now it's... 20-30... I think..." ("annoyed", "happy", "base", "mid")
    play sound "sounds/murmur.ogg"
    call quidditch_stands(crowd_react=["th", None, None])
    with d3

    mal "Has this girl ever commentated even once in her life?"

    call quidditch_stands(crowd_react=["th", "th", None])
    with d3

    mal2 "She can't help herself answering questions in class..."
    mal2 "I suppose the rulebook was more for her benefit than ours."

    #call quidditch_stands(crowd_react=["th", "th", "emo3"]) # emo3 image is missing?
    call quidditch_stands(crowd_react=["th", "th", None]) # Temp fix, use above line.
    with d3

    her "" ("annoyed", "closed", "base", "mid")
    mal "Then how'd she get the role over Lee Jordan?"
    mal2 "I heard he had an accident with a rogue bludger."
    play sound "sounds/cough_male.ogg"
    mal "..."
    her "Wow... that snitch is darting around like nobody's business--" ("base", "base", "base", "mid")

    call quidditch_stands(crowd_react=[None, None, None])
    with d3
    hide hermione_main
    with d3
    pause .1

    # Genie and Snape get drunk
    sna "Fancy a glass of wine then?" ("snape_02", ypos="head")
    gen "Don't mind if I do... Something to distract me from this... bizarre game..." ("base", xpos="far_left", ypos="head")
    pause .5
    play sound "sounds/bottle.ogg"
    pause .8

    sna "{size=-4}I don't care much for the game myself...{/size}" ("snape_09", ypos="head")
    sna "{size=-4}Although, there is a special place in my heart for watching the bludgers catch a student...{/size}" ("snape_02", ypos="head")
    gen "{size=-4}Blubbers?{/size}" ("base", xpos="far_left", ypos="head")
    play sound "sounds/ball_hit.ogg"
    sna "{size=-4}Bludgers... See those cannonball looking things whizzing around?{/size}" ("snape_03", ypos="head")
    gen "{size=-4}Oh... The ones those boys are whacking at?{/size}" ("base", xpos="far_left", ypos="head")
    sna "{size=-4}Right... Well, we enchant them to go after the students while they play.{/size}" ("snape_23", ypos="head")
    gen "{size=-4}I see... {/size}{w}{nw}" ("base", xpos="far_left", ypos="head")
    gen "{size=-4}I see... {fast}Wait, Really? Why?{/size}" ("angry", xpos="far_left", ypos="head")
    sna "{size=-4}Makes things more interesting doesn't it!{/size}" ("snape_02", ypos="head")
    gen "{size=-4}So what happens when they hit their target?{/size}" ("base", xpos="far_left", ypos="head")
    sna "{size=-4}Generally it's just a concussion... Though sometimes they fall pretty far, that's always entertaining.{/size}" ("snape_20", ypos="head")

    with hpunch
    play sound "sounds/punch02.ogg"
    her "..." ("normal", "wide", "base", "stare", flip=True, xpos=290, ypos="base", trans=d1)

    play sound "sounds/crowd_ouch.ogg"
    call quidditch_stands(crowd_react=["sur", "emo02", "excl"])
    with d3

    her "Oh no!" ("clench", "happyCl", "worried", "mid")
    sna "{shake}HA-HA-HA-HA!!{/shake}" ("snape_28", ypos="head")
    her "Somebody on the Ravenclaw team just got hit by a bludger!" ("open", "base", "worried", "L")
    gen "What an amazing turn of events!" ("grin", xpos="far_left", ypos="head")
    sna "See, I told you!" ("snape_22", ypos="head")
    hide hermione_main
    with d3
    pause .1

    call her_chibi("stand", flip=False)
    with d3
    pause .1

    call quidditch_stands(crowd_react=["sur", "emo02", None])
    with d3

    her "Professors, could you please keep it down a little?" ("normal", "base", "angry", "mid", ypos="head", flip=False)
    sna "Why? It's not like we're interrupting anything important." ("snape_18", ypos="head")

    call quidditch_stands(crowd_react=["sur", None, None])
    with d3

    her "I'm trying to commentate the game!" ("mad", "squint", "angry", "mid")

    play sound "sounds/ball_hit.ogg"
    call quidditch_stands(crowd_react=[None, None, None])
    with d3

    sna "Yes, and I was starting to enjoy it. You are missing most of it, by the way..." ("snape_20", ypos="head")
    her "As a result of your yelling!" ("scream", "closed", "angry", "mid")
    her "" ("normal", "closed", "angry", "mid")
    sna "Eyes forward... girl." ("snape_13", ypos="head")
    her "*Grrrrr*" ("clench", "narrow", "angry", "mid")
    pause .1

    call her_chibi("stand", flip=True)
    with d3
    pause .1

    nar "Hermione's eyes briefly meet with yours as if she can't believe you're letting Snape talk to her that way."
    sna "{size=-4}As I was saying... They're the only reason I watch the bloody thing. Now, mind if I top that one off for you?{/size}" ("snape_20", ypos="head")

    play sound "sounds/crowd_cheer.ogg" fadein 3
    call quidditch_stands(crowd_react=["th", None, "emo8"])
    with d3

    her "So, I think... that Hufflepuff just scored another goal? They might even be unstoppable at this point!" ("open", "base", "base", "L", flip=True, xpos=290, ypos="base", trans=d3)

    # Fade to black
    stop background fadeout 4
    stop music fadeout 4
    show screen blkfade
    with d5
    pause .3

    hide hermione_main
    call quidditch_stands(crowd_react=[None, None, None])
    nar "You and Snape lean back and watch the game, frequently shifting your focus to Cho, as she darts past the stands..."
    nar "Only Occasionally pausing to refill your wine, while Snape keeps ridiculing Hermione's commentary..."

    # End of game
    play background "sounds/crowd_low.ogg" fadein 2
    play sound "sounds/referee.ogg"
    pause 1.0
    her "What was that?{w=0.5} Did somebody do a foul?" # intentional 'do'
    pause .5

    call hide_blkfade
    pause .1

    #"You see Cho flying over to the commentator booth glaring at Hermione with a look of pure hatred."

    # Transition to Cho on her broom
    $ cho.set_pose("broom")
    $ cho.animation = sprite_fly_idle

    call cho_chibi("fly", 1100, 140)
    call cho_walk(530, 360, speed=2)
    pause 1.5

    her "" ("annoyed", "base", "annoyed", "L", flip=True, xpos=290, ypos="base")
    cho "Hey, Granger!" ("open", "narrow", "angry", "L", xpos=580, ypos=-200, trans=d3)
    her "What do you want?{w=0.6} Shouldn't you be busy with,{w=0.8} I don't know..." ("open", "base", "angry", "mid", trans=d3)
    cho "" ("annoyed", "narrow", "raised", "L")
    her "playing the game?" ("smile", "closed", "base", "mid")
    cho "The game is over, you dipstick!" ("scream", "narrow", "angry", "L")
    cho "" ("mad", "narrow", "angry", "L")
    her "{shudder}What?{/shudder} Already?" ("shock", "wide", "worried", "stare")
    her "But who caught the Snitch?" ("open", "wide", "base", "stare")
    cho "" ("upset", "narrow", "angry", "L")

    #TODO: Draw the arm.

    #$ cho.set_body(armright="snitch")
    with d3
    nar "Cho waves the snitch in front of her."
    her "" ("mad", "wide", "worried", "shocked")
    #$ cho.set_body(armright="down")

    cho "My first ever win this season, and you didn't even notice it!" ("clench", "closed", "angry", "mid")
    cho "No one did, thanks to your dreadful commentating!" ("scream", "narrow", "angry", "L")
    cho "" ("mad", "narrow", "angry", "L")
    her "Oh..." ("normal", "wide", "worried", "shocked")
    her "So, should I announce it now?" ("open", "happyCl", "worried", "mid")
    sna "Obviously--" ("snape_12", ypos="head")
    cho "{size=+10}YES!{/size}" ("scream", "closed", "angry", "mid", trans=vpunch)
    her "" ("normal", "base", "annoyed", "L")
    cho "{size=+6}WHAT ARE YOU EVEN WAITING FOR?{/size}" ("clench", "narrow", "angry", "L", trans=hpunch)
    her "Don't scream at me like that, {b}bitch!{/b}" ("scream", "base", "angry", "mid", trans=hpunch)
    her "" ("normal", "base", "angry", "mid")
    cho "{size=+6}WHAT DID YOU JUST CALL ME?!!!{/size}" ("scream", "wide", "angry", "L", trans=vpunch)
    cho "" ("clench", "wide", "angry", "L")
    her "Everyone, Ravenclaw wins!" ("grin", "happy", "base", "mid_soft")
    cho "" ("annoyed", "narrow", "angry", "L")
    her "Cho Chang managed to catch the snitch..." ("smile", "happyCl", "base", "mid")
    her "With the help of her ridiculously short skirt!" ("crooked_smile", "base", "angry", "mid")
    hide hermione_main
    with d3
    cho @ cheeks heavy_blush "" ("normal", "wide", "base", "L")

    play background "sounds/crowd.ogg" fadein 1 fadeout 1
    play sound "sounds/crowd_applause.ogg"
    call quidditch_stands(crowd_react=["emo8", "emo7", "emo7"])
    hide hermione_main
    hide screen bld2
    with d3
    call ctc

    cho @ cheeks blush "" ("quiver", "base", "worried", "downR")
    nar "Hermione's commentating is drowned out by the sound of the Ravenclaw grandstand cheering."
    cho @ cheeks blush "{size=+6}You are done, Granger!{/size}" ("scream", "closed", "angry", "L")
    hide cho_main
    with d3
    pause .1

    call cho_walk(1200, 500+180, speed=2)
    pause 2
    $ cho.animation = None
    $ cho.set_pose(None)
    call cho_chibi("reset")

    # Outro
    gen "This isn't such a bad game after all." ("base", xpos="far_left", ypos="head")
    sna "I--{w=0.2} *hick*...{w=0.2} told you so..." ("snape_22", ypos="head")
    gen "Just bring more wine next time!" ("base", xpos="far_left", ypos="head")
    sna "M-More?!" ("snape_20", ypos="head")
    gen "Or at least share more of it with me!" ("base", xpos="far_left", ypos="head")
    play sound "sounds/glass_shatter.ogg"
    sna "Get your own, magic man!" ("snape_21", ypos="head")
    gen "..." ("base", xpos="far_left", ypos="head")

    # Blackfade
    stop background fadeout 4
    show screen blkfade
    with d5

    nar "Snape wanders off in a drunken stupor..."
    pause .5
    play sound "sounds/steps_grass.ogg"
    nar "You hurry back to your office before giving anyone a chance to talk to you."

    $ states.env.daytime = False
    call room("main_room")
    call gen_chibi("hide")
    call hide_blkfade
    pause 1.0

    play sound "sounds/door.ogg"
    call gen_chibi("stand", "door", "base", flip=False)
    with d3
    pause 0.3

    call bld
    gen "I'm hom--" ("base", xpos="far_left", ypos="head")
    gen "Dammit, I almost said that!" ("angry", xpos="far_left", ypos="head")
    gen "Anyway, I'm beat, time to hit the hay." ("base", xpos="far_left", ypos="head")

    call gen_walk("desk", "base")
    with d3
    #pause .5

    # Fade to black
    show screen blkfade
    with d9
    pause .5

    call gen_chibi("sit_behind_desk")
    with fade

    # Reset
    $ hermione.equip(her_outfit_last) # Equip player outfit.
    $ cho.equip(cho_outfit_last) # Equip player outfit.

    jump hufflepuff_match_return


label hufflepuff_match_return:
    # Cho returns after winning the Quidditch match.
    # She's outraged about Hermione.
    # Demands that you will find somebody to replace her.

    # The office, evening after the game
    $ states.env.daytime = False

    stop music fadeout 1
    call room("main_room")

    $ cho_outfit_last.save()

    $ cho.equip(cho_outfit_quidditch)

    call music_block
    hide screen blkfade
    with d9
    pause 0.8

    call bld
    play sound "sounds/snore1.ogg"
    gen "*Snore*{w=2.0}{nw}" ("base", xpos="far_left", ypos="head")
    pause 1.0
    play sound "sounds/snore3.ogg"
    gen "*Sn{cps=8}oooooooreeee*{/cps}{w=2.0}{nw}" ("base", xpos="far_left", ypos="head")
    pause 1.0
    play sound "sounds/snore2.ogg"
    gen "......{w=0.5}*Snore*{w=1.0}{nw}" ("base", xpos="far_left", ypos="head")
    stop music fadeout 6.0
    call cho_walk("desk", "base", action="enter")

    play sound "sounds/punch01.ogg"
    cho "We beat Hufflepuff!!!" ("silly", "happyCl", "base", "mid", xpos="mid", ypos="base", trans=hpunch)
    play sound "sounds/MaleGasp.ogg"
    gen "{size=+10}IT WASN'T ME!{/size}" ("angry", xpos="far_left", ypos="head")
    gen "..........." ("base", xpos="far_left", ypos="head")
    cho "*Huh*?{w=0.5} Are you okay, [name_genie_cho]?" ("soft", "narrow", "base", "mid")
    gen "Wha--" ("base", xpos="far_left", ypos="head")
    gen "Of course I am!" ("angry", xpos="far_left", ypos="head")
    cho "..." ("annoyed", "narrow", "raised", "R")
    cho "If you say so..." ("annoyed", "narrow", "base", "mid")
    play music "music/fuzzball-parade-by-kevin-macleod.ogg" fadein 1 if_changed
    cho "I can't believe that we've broken our six year dry streak and won a real game!" ("smile", "happyCl", "base", "mid")
    cho "We could actually win the cup!" ("open", "wide", "base", "mid")
    gen "And you weren't embarrassed?" ("base", xpos="far_left", ypos="head")
    cho @ cheeks blush "I was a little at the start of the game..." ("quiver", "narrow", "worried", "downR")
    cho "But once I realised how much it was affecting those slack-jawed Hufflepuffs..." ("smile", "narrow", "angry", "R")
    cho "It was like having my own personal weapon of mass distraction!" ("smile", "wide", "angry", "mid")
    cho @ cheeks blush "I don't think Cedric even knew where the snitch was, most of the time!" ("horny", "base", "base", "downR")
    cho @ cheeks blush "All he seemed to do was follow me around..." ("horny", "narrow", "worried", "down")
    cho @ cheeks heavy_blush "Him {size=-2}and {size=-2}half {size=-2}the {size=-2}team...{/size}{/size}{/size}{/size}" ("quiver", "narrow", "worried", "downR")
    cho "This might be the first real chance Ravenclaw has ever had to win the cup." ("open", "closed", "worried", "mid")
    gen "I'm sure this must mean a lot to you..." ("base", xpos="far_left", ypos="head")
    cho "It does... I might even get picked up by a pro team!" ("smile", "base", "base", "mid")
    gen "..." ("base", xpos="far_left", ypos="head")
    cho "*Ahh*{w=0.3} I can't wait!" ("silly", "happyCl", "base", "mid")
    cho "I better go celebrate with the team now!" ("clench", "wide", "base", "mid")
    gen "Well, off you go then." ("base", xpos="far_left", ypos="head")
    cho "Thank you [name_genie_cho]..." ("smile", "wink", "base", "mid")
    #
    # TODO: Add panty flash in form of a reward/tease
    #
    # cho "But before I go..." # blushes
    # (flashes panties)
    # gen "!!!" ("angry", xpos="far_left", ypos="head")
    # (equips skirt again)
    # cho "I gotta go."
    # starts walking out of the office
    # gen "Hey but I ha--" ("base", xpos="far_left", ypos="head")
    # (cho leaves)
    # gen "Oh well.. At least I caught a glimpse of the goodies." ("base", xpos="far_left", ypos="head")

    call cho_walk(action="leave")

    stop music fadeout 1.0
    call unlock_clothing(text=_("New clothing items for Cho have been unlocked!"), item=cho_outfit_cheerleader)
    call popup("New favours for Cho have been unlocked!", "Congratulations!", "interface/icons/head/cho.webp")

    $ states.her.busy = True
    $ states.sna.busy = True

    # Reset Cho
    $ cho.equip(cho_outfit_last)

    $ states.cho.tier = 2
    $ states.cho.favors_unlocked = False
    $ states.cho.requests_unlocked = False
    $ states.cho.ev.quidditch.lock_training = False
    $ states.cho.ev.quidditch.lock_practice = True
    $ states.cho.ev.quidditch.lock_tactic   = False
    $ states.cho.ev.quidditch.hufflepuff_stage = "completed"

    jump end_cho_event