define lun_requirements = {
    "category upper undergarment": 7,
    "category lower undergarment": 7,
    "category piercings & tattoos": 13,
    # "touch head":
    # "touch breasts":
    # "touch vagina":
    "unequip panties": 7,
    "unequip bra": 7,
    "unequip top": 4,
    "unequip bottom": 4,
    }

define lun_responses = {
    "category_fail": "lun_reaction_category_fail",
    "equip": "lun_reaction_equip",
    "equip_fail": "lun_reaction_equip_fail",
    "unequip": "lun_reaction_unequip",
    "unequip_fail": "lun_reaction_unequip_fail",
    "touch": "lun_reaction_touch",
    "touch_fail": "lun_reaction_touch_fail",
    "equip_outfit": "lun_reaction_equip_outfit",
    "equip_outfit_fail": "lun_reaction_equip_outfit_fail",
    "blacklist": "lun_reaction_blacklist",
    "fallback": "lun_reaction_fallback",
}

label lun_reaction_category_fail(category):

    if category == "upper undergarment":
        lun "Is this part of our Wrackspurt research [lun_genie_name]?" ("open", "base", "raised", "mid")
        gen "*Err*... I just thought maybe you could... Never mind..." ("base", xpos="far_left", ypos="head")
    elif category == "lower undergarment":
        lun "Is this part of our Wrackspurt research [lun_genie_name]?" ("soft", "base", "base", "mid")
        gen "*Err*... I just thought maybe you could... Never mind..." ("base", xpos="far_left", ypos="head")
    elif category == "piercings & tattoos":
        $ random_number = renpy.random.randint(1, 3)
        if random_number == 1:
            lun "I'm not sure if that's such a good idea [lun_genie_name]..." ("open", "closed", "base", "mid")
            gen "Why's that?" ("base", xpos="far_left", ypos="head")
            lun "It might attract Nifflers into the castle..." ("normal", "base", "annoyed", "mid")
            gen "..." ("base", xpos="far_left", ypos="head")
        elif random_number == 2:
            lun "Daddy says that ink should only be used on paper and not on your body..." ("open", "closed", "annoyed", "mid")
        elif random_number == 3:
            lun "Isn't it supposed to hurt?" ("upset", "wide", "base", "mid")
            gen "I'm sure there's some magical mumbo jumbo that would make it painless..." ("base", xpos="far_left", ypos="head")
            lun "*Hmm*... I'm not sure..." ("annoyed", "base", "base", "R")
    return

label lun_reaction_touch(what):
    if what == "head":
        $ mouse_headpat()
        $ random_number = renpy.random.randint(1, 3)

        if lun_tier == 5:
            if random_number == 1:
                lun "*Mmm*..." ("soft", "closed", "base", "mid", cheeks="blush")
            elif random_number == 2:
                lun "*Ah*..." ("open", "closed", "base", "mid", cheeks="blush")
                lun "Sorry, you just took me by surprise..." ("base", "narrow", "base", "mid", cheeks="blush")
            elif random_number == 3:
                lun "*Hmm*... I could've sworn you said that we should focus on more sensitive areas..." ("base", "narrow", "base", "down", cheeks="blush")
        elif lun_tier == 4:
            if random_number == 1:
                lun "*Mmm*... That's strange..." ("annoyed", "base", "base", "mid")
                lun "How come I'm feeling good in other places when it's my head you're touching?" ("grin", "narrow", "base", "mid")
            elif random_number == 2:
                lun "Pat, pat, pat." ("base", "happyCl", "base", "mid")
                gen "..." ("base", xpos="far_left", ypos="head")
            elif random_number == 3:
                lun "Thank you, [lun_genie_name]..." ("soft", "narrow", "base", "downR", cheeks="blush")
                lun "I feel like I get a big boost of happiness when you pat me for some reason..." ("base", "narrow", "base", "mid", cheeks="blush")
                lun "Maybe that's why animals enjoy it so much too..." ("grin", "base", "base", "mid", cheeks="blush")
        elif lun_tier == 3:
            if random_number == 1:
                lun "Is my head another one of those sensitive areas you spoke about?" ("open", "base", "raised", "mid")
            elif random_number == 2:
                lun "I don't think there's anywhere for me to release the Wrackspurts from up there, but thank you anyway..." ("base", "narrow", "base", "mid")
            elif random_number == 3:
                lun "Are you sure this technique is working [lun_genie_name]?" ("annoyed", "base", "raised", "mid")
        elif lun_tier == 2:
            if random_number == 1:
                lun "Thank you [lun_genie_name]." ("crooked_smile", "base", "base", "mid")
                lun "I'm so glad you decided to let me help with your research." ("smile", "happyCl", "base", "mid")
            elif random_number == 2:
                lun "Are you feeling stressed [lun_genie_name]?" ("soft", "base", "base", "mid")
                gen "*Huh*?" ("base", xpos="far_left", ypos="head")
                lun "Feel free to pet me any time you like if it helps." ("base", "closed", "base", "mid")
                gen "*Err*... Thanks..." ("base", xpos="far_left", ypos="head")
            elif random_number == 3:
                lun "*Hmm*... I'm not getting any of that tingly sensation up there but it does feel kind of nice..." ("soft", "base", "base", "up")
        else: #Tier 1
            if random_number == 1:
                lun "Thank you [lun_genie_name]." ("grin", "closed", "base", "mid")
                lun "Other students look at me weird if I try to pet them so I'm glad I didn't do something weird again..." ("angry", "base", "base", "downR")
            elif random_number == 2:
                lun "I already checked for Nargles this morning but I suppose you can't be too careful..." ("base", "base", "base", "down")
            elif random_number == 3:
                lun "I think I lost a pencil up there, let me know if you find it." ("soft", "base", "base", "up")

    elif what == "breasts":
        $ mouse_heart()
        $ random_number = renpy.random.randint(1, 3)

        if lun_tier == 5:
            if random_number == 1:
                lun "Don't forget to kiss the other one too! She gets awfully jealous if her sister gets all the attention." ("base", "base", "base", "down", cheeks="blush")
            elif random_number == 2:
                lun "*Mmm*... Why does something so bad feel so good?" ("grin", "closed", "base", "mid")
                gen "The backsprats?" ("base", xpos="far_left", ypos="head")
                lun "*Huh*?" ("open", "base", "base", "mid")
                lun "Oh... Yes, those pesky little things..." ("soft", "base", "base", "downR", cheeks="blush")
            elif random_number == 3:
                lun "*Ah*... Thank you for helping me [lun_genie_name]..." ("soft", "closed", "base", "mid", cheeks="blush")
        elif lun_tier == 4:
            if random_number == 1:
                lun "*Mmm*... How come I don't really see any of the Wrackspurts coming out from here?" ("disgust", "narrow", "base", "mid", cheeks="blush")
                gen "*Err*..." ("base", xpos="far_left", ypos="head")
                lun "It feels really good so why aren't any of them coming out?" ("annoyed", "base", "base", "mid", cheeks="blush")
            elif random_number == 2:
                lun "*Ah*... {w=0.4} Your methods are quite the something [lun_genie_name]..." ("open", "closed", "base", "mid", cheeks="blush")
                lun "I could never have imagined that getting rid of those pest would end up being so..." ("base", "closed", "base", "mid", cheeks="blush")
                lun "Enjoyable..." ("grin", "narrow", "base", "mid", cheeks="blush")
            elif random_number == 3:
                lun "Come... Come out already..." ("soft", "closed", "base", "mid", cheeks="blush")
        elif lun_tier == 3:
            if random_number == 1:
                lun "You really were right about these things being sensitive..." ("open", "base", "base", "down")
                lun "Can't believe I hadn't figured this out earlier." ("base", "base", "base", "downR")
            elif random_number == 2:
                lun "*Ah*... Are everyone this sensitive in around this spot?" ("soft", "closed", "base", "mid", cheeks="blush")
                gen "Women are a lot more sensitive than men most of the time..." ("base", xpos="far_left", ypos="head")
                lun "Oh... That's so sad..." ("angry", "base", "base", "mid")
            elif random_number == 3:
                lun "..." ("soft", "base", "base", "mid", cheeks="blush")
                gen "How did that feel?" ("base", xpos="far_left", ypos="head")
                lun "*Ehm*... It felt very nice [lun_genie_name]..." ("open", "narrow", "base", "downR", cheeks="blush")
        #elif lun_tier == 2: This would only be useful if there was another check if you've done event 2 to have it show before T3
        else: # T1 and T2
            if random_number == 1:
                lun "*Hi-Hi*..." ("grin", "closed", "base", "mid")
                lun "Sorry [lun_genie_name], your beard is tickling me..." ("smile", "base", "base", "mid")
            elif random_number == 2:
                lun "Are you looking for the Himalayan Lesser Spotted Breast Imp? It's okay [lun_genie_name], it's not their migration season." ("grin", "base", "base", "down")
            elif random_number == 3:
                lun "..." ("soft", "base", "raised", "mid")

    elif what == "vagina":
        $ mouse_heart()
        $ random_number = renpy.random.randint(1, 3)

        if lun_tier == 5:
            if random_number == 1:
                lun "*Ah*... S-so good... How did I ever live without this?" ("normal", "closed", "base", "mid", cheeks="blush")
            elif random_number == 2:
                lun "*Mmm*... Nasty... Wrackspurts..." ("base", "closed", "base", "mid", cheeks="blush")
            elif random_number == 3:
                lun "Please... Help me get rid of them again..." ("crooked_smile", "narrow", "base", "mid", cheeks="blush")
        elif lun_tier == 4:
            if random_number == 1:
                lun "*Whoa*... I didn't think just using your mouth could produce such a strong response." ("open", "wide", "base", "mid", cheeks="blush")
            elif random_number == 2:
                lun "*Ah*... It's almost like a ripple of water... Except running through my body..." ("soft", "closed", "base", "mid", cheeks="blush")
            elif random_number == 3:
                lun "*Mmm*... Those nasty Wrackspurts... I can feel them getting agitated already..." ("grin", "narrow", "base", "downR", cheeks="blush")
        elif lun_tier == 3:
            if random_number == 1:
                lun "*Ohhhh*... This is going to be my new happy memory when I have to summon a patronus!" ("base", "narrow", "base", "down", cheeks="blush")
            elif random_number == 2:
                lun "Weren't I supposed to be learning how to do this myself?" ("angry", "base", "raised", "mid")
            elif random_number == 3:
                lun "*Oohhh*... Why are your lips cold?" ("clench", "wide", "base", "mid")
                gen "Why are your lips cold?" ("base", xpos="far_left", ypos="head")
                lun "*Huh*?" ("upset", "base", "raised", "mid")
        # elif lun_tier == 2:This would only be useful if there was another check if you've done event 2 to have it show before T3
        else: # T1 and T2
            if random_number == 1:
                lun "*Hi-Hi*..." ("grin", "happyCl", "base", "mid")
                lun "That's not my cheek, silly..." ("crooked_smile", "narrow", "base", "mid")
            elif random_number == 2:
                lun "Is this a lesson on the dementor's kiss?" ("open", "base", "raised", "mid")
                lun "I always thought it was done through the mouth." ("soft", "base", "base", "downR")
            elif random_number == 3:
                lun "*Ooohh*..." ("grin", "base", "base", "up")
                lun "I don't think anyone has ever kissed me there before... How strange..." ("grin", "closed", "base", "mid")
    return

label lun_reaction_touch_fail(what): #Not used
    if what == "head":
        $ mouse_slap()

        gen "Ouch! Why would you do that?!" ("angry", xpos="far_left", ypos="head")
        lun "Oh! I'm terribly sorry, [lun_genie_name], I used to play this game with my father and..."
        gen "I don't need to hear it..." ("base", xpos="far_left", ypos="head")
        lun "...as you wish [lun_genie_name]."

    elif what == "breasts":
        $ mouse_slap()

        lun "*giggles* [lun_genie_name] stop that! It tickles."

    elif what == "vagina":
        $ mouse_slap()

        lun "*Ah* [lun_genie_name], please don't tease me, wrackspurts have been terribly active today and I'm barely able to withhold as it is."

    return

label lun_reaction_equip(item):
    ### Add specific clothing reactions here.
    # if item == <DollCloth Object>:
    #     lun "This <specific item description> looks awesome! I'll wear this <specific item description> with pride!"
    return

label lun_reaction_equip_fail(item):
    ### Add specific clothing reactions here.
    # if item == <DollCloth Object>:
    #     lun "I won't wear <specific item description> because!"
    # else:
    # <indent code below to be used as a fallback>

    lun "*Hmm*..." ("annoyed", "base", "base", "mid")
    gen "What?" ("base", xpos="far_left", ypos="head")
    lun "There's a weird aura surrounding this piece of garment." ("open", "closed", "base", "mid")
    lun "It seems to be affecting the Wrackspurts, as if they're multiplying!" ("disgust", "base", "base", "mid")
    if lun_whoring < 4:
        lun "I'm sorry [lun_genie_name] but I can't wear that... Not until we find a way of dealing with them." ("open", "closed", "base", "mid")
    else:
        lun "I'm sorry [lun_genie_name] but I can't wear that... Not until we find a better strategy of dealing with them." ("open", "closed", "base", "mid")
    gen "(I guess that means she's not ready yet.)" ("base", xpos="far_left", ypos="head")

    return

label lun_reaction_unequip(item):
    ### Example
    # if item.type == "panties":
    #    if lun_whoring > 15:
    #        lun "You want to see my snatch?"
    #        lun "You got it [genie_name]!"
    #
    return

label lun_reaction_unequip_fail(item):
    if item.type == "panties": #probably wont play since category unlocks same level as she can take them off
        lun "I'm sorry [lun_genie_name] but my panties are my one and only defence against wrackspurts." ("open", "closed", "base", "mid")

    elif item.type == "bra": #probably wont play since category unlocks same level as she can take them off
        lun "*giggles*" ("grin", "closed", "base", "mid")
        gen "What's so funny?" ("base", xpos="far_left", ypos="head")
        lun "Oh... It's nothing..." ("base", "base", "base", "R")

    elif item.type == "top":
        lun "Are we going to continue the research, [lun_genie_name]?" ("open", "base", "raised", "mid")
        gen "Not right now..." ("base", xpos="far_left", ypos="head")
        lun "Oh... Then let me know when you're ready..." ("base", "base", "base", "R")

    elif item.type == "bottom":
        lun "Are we going to continue the research, [lun_genie_name]?" ("upset", "base", "raised", "mid")
        gen "Not right now..." ("base", xpos="far_left", ypos="head")
        lun "Oh... Then let me know when you're ready..." ("base", "base", "base", "R")

    return

label lun_reaction_equip_outfit(item):
    ### Add specific Outfit reactions here.

    ## Unequip top/bottom, 4. Bra/panties, 7##
    ##0-3 Talk, 4-6 inspect, 7-9 masturbate##

    ########################
    ## Default Schoolgirl ##
    ########################
    if item == lun_outfit_default: #Req 0
        gen "Can you put on your regular school uniform for me?" ("base", xpos="far_left", ypos="head")
        gen "Nice and proper please." ("base", xpos="far_left", ypos="head")
        if lun_whoring < 4:
            gen "No wands in your hair... No weird stuff..." ("base", xpos="far_left", ypos="head")
            lun "Weird stuff, [lun_genie_name]?" ("annoyed", "narrow", "base", "mid")
            gen "*Err*... Nothing extra outside the regular uniform I mean..." ("base", xpos="far_left", ypos="head")
            lun "What about my underwear?" ("angry", "base", "base", "mid")
            gen "Your underwear [luna_name]?" ("base", xpos="far_left", ypos="head")
            lun "I didn't get those with the uniform, so can I still wear them?" ("normal", "base", "base", "mid")
            gen "(Is this girl for real?)" ("base", xpos="far_left", ypos="head")
            lun "[lun_genie_name]?" ("soft", "base", "raised", "mid")
            gen "I guess?" ("base", xpos="far_left", ypos="head")
            lun "Okay, I'll keep them on then." ("grin", "happyCl", "base", "mid")
            gen "(Wait... Taking them off was a real option?)" ("base", xpos="far_left", ypos="head")
        elif lun_whoring < 7:
            lun "Thank you [lun_genie_name]." ("grin", "base", "base", "mid")
            gen "For what?" ("base", xpos="far_left", ypos="head")
            lun "Keeping me safe from the wrackspurts!" ("grin", "wink", "base", "mid")
            gen "That's not..." ("base", xpos="far_left", ypos="head")
            gen "Just put the thing on..." ("base", xpos="far_left", ypos="head")
            lun "Yes, [lun_genie_name]!" ("base", "base", "base", "mid")
        else: #7+
            lun "Do you mean like how the other students wear theirs [lun_genie_name]?" ("soft", "base", "base", "stare")
            gen "... Yes?" ("base", xpos="far_left", ypos="head")
            lun "Will that give the Wrackpurts a harder time getting to me?" ("angry", "wink", "base", "mid")
            gen "What?" ("base", xpos="far_left", ypos="head")
            lun "Is the theory that they won't be able to differentiate me from any of the other girls?" ("open", "base", "raised", "mid")
            gen "*Err*... Sure..." ("base", xpos="far_left", ypos="head")
            lun "Interesting idea [lun_genie_name]... Let's try it." ("base", "base", "base", "mid")

    #######################
    ## Quirky Schoolgirl ##
    #######################
    elif item == lun_outfit_default_quirky: #Req 0
        gen "Can you put on your school uniform for me?" ("base", xpos="far_left", ypos="head")
        gen "And wear it the way you did the first time we met." ("base", xpos="far_left", ypos="head")
        lun "On the day I was sorted into Ravenclaw?" ("open", "base", "raised", "mid")
        lun "I'm not sure I remember how I wore it..." ("open", "base", "base", "down")
        gen "*Err*... No I meant the one when you came into my office, when you told me about the spurts." ("base", xpos="far_left", ypos="head")
        lun "Oh... Then why didn't you say so!" ("grin", "happyCl", "base", "mid")
        lun "One moment, [lun_genie_name]." ("base", "base", "base", "mid")

    #######################
    ## Slutty Schoolgirl ##
    #######################
    elif item == lun_outfit_school_slut:  #Req 7 (no bra)
        gen "Put on your school uniform for me will you?" ("base", xpos="far_left", ypos="head")
        gen "This one with the tied top and short skirt." ("base", xpos="far_left", ypos="head")
        lun "You're so smart [lun_genie_name]!" ("grin", "wink", "base", "mid")
        gen "I am?" ("base", xpos="far_left", ypos="head")
        lun "This way you'll get to the affected areas so much quicker!" ("base", "wink", "base", "mid", cheeks="blush")
        gen "Oh, yes that's it!" ("base", xpos="far_left", ypos="head")
        lun "We should make this the standard school uniform!" ("smile", "base", "base", "mid", cheeks="blush")
        gen "*Hmm*... I'll think about it..." ("base", xpos="far_left", ypos="head")

    ###################
    ## Pyjama Outfit ##
    ###################
    elif item == lun_outfit_pajama: #Req 0
        gen "Put on your pyjamas for me." ("base", xpos="far_left", ypos="head")
        if game.daytime:
            lun "You can do that?" ("angry", "wide", "base", "mid")
            gen "Do what?" ("base", xpos="far_left", ypos="head")
            lun "Wear pyjamas during the day!" ("mad", "narrow", "base", "mid")
            gen "Yes? Why wouldn't you be able to? I'm wearing this robe all the time and I'm nowhere near a bath." ("base", xpos="far_left", ypos="head")
            lun "If you say so [lun_genie_name]..." ("angry", "base", "base", "mid")
        else:
            lun "My pyjamas?" ("soft", "base", "raised", "mid")
            gen "Yes, [luna_name]... Please put them on for me." ("base", xpos="far_left", ypos="head")
            lun "But, there's no bed in here..." ("angry", "narrow", "base", "mid")
            gen "No bed?" ("base", xpos="far_left", ypos="head")
            lun "Yes, why would I put it on if I'm not going to sleep?" ("angry", "wink", "base", "mid")
            gen "I mean, if you put them on now, there's one less thing to do before you go to bed." ("base", xpos="far_left", ypos="head")
            lun "That's true!" ("grin", "base", "base", "stare")
            lun "I should wear them all the time, then I'd never need to change!" ("base", "base", "base", "mid")
            gen "Well... I wouldn't go that far, just put them on for now." ("base", xpos="far_left", ypos="head")
            lun "Alright, [lun_genie_name]." ("base", "wink", "base", "mid")

    ##################################
    ## Loose-fitting Nightie Outfit ##
    ##################################
    elif item == lun_outfit_nightie1: #Req 7 (no bra, no panties)
        gen "Put on this nightie for me [luna_name]." ("base", xpos="far_left", ypos="head")
        gen "And skip the underwear." ("base", xpos="far_left", ypos="head")
        lun "No underwear [lun_genie_name]?" ("soft", "base", "worried", "mid")
        lun "But what if the wrackspurts get in there?" ("angry", "base", "worried", "mid")
        gen "I'm sure we'll be able to deal with them if that happens, don't you think?" ("base", xpos="far_left", ypos="head")
        lun "Alright then..." ("grin", "base", "base", "mid", cheeks="blush")

    ####################
    ## Nightie Outfit ##
    ####################
    elif item == lun_outfit_nightie2: #Req 7 (no bra, no panties)
        gen "Put on this nightie for me [luna_name]." ("base", xpos="far_left", ypos="head")
        gen "And skip the underwear." ("base", xpos="far_left", ypos="head")
        lun "No underwear [lun_genie_name]?" ("soft", "base", "worried", "mid")
        gen "Yes, this way I'll be able to see if the spurts get in there." ("base", xpos="far_left", ypos="head")
        lun "But how are you supposed to see them without the glasses [luna_name]?" ("soft", "base", "base", "mid")
        gen "I'm sure I'd be able to tell if they did, even without the glasses." ("base", xpos="far_left", ypos="head")
        lun "Alright then..." ("base", "narrow", "base", "mid", cheeks="blush")

    ######################
    ## Lace Lingerie set##
    ######################
    elif item == lun_outfit_lace1: #Req 7 (bra, panties)
        gen "Put on this lace lingerie for me will you?" ("base", xpos="far_left", ypos="head")
        lun "These are pretty..." ("soft", "base", "base", "down")
        lun "But don't you think the Nargles would try to hide in them?" ("angry", "base", "base", "mid")
        gen "*Err*... Don't you mean the spurts?" ("base", xpos="far_left", ypos="head")
        lun "No [lun_genie_name]...{w=0.4} Nargles loves anything with roses on them..." ("soft", "narrow", "base", "mid")
        lun "Although now that you mention it, Nargles and Wrackspurts don't like each other so perhaps it's a good time to test that theory." ("grin", "base", "base", "mid")

    ########################
    ## Rave Bikini Outfit ##
    ########################
    elif item == lun_outfit_bikini3: #Req 7 (bra, panties)
        gen "I've got a bikini with your name on it." ("base", xpos="far_left", ypos="head")
        lun "You do?" ("soft", "wide", "base", "mid")
        lun "But it's so small... Where does the name even fit?" ("soft", "base", "base", "down")
        gen "Figuratively speaking of course." ("base", xpos="far_left", ypos="head")
        lun "Oh, I see..." ("soft", "narrow", "base", "mid")
        lun "Give me a moment to put it on then..." ("base", "narrow", "base", "mid")

    ##############
    ## Swimsuit ##
    ##############
    elif item == lun_outfit_swimsuit: #Req 7 (no bra, no panties)
        gen "Put on this swimsuit for me will you?" ("base", xpos="far_left", ypos="head")
        lun "But what about the one eyed trouser snake?" ("angry", "narrow", "base", "mid")
        gen "What?" ("base", xpos="far_left", ypos="head")
        lun "It said in the quibbler that putting on a swimsuit could attract the one eyed trouser snake." ("clench", "base", "base", "mid")
        gen "The... Oh I see..." ("base", xpos="far_left", ypos="head")
        gen "(Smut writers and their terrible euphemisms...)" ("base", xpos="far_left", ypos="head")
        gen "*Err*... Did the magazine not mention that the... *Ahem*... Snake is valuable?" ("base", xpos="far_left", ypos="head")
        lun "It is?" ("angry", "base", "base", "stare")
        gen "Of course, the spit of the one eyed trouser snake is heavily sought after." ("base", xpos="far_left", ypos="head")
        lun "Really?" ("mad", "base", "base", "mid")
        gen "Certainly... In fact, some people can't get enough of it." ("base", xpos="far_left", ypos="head")
        lun "Oh, I didn't know that!" ("grin", "narrow", "base", "stare")
        lun "You think we could extract some?" ("grin", "base", "base", "mid")
        gen "I'm sure we could if it shows up..." ("base", xpos="far_left", ypos="head")
        lun "Marvellous!" ("smile", "base", "base", "mid")

    ############
    ## Muggle ##
    ############
    elif item == lun_outfit_muggle: #No req
        gen "Put on this maggle outfit for me..." ("base", xpos="far_left", ypos="head")
        lun "Muggle outfit, [lun_genie_name]?" ("soft", "base", "raised", "mid")
        gen "Yes that's it!" ("base", xpos="far_left", ypos="head")
        lun "I like the skirt!" ("smile", "base", "base", "down")
        gen "Is that sarcasm?" ("base", xpos="far_left", ypos="head")
        lun "No?" ("soft", "base", "base", "mid")
        gen "Then great!" ("base", xpos="far_left", ypos="head")
        lun "Let me just put it on..." ("grin", "base", "base", "mid")

    ######################
    ## Flight Attendant ##
    ######################
    elif item == lun_outfit_flight_attendant: #Req 7 (No Bra, lewd panties)
        gen "Put on this flight attendant outfit for me will you?" ("base", xpos="far_left", ypos="head")
        lun "Flight attendant?" ("soft", "base", "raised", "mid")
        gen "Yeah, it's a job those muggles do." ("base", xpos="far_left", ypos="head")
        lun "There's a job that exists just to attend flying?" ("open", "base", "base", "stare")
        gen "No... Attend people during flight." ("base", xpos="far_left", ypos="head")
        lun "Sounds dangerous..." ("clench", "base", "base", "down")
        gen "(Explaining this to her will probably take all day...)" ("base", xpos="far_left", ypos="head")
        gen "Just forget what it's for, it's not important for your education..." ("base", xpos="far_left", ypos="head")
        lun "Oh... Alright then." ("angry", "base", "base", "mid")
        lun "..." ("base", "base", "base", "R")
        gen "I still want you to put it on though..." ("base", xpos="far_left", ypos="head")
        lun "Oh, Alright!" ("grin", "base", "base", "mid")

    ############
    ## Summer ##
    ############
    elif item == lun_outfit_summer: #Req 7 (No Bra)
        gen "I've got this great summer outfit for you to wear!" ("base", xpos="far_left", ypos="head")
        gen "It's pretty hot!" ("base", xpos="far_left", ypos="head")
        if game.daytime:
            lun "It is? I didn't notice!" ("angry", "base", "base", "stare")
            gen "Weather's pretty warm too!" ("base", xpos="far_left", ypos="head")
            lun "*Huh*?" ("soft", "base", "base", "mid")
            gen "Better put this on right away!" ("base", xpos="far_left", ypos="head")
        else:
            lun "It is? But the sun isn't even out!" ("angry", "base", "base", "L")
            gen "What I meant was... Tomorrow might be hot! So better put it on now!" ("base", xpos="far_left", ypos="head")
        lun "Oh, alright then!" ("angry", "base", "base", "mid")

    ############
    ## Casual ##
    ############
    elif item == lun_outfit_casual: #Req 0
        gen "Could you put on something more casual?" ("base", xpos="far_left", ypos="head")
        lun "Casual, [lun_genie_name]?" ("soft", "base", "raised", "mid")
        gen "Yeah, something that doesn't show too much skin." ("base", xpos="far_left", ypos="head")
        gen "(What the hell is wrong with me?)" ("base", xpos="far_left", ypos="head")
        lun "Oh, of course, I could put on my Casual clothing." ("grin", "base", "base", "mid")
        gen "..." ("base", xpos="far_left", ypos="head")


    #################
    ## Party Dress ##
    #################
    elif item == lun_outfit_party: #Req 7 (No Bra)
        gen "This dress seems odd enough to suit you." ("base", xpos="far_left", ypos="head")
        gen "Why don't you put it on?" ("base", xpos="far_left", ypos="head")
        lun "Odd [lun_genie_name]?" ("angry", "narrow", "base", "mid")
        gen "In a good way..." ("base", xpos="far_left", ypos="head")
        lun "I love it!" ("grin", "base", "base", "down")
        lun "I've got the same one at home!" ("smile", "happyCl", "base", "mid")
        gen "You... You do?" ("base", xpos="far_left", ypos="head")
        lun "I do!" ("grin", "wink", "base", "mid")
        gen "(Didn't that Mafkin lady make this outfit?)" ("base", xpos="far_left", ypos="head")
        gen "(Must've been too hard even for her to create something like this...)" ("base", xpos="far_left", ypos="head")
        lun "One moment, let me put it on." ("base", "base", "base", "mid")

    #########################
    ## Harley Quinn Outfit ##
    #########################
    elif item == lun_outfit_harley_quinn: # Req 7 (No Bra, No Panties)
        gen "I've got this Harley Quinn costume for you to wear." ("base", xpos="far_left", ypos="head")
        lun "*Hmm*?" ("soft", "base", "base", "mid")
        lun "Harley Quinn?" ("open", "base", "raised", "mid")
        gen "Yes, you know, the super villain... *Err*... Villainess." ("base", xpos="far_left", ypos="head")
        lun "*Huh*?" ("normal", "base", "raised", "mid")
        gen "..." ("base", xpos="far_left", ypos="head")
        gen "(Guess she's one of those marvel fans...)" ("base", xpos="far_left", ypos="head")
        menu:
            "\"(Put it on and call me puddin'!)\"":
                $ lun_genie_name = "Puddin'"
                lun "Puddin'?" ("soft", "base", "base", "mid")
                gen "Yes?" ("base", xpos="far_left", ypos="head")
                lun "Alright then..." ("base", "base", "base", "mid")
            "\"(Just put it on!)\"":
                lun "Alright..." ("base", "base", "base", "mid")

    ###########################
    ## Police Officer Outfit ##
    ###########################
    elif item == lun_outfit_police: #Req 7 (No Bra)
        gen "Put on the police cosplay uniform will you?" ("base", xpos="far_left", ypos="head")
        lun "Police costume?" ("soft", "base", "raised", "mid")
        gen "Yeah..." ("base", xpos="far_left", ypos="head")
        gen "Gotta maintain some order around here." ("base", xpos="far_left", ypos="head")
        lun "Oh... Are police some kind of muggle law enforcer?" ("open", "base", "base", "stare")
        gen "Yes they--" ("base", xpos="far_left", ypos="head")
        gen "Surely the governmental forces of the world is prevalent enough for you to know what the police are?" ("base", xpos="far_left", ypos="head")
        lun "Like, the ministry of magic?" ("upset", "base", "base", "mid")
        gen "(This is just plain ignorance at this point...)" ("base", xpos="far_left", ypos="head")
        gen "Just put it on will you?" ("base", xpos="far_left", ypos="head")
        lun "Alright." ("base", "base", "base", "mid")

    # TODO: Blacklist fallbacks have to be added.
    return

label lun_reaction_equip_outfit_fail(item):
    ### Add specific Outfit reactions here.

    #######################
    ## Slutty Schoolgirl ##
    #######################
    if item == lun_outfit_school_slut:  #Req 7 (no bra)
        gen "Put on your school uniform for me will you?" ("base", xpos="far_left", ypos="head")
        gen "This one with the tied top and short skirt." ("base", xpos="far_left", ypos="head")
        lun "But [lun_genie_name]!" ("angry", "wide", "base", "mid")
        lun "This doesn't have a bra!" ("angry", "wide", "base", "mid")
        gen "So?" ("base", xpos="far_left", ypos="head")
        lun "Surely I shouldn't be standing here without a bra on?" ("mad", "narrow", "base", "mid")
        if lun_whoring < 4:
            gen "(Maybe I've gone to far...)" ("base", xpos="far_left", ypos="head")
            lun "The wrackpurts would most certainly get to me!" ("angry", "closed", "base", "mid")
            gen "Right..." ("base", xpos="far_left", ypos="head")
            gen "(Maybe I could convince her once we've found a way to deal with them...)" ("base", xpos="far_left", ypos="head")
        else:
            gen "Why not?" ("base", xpos="far_left", ypos="head")
            lun "If I stood here for too long without a bra I don't doubt they'd get to me!" ("angry", "closed", "worried", "mid")
            gen "Who?" ("base", xpos="far_left", ypos="head")
            lun "The Wrackspurts!" ("angry", "wink", "base", "mid")
            gen "Oh..." ("base", xpos="far_left", ypos="head")
            gen "(Maybe I could convince her once she's more confident about dealing with the spurts...)" ("base", xpos="far_left", ypos="head")

    ##################################
    ## Loose-fitting Nightie Outfit ##
    ##################################
    elif item == lun_outfit_nightie1: #Req 7 (no bra, no panties)
        gen "Put on this nightie for me [luna_name]." ("base", xpos="far_left", ypos="head")
        gen "And skip the underwear." ("base", xpos="far_left", ypos="head")
        if lun_whoring < 4:
            lun "But [lun_genie_name]!" ("angry", "wide", "base", "mid")
            lun "The wrackpurts would be able to get in there if I'm not to wear any underwear." ("clench", "wink", "base", "mid")
            gen "I'm sure we'll be able to deal with that if it comes down to it..." ("base", xpos="far_left", ypos="head")
            lun "*Hmm*... I'm not so sure about that..." ("disgust", "base", "base", "mid")
        else:
            lun "Is this part of the inspection?" ("soft", "narrow", "base", "mid")
            gen "Yes... Well you see, the spurts... *Err*..." ("base", xpos="far_left", ypos="head")
            lun "[lun_genie_name]... I'd rather not make myself a target of those things, standing here without underwear would surely bring them all to attention." ("angry", "wink", "base", "mid")
            gen "It'd bring something to attention that's for sure." ("base", xpos="far_left", ypos="head")
            lun "Alright, then I better not." ("angry", "narrow", "base", "mid")
            gen "Wait, I was only--" ("base", xpos="far_left", ypos="head")
            gen "(Damnit...)" ("base", xpos="far_left", ypos="head")

    ####################
    ## Nightie Outfit ##
    ####################
    elif item == lun_outfit_nightie2: #Req 7 (no bra, no panties)
        gen "Put on this nightie for me [luna_name]." ("base", xpos="far_left", ypos="head")
        gen "And skip the underwear." ("base", xpos="far_left", ypos="head")
        if lun_whoring < 4:
            lun "But [lun_genie_name]!" ("angry", "wide", "base", "mid")
            lun "What about the Wrackspurts?" ("clench", "wink", "base", "mid")
            gen "What do you mean, what about the spurts?" ("base", xpos="far_left", ypos="head")
            lun "They'll be able to get in there if I'm not wearing any underwear!" ("clench", "base", "base", "mid")
            gen "Really?" ("base", xpos="far_left", ypos="head")
            gen "(Don't she mean getting out?)" ("base", xpos="far_left", ypos="head")
            lun "I think it's probably best if I keep myself protected..." ("disgust", "base", "base", "mid")
        else:
            lun "Is this part of the inspection?" ("soft", "narrow", "base", "mid")
            gen "Yes... Well you see, the spurts... *Err*..." ("base", xpos="far_left", ypos="head")
            lun "[lun_genie_name]... Don't you think they'd easily be able to fly in there if I'm not wearing any underwear?" ("angry", "wink", "base", "mid")
            gen "I don't see how that's a problem, it feels nice does it not?" ("base", xpos="far_left", ypos="head")
            lun "*Ehm*... Does that matter?" ("soft", "narrow", "base", "mid", cheeks="blush")
            gen "(Is there even a right answer here?)" ("base", xpos="far_left", ypos="head")
            menu:
                "\"No.\"":
                    lun "That's what I thought... I better keep myself safe then..." ("soft", "narrow", "base", "R")
                    gen "Right... Wait, what was the question?" ("base", xpos="far_left", ypos="head")
                    lun "..." ("soft", "base", "base", "mid")
                "\"Yes.\"":
                    lun "Are you alright [lun_genie_name]?" ("angry", "narrow", "base", "mid")
                    gen "Never been better, why?" ("base", xpos="far_left", ypos="head")
                    lun "*Hmm*... Are you sure the wrackspurts haven't affected your brain perhaps?" ("annoyed", "narrow", "base", "mid")
                    gen "Doubt it... Although people do tell me I think with my penis sometimes." ("base", xpos="far_left", ypos="head")
                    lun "Surely it's not a good idea to give them an open landing strip." ("soft", "narrow", "base", "mid")
                    gen "We'll just deal with it if it happens." ("base", xpos="far_left", ypos="head")
                    lun "*Hmm*... I'm not so sure about that." ("annoyed", "narrow", "base", "R")
                    gen "Well, that's your loss [luna_name]..." ("base", xpos="far_left", ypos="head")
            gen "(Damn... Maybe I'll be able to convince her once she's more confident about dealing with them.)" ("base", xpos="far_left", ypos="head")

    ######################
    ## Lace Lingerie set##
    ######################
    elif item == lun_outfit_lace1: #Req 7 (bra, panties)
        gen "Put on this lace lingerie for me will you?" ("base", xpos="far_left", ypos="head")
        lun "But [lun_genie_name]!" ("mad", "base", "base", "down")
        lun "These got roses on them!" ("angry", "narrow", "base", "down")
        gen "So?" ("base", xpos="far_left", ypos="head")
        lun "The Nargles would surely try and hide in them if I put this on!" ("clench", "happyCl", "base", "mid")
        gen "(How many of these made up things does she believe in?)" ("base", xpos="far_left", ypos="head")

    ########################
    ## Rave Bikini Outfit ##
    ########################
    elif item == lun_outfit_bikini3: #Req 7 (bra, panties)
        gen "Put on this bikini for me will you?" ("base", xpos="far_left", ypos="head")
        lun "I'm sorry [lun_genie_name] but I can't wear this right now." ("upset", "narrow", "base", "down")
        gen "Why not?" ("base", xpos="far_left", ypos="head")
        lun "Oh... *Ehm*..." ("soft", "narrow", "base", "down", cheeks="blush")
        lun "I'd rather we continue with our research..." ("angry", "closed", "base", "mid", cheeks="blush")
        call nar(">You watch as Luna grinds her legs together.")
        gen "I see... Some other time then perhaps." ("base", xpos="far_left", ypos="head")

    ##############
    ## Swimsuit ##
    ##############
    elif item == lun_outfit_swimsuit: #Req 7 (no bra, no panties)
        gen "I've got a swimsuit for you to wear." ("base", xpos="far_left", ypos="head")
        lun "Are we going swimming?" ("soft", "narrow", "raised", "mid")
        gen "No, I just thought you could wear it in here." ("base", xpos="far_left", ypos="head")
        lun "Inside?" ("angry", "base", "base", "stare")
        gen "*Err*... Yes?" ("base", xpos="far_left", ypos="head")
        lun "..." ("soft", "wide", "base", "stare")
        gen "Hello?" ("base", xpos="far_left", ypos="head")
        lun "..." ("soft", "wide", "base", "stare")
        gen "(I think I just blew her mind...)" ("base", xpos="far_left", ypos="head")
        gen "[luna_name]?" ("base", xpos="far_left", ypos="head")
        lun "..." ("soft", "wide", "base", "stare")
        gen "[luna_name]!" ("base", xpos="far_left", ypos="head")
        lun "Oh, sorry [lun_genie_name] what did you say?" ("angry", "wide", "base", "mid")
        gen "Nevermind... Forget it." ("base", xpos="far_left", ypos="head")

    ######################
    ## Flight Attendant ##
    ######################
    elif item == lun_outfit_flight_attendant: #Req 7 (No Bra)
        gen "Put on this flight attendant outfit for me will you?" ("base", xpos="far_left", ypos="head")
        lun "But [lun_genie_name], I'd have to take off my bra for this!" ("mad", "wide", "base", "mid")
        gen "So?" ("base", xpos="far_left", ypos="head")
        lun "Haven't you heard of the nipple biting mouth suckers?!" ("clench", "base", "base", "mid")
        gen "Oh, yeah of course!" ("base", xpos="far_left", ypos="head")
        gen "Although perhaps you could remind me..." ("base", xpos="far_left", ypos="head")
        lun "The plant... Professor Sprout told us to watch out for them as they're quite rowdy this time of year." ("angry", "wink", "base", "mid")
        gen "Rowdy you say?" ("base", xpos="far_left", ypos="head")
        lun "Yes, she's showed me a great many times how dangerous they can be around nipples." ("angry", "closed", "base", "mid")
        gen "I see..." ("base", xpos="far_left", ypos="head")

    ############
    ## Summer ##
    ############
    elif item == lun_outfit_summer: #Req 7 (No Bra)
        gen "I've got this summer outfit for you to put on." ("base", xpos="far_left", ypos="head")
        gen "Since it's pretty hot you should probably wear it without your bra on." ("base", xpos="far_left", ypos="head")
        lun "Take off my bra?" ("soft", "base", "base", "mid")
        lun "Well that might be a problem..." ("upset", "base", "base", "down")
        gen "Why's that?" ("base", xpos="far_left", ypos="head")
        lun "Well... It's a bit embarrassing actually..." ("angry", "narrow", "base", "R")
        lun "My latch got stuck on it..." ("disgust", "base", "base", "downL")
        gen "Your... latch?" ("base", xpos="far_left", ypos="head")
        lun "Yes [lun_genie_name]..." ("angry", "base", "worried", "mid")
        gen "Sounds more like artificial content gating to me..." ("base", xpos="far_left", ypos="head")
        lun "Sorry?" ("angry", "base", "raised", "mid")
        gen "Don't worry... They know what I meant..." ("base", xpos="far_left", ypos="head")
        lun "*Hmm*..." ("normal", "base", "base", "R")

    #################
    ## Party Dress ##
    #################
    elif item == lun_outfit_party: #Req 7 (No Bra)
        gen "I've got the perfect dress for you to wear!" ("base", xpos="far_left", ypos="head")
        lun "Really? Exciting!" ("grin", "base", "base", "mid")
        gen "Yes, I can't wait to see what your nipples will look like in this!" ("base", xpos="far_left", ypos="head")
        lun "My... Nipples [lun_genie_name]?" ("soft", "wink", "base", "mid")
        gen "Yes, you'd have to take your bra off for this one... It's the only way." ("base", xpos="far_left", ypos="head")
        lun "*Hmm*... I'm not sure that's the proper way of wearing a dress..." ("soft", "wink", "base", "mid")
        gen "What do you--" ("base", xpos="far_left", ypos="head")
        gen "(Since when did she start caring about how to wear clothes properly?)" ("base", xpos="far_left", ypos="head")

    #########################
    ## Harley Quinn Outfit ##
    #########################
    elif item == lun_outfit_harley_quinn: # Req 7 (No Bra, No Panties)
        gen "I've got this Harley Quinn costume for you to wear." ("base", xpos="far_left", ypos="head")
        lun "*Hmm*?" ("soft", "base", "raised", "mid")
        lun "Harley Quinn?" ("open", "base", "raised", "mid")
        gen "Yes, she's--" ("base", xpos="far_left", ypos="head")
        lun "But sir, this costume has no underwear!" ("angry", "wide", "base", "mid")
        lun "Surely, I can't go around without any on!" ("mad", "happyCl", "base", "mid")
        gen "Why not?" ("base", xpos="far_left", ypos="head")
        lun "The wrack--" ("angry", "wide", "base", "mid")
        gen "Not those things again!" ("base", xpos="far_left", ypos="head")

    ###########################
    ## Police Officer Outfit ##
    ###########################
    elif item == lun_outfit_police: #Req 7 (No Bra)
        gen "Put on the police cosplay uniform will you?" ("base", xpos="far_left", ypos="head")
        lun "Police?" ("soft", "base", "raised", "mid")
        gen "Yes?" ("base", xpos="far_left", ypos="head")
        lun "I'm not sure what that is..." ("upset", "narrow", "raised", "mid")
        gen "What do you--" ("base", xpos="far_left", ypos="head")
        gen "I'm talking about this kind of uniform..." ("base", xpos="far_left", ypos="head")
        lun "Oh!!" ("open", "wide", "base", "mid")
        gen "(Now she's got it...)" ("base", xpos="far_left", ypos="head")
        lun "But [lun_genie_name]... This outfit doesn't have a bra!" ("clench", "narrow", "base", "mid")
        gen "I'm sure the outfit is tight enough to keep them contained, don't you think?" ("base", xpos="far_left", ypos="head")
        lun "I'm more worried about what could find its way into it..." ("annoyed", "narrow", "base", "down")
        gen "(And here I thought she wanted some hands on experience.)" ("base", xpos="far_left", ypos="head")
        lun "(Can't let those wrackspurts get to me...)" ("disgust", "narrow", "base", "R")

    else:
        lun "This outfit seems to have wrackspurts all over it!" ("mad", "base", "base", "down")
        gen "(I don't remember cumming on this piece of garment...)" ("base", xpos="far_left", ypos="head")
        gen "(!!!)" ("angry", xpos="far_left", ypos="head")
        gen "(Could it be--...)" ("angry", xpos="far_left", ypos="head")
        lun "Are you okay [lun_genie_name]? You look pale." ("angry", "base", "raised", "mid")
        gen "Yes, I'm fine. I guess you can stay in your clothes... for now." ("base", xpos="far_left", ypos="head")

    return

label lun_reaction_blacklist(item):
    lun "Will that really help? With the wrackspurts I mean." ("soft", "narrow", "base", "mid")

    if "top" in item.blacklist and luna.is_worn("top"):
        lun "I would need to remove my top." ("open", "base", "base", "down")

    if "bottom" in item.blacklist and luna.is_worn("bottom"):
        lun "I don't think I could wear bottoms with this..." ("upset", "narrow", "base", "down")

    if "bra" in item.blacklist and luna.is_worn("bra"):
        lun "It seems no bra can fit in this garment." ("open", "base", "base", "down")

    if "panties" in item.blacklist and luna.is_worn("panties"):
        lun "The Wrackspurts would have a feast as I would not be able to wear panties with this." ("upset", "narrow", "base", "down")

    gen "Trust me, I know what I'm doing." ("base", xpos="far_left", ypos="head")
    lun "If you say so [lun_genie_name]." ("base", "base", "base", "mid")

    return

label lun_reaction_fallback(item):
    if lun_whoring < get_character_requirement("luna", "unequip top") and not "top" in luna.blacklist and not item.type == "top":
        $ luna.equip(lun_top_school1)

    if lun_whoring < get_character_requirement("luna", "unequip bottom") and not "bottom" in luna.blacklist and not item.type == "bottom":
        $ luna.equip(lun_top_school2)

    if lun_whoring < get_character_requirement("luna", "unequip bra") and not "bra" in luna.blacklist and not item.type == "bra":
        $ luna.equip(lun_bra_base1)

    if lun_whoring < get_character_requirement("luna", "unequip panties") and not "panties" in luna.blacklist and not item.type == "panties":
        $ luna.equip(lun_panties_base1)

    lun "Just give me a second, I need to get my clothes back in order." ("open", "base", "base", "R")
    lun "" ("base", "base", "base", "mid")
    return
