

### Spell Training ###

### Astoria Imperio Training ###

label ag_st_imperio:

    if ag_st_imperio.points == 0: # Intro for 1st event.
        ast "" (face="neutral", xpos="right", ypos="base", trans=fade)
        gen "Ready for your first day of detention?" ("base", xpos="far_left", ypos="head")
        ast "No..." ("annoyed", "base", "base", "R")
        ast "Do I really have to go there?" ("clench", "base", "base", "mid")
        gen "I could have you scrub the toilets instead..." ("grin", xpos="far_left", ypos="head")
        ast "Please don't, Sir!" ("clench", "base", "worried", "mid")
        gen "Tonks has some interesting lessons planned for you!{w=0.8} I'm sure you'll enjoy it." ("base", xpos="far_left", ypos="head")
        ast "Oh yeah?" ("open", "base", "base", "mid")
        ast "Well, I doubt it..." ("annoyed", "narrow", "angry", "R")
        ast "At least it's not gonna be boring with her." ("open", "closed", "base", "mid")
        ast "I once had to spend a whole day listening to McGonagall prattle on about the importance of a transfiguration spell." ("annoyed", "narrow", "angry", "R")
        ast "When all it did was turn a stupid rat yellow!" ("annoyed", "base", "base", "ahegao")
        ast "I wanna learn something that's actually fun!" ("annoyed", "narrow", "base", "down")
        gen "Like an unforgivable curse?" ("base", xpos="far_left", ypos="head")
        ast "Yes." ("annoyed", "base", "base", "mid")
        gen "Good. Because your teacher has offered to teach one of them to you, properly." ("base", xpos="far_left", ypos="head")
        ast "She offered to do...{w=0.8} what?" ("clench", "base", "base", "mid")
        gen "That's what I said!" ("base", xpos="far_left", ypos="head")
        ast "I thought this was meant to be a punishment?" ("smile", "base", "base", "L")
        ast "That's wicked!" ("smile", "narrow", "angry", "down")
        gen "Off you go then. She's waiting for you..." ("base", xpos="far_left", ypos="head")
        gen "Return with professor Tonks to my office for a progress report once you're done." ("base", xpos="far_left", ypos="head")
        ast "Of course!" ("smile", "closed", "base", "mid")
        ast "See ya later!" ("smile", "base", "base", "mid") #smell ya later newbie! - gary oak

    elif ag_st_imperio.points == 3: # Intro for 4th event.
        ast "" (face="annoyed", xpos="right", ypos="base", trans=fade)
        gen "Time for another lesson, don't you think?" ("base", xpos="far_left", ypos="head")
        ast "Do I really have to go there again?" ("open", "narrow", "base", "R")
        ast "I don't want to be yelled at by her..." ("annoyed", "narrow", "base", "down")
        gen "Nobody's gonna yell at you." ("base", xpos="far_left", ypos="head")
        ast "If you say so, Professor." ("annoyed", "base", "base", "mid")
        gen "Return here after your lesson." ("base", xpos="far_left", ypos="head")
        ast "..." ("annoyed", "base", "base", "R")

    else:
        ast "" (face="happy", xpos="right", ypos="base", trans=fade)
        gen "Ready for another curse lesson?" ("base", xpos="far_left", ypos="head")
        ast "Yes, Professor." ("smile", "base", "base", "mid")
        gen "I'm eager to see another demonstration of your progress!" ("grin", xpos="far_left", ypos="head")
        gen "Return to my office with your teacher afterwards." ("base", xpos="far_left", ypos="head")
        ast "Until then, Professor!" ("smile", "base", "base", "R")

    call play_sound("door")
    call hide_characters
    call ast_chibi("hide")
    hide screen bld1
    with d3

    # Setup
    $ ton_outfit_last.save() # Store current outfit.
    $ ast_outfit_last.save() # Store current outfit.

    $ tonks.equip(ton_outfit_default)
    $ astoria.equip(ast_outfit_default)

    $ ag_st_imperio.inProgress = True

    $ astoria_busy = True
    $ tonks_busy = True

    call music_block
    jump main_room_menu


label end_ag_st_imperio:
    call hide_characters
    hide screen bld1
    with d3

    $ tonks.equip(ton_outfit_last) # Equip player outfit.
    $ astoria.equip(ast_outfit_last) # Equip player outfit.

    $ tonks_busy = True
    $ astoria_busy = True

    call music_block
    jump main_room_menu


label ag_st_imperio_E1:
    stop music fadeout 1.0
    call play_sound("door")
    call ton_chibi("stand","desk","base")
    call ast_chibi("stand",530,"base") # Make sure it's slightly to the left of Tonks' chibi.
    with d3
    pause.8

    call play_music("tonks")
    ast "" ("annoyed", "base", "base", "mid", xpos="base", ypos="base")
    ton "Good evening, Professor." ("base", "happyCl", "base", "mid", xpos="right", ypos="base")
    gen "Finally, you're back." ("base", xpos="far_left", ypos="head")
    ton "Yes we are." ("base", "wink", "base", "mid")
    ton "" ("soft", "base", "base", "mid")
    ast "......................" ("annoyed", "narrow", "base", "L") # embarrassed
    gen "Astoria!{w} How was your training? *Err*... I mean detention!" ("grin", xpos="far_left", ypos="head")
    ast "................................" ("annoyed", "narrow", "base", "R")
    ton "It went very well, I'd say." ("crooked_smile", "happyCl", "base", "mid")
    ton "I instructed her on how to cast the curse - properly." ("base", "closed", "base", "mid")
    ton "The right wand movement... The correct pronunciation..." ("open", "wide", "base", "R")
    ton "There's a lot to it!" ("grin", "wide", "base", "mid")
    ton "One mishap with those - and the curse might backfire!" ("normal", "shocked", "shocked", "mid")
    ton "Sending you straight to St. Mungo's hospital - quacking like a duck!" ("annoyed", "shocked", "base", "mid")
    gen "..........." ("base", xpos="far_left", ypos="head")
    ton "I'd say she was very lucky using it on Susan..." ("mad", "base", "base", "mid")
    ast "I knew exactly what I was doing..." ("base", "closed", "angry", "mid")
    ast "" ("clench", "narrow", "base", "mid")
    ton "Of course you did, princess." ("soft", "narrow", "base", "L") # Happy
    ast "................................." ("annoyed", "narrow", "angry", "R") # annoyed

    ton "Now, shall we get started?" ("soft", "base", "base", "mid")
    ast "Get started - with what?" ("open", "narrow", "base", "R")
    ton "The next step of your training, of course!" ("soft", "base", "base", "R")
    ton "I'd like you to cast the Imperius curse now... On another person." ("base", "base", "angry", "L")
    ast "Wait, what?" ("angry", "base", "base", "mid")
    ast "I thought I wasn't allowed to ever use it again?" ("annoyed", "base", "worried", "L")
    ton "You aren't... That is correct." ("open", "closed", "base", "mid")
    ton "However, you are hereby given special permission!" ("grin", "base", "base", "R")
    ast "Really?" ("smile", "narrow", "base", "down") # happy
    ton "Yes, dear!" ("base", "base", "base", "R")
    ton "I believe our Professor would have no objection to that..." ("open", "closed", "base", "mid")
    ton "Would you, Professor?" ("base", "base", "angry", "mid")
    ast "Please, Professor!" ("smile", "base", "base", "mid")
    gen "*Uhm*...{w=0.4} Sure...{w=0.6} Go ahead." ("base", xpos="far_left", ypos="head")
    ton "Splendid!" ("silly", "happyCl", "base", "mid")
    ast "Yes!" ("smile", "base", "angry", "L")

    ton "You can cast it, as long as it's under the supervision of a teacher..." ("open", "base", "raised", "down")
    ton "And only within the walls of this room!" ("normal", "base", "base", "downR") # stern
    ast "Right here? In front of Professor Dumbledore?" ("open", "base", "base", "mid")
    ton "Naturally!" ("base", "closed", "base", "mid")
    ast "But who do I cast it on? Susan?" ("smile", "base", "base", "R")
    ton "Not this time, sweetheart." ("upset", "narrow", "base", "down", cheeks="blush")
    ton "Today, I'd like you to cast it on me, if you don't mind..." ("open", "closed", "base", "mid", cheeks="blush")
    ast "Wicked!" ("grin", "narrow", "worried", "down")
    ton "Let's give this old man a quick demonstration of your talents, shall we..." ("grin", "base", "shocked", "mid")

    call ast_chibi("wand",530,"base")
    with d3

    ast "" ("grin", "narrow", "base", "mid")
    gen ".............................." ("base", xpos="far_left", ypos="head")
    ton "Just like we practised..." ("open", "closed", "base", "mid")
    ton "Do the movement with your wand, and then you say--" ("open", "base", "base", "R")
    ast "Imperio!" ("angry", "narrow", "angry", "mid") # angry scream
    ast "" ("clench", "narrow", "angry", "mid")
    pause .8

    call ast_chibi("wand_casting",530,"base")
    with d3

    ton "Yes..." ("mad", "narrow", "base", "mid")
    ton "...................." ("annoyed", "narrow", "shocked", "stare")
    ton "You don't have to scream the words, darling." ("open", "closed", "raised", "L")
    ton "What's crucial is that your mind is focused and--" ("normal", "closed", "base", "mid")

    # Astoria casts imperio.
    stop music fadeout 2.0
    ast "IMPERIO!{w=0.8}{nw}" ("scream", "base", "angry", "mid", trans=hpunch) # Screams it even louder

    call hide_characters
    hide screen bld1
    with d3
    pause.2

    # chibi spell animation.
    call play_sound("spell")
    call ast_chibi("wand_imperio",530,"base")
    with hpunch
    pause.8

    call play_music("trance")
    ast "" ("clench", "base", "angry", "L", xpos="base", ypos="base")
    ton "........................." ("mad", "wide", "shocked", "ahegao", hair="scared", xpos="right", ypos="base") # shock
    ton "*Aaaaaah*..." ("horny", "base", "base", "ahegao", hair="horny") # inhales
    ast "......................" ("clench", "base", "worried", "L") # clenched teeth
    gen "What's happening to her?" ("base", xpos="far_left", ypos="head")
    ast "I just cast the spell on her..." ("open", "closed", "base", "mid")
    ast "Now she's under my command!" ("smile", "base", "base", "mid")
    gen "You don't say?" ("grin", xpos="far_left", ypos="head")
    gen "I love magic!" ("grin", xpos="far_left", ypos="head")
    call ast_chibi("wand",530,"base")
    with d3
    ast "What shall I do now, Professor?" ("clench", "base", "base", "L")
    gen "I don't know...{w=0.4} Why are you asking me?" ("base", xpos="far_left", ypos="head")
    gen "Did you two not discuss this beforehand?" ("base", xpos="far_left", ypos="head")
    ast "No. All we did was some theoretical practice of the spell..." ("open", "base", "base", "down")
    ast "I need to tell her to do something... or..." ("open", "base", "worried", "mid")
    ast "I don't know... Maybe say something?" ("clench", "base", "base", "L")
    ton "*Hmm*... Something..." ("base", "base", "worried", "up")
    ast "!!!" ("smile", "base", "base", "L")
    gen "What?" ("base", xpos="far_left", ypos="head")
    ast "She did it!" ("smile", "base", "base", "L")
    gen "Something what?" ("angry", xpos="far_left", ypos="head")
    ast "No, she just said what I asked her to say!" ("smile", "base", "base", "mid")
    gen "Oh..." ("base", xpos="far_left", ypos="head")
    ast "I believe it's working!" ("smile", "closed", "base", "mid")

    ast "*Uhm*... Professor Tonks, you can now speak freely!" ("horny", "base", "base", "L")
    ton "............................" ("base", "closed", "base", "stare")
    ton "Oh... can I?..." ("open", "base", "base", "stare")
    ton "Thank you..." ("soft", "wide", "base", "stare")
    ast "She can hear me!" ("smile", "base", "base", "mid")
    ton "You have a really cute voice..." ("horny", "wide", "shocked", "stare")
    ast "................" ("annoyed", "base", "worried", "R")
    gen "Try something else now." ("base", xpos="far_left", ypos="head")
    ast "" ("annoyed", "base", "base", "L")
    ton "I feel so good!" ("soft", "wide", "shocked", "stare", hair="horny")
    ton "What is happening to me?" ("mad", "base", "raised", "stare", cheeks="blush")
    ton "Are you playing with me?" ("open", "base", "worried", "stare", cheeks="blush")
    ton "I want you to play with me!" ("open_wide_tongue", "narrow", "shocked", "stare") # horny
    gen "I think she's tripping..." ("base", xpos="far_left", ypos="head")
    ast "No!{w=0.6} Keep{w=0.4} - standing{w=0.4} - still!" ("clench", "closed", "worried", "mid")
    ton "Okay........." ("soft", "base", "base", "stare")
    gen "This is quite funny to watch!" ("grin", xpos="far_left", ypos="head")
    gen "Can you make her *oink*?" ("grin", xpos="far_left", ypos="head")
    ast "*oink*?" ("open", "wink", "base", "mid")
    gen "You know, like a pig..." ("base", xpos="far_left", ypos="head")
    ast "Yes, we can try that!" ("clench", "base", "base", "mid")
    ast "Professor Tonks, I demand that you *oink*!" ("open", "base", "base", "L")
    ton "*Huh*?..." ("open", "wide", "base", "stare")
    ast "*oink*!" ("open", "base", "angry", "L")
    ton "..................." ("normal", "wide", "base", "stare", cheeks="blush")
    ast "Do it already!" ("angry", "base", "angry", "L")
    ast "*oink!*{w=0.8}-*oink*!{w=0.8}-*oink*!" ("clench", "closed", "angry", "mid") # Angry
    gen "*he-he-he!*" ("grin", xpos="far_left", ypos="head")
    ast "*oink*...{w=0.8} you pig!" ("scream", "base", "angry", "L", trans=hpunch) # Screaming
    ast "" ("clench", "narrow", "angry", "L")
    gen "I don't believe she's going to do it..." ("base", xpos="far_left", ypos="head")
    ast "But!" ("clench", "closed", "base", "mid")
    gen "It's pointless, girl..." ("base", xpos="far_left", ypos="head")
    gen "You can stop now..." ("base", xpos="far_left", ypos="head")
    ast "Fine..." ("annoyed", "base", "angry", "down")

    # Tonks reverts back.
    pause.2
    call hide_characters
    call ast_chibi("reset",530,"base")
    hide screen bld1
    with fade
    pause.8

    call play_music("tonks")
    ton "" ("soft", "base", "worried", "down", cheeks="blush", xpos="right", ypos="base", trans=dissolve)
    ast "" ("annoyed", "base", "angry", "mid", xpos="base", ypos="base", trans=dissolve)
    ton "Oh my..." ("soft", "base", "worried", "down", cheeks="blush", xpos="right", ypos="base")
    ton "Well that was fun!" ("base", "happyCl", "base", "down", cheeks="blush") # Happy
    ast "No it wasn't!" ("clench", "narrow", "angry", "mid")
    ast "Why weren't you doing pig noises!?" ("scream", "closed", "angry", "mid", trans=hpunch)
    ast "You refused to do what I demanded!" ("annoyed", "narrow", "angry", "R")
    ton "Yes I did!" ("soft", "base", "base", "R")
    ton "It was quite easy, actually." ("normal", "base", "raised", "down")
    ast "*Hnghhh*!" ("clench", "narrow", "angry", "down")
    ton "Don't worry. You'll have better luck next time..." ("base", "base", "shocked", "R")
    ton "Just try a bit harder." ("base", "wink", "base", "mid")
    ton "" ("soft", "base", "base", "mid")
    ast "..................................." ("annoyed", "narrow", "angry", "down")
    ton "Thank you for your assistance, Professor." ("open", "base", "base", "mid")
    ton "Let Astoria know when to visit me again for our next training session..." ("base", "base", "base", "mid")
    gen "Very well." ("base", xpos="far_left", ypos="head")
    ast "........................" ("annoyed", "base", "angry", "R")
    ton "Have a good night, Professor." ("base", "wink", "base", "mid")

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

    ton "Come on, Astoria. I shall escort you back to your dormitory..." ("soft", "base", "base", "L", ypos="head")
    ast "................................................." ("annoyed", "base", "base", "down", ypos="head")

    # They both leave.
    call ast_walk(680, "base")

    call play_sound("door")
    call ast_chibi("hide")
    call ton_chibi("hide")
    with d3

    # Increase affection once (this is the first event)
    if ag_st_imperio.counter == 1:
        $ ast_whoring += 1

    jump end_ag_st_imperio


label ag_st_imperio_E2:
    stop music fadeout 1.0
    call play_sound("door")
    call ton_chibi("stand","desk","base")
    call ast_chibi("stand",530,"base") # Make sure it's slightly to the left of Tonks' chibi.
    with d3
    pause.8

    call play_music("tonks")
    ast "" ("upset", "base", "base", "mid", xpos="base", ypos="base")
    ton "Hello, Professor." ("base", "happyCl", "base", "mid", xpos="right", ypos="base")
    ast "........................." ("upset", "base", "base", "L")
    gen "Back already?" ("base", xpos="far_left", ypos="head")
    ton "Yes, I gave Astoria a couple more pointers on how to improve the persuasiveness of the curse..." ("open", "wide", "base", "L")
    ton "The trick is to not lose your temper after casting it!" ("soft", "closed", "base", "mid")
    call ast_chibi("wand",530,"base")
    ast "........................." ("annoyed", "base", "base", "down")
    ton "This should be fun!" ("grin", "happyCl", "base", "mid")
    gen "Very good." ("base", xpos="far_left", ypos="head")

    ton "Now, Astoria, just as last time - you will cast the Imperius curse on me..." ("soft", "base", "base", "L")
    ton "And I'll do my best to resist--" ("open", "closed", "base", "mid")

    # Astoria casts imperio.
    stop music fadeout 2.0
    ast "IMPERIO!{w=0.8}{nw}" ("scream", "base", "angry", "mid", trans=hpunch) # Screams it even louder

    call hide_characters
    hide screen bld1
    with d3
    pause.2

    # chibi spell animation.
    call play_sound("spell")
    call ast_chibi("wand_imperio",530,"base")
    with hpunch
    pause.8

    call play_music("trance")
    ast "" ("clench", "base", "angry", "L")
    ton "........................." ("mad", "wide", "shocked", "ahegao") # shock

    gen "Damn it, girl!" ("grin", xpos="far_left", ypos="head")
    gen "Give me a warning next time. You scared the crap out of me..." ("base", xpos="far_left", ypos="head")
    ast "Sorry Professor!" ("smile", "base", "base", "mid") # Cute face

    ton ".........................." ("normal", "wide", "base", "stare")
    ton "*uhhhh*... I looooooove this!" ("soft", "base", "base", "stare")
    ton "It's like - I'm floating..." ("open", "wide", "shocked", "stare")
    ton "It feels... sooooooooooooo... goooooooooooood!" ("open_wide_tongue", "base", "base", "ahegao")
    ton "" ("mad", "base", "base", "ahegao")
    call ast_chibi("wand",530,"base")
    gen "(Is she getting off on this?)" ("base", xpos="far_left", ypos="head")

    ast "What shall I have her do, Professor?" ("clench", "wink", "base", "mid")

    menu:
        gen "*Hmm*..." ("base", xpos="far_left", ypos="head")

        "-Have her turn around-":
            ast "Yes, that's a good idea!" ("smile", "base", "base", "mid")
            ton "................................" ("normal", "wide", "base", "stare")
            ast "Professor Tonks, I command you to turn around." ("open", "base", "base", "L")
            ton "*Huh*?" ("open", "wide", "raised", "stare")
            ast "Turn around!" ("clench", "base", "angry", "L")
            gen "Remember what she said about your temper, Astoria..." ("base", xpos="far_left", ypos="head")
            ast "Oh... yes Sir! Of course..." ("smile", "closed", "base", "mid")
            ast "Turn around." ("open", "narrow", "base", "L")
            ton "......................" ("soft", "wide", "base", "stare")

            # Tonks turns around. (mirror sprite)
            call ton_chibi("stand","desk","base", flip=True)
            ton "" ("normal", "base", "base", "stare",  flip=True, trans=dissolve)
            pause.8

        "-Ask her to remove her coat-":
            ast "Yes, that should be easy." ("smile", "base", "base", "mid")
            ton "................................" ("normal", "wide", "base", "stare")
            ast "Tonks, I command you to remove your coat." ("open", "closed", "base", "mid")
            ton "*Huh*?" ("open", "wide", "raised", "stare")
            ast "Come on, do it!" ("annoyed", "base", "angry", "L")
            gen "Try saying the magic word..." ("base", xpos="far_left", ypos="head")
            ast "Imperio? But I already did--" ("open", "wink", "base", "mid")
            gen "No... Ask her politely..." ("base", xpos="far_left", ypos="head")
            ast "Oh! I got it!" ("smile", "closed", "base", "mid")
            ast "Professor Tonks, please remove your coat for me..." ("open", "base", "base", "L")
            ton "*Hmm*... okay..." ("soft", "wide", "base", "stare")

            # Tonks removes her coat.
            $ renpy.sound.play("sounds/cloth_sound3.ogg")
            $ tonks.strip("robe")

            call ctc

            ton "" ("normal", "wide", "base", "stare", cheeks="blush", flip=False)
            pause.8


    ast "Yes, she did it!" ("smile", "base", "base", "L")
    ast "What shall I have her do next?" ("base", "base", "base", "mid")
    gen "*Hmm*................." ("base", xpos="far_left", ypos="head")

    $ d_flag_01 = False

    label ag_st_imperio_E2_choices:

    menu:
        gen "Make her..." ("base", xpos="far_left", ypos="head")
        "\"Do pig noises again!\"" if d_flag_01 == False: # Jumps back to choices.
            $ d_flag_01 = True

            ast "Do a pig noise?" ("open", "base", "worried", "mid")
            ton "*oink*!" ("open_wide", "happyCl", "base", "stare")
            ast "She did it!" ("smile", "closed", "base", "mid")
            ton "" ("normal", "happyCl", "base", "mid")
            gen "Well done!" ("grin", xpos="far_left", ypos="head")
            ast "Do it again!" ("smile", "base", "angry", "L")
            ton "*oink*!" ("open_wide", "shocked", "worried", "stare", cheeks="blush")
            ast "*hi-hi-hi-hi*!" ("smile", "closed", "base", "mid")
            ton "" ("normal", "wide", "worried", "stare", cheeks="blush")
            gen "I believe that's enough--" ("base", xpos="far_left", ypos="head")
            ast "Do it again piggy! Ten times!" ("clench", "narrow", "angry", "L") # Angry
            ton "*oink*{w=0.2}-*oink*{w=0.2}-*oink*{w=0.2}-*oink*{w=0.2}-*oink*{w=0.2}-*oink*{w=0.2}-*oink*{w=0.2}-*oink*{w=0.2}-*oink*{w=0.2}-*oink*!" ("open_wide_tongue", "wide", "base", "ahegao", cheeks="blush")
            gen "......................." ("base", xpos="far_left", ypos="head")
            ast "Agai--" ("scream", "closed", "angry", "mid", trans=hpunch)
            gen "That's enough, Astoria!" ("angry", xpos="far_left", ypos="head")
            ast "Fine..." ("annoyed", "narrow", "angry", "R")

            # Tonks returns to normal
            call hide_characters
            call ton_chibi("stand","desk","base", flip=False)
            call ast_chibi("reset",530,"base")
            with fade
            pause.8

            call play_music("astoria")
            ast "" ("open", "base", "base", "down")
            ton "Oh wow..." ("mad", "base", "shocked", "down", cheeks="blush", flip=False)
            ton "You made me squeal like a pig!" ("mad", "happyCl", "base", "mid", cheeks="blush")
            ton "You've made quite some progress, well done Astoria!" ("grin", "narrow", "shocked", "R")
            ast "Thank you!" ("smile", "base", "base", "L")
            gen "..." ("base", xpos="far_left", ypos="head")
            gen "I have to say, I'm not that impressed..." ("base", xpos="far_left", ypos="head")
            ton "You aren't?" ("open", "wide", "shocked", "mid")
            ast "But, Professor!" ("clench", "base", "worried", "mid")
            gen "Tonks, would you please do the noise again..." ("base", xpos="far_left", ypos="head")
            ton "The noise, Professor?" ("soft", "base", "raised", "mid")
            gen "Yes. Squeal for me." ("base", xpos="far_left", ypos="head")
            ton "Very well..." ("open", "narrow", "shocked", "down")
            ton "*oink*-*oink*!" ("open", "happyCl", "base", "mid")
            gen "See, I don't even have to use magic to make her do it!" ("grin", xpos="far_left", ypos="head")
            ton "Very funny, Sir..." ("soft", "narrow", "base", "downR")
            gen "I'd like us to try this again..." ("base", xpos="far_left", ypos="head")
            ton "Right now? Are you sure?" ("soft", "wide", "raised", "mid")
            gen "(I want to see some tits - damn it! Or hear her talk dirty...)" ("angry", xpos="far_left", ypos="head")
            gen "Yes, cast that spell again, Astoria..." ("base", xpos="far_left", ypos="head")
            call ast_chibi("wand",530,"base")
            ast "Very well, Sir..." ("smile", "closed", "base", "mid")

            # Astoria casts imperio.
            stop music fadeout 2.0
            ast "IMPERIO!{w=0.8}{nw}" ("scream", "base", "angry", "mid", trans=hpunch) # Screams it even louder

            call hide_characters
            hide screen bld1
            with d3
            pause.2

            # chibi spell animation.
            call play_sound("spell")
            call ast_chibi("wand_imperio",530,"base")
            with hpunch
            pause.8

            call play_music("trance")
            ast "" ("clench", "base", "angry", "L")
            ton "*Hmm*............." ("base", "base", "base", "ahegao")
            call ast_chibi("wand",530,"base")
            ast "And now?" ("open", "base", "base", "mid")

            jump ag_st_imperio_E2_choices

        "\"Say something naughty!\"": # Fails
            ast "*Huh*?..." ("open", "base", "worried", "mid")
            gen "Wouldn't you like to hear your teacher say something shameful?" ("grin", xpos="far_left", ypos="head")
            ast "Yes!" ("smile", "base", "angry", "L")
            ast "And what exactly?" ("clench", "base", "base", "mid")
            gen "I don't know... You should think of something..." ("base", xpos="far_left", ypos="head")
            gen "You're the one with the magic stick, after all..." ("base", xpos="far_left", ypos="head")
            ton "......................." ("normal", "wide", "base", "stare")
            ast "Okay... Professor Tonks..." ("open", "base", "worried", "L")
            ast "I want you to repeat after me..." ("open", "closed", "base", "mid")
            ton "..................................." ("horny", "wide", "base", "stare")
            ast "I... am... a..." ("open", "base", "worried", "L")
            ton "I am a--" ("soft", "wide", "base", "stare")
            ast "dirty!{w} filthy!{w} pig!" ("open", "narrow", "base", "L")
            ton "..................................." ("soft", "base", "base", "stare", cheeks="blush")
            ast "Go on, say it!" ("clench", "narrow", "base", "L")
            ast "I'm a dirty... filthy... pig!" ("open", "closed", "base", "mid")
            ton "*hi-hi*!..." ("base", "happyCl", "shocked", "mid", cheeks="blush")
            ast "SAY IT!" ("scream", "base", "angry", "L") # Scream
            gen "Time-out!" ("angry", xpos="far_left", ypos="head")
            ast "No! She has to do what she's told!" ("clench", "narrow", "angry", "mid")
            gen "She clearly isn't going to..." ("base", xpos="far_left", ypos="head")
            gen "We should take a break here..." ("base", xpos="far_left", ypos="head")
            ast "......................." ("annoyed", "narrow", "angry", "mid")

            # Tonks returns to normal.
            pause.2
            call hide_characters
            call ton_chibi("stand","desk","base", flip=False)
            call ast_chibi("reset",530,"base")
            hide screen bld1
            with fade
            pause.8

            call play_music("tonks")
            ast "" ("annoyed", "base", "angry", "mid")
            ton "*huh*..." ("disgust", "base", "base", "down", flip=False)
            ton "Well that was something, wasn't it?" ("soft", "closed", "base", "mid")
            ast ".................................." ("annoyed", "narrow", "angry", "L")
            gen "You resisted her curse again." ("base", xpos="far_left", ypos="head")
            ton "Yes..." ("upset", "base", "base", "L")
            ton "I'm sorry, honey!" ("annoyed", "narrow", "worried", "R")
            ast ".................................." ("annoyed", "narrow", "angry", "down")
            ton "You can't expect to succeed right away now, can you?" ("normal", "closed", "raised", "mid")
            ton "To master a spell it takes time - and regular practising..." ("normal", "narrow", "base", "R")
            ton "Or else anyone could do it." ("open", "closed", "shocked", "mid")
            ton "We'll try again next time..." ("base", "narrow", "raised", "R")
            ast "............................" ("upset", "narrow", "base", "down")
            ton "Have a good night, Professor." ("soft", "base", "base", "mid")

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

            ton "After you, Astoria." ("open", "base", "base", "L", ypos="head")
            ast "..........................." ("upset", "base", "base", "L", ypos="head")

            # They both leave.
            call ast_walk(680, "base")

            call play_sound("door")
            call ast_chibi("hide")
            call ton_chibi("hide")
            with d3

            $ ast_mood += 12

            # Event fails.
            $ ag_st_imperio.fail()

            call bld
            gen "I don't think we made much progress here..." ("base", xpos="far_left", ypos="head")

            $ tonks.equip(ton_outfit_last) # Equip player outfit.
            $ astoria.equip(ast_outfit_last) # Equip player outfit.

            call music_block
            jump main_room_menu

        "\"Show us those tits!\"": # Succeeds
            ast "What?" ("clench", "base", "base", "mid")
            gen "Have her show us her breasts!" ("grin", xpos="far_left", ypos="head")
            ast "Professor?!" ("open", "closed", "worried", "mid")
            gen "You did the same to Susan, didn't you?" ("base", xpos="far_left", ypos="head")
            ast "Yes, but..." ("open", "narrow", "worried", "mid")
            ast "I doubt Professor Tonks would be ok with that, she'll just refuse like she did before!" ("clench", "narrow", "base", "L")
            gen "Did you have those concerns with Susan as well?" ("base", xpos="far_left", ypos="head")
            ast "Susan didn't require much convincing, her boobs were already falling out of her--" ("clench", "narrow", "base", "L")
            gen "Just try it." ("base", xpos="far_left", ypos="head")
            gen "She can refuse to do it if she really doesn't want to..." ("base", xpos="far_left", ypos="head")
            ast "Fine... But it's a waste of time." ("annoyed", "base", "base", "L")
            ast "Professor Tonks, I'd like you to show us your..." ("open", "base", "base", "mid")
            ast "*Uhm*..." ("upset", "base", "base", "down")
            ast "Your breasts!" ("clench", "closed", "base", "mid") # embarrassed
            ton "Oh..." ("open", "wide", "shocked", "up")
            ton "............................" ("soft", "wide", "worried", "stare")
            gen "(Fingers crossed!)" ("angry", xpos="far_left", ypos="head")
            ton "............................" ("clench", "narrow", "base", "stare") # Clenched teeth
            ast "What the--{w=0.4} I think she's struggling!" ("smile", "base", "base", "L")
            gen "Very good, girl!" ("angry", xpos="far_left", ypos="head")
            gen "Pressure her more! I want to see those puppies!" ("angry", xpos="far_left", ypos="head")
            ast "Professor Tonks, show us your breasts! Now!" ("open", "base", "angry", "L")
            gen "(It was easier for her to resist doing pig noises...)" ("base", xpos="far_left", ypos="head")
            gen "(Could it be that she {b}wants{/b} to show them to us?{w} And is resisting that inner urge?)" ("base", xpos="far_left", ypos="head")
            ton "................................" ("mad", "wide", "worried", "stare", hair="horny") # Really struggling!
            gen "(What a slut!)" ("angry", xpos="far_left", ypos="head") # Small text
            ast "Come on, do it!" ("clench", "narrow", "angry", "L")
            ton "*Hnnnngh*!..." ("mad", "wide", "worried", "ahegao", hair="horny")
            call cum_block
            ton "*Aaaaahhh*..." ("open_wide_tongue", "base", "worried", "ahegao", cheeks="blush") # Relieved
            gen "(Did she just--)" ("angry", xpos="far_left", ypos="head")
            ton "" ("open", "narrow", "worried", "stare", cheeks="blush")
            gen "..." ("base", xpos="far_left", ypos="head")
            gen "Girl, I think your teacher is done for..." ("base", xpos="far_left", ypos="head")
            ast "What?" ("clench", "base", "worried", "mid")
            ton "" ("normal", "closed", "worried", "stare", cheeks="blush")
            gen "She \"broke the curse.\" You can stop now..." ("base", xpos="far_left", ypos="head")
            ast "*Aww*..." ("upset", "narrow", "base", "down")
            ast "If you say so, Professor..." ("annoyed", "base", "base", "mid")

            # Tonks returns to normal.
            pause.2
            call hide_characters
            call ast_chibi("reset",530,"base")
            hide screen bld1
            with fade
            pause.8

            call play_music("astoria")
            ast "" ("annoyed", "base", "base", "mid")
            ton "*Ouch*... That was painful!" ("mad", "closed", "base", "mid", cheeks="blush", flip=False)
            ton "You nearly got me there." ("disgust", "base", "shocked", "R", cheeks="blush")
            ast "Did I really?" ("smile", "base", "base", "mid")
            ton "Yes, well done, Astoria!" ("open", "base", "base", "down", cheeks="blush")
            ast "Thank you!" ("smile", "closed", "base", "mid")
            gen "Was it really such a struggle for you to not get your breasts out?" ("base", xpos="far_left", ypos="head")
            ton "*Uhm*..." ("mad", "base", "base", "down", cheeks="heavy_blush")
            gen "*He-he-he*!" ("grin", xpos="far_left", ypos="head")
            ton "Shall we wrap it up for today?" ("upset", "base", "shocked", "downR", cheeks="blush")
            ton "I'm sure you'll do even better next time, Astoria." ("soft", "base", "shocked", "R")
            ast "{size=-4}Yes... Finally I shall release my unlimited power...{/size}" ("smile", "narrow", "base", "L")

            $ renpy.sound.play("sounds/thunder_2.ogg")

            if game.weather in {"clear", "cloudy"}:
                gen "Where the hell did that thunder come from?" ("base", xpos="far_left", ypos="head")
            else:
                gen "What the--" ("base", xpos="far_left", ypos="head")

            #Astoria walks to door but waits for Tonks.
            call ast_walk(680, "base")
            call ast_chibi("stand", 680, "base", flip=False)
            with d3

            ton "Have a good night, Professor!" ("base", "happyCl", "base", "mid")
            gen "Until next time..." ("base", xpos="far_left", ypos="head")

            # Tonks walks to door and they both leave
            call ton_walk("door", "base")


            hide tonks_main
            call ton_chibi("leave")
            hide astoria_main
            call ast_chibi("stand", 680, "base", flip=True)
            pause .3
            call ast_chibi("leave")
            with d3

            call bld
            gen "And they say I'm the big, bad pervert..." ("base", xpos="far_left", ypos="head")

            # Increase affection once (this is the second event)
            if ag_st_imperio.counter == 2:
                $ ast_whoring += 1

            jump end_ag_st_imperio


label ag_st_imperio_E3:
    stop music fadeout 1.0
    call play_sound("door")
    call ton_chibi("stand","desk","base")
    call ast_chibi("stand",500,"base") # Make sure it's slightly to the left of Tonks' chibi.
    with d3
    pause.8

    call play_music("tonks")
    ast "" ("annoyed", "base", "base", "mid", xpos="base", ypos="base")
    ton "Well, Professor." ("open", "closed", "base", "mid", xpos="right", ypos="base")
    ton "We're back..." ("soft", "wink", "base", "mid")
    ast "..." ("annoyed", "base", "base", "L")
    gen "Did you make any progress today?" ("base", xpos="far_left", ypos="head")
    ton "Of course we did!" ("base", "wide", "base", "mid")
    ton "Professor, you aren't questioning my abilities as a teacher, are you?" ("base", "closed", "annoyed", "mid")
    gen "Of course not..." ("base", xpos="far_left", ypos="head")
    gen "You're very skilled at what you do!" ("grin", xpos="far_left", ypos="head")
    gen "You've shown me many times." ("grin", xpos="far_left", ypos="head")
    ton "Thank you! {heart}" ("base", "narrow", "base", "mid")
    ast "*Ugh*..." ("clench", "narrow", "base", "down") # Disgusted from the flirting?

    call ast_chibi("wand",530,"base")
    with d3
    ton "I could teach you a thing or two as well, Professor." ("base", "base", "shocked", "down")

    call ast_chibi("wand_casting",530,"base")
    with d3
    ton "Even the great Albus Dumbledore doesn't know everything about--" ("soft", "closed", "angry", "mid")

    # Astoria casts imperio.
    stop music fadeout 2.0
    ast "IMPERIO!{w=0.8}{nw}" ("scream", "base", "angry", "mid", trans=hpunch) # Screams it even louder

    call hide_characters
    hide screen bld1
    with d3
    pause.2

    # chibi spell animation.
    call play_sound("spell")
    call ast_chibi("wand_imperio",530,"base")
    with hpunch
    pause.8

    call play_music("trance")
    ast "" ("clench", "base", "angry", "L")
    ton "*Hngh*!..." ("mad", "wide", "shocked", "ahegao") # shock
    ton "*Hmm*..." ("base", "base", "base", "ahegao", hair="horny")

    call ast_chibi("wand",530,"base")
    with d3
    ast "Sir, I'm not here to listen to you two banter..." ("angry", "closed", "angry", "mid")
    gen "That's fair." ("base", xpos="far_left", ypos="head")
    gen "Time is precious, after all..." ("base", xpos="far_left", ypos="head")
    ton "..." ("normal", "wide", "base", "stare")
    ast "I've spent enough time today getting lectured by her..." ("annoyed", "base", "angry", "L")
    gen "Isn't she supposed to do that? Teach you?" ("base", xpos="far_left", ypos="head")
    ast "I don't need to be taught!" ("annoyed", "narrow", "angry", "mid")
    ast "I already know how to cast the spell." ("clench", "base", "angry", "mid")
    gen "Surely there is some room for you to improve." ("base", xpos="far_left", ypos="head")

    ast "Professor Tonks, take off that coat!" ("open", "closed", "base", "mid")
    ton "..." ("soft", "wide", "worried", "stare")
    ton "...{fast}..." ("base", "wide", "worried", "stare")

    # Remove coat.
    $ renpy.sound.play("sounds/cloth_sound3.ogg")
    $ tonks.strip("robe")

    call ctc

    ton "" ("base", "base", "base", "stare", cheeks="blush")
    pause.8

    ast "See, I told you I could do it!" ("smile", "narrow", "base", "mid")
    gen "Great... Don't get cocky..." ("base", xpos="far_left", ypos="head")
    ast "Don't you see, Professor?" ("annoyed", "narrow", "base", "mid")
    ast "I can make her do whatever I want!" ("smile", "narrow", "base", "mid")
    ast "I'm the greatest witch of all time!" ("clench", "base", "angry", "L")
    ton "..." ("normal", "base", "raised", "stare")
    ast "If I can pull off the Imperius curse on Professor Tonks..." ("open", "closed", "base", "mid")
    ast "Any of the other girls will be easy game for me!" ("smile", "narrow", "angry", "down") # Game as in "prey".
    ast "I'll make them rue the day they ever made fun of me!" ("clench", "closed", "angry", "mid")
    ton "..................................................." ("annoyed", "wide", "shocked", "stare", hair="annoyed") # Angry at Astoria
    gen "......................." ("base", xpos="far_left", ypos="head")
    ast "Tomorrow, I shall have Susan walk through school - parading those ridiculous udders of hers for all to see! That'll show her!" ("angry", "narrow", "angry", "R")
    ton "!!!" ("upset", "wide", "shocked", "stare", hair="angry") # Very angry
    ast "And then shove her into our common room - and all the boys will laugh at her cow udders!" ("smile", "closed", "angry", "R")
    gen "And she'll love every second of it!" ("grin", xpos="far_left", ypos="head")
    ast "And she'll--" ("smile", "closed", "angry", "R")
    ton "*Tzzzzz*!..." ("upset", "closed", "annoyed", "mid", hair="angry", emote="angry")
    ton "That's enough!" ("scream", "base", "angry", "R", trans=hpunch)

    # Tonks returns to normal, and puts her clothes back on.
    $ renpy.sound.play("sounds/cloth_sound3.ogg")
    $ tonks.wear("all")
    ton "" ("mad", "base", "angry", "down")
    pause.8

    call ast_chibi("reset",530,"base")
    ast "What?" ("clench", "base", "worried", "L")
    ton "Astoria, you are dismissed!" ("open", "closed", "angry", "mid")
    ast "No! I still wanted to--" ("angry", "base", "angry", "mid")
    ton "Dismissed!" ("normal", "closed", "angry", "mid")
    ast "........................" ("annoyed", "narrow", "angry", "R")
    ast "*Tzzz!*..." ("clench", "base", "angry", "mid")

    # Astoria leaves.
    call ast_walk(action="leave")

    ton "The nerve on that girl, I can't believe it!" ("open", "base", "angry", "R", hair="angry", xpos="mid", ypos="base")
    ton "I'm beginning to think teaching her an \"unforgivable curse\" might've been a bad idea after all..." ("normal", "closed", "annoyed", "mid")
    gen "How so?" ("base", xpos="far_left", ypos="head")
    ton "Didn't you hear her?" ("open", "base", "angry", "mid")
    ton "She's disregarding all of our advice!... Or at least planning to..." ("mad", "base", "angry", "R")
    ton "She's been ignoring my instructions all day!" ("annoyed", "closed", "base", "mid")
    ton "She's such a cute and stubborn girl..." ("soft", "closed", "angry", "mid")
    ton "We can't have her roaming the school - cursing people as she pleases!" ("annoyed", "base", "annoyed", "mid")

    gen "So, should we stop?" ("base", xpos="far_left", ypos="head")
    ton ".................." ("annoyed", "closed", "annoyed", "mid", hair="neutral")
    ton "Only if she refuses to follow our rules..." ("open", "narrow", "annoyed", "downR")
    ton "As long as what we're doing stays within these walls, it shouldn't be too bad." ("normal", "base", "annoyed", "R")
    ton "And besides, Imperio isn't the worst curse you could be a target of, all things considered..." ("upset", "base", "annoyed", "down")
    gen "I thought it was dangerous?" ("base", xpos="far_left", ypos="head")
    ton "Only if you use the right commands." ("open", "narrow", "annoyed", "down")
    gen "Such as asking one of their horny teachers to--" ("base", xpos="far_left", ypos="head")
    ton "The curse itself is quite harmless." ("annoyed", "closed", "base", "mid")
    ton "And it feels really good when you're under its effect..." ("soft", "base", "base", "R")
    gen "It does?" ("base", xpos="far_left", ypos="head")
    ton "*Mhmm*... yeah..." ("horny", "base", "annoyed", "up", hair="horny")
    ton "It's so goood! {heart}" ("soft", "narrow", "worried", "ahegao")
    gen "I think you're enjoying this a bit too much!" ("grin", xpos="far_left", ypos="head")
    gen "Just what would your students think if they knew their teacher gets off on being mind controlled?" ("grin", xpos="far_left", ypos="head")
    ton "Oh - be quiet you..." ("annoyed", "wide", "annoyed", "up")
    ton "................................" ("upset", "wide", "worried", "stare")
    ton "Is it that obvious?" ("disgust", "base", "worried", "L")
    gen "Can't fool a genie..." ("grin", xpos="far_left", ypos="head")
    gen "I'm a genius, it's in the name." ("base", xpos="far_left", ypos="head")
    gen "G{w=0.3} E{w=0.3} N{w=0.5} I{w=0.5} U...{w=1.0}{nw}" ("base", xpos="far_left", ypos="head")
    gen "G E N I U...{fast} hold on a second..." ("angry", xpos="far_left", ypos="head") #This makes the line change expression mid sentence
    ton "Anyway..." ("normal", "base", "base", "down")
    ton "I'll have to talk some sense into that girl before we can continue, that's for certain..." ("annoyed", "wide", "annoyed", "downR")
    gen "Of course..." ("base", xpos="far_left", ypos="head")

    ton "I'm sorry I let this situation get out of hand..." ("open", "closed", "worried", "mid")
    ton "It won't happen again, I promise." ("disgust", "base", "worried", "mid")
    gen "You did great..." ("base", xpos="far_left", ypos="head")
    gen "But next time I'd like to see some tits!" ("grin", xpos="far_left", ypos="head")
    ton "Of course you would." ("base", "base", "annoyed", "R")
    ton "You love 'em - don't you?" ("base", "wide", "annoyed", "mid")
    gen "That I do!" ("grin", xpos="far_left", ypos="head")
    ton "I should get going. It's getting late..." ("normal", "base", "shocked", "down")
    gen "Until next time..." ("base", xpos="far_left", ypos="head")
    ton "Have a good night, [ton_genie_name]." ("soft", "base", "base", "mid")

    # Tonks leaves.
    call ton_walk(action="leave")

    call bld
    gen "..." ("base", xpos="far_left", ypos="head")
    gen "G{w=0.3} E{w=0.3} N{w=0.5} I--" ("angry", xpos="far_left", ypos="head")
    gen "Fuck it..." ("base", xpos="far_left", ypos="head")

    $ ast_mood += 12

    # Increase affection once (this is the third event)
    if ag_st_imperio.counter == 3:
        $ ast_whoring += 1

    jump end_ag_st_imperio


label ag_st_imperio_E4:
    stop music fadeout 1.0

    call ton_walk(action="enter",xpos="desk",ypos="base")
    pause.5

    call ton_chibi("stand","desk","base", flip=True)
    with d3
    pause.1

    ton "Astoria, would you come in here please..." ("open", "closed", "base", "mid", ypos="head")
    ast "Do I have to?"
    ton "Yes, we already talked about this..." ("open", "base", "base", "R")
    ast "Fine, whatever..."
    hide screen bld1
    with d3
    pause.1

    #Astoria enters
    call ast_walk(action="enter",xpos=530,ypos="base") # Make sure it's slightly to the left of Tonks' chibi.
    pause.1

    call ton_chibi("stand","desk","base", flip=False)
    with d3
    pause.5

    call play_music("tonks")
    ton "" ("base", "base", "base", "L", xpos="right", ypos="base")
    ast "..." ("annoyed", "narrow", "base", "down", xpos="base", ypos="base")

    ton "Astoria... isn't there something you'd like to say to our Headmaster?" ("soft", "base", "shocked", "mid")
    gen "..." ("base", xpos="far_left", ypos="head")
    ast "Yes..." ("open", "narrow", "base", "down")
    ton "" ("base", "base", "base", "R")
    ast "Sir, I'm sorry about my behaviour during our last training session." ("annoyed", "base", "base", "L")
    gen "Sure, no big deal--" ("base", xpos="far_left", ypos="head")
    ast "It was wrong of me to scream at Professor Tonks like that, or scream at you..." ("open", "narrow", "base", "L")
    gen "Fine. Let's just get to--" ("base", xpos="far_left", ypos="head")
    ton "And what else?" ("open", "closed", "base", "mid")
    ton "" ("base", "base", "base", "L")
    ast "I was disrespectful, selfish, and mean." ("open", "closed", "base", "mid")
    ast "And I should be thankful that you are granting me this opportunity." ("open", "base", "base", "mid")
    gen "..." ("base", xpos="far_left", ypos="head")
    ast "I'm well aware of what is at stake here, and I shall follow the rules from now on." ("clench", "narrow", "base", "down")
    ast "..." ("annoyed", "narrow", "base", "down") # Looks away
    gen "*Ahem* Could we please just get started?" ("base", xpos="far_left", ypos="head")
    gen "(I'm dying to see some tits!)" ("angry", xpos="far_left", ypos="head")
    ast "........................" ("annoyed", "base", "base", "R")
    ton "Very good, Astoria." ("base", "happyCl", "base", "mid")
    ton "I'm proud of you. {heart}" ("grin", "base", "base", "R")
    ast "........................." ("annoyed", "base", "base", "down") # embarrassed
    gen "......................." ("base", xpos="far_left", ypos="head")

    ton "So, let's begin..." ("base", "wide", "base", "mid")
    call ast_chibi("wand",530,"base")
    with d3
    ton "Astoria, try and focus on what we went through today..." ("open", "base", "base", "down")
    ton "Keep good track of your emotions after channelling the spell..." ("open", "closed", "base", "mid")
    ton "Anger and rage will cause you to lose control - and eventually break the connection with the target..." ("normal", "base", "annoyed", "L")
    ton "Do your best to be as thoughtful, nice, and endearing as you possibly can towards your target..." ("base", "base", "base", "L")
    ast "" ("annoyed", "base", "base", "R")
    ton "The stronger the emotional bond - the better." ("open", "closed", "base", "mid")
    ton "So try to charm them a bit while you're at it!" ("soft", "base", "base", "L")
    ton "It is called a charm for a reason, after all!" ("base", "happyCl", "base", "mid")
    ast "....................." ("annoyed", "base", "worried", "down")
    gen "...................." ("base", xpos="far_left", ypos="head")
    ton "Not a very good joke - I gather..." ("annoyed", "wide", "raised", "mid")
    gen "I'm sorry. I was only half paying attention..." ("base", xpos="far_left", ypos="head")
    ton "Very well..." ("upset", "base", "shocked", "L")

    ton "Now then, let's get on with it, shall we?" ("base", "wink", "annoyed", "mid")
    ast "..." ("annoyed", "base", "base", "mid")
    call ast_chibi("wand_casting",530,"base")
    with d3
    ton "Astoria, as soon as I'm ready, I'd like you to--" ("open", "closed", "base", "mid")

    # Astoria casts imperio.
    stop music fadeout 2.0
    ast "IMPERIO!{w=0.8}{nw}" ("scream", "base", "angry", "mid", trans=hpunch) # Screams it even louder

    call hide_characters
    hide screen bld1
    with d3
    pause.2

    # chibi spell animation.
    call play_sound("spell")
    call ast_chibi("wand_imperio",530,"base")
    with hpunch
    pause.8

    call play_music("trance")
    ast "" ("annoyed", "base", "base", "L")
    ton "........................." ("mad", "wide", "shocked", "ahegao", hair="horny") # shock

    gen "......................" ("base", xpos="far_left", ypos="head")
    ton "*Aaaaah*..." ("open", "base", "shocked", "ahegao", hair="horny", cheeks="blush")
    call ast_chibi("wand",530,"base")
    with d3
    ast "I'm getting really good at this!" ("smile", "base", "angry", "L")
    ton "......................." ("normal", "wide", "base", "stare")
    ast "What shall I have her do, Professor?" ("smile", "base", "base", "mid")

    gen "*Hmm*... How about..." ("base", xpos="far_left", ypos="head")
    menu:
        "\"Make her turn around!\"": # She's facing Astoria
            ast "Very well, Sir." ("base", "base", "worried", "mid")
            ast "Professor, please turn around for me..." ("open", "base", "base", "L")
            ton "*Hmm*... Yes!" ("base", "base", "worried", "stare")

            # Tonks turns around
            call hide_characters
            hide screen bld1
            with d3
            pause.1

            call ton_chibi("stand","desk","base", flip=True)
            with d3
            pause.5

            ast "" ("clench", "wink", "worried", "mid")
            ton "" ("base", "base", "base", "L", flip=True)
            pause.8

            ton "........................" ("horny", "wide", "base", "stare")
            ast "*Uhm*..." ("clench", "narrow", "worried", "R") # Astoria is uncomfortable

        "\"Let her face me!\"":
            ast "Very well..." ("open", "base", "base", "mid")

    ast "And now?" ("base", "base", "base", "mid")
    gen "Her coat! Tell her to take it off!" ("grin", xpos="far_left", ypos="head")
    ast "Professor Tonks, please remove your coat for me." ("open", "base", "worried", "L")
    ton "..." ("base", "base", "base", "stare")

    # Remove coat.
    $ renpy.sound.play("sounds/cloth_sound3.ogg")
    $ tonks.strip("robe")
    ton "" ("base", "base", "base", "ahegao")
    pause.8

    gen "You're doing great, Astoria!" ("grin", xpos="far_left", ypos="head")
    gen "It's like watching you teach a puppy new tricks..." ("grin", xpos="far_left", ypos="head")
    ton ".........................." ("soft", "narrow", "base", "ahegao") # ahegao
    ast "If you say so, Sir." ("clench", "base", "base", "down")
    gen "Let's move on to the next trick, shall we?" ("base", xpos="far_left", ypos="head")
    gen "Ask her to get those tits out!" ("grin", xpos="far_left", ypos="head")
    ast "Her what?!" ("clench", "base", "base", "mid")
    gen "Her breasts, girl..." ("base", xpos="far_left", ypos="head")
    gen "Tell her to remove her top." ("base", xpos="far_left", ypos="head")
    ast "Right now?" ("open", "wink", "base", "mid")
    ast "But..." ("clench", "base", "base", "mid")

    if tonks.xzoom == -1: # Facing Astoria
        ast "Can I at least tell her to turn around again?" ("clench", "base", "worried", "R")
        gen "Why? Scared of your teacher's enormous rack?" ("base", xpos="far_left", ypos="head")
        ast "What?{w} As if!" ("annoyed", "narrow", "angry", "R")
        gen "I doubt she'd like to show them to you anyway..." ("grin", xpos="far_left", ypos="head")
        ton "......................" ("soft", "base", "base", "ahegao", hair="horny") # Ahegao
        ast "............" ("annoyed", "base", "worried", "mid")
        gen "Go on..." ("base", xpos="far_left", ypos="head")

    else: # Facing Genie
        ast "I'm not sure if she'd be okay with that." ("open", "base", "worried", "mid")
        gen "This again?" ("base", xpos="far_left", ypos="head")
        ast "You'd have to close your eyes first, Professor!" ("open", "closed", "base", "mid")
        gen "What?" ("base", xpos="far_left", ypos="head")
        gen "Are you giving orders to me now as well, girl?" ("base", xpos="far_left", ypos="head")
        ast "Close your eyes!" ("angry", "narrow", "angry", "mid")
        gen "Not a chance!" ("base", xpos="far_left", ypos="head")
        ast "......................." ("annoyed", "base", "angry", "R")
        ast "It won't be my fault if she gets mad at you later!" ("open", "narrow", "base", "down")
        gen "Sure, whatever..." ("base", xpos="far_left", ypos="head")
        gen "Go on already!" ("base", xpos="far_left", ypos="head")

    gen "Let's get those tits out!" ("grin", xpos="far_left", ypos="head")
    ast "Professor Tonks, I need you to remove your..." ("open", "base", "worried", "R")
    ast "Your shirt..." ("clench", "base", "base", "down")
    ton "................" ("normal", "base", "shocked", "stare")
    gen "!!!" ("grin", xpos="far_left", ypos="head")

    # Remove top.
    $ renpy.sound.play("sounds/cloth_sound3.ogg")
    $ tonks.strip("top")
    if tonks.is_worn("bra"): # Remove bra if True
        ast "and your bra..." ("clench", "base", "base", "down")
        $ renpy.sound.play("sounds/cloth_sound3.ogg")
        $ tonks.strip("bra")
    ton "" ("base", "wide", "shocked", "ahegao", cheeks="blush")
    ast "" ("annoyed", "closed", "base", "mid")
    call ctc

    if tonks.xzoom == -1: # Facing Astoria
        ast "Is she... is she doing it?" ("clench", "closed", "worried", "mid") # closed eyes
        ton "............." ("grin", "wink", "base", "mid", cheeks="blush") # horny
        gen "Why don't you see for yourself?" ("grin", xpos="far_left", ypos="head")
        gen "Open your eyes, girl!" ("grin", xpos="far_left", ypos="head")
        ast "I don't want to..." ("open", "closed", "worried", "mid")
        gen "Why not?" ("base", xpos="far_left", ypos="head")
        ast "Why would I want to look at her--" ("open", "closed", "worried", "mid")
        gen "Now, now... Don't be rude to your teacher..." ("base", xpos="far_left", ypos="head")
        gen "It seems to me like she would really like to show you!" ("grin", xpos="far_left", ypos="head")
        ast "...................." ("clench", "closed", "base", "mid") # eyes still closed
        ton "" ("base", "wide", "base", "stare", cheeks="blush")
        ast "..." ("clench", "wink", "base", "mid")
        ast "...................." ("annoyed", "narrow", "worried", "R")
        gen "That wasn't too bad now, was it?" ("grin", xpos="far_left", ypos="head")
        ton "......................." ("base", "base", "base", "ahegao", hair="horny", cheeks="blush") # ahegao

    else:
        gen "Now would you look at that!" ("grin", xpos="far_left", ypos="head")
        ton "................" ("soft", "wide", "shocked", "stare") # horny
        gen "Those are some great breasts your teacher has there!" ("base", xpos="far_left", ypos="head")
        ton "................" ("soft", "wide", "base", "stare", hair="horny") # ahegao
        ast "I asked you not to look, Professor!" ("open", "closed", "angry", "mid")
        gen "I don't believe she minds, does she?" ("grin", xpos="far_left", ypos="head")
        ast "" ("clench", "narrow", "worried", "R")
        ton "................" ("horny", "wide", "base", "stare", cheeks="blush") # ahegao

    gen "*Hmm*..." ("base", xpos="far_left", ypos="head")
    gen "We might be able to push her even further!" ("base", xpos="far_left", ypos="head")
    ast "Further, Sir? How?" ("annoyed", "wink", "base", "mid")
    gen "By getting her to remove the rest of her clothing, of course!" ("grin", xpos="far_left", ypos="head")
    ton ".............." ("horny", "base", "shocked", "ahegao", hair="horny", cheeks="heavy_blush") # angry/horny expression
    gen "What do you think? Want to give it a try?" ("grin", xpos="far_left", ypos="head")
    ast "Would that really be necessary, Sir?" ("open", "base", "base", "R")
    gen "Yes.{w=0.3} it.{w=0.3} would." ("base", xpos="far_left", ypos="head")
    ast "We--{w=0.5} we could try again next time, Professor..." ("clench", "narrow", "base", "down")
    gen "Next time?" ("base", xpos="far_left", ypos="head")
    gen "Where did your enthusiasm go all of a sudden?" ("base", xpos="far_left", ypos="head")
    gen "Weren't you so eager to practise this spell?" ("base", xpos="far_left", ypos="head")
    ast "Yes, but..." ("annoyed", "narrow", "base", "down")
    gen "Yes?" ("base", xpos="far_left", ypos="head")
    ast "I don't have to explain myself to you!" ("annoyed", "narrow", "angry", "down")
    ton "" ("annoyed", "wide", "shocked", "ahegao", cheeks="blush")
    ast "..." ("annoyed", "narrow", "angry", "R")

    stop music fadeout 2.0
    gen "..." ("base", xpos="far_left", ypos="head")
    ast "I should go to bed..." ("open", "narrow", "base", "R")
    gen "Is that so..." ("base", xpos="far_left", ypos="head")
    ast "I-- *Uhm*...{w=0.5} I'm tired, Sir." ("open", "narrow", "base", "mid")
    ast "*yaaaaawn*!..." ("open", "closed", "worried", "mid")
    ast "See?" ("annoyed", "base", "base", "mid")
    gen "..." ("base", xpos="far_left", ypos="head")
    gen "Very well..." ("base", xpos="far_left", ypos="head")
    gen "You are dismissed." ("base", xpos="far_left", ypos="head")
    ast "..." ("clench", "narrow", "worried", "down") #embarrased

    # Astoria leaves and spell fades
    call hide_characters
    hide screen bld1
    with d3
    pause.5

    call ast_chibi("reset",530,"base", flip=True)
    with d3
    pause.2

    call ast_walk(action="leave")
    pause.5

    call ton_chibi("stand","desk","base", flip=False)
    with d3
    pause.8

    call play_music("tonks")
    ton "Well, that was interesting..." ("annoyed", "wide", "base", "downR", hair="neutral", xpos="mid", ypos="base", flip=False, trans=dissolve)
    gen "Do you have any idea why she wanted to leave so abruptly?" ("base", xpos="far_left", ypos="head")
    ton "I have a couple of theories, actually..." ("soft", "closed", "base", "mid")
    gen "*Mhmm*... That curse thing is it?" ("base", xpos="far_left", ypos="head")
    ton ".................." ("soft", "wide", "base", "down", hair="horny") # horny stare
    ton "Would you like me to put my clothes back on?" ("grin", "narrow", "raised", "mid")
    gen "Don't feel pressured!" ("grin", xpos="far_left", ypos="head")
    ton "Very well, then..." ("base", "narrow", "base", "mid")

    # screenshake
    with hpunch
    call nar(">Tonks gives her breasts a quick shake for you.")

    gen "Sweet!" ("grin", xpos="far_left", ypos="head")
    ton "..............." ("horny", "wink", "base", "L")
    ton "She made some good progress today, unlike last time..." ("base", "base", "shocked", "L")
    ton "And she was very polite!" ("base", "happyCl", "base", "mid")
    ton "But she isn't quite there yet..." ("upset", "base", "shocked", "down")

    gen "Does she require more training?" ("base", xpos="far_left", ypos="head")
    ton "Yes, actually..." ("soft", "narrow", "shocked", "downR")
    ton "She'll need a lot more training to pull off the Imperius curse properly..." ("open", "closed", "base", "R")
    ton "And, as you could see... It doesn't have much of an effect on me." ("soft", "base", "shocked", "down")
    ton "I could have easily avoided doing everything she's told me today, if I wanted to..." ("open", "closed", "base", "mid")
    gen "But you didn't!" ("grin", xpos="far_left", ypos="head")
    ton "It wasn't my intention to break her spirit again... She was really trying!" ("upset", "closed", "worried", "R")
    ton "Now, as you know, I'm a trained Auror..." ("normal", "wide", "shocked", "mid")
    gen "A very \"talented\" one at that!" ("base", xpos="far_left", ypos="head")
    ton "Are you just praising my tits, Sir?" ("soft", "narrow", "annoyed", "mid")
    gen "Every part of your body is worthy of praise!" ("grin", xpos="far_left", ypos="head")
    ton "Well... thank you, [ton_genie_name]." ("base", "happyCl", "shocked", "mid")

    # Screenshake
    with hpunch
    ton "" ("horny", "narrow", "shocked", "mid")
    call nar(">Tonks gives her breasts another quick shake for you.")

    call ctc

    ton "I suggest we do one more training session, and then call it from there..." ("base", "wide", "base", "mid")
    gen "Sounds good to me..." ("base", xpos="far_left", ypos="head")
    ton "Believe me, it's gonna be a great one!" ("soft", "wink", "base", "mid")
    gen "Are we going to see more of your... talents?" ("grin", xpos="far_left", ypos="head")
    ton "How would you like to see {b}all{/b} this Auror has to offer?" ("horny", "closed", "annoyed", "mid") # horny
    gen "Looking forward to it!" ("grin", xpos="far_left", ypos="head")
    ton "Have a good night, [ton_genie_name]!" ("base", "base", "angry", "mid")

    # Tonks leaves.
    call ton_walk(action="leave")

    call bld
    gen "I hope she's planned something big!" ("grin", xpos="far_left", ypos="head")

    # Increase affection once (this is the fourth event)
    if ag_st_imperio.counter == 4:
        $ ast_whoring += 1

    jump end_ag_st_imperio


label ag_st_imperio_E5:
    stop music fadeout 1.0
    call play_sound("door")
    call ton_chibi("stand","desk","base")
    call ast_chibi("stand",530,"base") # Make sure it's slightly to the left of Tonks' chibi.
    with d3
    pause.8

    call play_music("astoria")
    ast "" ("smile", "base", "base", "mid", xpos="base", ypos="base")
    ton "Hi, Professor!" ("base", "wide", "base", "mid", xpos="right", ypos="base")

    ast "Hello!" ("smile", "closed", "base", "mid", emote="happy") # Happy
    gen "All cheered up today, Astoria?" ("base", xpos="far_left", ypos="head")
    ast "Yes, Sir." ("grin", "base", "base", "mid")
    ton "She should be. We made some real progress today." ("grin", "narrow", "base", "R")
    ton "I'm very impressed with her, I've got to say!" ("base", "base", "base", "mid")
    ton "She's very close to mastering it!" ("base", "happyCl", "base", "mid")
    ast "Really?!" ("smile", "base", "base", "R")
    gen "Is that so?" ("grin", xpos="far_left", ypos="head")
    gen "Care for a demonstration?" ("grin", xpos="far_left", ypos="head")
    ast "" ("smile", "base", "base", "mid")
    ton "Of course." ("base", "base", "base", "mid")
    ton "I'm confident she'll be able to make me do {b}anything{/b} you want today." ("horny", "base", "base", "R", hair="horny") # Horny stare
    gen "Counting on it!" ("grin", xpos="far_left", ypos="head")
    ton "Make sure to give her some good suggestions, Professor!" ("open", "base", "angry", "mid")
    gen "Absolutely!" ("grin", xpos="far_left", ypos="head")
    ton "And Astoria..." ("open", "base", "raised", "L")
    ton "Today we are going to try to push me to the limit." ("base", "base", "base", "L")
    ton "You will have me do whatever Professor Dumbledore commands, without question!" ("soft", "wide", "annoyed", "L")
    ast "I suppose..." ("annoyed", "base", "base", "down")
    ton "We will only stop with today's training once I'm able to... resist, am I clear?" ("open", "closed", "base", "L")
    ast "Okay, Professor..." ("annoyed", "base", "base", "R")

    ton "You may start now, Astoria..." ("base", "narrow", "base", "L")
    call ast_chibi("wand",530,"base")
    with d3
    ton "..................." ("base", "closed", "base", "mid")
    call ast_chibi("wand_casting",530,"base")
    with d3
    ast "..................." ("annoyed", "base", "base", "down")
    ton "Astoria? Would you cast the curse - please?" ("open", "base", "base", "L")
    ast "..................." ("clench", "base", "base", "down")

    # Astoria casts imperio.
    stop music fadeout 2.0
    ast "Imperio...{w=0.8}{nw}" ("open", "closed", "base", "mid")

    call hide_characters
    hide screen bld1
    with d3
    pause.2

    # chibi spell animation.
    call ast_chibi("wand_imperio",530,"base")
    call play_sound("spell")
    with hpunch
    pause.8

    call play_music("trance")
    ast "" ("base", "base", "base", "L")
    ton "*Hmm*............" ("soft", "base", "worried", "ahegao", hair="horny")

    gen "(Here we go!)" ("grin", xpos="far_left", ypos="head")
    ast ".............." ("grin", "base", "base", "L")
    call ast_chibi("wand",530,"base")
    with d3
    ast "What should we start with, Professor?" ("open", "base", "worried", "mid")
    gen "Let's just try the same things as last time..." ("base", xpos="far_left", ypos="head")
    gen "Ask her to take that coat off first." ("base", xpos="far_left", ypos="head")
    ast "Very well..." ("base", "base", "base", "mid")
    ast "Professor, would you please take off your coat?" ("open", "base", "base", "L")
    ton "*Hmm*... My coat?..." ("open", "base", "worried", "stare")
    ton "..............." ("normal", "wide", "base", "stare")
    ton "Sure {heart}" ("silly", "happyCl", "base", "mid")

    # Remove coat.
    $ renpy.sound.play("sounds/cloth_sound3.ogg")
    $ tonks.strip("robe")
    ton "" ("base", "base", "base", "ahegao")
    pause.8

    ast "Yay!" ("smile", "narrow", "base", "mid")
    ast "Her shirt was next, right?" ("base", "base", "angry", "mid")
    gen "That is correct." ("base", xpos="far_left", ypos="head")
    ast "Yes! Take off your shirt, Professor!" ("clench", "base", "angry", "L") # menacing
    ton "*Ahhh*................" ("soft", "base", "base", "ahegao", cheeks="blush")

    # Remove top.
    $ renpy.sound.play("sounds/cloth_sound3.ogg")
    $ tonks.strip("top")
    $ tonks.strip("bra")
    ton "" ("base", "base", "base", "ahegao", cheeks="blush")
    pause.8

    ast "She did it!" ("smile", "base", "base", "mid", cheeks="blush")
    gen "Well{w=0.5} {i}fucking{/i}{w=0.7} done!" ("grin", xpos="far_left", ypos="head")
    gen "Next, I'd like you to--" ("base", xpos="far_left", ypos="head")
    ast "Ask her to take off her trousers!" ("grin", "base", "angry", "L")
    gen "Yes please!" ("grin", xpos="far_left", ypos="head")
    ast "Professor, please take off your trousers..." ("open", "closed", "base", "mid")
    ton "*hngh*..." ("mad", "closed", "base", "ahegao", cheeks="blush")

    # Remove bottom.
    $ renpy.sound.play("sounds/cloth_sound3.ogg")
    $ tonks.strip("bottom")
    $ tonks.strip("panties")
    ton "" ("base", "base", "worried", "ahegao")
    pause.5
    ast "" ("annoyed", "narrow", "angry", "down")
    pause.8
    ton "" ("horny", "wide", "shocked", "ahegao", cheeks="blush")
    call ctc

    ast "Oh wow..." ("angry", "base", "base", "down")
    ton "..................." ("horny", "base", "base", "ahegao", cheeks="blush")
    ast "Professor, how can it be that you're not wearing any underwear?!" ("angry", "base", "worried", "down") # angry embarrassed
    gen "Yes, Miss Tonks." ("base", xpos="far_left", ypos="head")
    gen "Explain yourself!" ("grin", xpos="far_left", ypos="head")
    ton "*Hmm*......." ("normal", "base", "worried", "stare", cheeks="blush")
    ast "Answer us!" ("clench", "closed", "angry", "mid")
    ton "I don't like to wear them..." ("open", "wide", "worried", "stare", hair="sad", cheeks="blush")
    ast "Why?!" ("open", "narrow", "angry", "L") # angry
    ton "I feel so much better without a bra on... or panties..." ("soft", "wide", "base", "stare", hair="horny")
    ast "You're a teacher! This is disgusting!" ("clench", "closed", "angry", "mid", emote="angry")
    gen "Dis-{w=0.8}gusting!" ("angry", xpos="far_left", ypos="head")

    with hpunch
    ton "{heart} {heart} {heart}" ("soft", "happyCl", "worried", "ahegao", cheeks="blush")
    ast "I can't believe my teacher is such a slut!" ("angry", "narrow", "angry", "L")
    gen "Des-{w=0.8}picable!" ("angry", xpos="far_left", ypos="head")
    ast "Are you a slut, Professor?" ("open", "narrow", "angry", "L")
    ton "..............." ("normal", "shocked", "worried", "stare", cheeks="blush") # ahegao
    ast "Are you?!" ("clench", "base", "angry", "L")
    ton "I am! {heart}" ("soft", "base", "worried", "ahegao", hair="horny", cheeks="blush")
    ast "I knew it!" ("smile", "narrow", "angry", "L")
    ast "That's why she has such difficulty resisting our commands!" ("open", "base", "worried", "mid")
    gen "Yes. She's clearly trying her hardest..." ("base", xpos="far_left", ypos="head")

    ton "" ("normal", "base", "shocked", "ahegao", hair="horny", cheeks="blush")
    ast "Professor Dumbledore, you knew exactly what her weakness would be!" ("smile", "base", "base", "mid")
    gen "I did?" ("base", xpos="far_left", ypos="head")
    gen "*Ahem*... I mean, of course I did!" ("base", xpos="far_left", ypos="head")
    ast "We're taking off her clothes, because that's what she enjoys! But could never do in school!" ("angry", "narrow", "angry", "L")
    ast "Which makes it easier for me to channel the Imperius curse..." ("grin", "base", "angry", "mid")
    ast "Because she's nothing but a weak-minded slut!" ("open", "narrow", "angry", "L") # angry
    ton "................" ("soft", "narrow", "shocked", "ahegao", hair="horny", cheeks="blush") # ahegao
    gen "You're on point!" ("base", xpos="far_left", ypos="head")

    ast "Take off the rest of your clothes!" ("clench", "base", "angry", "L") # angry
    gen "Yes!" ("grin", xpos="far_left", ypos="head")
    ast "Take them off, you slut!" ("scream", "closed", "angry", "mid", trans=hpunch) # scream
    ton "........{heart}" ("normal", "wide", "shocked", "stare", cheeks="blush")

    # Strip naked. Removes clothes and stockings.
    $ renpy.sound.play("sounds/cloth_sound3.ogg")
    $ tonks.strip("all")
    ton "" ("grin", "base", "base", "ahegao", hair="horny", cheeks="blush")
    ast "(She did it...)" ("horny", "narrow", "angry", "L")
    call ctc

    ast "Look, Professor!" ("smile", "narrow", "angry", "L")
    ast "I got her to be completely naked!" ("smile", "base", "angry", "mid")
    gen "Excellent work, [astoria_name]!" ("grin", xpos="far_left", ypos="head")
    ast "Thank you, Sir!" ("smile", "closed", "base", "mid")
    ton "............." ("silly", "happyCl", "base", "stare", cheeks="blush")

    #screenshake
    with hpunch
    call nar(">Tonks gives her tits a little sway...")

    gen "*Argh*! (I can't take it anymore!)" ("angry", xpos="far_left", ypos="head")

    gen "..." ("angry", xpos="far_left", ypos="head")
    menu:
        "-Start masturbating!-":
            $ genie_masturbating = True
            call hide_characters
            hide screen bld1
            with d3
            pause.2

            call gen_chibi("jerk_off_behind_desk")
            with d5
            pause.8

            show screen bld1
            call nar(">You take out your cock and start jacking off.")

    ton "" ("horny", "narrow", "raised", "L", cheeks="blush")
    ast "What shall I have her do now?" ("open", "base", "base", "L")
    "*fap-fap-fap*"
    ton "" ("soft", "narrow", "shocked", "L", hair="horny", cheeks="blush")
    ast "Professor?" ("annoyed", "narrow", "angry", "mid")
    gen "What?" ("base", xpos="far_left", ypos="head")
    gen "Oh..." ("base", xpos="far_left", ypos="head")
    gen "Get her to climb my desk!" ("grin", xpos="far_left", ypos="head")
    gen "Have her do a little dance for us." ("grin", xpos="far_left", ypos="head")
    ast "Did you hear him, Professor?" ("smile", "closed", "base", "mid")
    ast "Get on that desk, and start dancing!" ("open", "narrow", "angry", "L")
    ton "Yes...{heart}" ("grin", "wink", "base", "mid", hair="horny")

    # Climb desk and dance.
    call hide_characters
    hide screen bld1
    show screen blkfade
    with d5

    call play_sound("climb_desk")
    pause 2

    call nar(">After giving you a playful wink, Tonks suggestively climbs on top of your desk, getting a good glimpse of your rock-hard cock...")
    pause 1

    call ast_chibi("wand","desk","base") # Still in wand pose.
    call ton_chibi("stand","on_desk","on_desk")
    hide screen blkfade
    with d5
    call ctc

    call bld
    gen "This is getting better and better..." ("grin", xpos="far_left", ypos="head")
    "*fap-fap-fap*"
    ton "" ("horny", "base", "raised", "down", xpos="mid", ypos="base")

    ast "Move your hips!" ("open", "narrow", "base", "L")
    call hide_characters
    hide screen bld1
    with d3
    pause.1

    # Tonks dances.
    call ton_chibi("stand","on_desk","on_desk", flip=True)
    with d3
    pause.8
    call ton_chibi("stand","on_desk","on_desk", flip=False)
    with d3
    pause.5

    ast "" ("horny", "base", "angry", "L")
    ton "............" ("grin", "base", "base", "mid")
    ast "She's really doing everything I tell her!" ("smile", "base", "angry", "mid")
    ast "Look how easy it is, Professor!" ("smile", "closed", "base", "mid", emote="hearts",trans=hpunch)

    call nar(">Astoria joyfully jumps up and down on the spot, making a happy squeal...")
    call hide_characters
    hide screen bld1
    with d3
    pause.1

    show screen astoria_wand_drop
    call ast_chibi("reset","desk","base") # No wand pose.
    pause.355
    $ renpy.play('sounds/wand_drop.ogg')
    pause.5

    show screen bld1
    call nar(">Unknowingly dropping her wand...")

    ton "" ("upset", "base", "base", "R")
    gen "*Uhm*..." ("base", xpos="far_left", ypos="head")
    ast "What's next, Professor?" ("smile", "narrow", "angry", "mid")
    gen "Next?" ("base", xpos="far_left", ypos="head")
    ast "Yes, just look at her... She's loving this!" ("clench", "narrow", "angry", "L")
    ast "Can I walk her around school like this?" ("grin", "narrow", "worried", "L")
    gen "What?" ("base", xpos="far_left", ypos="head")
    gen "Are you serious?" ("base", xpos="far_left", ypos="head")
    ast "Please!" ("upset", "base", "base", "mid")
    ton ".............." ("soft", "base", "raised", "down")
    gen "(That might be a good idea for another time...)" ("base", xpos="far_left", ypos="head")
    gen "Not today, I'm afraid..." ("base", xpos="far_left", ypos="head")
    ton "" ("annoyed", "closed", "base", "mid")
    ast "*Aww*..." ("annoyed", "narrow", "base", "down")
    gen "Don't worry, I have an even better idea!" ("grin", xpos="far_left", ypos="head")
    gen "Could you ask her to get under my table?" ("grin", xpos="far_left", ypos="head")
    ast "*Huh*?... To do what?" ("open", "base", "worried", "mid")
    ton "To give him a blowjob..." ("open", "closed", "shocked", "mid") # Tonks answers for Genie
    ast "Professor Tonks!{w} Are you serious?" ("scream", "base", "base", "L") # shocked
    ast "Why would she want to do that? That's disgusting!!!" ("clench", "base", "worried", "mid")
    gen "That-- *Uhm*..." ("base", xpos="far_left", ypos="head")
    gen "That wasn't what I would have suggested, but..." ("base", xpos="far_left", ypos="head")
    gen "I'm willing to give her a chance to try..." ("base", xpos="far_left", ypos="head")
    gen "Try to resist that urge, I mean..." ("base", xpos="far_left", ypos="head")
    ast "Are you sure it's okay...{w=0.4} I mean, As long as I don't have to look at it!" ("angry", "narrow", "base", "R")
    ast "Professor Tonks, you can get under Professor Dumbledore's desk... and..." ("open", "closed", "base", "mid")
    ast "Do \"that\" thing..." ("angry", "base", "worried", "R")
    ast "..." ("horny", "base", "worried", "mid")
    ton "............." ("base", "base", "shocked", "down", emote="hearts")

    call hide_characters
    hide screen bld1
    with d3
    #show screen blkfade
    #with d5
    pause.2

    call play_sound("door")
    pause.8

    call sna_chibi("stand","door","base")

    hide screen blkfade
    with d5

    # Snape enters...
    sna "Genie, I was wondering if you could help me with--" ("snape_35", ypos="head")
    stop music fadeout 2.0
    call play_sound("scratch")
    sna "!!!" ("snape_11", ypos="head")
    hide screen bld1
    with d3
    pause.1
    call ton_chibi("stand","on_desk","on_desk", flip=True)
    with d3
    pause.5

    ton "Shit!" ("mad", "base", "angry", "L", hair="annoyed", xpos="left", flip=True)
    hide tonks_main
    hide screen bld1
    with d3
    pause.1
    call ast_chibi("stand","desk","base", flip=True)
    with d3
    pause.5

    ast "*Huh*?!" ("annoyed", "narrow", "worried", "L", xpos="mid", flip=True)
    ast "*Aaaaaaaaaah!!!*......................." ("scream", "base", "base", "L", emote="shocked", trans=hpunch) # Screams
    hide astoria_main
    hide screen bld1
    with d3
    pause.1

    call play_sound("running")
    call ast_chibi("hide")
    call teleport("astoria", effect=False)
    call ast_chibi("stand",210,275+180, flip=True) # Next to Genie's chair.
    hide screen bld1
    with d3
    pause.1

    call gen_chibi("sit_behind_desk")
    with d3
    pause.5

    call bld
    call nar(">You quickly put away your priorly liberated cock.")
    gen "What's going on?" ("angry", xpos="far_left", ypos="head")
    sna "Yes! I'd like to know that as well!" ("snape_43")
    gen "Snape?!" ("angry", xpos="far_left", ypos="head")
    if hg_strip.trigger == True: # Snape saw Hermione strip
        gen "Damn it, not you again!" ("angry", xpos="far_left", ypos="head")
        gen "(You walking cock-block!)" ("angry", xpos="far_left", ypos="head")

    else:
        gen "Damn it, what are you doing here?" ("angry", xpos="far_left", ypos="head")

    call sna_walk(620,"base")
    pause.2

    call play_music("snape")
    sna "What on Earth is going on here?!" ("snape_08", xpos=580 ,ypos="base")
    sna "You two better explain to me what I just witnessed!" ("snape_32")
    ton "Stop being such a wuss, Severus!" ("mad", "base", "angry", "L", hair="angry", xpos="mid", flip=True)
    ton "We were just practising some spells with Miss Greengrass." ("annoyed", "base", "base", "R", hair="upset")
    sna "And that required you to be undressed? In front of a student?" ("snape_10")
    ton "Well... she was the cause of it..." ("clench", "base", "base", "down", cheeks="blush")
    sna "Caused you to strip?" ("snape_34")
    sna "Which spells are you teaching that girl?!" ("snape_25")
    sna "Don't tell me you--" ("snape_36") # Shocked
    ton "The Imperius Curse." ("soft", "closed", "base", "mid", cheeks="blush")
    sna "I can't believe you two..." ("snape_08")
    ast "Am I in trouble now, Professor?" ("annoyed", "base", "base", "L", xpos=10) # Asking Snape
    sna "Keep quiet, girl!" ("snape_34")
    sna "............" ("snape_04") # Snape sees the wand.

    sna "Is that your wand lying on the ground there?" ("snape_03")
    ast "My wand?" ("annoyed", "base", "base", "down")
    ast "Oh no, I must have dropped it when you came in, Sir." ("clench", "closed", "worried", "mid")
    sna "Well, pick it back up!" ("snape_32")
    sna "A Slytherin takes better care of her equipment..." ("snape_10")
    ast "Yes. I'm sorry, Professor." ("clench", "closed", "angry", "mid", emote="sweat")

    call ast_walk(path=[(270, 290+180), (370,290+180), ("desk","base")])
    call ast_chibi("stand","desk","base", flip=False)
    with d3
    pause.1
    call play_sound("lock")
    hide screen astoria_wand_drop
    pause.5

    sna "You may leave, Astoria." ("snape_09", ypos="head")
    ast "..." ("clench", "base", "base", "down", ypos="head", flip=True)
    sna "Miss Greengrass..." ("snape_04")
    ast "Yes sir." ("annoyed", "base", "base", "down")

    #astoria leaves
    $ snape_chibi.zorder = 3
    $ astoria_chibi.zorder = 2

    call sna_chibi("stand",620,"base") # Updates Zorder.
    call ast_walk(action="leave")

    $ snape_chibi.zorder = 2 # Reset to default.

    # Tonks hops off your desk and walks closer to Snape.
    call play_sound("climb_desk")
    show screen blkfade
    with d5
    pause 1

    call ton_chibi("stand","desk","base", flip=True)
    hide screen blkfade
    with d5
    pause.5

    call ton_walk(550,"base")
    pause.8

    ton "" ("annoyed", "base", "annoyed", "L", xpos=275, ypos="base", flip=True)
    sna "........................." ("snape_05", xpos=580 ,ypos="base")

    call play_music("tonks")
    ton "Like what you see?" ("upset", "base", "raised", "L", hair="horny") # Bit flirty, maybe just to calm Snape down.
    sna "............................." ("snape_12") # blushing
    gen "You couldn't have picked a worse time to burst in here..." ("angry", xpos="far_left", ypos="head")
    sna "I can imagine that..." ("snape_18")

    sna "So, Nymphadora..." ("snape_04")
    ton "*Tzzzzs*!......" ("annoyed", "closed", "annoyed", "mid", hair="angry")
    sna "Would you mind explaining to me why you were naked in the headmaster's office - with a student present?" ("snape_03")
    sna "One of my students - at that." ("snape_10")
    ton "Are you jealous?" ("soft", "narrow", "base", "L", hair="horny")
    sna "............" ("snape_14")

    sna "The question..." ("snape_18")
    ton "It's this Astoria girl..." ("soft", "base", "annoyed", "R", cheeks="blush")
    ton "There's something wrong with her..." ("open", "narrow", "base", "down")
    ton "She's cursed you see!" ("open", "wide", "worried", "L")
    ton "A blood curse... very unfortunate." ("mad", "base", "worried", "down")
    sna "A blood curse you say?" ("snape_09") #incredulous
    sna "Now that sounds serious..." ("snape_05")
    ton "Yes, very serious!" ("clench", "wide", "worried", "down")
    ton "Been in her family for generations even." ("disgust", "wide", "base", "mid")
    sna "And what are the effects of this \"Blood curse\" exactly?" ("snape_04")
    ton "Well... I believe that this curse has rendered her practically asexual!" ("clench", "base", "worried", "L")
    sna "What nonsense..." ("snape_07")
    gen "........................." ("base", xpos="far_left", ypos="head")
    ton "How dare you!" ("mad", "closed", "angry", "L")
    ton "I can recognise someone that's under a curse!" ("open", "narrow", "angry", "down")
    ton "I've been an auror for three years now, I'll have you know!" ("mad", "base", "angry", "R")
    sna "Working at that precious ministry of yours has really rubbed off on you, hasn't it?" ("snape_02")
    gen "That's enough, Severus." ("base", xpos="far_left", ypos="head")
    sna "..." ("snape_35")
    gen "What business is conducted in this office is none of your concern." ("base", xpos="far_left", ypos="head")
    gen "You're excused..." ("base", xpos="far_left", ypos="head")
    sna ".................." ("snape_04")
    sna "Very well..." ("snape_03")
    sna "Genie...{w} Nymphadora..." ("snape_09")
    ton ".................." ("mad", "base", "angry", "L", hair="angry") # Angry stare

    #Snape leaves
    call sna_walk(action="leave")

    call ton_chibi("stand","mid","base", flip=False)
    with d3
    pause.2
    call ton_walk("desk","base")
    pause.5

    ton "Thank you..." ("normal", "base", "worried", "mid", hair="neutral", xpos="mid", ypos="base", flip=False)
    gen "..." ("base", xpos="far_left", ypos="head")
    gen "Now..." ("base", xpos="far_left", ypos="head")

    menu:
        "-Prompt her to be honest with herself-":
            call bld
            gen "I think it's time for some honesty." ("base", xpos="far_left", ypos="head")
            ton "Regarding?" ("soft", "base", "shocked", "downR")
            gen "Everything that we've been doing with the Astoria girl." ("base", xpos="far_left", ypos="head")
            ton "Oh..." ("upset", "base", "worried", "down")
            ton "Well, we've been helping her haven't we?" ("open", "base", "shocked", "down", cheeks="blush")
            ton "She's such an uptight and oppressed cute little...{w=0.4} girl." ("upset", "closed", "raised", "down", cheeks="blush")
            ton "..." ("mad", "narrow", "base", "downR", cheeks="blush")
            ton "How can I not help her, even if she's a Slytherin." ("upset", "closed", "base", "mid", cheeks="blush")
            gen "[tonks_name]... You aren't convincing anyone." ("base", xpos="far_left", ypos="head")
            ton "To think such an innocent girl could be the victim of such an--" ("open", "closed", "base", "down", cheeks="blush")
            gen "Tonks!" ("base", xpos="far_left", ypos="head")
            ton "Alright..." ("annoyed", "base", "annoyed", "down") #exasperated
            ton "The blood curse may have been a little white lie on my part." ("annoyed", "narrow", "base", "down")
            gen "And?" ("base", xpos="far_left", ypos="head")
            ton "And the imperio training with Astoria may have been for my own benefit." ("soft", "narrow", "annoyed", "downR")
            gen "..." ("base", xpos="far_left", ypos="head")
            ton "Having her cast it on me was exclusively for my own personal enjoyment." ("annoyed", "base", "base", "down", cheeks="blush")
            gen "(What a surprise...)" ("base", xpos="far_left", ypos="head")
            gen "Why weren't you honest with me?" ("base", xpos="far_left", ypos="head")
            ton "*Sigh*..." ("open", "narrow", "base", "R")
            ton "Perhaps I've been taking this favour business... thing a bit too lightly." ("open", "narrow", "raised", "down", cheeks="blush")
            ton "I've been telling myself that it's as much for the students benefit as it is my own." ("upset", "closed", "worried", "mid")
            ton "\"I'll help them explore their sexuality\"." ("annoyed", "closed", "base", "mid")
            ton "\"It'll do them good\"." ("annoyed", "closed", "base", "mid")
            gen "We both know that is not the reason why we're doing this." ("base", xpos="far_left", ypos="head")
            ton "Yes..." ("upset", "base", "base", "down")
            ton "A small voice in my head knows it..." ("annoyed", "base", "base", "mid")
            ton "And I can't help that I'm just so god...{w=0.4} damn...{w=0.3} horny!" ("open_wide", "closed", "angry", "mid", hair="angry")
            ton "All the bloody time!" ("open_wide_tongue", "base", "base", "ahegao", hair="horny")
            ton "See!" ("annoyed", "base", "annoyed", "up", hair="horny")
            call nar(">You notice the bright pink colour of her hair - once again...")
            gen "You should stop lying to yourself, it's not healthy..." ("base", xpos="far_left", ypos="head")
            gen "I'm immortal - and even I know that!" ("base", xpos="far_left", ypos="head")
            gen "Embrace why you chose to be a part of this, you've got a pretty good gig here." ("base", xpos="far_left", ypos="head")
            ton "Yes, you're right." ("soft", "narrow", "base", "L")
            gen "You're doing this for yourself, it's okay to be selfish." ("base", xpos="far_left", ypos="head")
            gen "Think about how much you've endured at that ministry." ("angry", xpos="far_left", ypos="head")
            ton "..." ("upset", "closed", "annoyed", "ahegao")
            gen "Think of it as your reward! The students should be happy to have such a loving teacher as you." ("grin", xpos="far_left", ypos="head")
            ton "Thank you... sir." ("soft", "closed", "base", "mid")

        "-Call her out on her bullshit-":
            call bld
            gen "I think there's someone who hasn't been very honest here..." ("base", xpos="far_left", ypos="head")
            ton "Sorry?" ("upset", "base", "worried", "mid")

            #Music changes and darker overlay on screen
            call play_music("playful_tension")
            show screen blktone
            with d3

            gen "You seem to think you're above what we're doing here." ("base", xpos="far_left", ypos="head")
            gen "That you're doing the students a favour rather than accepting it's for your benefit." ("base", xpos="far_left", ypos="head")
            gen "Do you know what I think?" ("base", xpos="far_left", ypos="head")
            ton "N-no..." ("upset", "wide", "worried", "R")
            gen "I think that you've been fabricating this curse, to get what you really wanted - all along." ("base", xpos="far_left", ypos="head")
            gen "Not for the good of Miss Greengrass..." ("base", xpos="far_left", ypos="head")
            ton "..." ("mad", "base", "worried", "R", hair="upset")
            gen "Someone's been a naughty girl... Acting all innocent with the ones that welcomed her into their scheme..." ("angry", xpos="far_left", ypos="head")
            gen "Or perhaps you've been trying to justify your actions... to yourself?" ("base", xpos="far_left", ypos="head")
            gen "Is that right?" ("base", xpos="far_left", ypos="head")
            ton "That's..." ("upset", "closed", "worried", "mid", hair="scared")
            gen "I think we both know what this means, don't we?" ("base", xpos="far_left", ypos="head")
            gen "Miss Tonks..." ("base", xpos="far_left", ypos="head")
            gen "What this means is that you're no different than Snape and I." ("base", xpos="far_left", ypos="head")
            gen "But you have yet to accept it..." ("base", xpos="far_left", ypos="head")
            gen "And if you're unable to, well in that case..." ("base", xpos="far_left", ypos="head")
            ton "I can! I have!" ("open_wide", "closed", "worried", "mid")
            gen "Are you sure? Because if you're not in on this one hundred percent. Perhaps this may have been a mistake." ("base", xpos="far_left", ypos="head")
            ton "I..." ("open", "base", "worried", "down")
            gen "Say it!" ("angry", xpos="far_left", ypos="head")

            $ menu_y = 0.7
            menu:
                "\"You're a selfish slut!\"":
                    ton "Yes!" ("mad", "wide", "shocked", "stare", hair="horny")
                    ton "I'm a selfish slut!" ("open_wide_tongue", "closed", "worried", "mid", hair="horny")
                "\"You're a filthy pervert!\"":
                    ton "Yes!" ("mad", "base", "worried", "mid", hair="horny")
                    ton "I'm a filthy,{w=0.6} {b}fucking{/b}{w=0.4} pervert!" ("open_wide_tongue", "closed", "worried", "mid", hair="horny")
                "\"You're nothing more than a whore!\"":
                    ton "Yes!" ("mad", "base", "worried", "mid", hair="horny")
                    ton "I'm nothing but a cheap,{w=0.6} {b}fucking{/b}{w=0.4} whore!" ("open_wide_tongue", "closed", "worried", "mid", hair="horny")
            call reset_menu_position

            ton "... {w}This is what I want!" ("mad", "wide", "annoyed", "down")
            gen "Good, you're doing this for yourself, and nobody else..." ("base", xpos="far_left", ypos="head")
            gen "You'd do good to remember that." ("base", xpos="far_left", ypos="head")
            ton "Yes, Sir." ("base", "happyCl", "shocked", "mid", cheeks="blush")

            #Overlay goes away and music returns to normal
            call play_music("tonks")
            hide screen blktone
            with d3

    ton "So... *Ehm*... How long did you know?" ("open", "narrow", "annoyed", "R")
    gen "From the very start." ("base", xpos="far_left", ypos="head")
    ton "Really?!" ("clench", "base", "base", "mid")
    gen "Yes... The way she was looking at you just now merely confirmed it..." ("base", xpos="far_left", ypos="head")
    ton "Was it that obvious..." ("annoyed", "narrow", "base", "down")
    gen "Now, with that out of the way..." ("base", xpos="far_left", ypos="head")
    gen "Are you ready to take this to the next step?" ("base", xpos="far_left", ypos="head")
    gen "Have you considered letting miss Greengrass cast the curse on a more susceptible target?" ("base", xpos="far_left", ypos="head")
    ton "..." ("annoyed", "wide", "base", "R")
    gen "Miss Tonks..." ("base", xpos="far_left", ypos="head")
    ton "Fine, let's do it!" ("mad", "closed", "annoyed", "down")
    gen "Good." ("grin", xpos="far_left", ypos="head")
    gen "Do you have a student in mind... Someone with similar... Inhibitions, perhaps?" ("base", xpos="far_left", ypos="head")
    gen "That Susan girl... How about her?" ("grin", xpos="far_left", ypos="head")

    ton "Susan Bones?" ("open", "wide", "shocked", "stare")
    ton "But, she's a Hufflepuff...{w=0.8} I used to be..." ("open", "base", "worried", "up", hair="sad") # Tonks looks concerned (Blue)
    gen "I don't see how that makes any difference..." ("base", xpos="far_left", ypos="head")
    gen "Remember why we're doing this, you want Miss Greengrass to be able to curse you properly, correct?" ("base", xpos="far_left", ypos="head")
    ton "Yes..." ("soft", "base", "worried", "downR", cheeks="blush")
    gen "This Susan girl sounds like the perfect target then." ("base", xpos="far_left", ypos="head")
    gen "Maybe we could even hit two birds with one stone." ("base", xpos="far_left", ypos="head")
    ton "*Huh*?" ("soft", "base", "worried", "mid", cheeks="blush")
    gen "Perhaps I could learn a thing or two about this Susan girl is what I meant..." ("base", xpos="far_left", ypos="head")
    ton "Right." ("open", "base", "worried", "mid", cheeks="blush")
    gen "Any objections?" ("base", xpos="far_left", ypos="head")
    ton "No sir..." ("open", "base", "base", "down", hair="neutral", cheeks="blush")
    gen "But for now... Just make sure to obliterate her afterwards." ("base", xpos="far_left", ypos="head")
    ton "Erase her memory?" ("open", "base", "base", "mid")
    gen "That's what I said." ("base", xpos="far_left", ypos="head")
    gen "Well then, I believe we're done here..." ("base", xpos="far_left", ypos="head")
    ton "Alright..." ("annoyed", "base", "base", "down")
    ton "I'm gonna need some \"me\" time now..." ("open", "closed", "base", "ahegao", hair="horny")
    ton "If you know what I mean..." ("grin", "narrow", "raised", "down", hair="horny")
    ton "I suppose I should wish you good luck with the training..." ("soft", "base", "shocked", "L")
    gen "Have a good night." ("grin", xpos="far_left", ypos="head")
    ton "Oh - I will, [ton_genie_name]!" ("base", "base", "raised", "R")
    ton "I sure will!" ("horny", "base", "raised", "downR")

    call ton_walk(action="leave")

    call bld
    gen "..." ("base", xpos="far_left", ypos="head")
    gen "Snape..." ("base", xpos="far_left", ypos="head")
    gen "That guy deprived me of a blowjob..." ("base", xpos="far_left", ypos="head")
    gen "He owes me one!" ("angry", xpos="far_left", ypos="head")

    call nar(">Astoria has \"mastered\" the imperio curse!")

    $ snape_busy = True
    $ tonks_busy = True
    $ astoria_busy = True

    $ tonks.wear("all") # Wear all stripped clothing

    # Increase affection once (this is the fifth event)
    if ag_st_imperio.counter == 5:
        $ ast_whoring += 1

    jump end_ag_st_imperio

# astoria wand drop animation screen
screen astoria_wand_drop():
    tag wand
    zorder 2

    add "characters/astoria/chibis/wand.webp":
        at transform:
            zoom 0.35
            rotate -25
            xanchor 0
            yoffset -60
            xpos 530-90
            ypos 400

            easeout_cubic 0.5 yoffset 0 rotate 0
            linear 0.15 rotate 5 yoffset -5
            linear 0.15 rotate 10 yoffset 10
            linear 0.15 rotate 15 yoffset 5
            linear 0.15 rotate 25 yoffset 15
