From c13867b7ebabc830cf449ab56e9f53af64dcd641 Mon Sep 17 00:00:00 2001 From: LoafyLemon Date: Wed, 28 Jun 2023 23:02:39 +0100 Subject: [PATCH] Yule ball, odd jobs, and menus * Converted Hermione's jobs into new system and added them into the new 'Odd jobs' favor section * Converted Hermione's yule ball event chain into the new system * Improved milestone unlock for Hermione tier 4 * Improved menu exit choice handling * Moved unused labels outside the script files * Reimplemented disabled menu option --- .../events/favors/give_me_a_handy.rpy | 180 ++++---- .../characters/hermione/events/jobs.rpy | 390 ++---------------- .../hermione/events/jobs_NOT_IN_USE.txt | 355 ++++++++++++++++ game/scripts/characters/hermione/summon.rpy | 37 +- game/scripts/characters/hermione/talk.rpy | 55 --- game/scripts/events/ending.rpy | 4 +- game/scripts/events/final_events.rpy | 7 +- game/scripts/events/quests.rpy | 40 +- game/scripts/events/queue.rpy | 32 +- 9 files changed, 535 insertions(+), 565 deletions(-) create mode 100644 game/scripts/characters/hermione/events/jobs_NOT_IN_USE.txt diff --git a/game/scripts/characters/hermione/events/favors/give_me_a_handy.rpy b/game/scripts/characters/hermione/events/favors/give_me_a_handy.rpy index b29e4308..3172aa84 100644 --- a/game/scripts/characters/hermione/events/favors/give_me_a_handy.rpy +++ b/game/scripts/characters/hermione/events/favors/give_me_a_handy.rpy @@ -385,8 +385,6 @@ label hg_pf_handjob_1: gen "You do?!" ("angry", xpos="far_left", ypos="head") her @ cheeks blush "Or better yet, pump me full of it, [name_genie_hermione]!" ("open_wide_tongue", "happy", "worried", "mid_soft") gen "Of course I will!" ("angry", xpos="far_left", ypos="head") - with hpunch - gen "{size=-4}(Here it comes!){/size}" ("angry", xpos="far_left", ypos="head") "\"Stick your tongue out, and look at me!\"": her "What?" ("clench", "happy", "base", "mid") @@ -421,116 +419,114 @@ label hg_pf_handjob_1: her @ cheeks blush "......................" ("open_wide_tongue", "base", "angry", "stare") gen "Let me just--{w=0.2} *Ngh*...{w=0.4} Pump that gaping hole full of cum...{w=0.4} Until it overflows, and slides--{w=0.2} Down your neck!" ("base", xpos="far_left", ypos="head") her @ cheeks blush "................" ("open_wide_tongue", "narrow", "angry", "mid") - with hpunch - gen "{size=-4}(Here it comes!){/size}" ("angry", xpos="far_left", ypos="head") - "\"Give my cock a kiss!\"": - her "Excuse me?" ("angry", "base", "angry", "mid") - gen "You know, just a little kiss, right on the tip." ("base", xpos="far_left", ypos="head") - her "............." ("angry", "narrow", "angry", "mid") - her "...{w=0.4} With my lips?" ("angry", "narrow", "annoyed", "down") - gen "What else would you--" ("base", xpos="far_left", ypos="head") - her "..." ("angry", "base", "worried", "mid") - gen "I mean, sure! That will speed things up, I'm telling you!" ("base", xpos="far_left", ypos="head") - her "*Sigh*.............." ("open", "narrow", "annoyed", "down") - her "Well, if it will speed things up, I suppose I may as well try it..." ("soft", "narrow", "annoyed", "down") + gen "But first, give my cock a kiss!" ("base", xpos="far_left", ypos="head") + her "Excuse me?" ("angry", "base", "angry", "mid") + gen "You know, just a little kiss, right on the tip." ("base", xpos="far_left", ypos="head") + her "............." ("angry", "narrow", "angry", "mid") + her "...{w=0.4} With my lips?" ("angry", "narrow", "annoyed", "down") + gen "What else would you--" ("base", xpos="far_left", ypos="head") + her "..." ("angry", "base", "worried", "mid") + gen "I mean, sure! That will speed things up, I'm telling you!" ("base", xpos="far_left", ypos="head") + her "*Sigh*.............." ("open", "narrow", "annoyed", "down") + her "Well, if it will speed things up, I suppose I may as well try it..." ("soft", "narrow", "annoyed", "down") - nar "Hermione bends forward, and gives the tip of your engorged cock a tender kiss." + nar "Hermione bends forward, and gives the tip of your engorged cock a tender kiss." - play sound "sounds/kiss.ogg" - call her_chibi_scene("hj_kiss", trans=kissiris) - pause 1 + play sound "sounds/kiss.ogg" + call her_chibi_scene("hj_kiss", trans=kissiris) + pause 1 - if not states.her.ev.give_me_a_handy.cock_kiss: - $ states.her.ev.give_me_a_handy.cock_kiss = True - $ achievements.unlock("herkiss") + if not states.her.ev.give_me_a_handy.cock_kiss: + $ states.her.ev.give_me_a_handy.cock_kiss = True + $ achievements.unlock("herkiss") - if not states.her.status.kissing: - her "(My first kiss ever, and I gave it away...{w=0.4} To a cock...)" ("soft", "closed", "worried", "down") - else: - her "(Our first kiss ever, and I gave it away...{w=0.4} To his cock...)" ("soft", "closed", "worried", "down") + if not states.her.status.public_kissing: + her "(My first kiss ever, and I gave it away...{w=0.4} To a cock...)" ("soft", "closed", "worried", "down") + else: + her "(Our first kiss ever, and I gave it away...{w=0.4} To his cock...)" ("soft", "closed", "worried", "down") - $ states.her.status.kissing = True - pause 2 + $ states.her.status.kissing = True + pause 2 - call her_chibi_scene("hj", trans=d5) - pause.5 + call her_chibi_scene("hj", trans=d5) + pause.5 - her "Like that?" ("open", "squint", "worried", "mid") - gen "Of course I liked that!" ("grin", xpos="far_left", ypos="head") - her "{size=-5}I was asking if I did it correctly...{/size}" ("angry", "narrow", "worried", "R") - gen "Sorry?" ("base", xpos="far_left", ypos="head") - her "Nothing, [name_genie_hermione]..." ("disgust", "narrow", "worried", "mid") - gen "That wasn't so bad, was it?" ("base", xpos="far_left", ypos="head") - her "No, I suppose it wasn't..." ("upset", "wink", "base", "mid") - gen "So, could I ask you to do it again?" ("base", xpos="far_left", ypos="head") - her "I--{w=0.2} I suppose..." ("normal", "happyCl", "worried", "mid") - gen "Then please, do it again!" ("grin", xpos="far_left", ypos="head") - her @ cheeks blush "Well, alright..." ("base", "narrow", "base", "down") + her "Like that?" ("open", "squint", "worried", "mid") + gen "Of course I liked that!" ("grin", xpos="far_left", ypos="head") + her "{size=-5}I was asking if I did it correctly...{/size}" ("angry", "narrow", "worried", "R") + gen "Sorry?" ("base", xpos="far_left", ypos="head") + her "Nothing, [name_genie_hermione]..." ("disgust", "narrow", "worried", "mid") + gen "That wasn't so bad, was it?" ("base", xpos="far_left", ypos="head") + her "No, I suppose it wasn't..." ("upset", "wink", "base", "mid") + gen "So, could I ask you to do it again?" ("base", xpos="far_left", ypos="head") + her "I--{w=0.2} I suppose..." ("normal", "happyCl", "worried", "mid") + gen "Then please, do it again!" ("grin", xpos="far_left", ypos="head") + her @ cheeks blush "Well, alright..." ("base", "narrow", "base", "down") - play sound "sounds/kiss.ogg" - call her_chibi_scene("hj_kiss", trans=kissiris) - pause 3 + play sound "sounds/kiss.ogg" + call her_chibi_scene("hj_kiss", trans=kissiris) + pause 3 - nar "Hermione gives your cock another kiss..." - call ctc + nar "Hermione gives your cock another kiss..." + call ctc - nar "This time she lingers a moment longer..." - pause.5 + nar "This time she lingers a moment longer..." + pause.5 - call her_chibi_scene("hj", trans=d5) - pause.5 + call her_chibi_scene("hj", trans=d5) + pause.5 - gen "Good...{w=0.4} Now do it again, and stay there for a while." ("base", xpos="far_left", ypos="head") - her "Stay there...{w=0.4} With my lips touching--" ("open", "base", "base", "stare") - her "No, I will look stupid!" ("disgust", "happy", "angry", "R") - menu: - "\"That's the point!\"": - gen "It will make me cum in no time!" ("base", xpos="far_left", ypos="head") - her "......" ("annoyed", "narrow", "annoyed", "mid") - gen "Now, don't be so silly, [name_hermione_genie]..." ("base", xpos="far_left", ypos="head") - gen "Just put your lips back, and keep them there for me." ("base", xpos="far_left", ypos="head") - "\"Nobody is watching...\"": - her "You are, [name_genie_hermione]." ("angry", "narrow", "worried", "down") - gen "That's true... And I'm letting you know right now, that if you did this for me, It'd make me cum in no time." ("base", xpos="far_left", ypos="head") - her "......" ("annoyed", "narrow", "base", "down") - gen "Go on...{w=0.4} You said you were in a hurry." ("base", xpos="far_left", ypos="head") - her "..............." ("annoyed", "narrow", "angry", "R") - if game.daytime: - gen "Once we're done here, you can get out and head back to class." ("base", xpos="far_left", ypos="head") - else: - gen "Once we're done here, you can get back to working on your paper." ("base", xpos="far_left", ypos="head") - her "............." ("disgust", "narrow", "base", "mid_soft") - her "Well, alright then..." ("open", "narrow", "worried", "down") - her "" ("open", "closed", "worried", "down") + gen "Good...{w=0.4} Now do it again, and stay there for a while." ("base", xpos="far_left", ypos="head") + her "Stay there...{w=0.4} With my lips touching--" ("open", "base", "base", "stare") + her "No, I will look stupid!" ("disgust", "happy", "angry", "R") + menu: + "\"That's the point!\"": + gen "It will make me cum in no time!" ("base", xpos="far_left", ypos="head") + her "......" ("annoyed", "narrow", "annoyed", "mid") + gen "Now, don't be so silly, [name_hermione_genie]..." ("base", xpos="far_left", ypos="head") + gen "Just put your lips back, and keep them there for me." ("base", xpos="far_left", ypos="head") + "\"Nobody is watching...\"": + her "You are, [name_genie_hermione]." ("angry", "narrow", "worried", "down") + gen "That's true... And I'm letting you know right now, that if you did this for me, It'd make me cum in no time." ("base", xpos="far_left", ypos="head") + her "......" ("annoyed", "narrow", "base", "down") + gen "Go on...{w=0.4} You said you were in a hurry." ("base", xpos="far_left", ypos="head") + her "..............." ("annoyed", "narrow", "angry", "R") + if game.daytime: + gen "Once we're done here, you can get out and head back to class." ("base", xpos="far_left", ypos="head") + else: + gen "Once we're done here, you can get back to working on your paper." ("base", xpos="far_left", ypos="head") + her "............." ("disgust", "narrow", "base", "mid_soft") + her "Well, alright then..." ("open", "narrow", "worried", "down") + her "" ("open", "closed", "worried", "down") - nar "Hermione shuts her eyes, puckers her lips, and bends forward again..." - nar "A twitch runs down your shaft, as she plants her lips on the tip of your cock..." + nar "Hermione shuts her eyes, puckers her lips, and bends forward again..." + nar "A twitch runs down your shaft, as she plants her lips on the tip of your cock..." - play sound "sounds/kiss.ogg" - call her_chibi_scene("hj_kiss", trans=kissiris) - call ctc + play sound "sounds/kiss.ogg" + call her_chibi_scene("hj_kiss", trans=kissiris) + call ctc - gen "Very good, [name_hermione_genie]..." ("base", xpos="far_left", ypos="head") - gen "Now touch it with your tongue." ("base", xpos="far_left", ypos="head") - her "??!" ("open_tongue", "happyCl", "worried", "mid") - gen "That's the last thing I will be asking of you today." ("base", xpos="far_left", ypos="head") - her "............" ("open_tongue", "closed", "annoyed", "mid") - her "............{fast}" ("open_wide_tongue", "closed", "worried", "mid") + gen "Very good, [name_hermione_genie]..." ("base", xpos="far_left", ypos="head") + gen "Now touch it with your tongue." ("base", xpos="far_left", ypos="head") + her "??!" ("open_tongue", "happyCl", "worried", "mid") + gen "That's the last thing I will be asking of you today." ("base", xpos="far_left", ypos="head") + her "............" ("open_tongue", "closed", "annoyed", "mid") + her "............{fast}" ("open_wide_tongue", "closed", "worried", "mid") - nar "You feel Hermione warily rub the tip of her tongue against the head of your cock..." + nar "You feel Hermione warily rub the tip of her tongue against the head of your cock..." - gen "Yes...{w=0.4} Just--{w=0.2} *Ngh*...{w=0.4} Just like that..." ("base", xpos="far_left", ypos="head") - nar "Looking as if she has no clue what to do in this situation, Hermione starts wiggling her tongue a little bit..." - her "(*Hmm*... It tastes a bit weird...)" ("open_wide_tongue", "closed", "worried", "down") - her "(Wait, why did I try to taste it?!)" ("open_tongue", "happyCl", "worried", "down") - gen "Yes... Good job, [name_hermione_genie]..." ("base", xpos="far_left", ypos="head") + gen "Yes...{w=0.4} Just--{w=0.2} *Ngh*...{w=0.4} Just like that..." ("base", xpos="far_left", ypos="head") + nar "Looking as if she has no clue what to do in this situation, Hermione starts wiggling her tongue a little bit..." + her "(*Hmm*... It tastes a bit weird...)" ("open_wide_tongue", "closed", "worried", "down") + her "(Wait, why did I try to taste it?!)" ("open_tongue", "happyCl", "worried", "down") + gen "Yes... Good job, [name_hermione_genie]..." ("base", xpos="far_left", ypos="head") - call her_chibi_scene("hj", trans=d5) - pause.8 + call her_chibi_scene("hj", trans=d5) + pause.8 - her "So, did it work? Are you ready to--{w=0.4} *Ehm*...{w=0.4} Finish, [name_genie_hermione]?" ("angry", "narrow", "base", "down") - gen "{size=-4}(Surprisingly, yes!){/size}" ("angry", xpos="far_left", ypos="head") + her "So, did it work? Are you ready to--{w=0.4} *Ehm*...{w=0.4} Finish, [name_genie_hermione]?" ("angry", "narrow", "base", "down") + gen "{size=-4}(Surprisingly, yes!){/size}" ("angry", xpos="far_left", ypos="head") menu: gen "..." ("base", xpos="far_left", ypos="head") diff --git a/game/scripts/characters/hermione/events/jobs.rpy b/game/scripts/characters/hermione/events/jobs.rpy index e78e5bd4..115b89bb 100644 --- a/game/scripts/characters/hermione/events/jobs.rpy +++ b/game/scripts/characters/hermione/events/jobs.rpy @@ -1,6 +1,17 @@ +default her_ev_maid_job_return = Event(id="her_ev_maid_job_return", label="her_maid_job_return", priority=5, req="not game.daytime") +default her_ev_maid_job_hub = Event(id="her_ev_maid_job_hub", label="her_maid_job", priority=5, req="her_outfit_maid.unlocked", repeat=True, autoenqueue=True, autodequeue=False, queue="her_eventqueue_jobs_maid", subevents=["her_ev_maid_job_return"]) + +default her_ev_promoter_job_return = Event(id="her_ev_promoter_job_return", label="her_promoter_job_return", priority=5, req="not game.daytime") +default her_ev_promoter_job_hub = Event(id="her_ev_promoter_job_hub", label="her_promoter_job", priority=5, req="states.her.ev.promote_cardgame.offered and poker_outfit_ITEM.unlocked", repeat=True, autoenqueue=True, autodequeue=False, queue="her_eventqueue_jobs_promoter", subevents=["her_ev_promoter_job_return"]) + +define hermione_jobs = [ + ("her_eventqueue_jobs_maid", "Work as a maid!"), + ("her_eventqueue_jobs_promoter", "Work as a promoter!"), +] + # Maid Job -label job_1: +label her_maid_job: show screen blkfade with d3 @@ -49,6 +60,7 @@ label job_1: call tutorial("points") + $ _event.cancel() jump working_menu elif states.her.level < 13: her "Cleaned up, [name_genie_hermione]?" ("angry", "base", "base", "mid") @@ -79,6 +91,7 @@ label job_1: call tutorial("points") + $ _event.cancel() jump working_menu else: #13+ her "I'm not sure what you." ("angry", "base", "base", "mid") @@ -110,6 +123,7 @@ label job_1: call tutorial("points") + $ _event.cancel() jump working_menu else: @@ -133,6 +147,7 @@ label job_1: call tutorial("points") + $ _event.cancel() jump working_menu elif states.her.level < 16: if not is_in_lead(gryffindor): @@ -145,6 +160,7 @@ label job_1: call tutorial("points") + $ _event.cancel() jump working_menu elif states.her.level < 22: her "Of course, [name_genie_hermione]..." ("base", "squint", "base", "mid", xpos="right", ypos="base", trans=dissolve) @@ -174,10 +190,13 @@ label job_1: jump main_room_menu -label maid_responses: +label her_maid_job_return: + python: + progress_factor = math.log(states.her.tier + states.cho.tier + states.ton.tier + states.lun.tier + game.day) + payment = int(progress_factor * random_gold) + $ hermione.equip(her_outfit_maid) - $ payment = renpy.random.randint(10, 25) call her_walk(action="enter", xpos="mid", ypos="base") @@ -314,364 +333,9 @@ label maid_responses: jump main_room_menu -# Barmaid Job -label job_2: - if states.her.level <= 6: - her "*Humph*!..." - elif states.her.level >=7 and states.her.level <= 15: - her "Yes [name_genie_hermione]..." - else: - her "As you wish [name_genie_hermione]." - - show screen blkfade - with d5 - # Setup - play sound "sounds/cloth_sound.ogg" - $ her_outfit_last.save() - $ hermione.equip(her_outfit_maid) - her "" ("base", "base", "base", "mid",xpos="right",ypos="base") - hide screen blkfade - with d5 - - pause 2.5 - hide hermione_main - with d3 - - gen "Off you go then..." ("base", xpos="far_left", ypos="head") - - call her_walk(action="leave") - - $ states.her.busy = True - $ current_job = "barmaid" - - jump main_room_menu - -label barmaid_responses: - - $ hermione.equip(her_outfit_maid) - $ payment = renpy.random.randint(20, 50) - - call her_walk(action="enter", xpos="mid", ypos="base") - - her "" ("base", "base", "base", "mid",xpos="right",ypos="base") - pause.5 - - menu: - "\"How was your day?\"": - her "Fine..." - gen "Anything unusual happen?" ("base", xpos="far_left", ypos="head") - her "Not really, I just served people drinks." - gen "Well, in that case, ten points to Gryffindor." ("base", xpos="far_left", ypos="head") - her "Thank you, [name_genie_hermione], here's your payment." - "-Dismiss her-": - her "Here's your payment." - nar "You receive {number=payment} gold coins." - gen "Well done [name_hermione_genie], ten points to Gryffindor." ("base", xpos="far_left", ypos="head") - - her "Thank you, [name_genie_hermione]." - - $ gryffindor+= 20 - $ game.gold += payment - - call her_walk(action="leave") - - $ hermione.equip(her_outfit_last) - - $ states.her.busy = True - $ current_job = None - jump main_room_menu - -# Gryffindor Cheerleader Job (Needs outfit) -label job_3: - if states.her.level <= 6: - her "*Humph*!..." - elif states.her.level <= 15: - her "Yes, [name_genie_hermione]..." ("normal", "base", "base", "R") - else: - her "As you wish, [name_genie_hermione]." ("open", "base", "base", "mid") - - show screen blkfade - with d5 - play sound "sounds/cloth_sound.ogg" - $ her_outfit_last.save() # Store current outfit. - if her_outfit_cheerleader_2.unlocked and states.her.level >= 11: #Sexy - $ hermione.equip(her_outfit_cheerleader_2) - else: #Normal - $ hermione.equip(her_outfit_cheerleader_1) - her "" ("base", "base", "base", "mid",xpos="right",ypos="base") - hide screen blkfade - with d5 - - pause 2.5 - hide hermione_main - with d3 - - gen "You look great!" ("grin", xpos="far_left", ypos="head") - her "Thank you..." ("base", "happyCl", "base", "mid") - gen "Off you go then..." ("base", xpos="far_left", ypos="head") - - call her_walk(action="leave") - - $ states.her.busy = True - $ current_job = "gryffindor_cheerleader" - - jump main_room_menu - -label gryffindor_cheer_responses: - - if her_outfit_cheerleader_2.unlocked and states.her.level >= 11: #Sexy - $ hermione.equip(her_outfit_cheerleader_2) - else: #Normal - $ hermione.equip(her_outfit_cheerleader_1) - $ payment = renpy.random.randint(40, 80) - - call her_walk(action="enter", xpos="mid", ypos="base") - - her "" ("base", "base", "base", "mid",xpos="right",ypos="base") - pause.5 - - menu: - "\"How was your day?\"": - random: - block: - her "It was good [name_genie_hermione], I think that the team morale has really started to go up." ("base", "base", "base", "mid") - gen "How so?" ("base", xpos="far_left", ypos="head") - her "Well, since I've started, they seem to have improved their tactics." ("open", "base", "base", "mid") - her "They also seem much happier. Harry is always looking at me with a smile on his face." ("base", "base", "base", "mid") - gen "And does he look at you a lot?" ("base", xpos="far_left", ypos="head") - her "Of course he does, we're good friends." ("open", "base", "base", "mid") - gen "\"I'm sure that must be the reason\"..." ("base", xpos="far_left", ypos="head") - her "Well, here's the money, [name_genie_hermione]." ("base", "base", "base", "mid") - nar "You receive [payment] gold coins." - gen "Well done, [name_hermione_genie], ten points to Gryffindor." ("base", xpos="far_left", ypos="head") - block: - her "Tiring. This cheering thing really is quite exhausting." ("open", "base", "worried", "mid") - gen "Anything interesting happen?" ("base", xpos="far_left", ypos="head") - her "Not unless you count me almost dropping my pom-pom." ("normal", "base", "base", "mid") - gen "I don't... Well, did they pay you?" ("base", xpos="far_left", ypos="head") - her "Of course, here you are [name_genie_hermione]." ("open", "base", "base", "mid") - nar "You receive [payment] gold coins." - gen "Well done [name_hermione_genie], ten points to Gryffindor." ("base", xpos="far_left", ypos="head") - block: - her "Very well, thank you... All the boys said that I helped keep their spirits up." ("open", "base", "base", "mid") - gen "{size=-5}I'm sure that wasn't the only thing you've helped stay up...{/size}" ("base", xpos="far_left", ypos="head") - her "What was that [name_genie_hermione]?" ("open", "squint", "base", "mid") - gen "I was just saying that I'm sure you did a stand up job." ("base", xpos="far_left", ypos="head") - her "I think so..." ("base", "happyCl", "base", "mid") - gen "Well, did they pay you for raising their \"spirits\"?" ("base", xpos="far_left", ypos="head") - her "Of course they did." ("open", "base", "base", "mid") - nar "You receive [payment] gold coins." - gen "Well done [name_hermione_genie], ten points to Gryffindor." ("base", xpos="far_left", ypos="head") - block: - gen "You seem very chipper today." ("base", xpos="far_left", ypos="head") - her "Of course I am, we won!" ("base", "base", "base", "mid") - gen "Won?" ("base", xpos="far_left", ypos="head") - her "We won! We beat Slytherin in a practice match." ("smile", "happyCl", "base", "mid") - gen "You seem a little bit overexcited for just a practice match." ("base", xpos="far_left", ypos="head") - her "Well it was such a great game. Not to mention that we got to rub it in those Slytherin students' faces afterwards." ("smile", "base", "base", "R") - gen "Well I'm glad that you are enjoying your work." ("grin", xpos="far_left", ypos="head") - her "I am [name_genie_hermione]. Given that most of the \"work\" I've done to help my house is kept private, it feels good to be able to do something public once." ("open", "base", "base", "mid") - gen "Not to mention you get paid for it..." ("base", xpos="far_left", ypos="head") - her "Oh, right, Here you are..." ("soft", "base", "base", "R") - nar "You receive [payment] gold coins." - gen "Well done [name_hermione_genie], ten points to Gryffindor." ("base", xpos="far_left", ypos="head") - block: - her "We won! We managed to beat Slytherin." ("base", "base", "base", "mid") - gen "That must have been very exhilarating. I'm sure your cheering gave the extra motivation needed to win." ("base", xpos="far_left", ypos="head") - her "I think it did [name_genie_hermione]. They were all very excited to receive their reward for winning the game." ("base", "happyCl", "base", "mid") - - menu: - "-Reward?-": - gen "What reward did you promise them?" ("base", xpos="far_left", ypos="head") - her "Well, I was quite keen to ensure our victory against Slytherin that I may have promised that I would give each of them a blowjob if they won." ("grin", "base", "base", "R") - gen "You gave every team member a blowjob after the game?" ("base", xpos="far_left", ypos="head") - her "And the water boy..." ("smile", "narrow", "base", "mid_soft") - gen "How did you even manage that? Did you have to crawl around the locker room on your knees?" ("base", xpos="far_left", ypos="head") - her "Of course not, they all patiently waited for their turn..." ("scream", "closed", "angry", "mid") - gen "Who doesn't love a queue..." ("base", xpos="far_left", ypos="head") - gen "So they queued up... And then?" ("base", xpos="far_left", ypos="head") - her "Well I did what I said I would, I'm not the kind of person to lie am I?" ("annoyed", "base", "worried", "R") - her "So, I gave them the reward I promised... And surely, you of all people would know how a blowjob works." ("annoyed", "happy", "base", "R") - gen "That's not quite what I meant." ("base", xpos="far_left", ypos="head") - gen "You just look rather..." ("base", xpos="far_left", ypos="head") - gen "Clean, that's all." ("base", xpos="far_left", ypos="head") - her @ cheeks blush "Oh, well..." ("base", "narrow", "worried", "down") - her @ cheeks blush "I didn't want to make a mess." ("soft", "narrow", "base", "down") - her "Anyhow, I'm glad I did it. I can't wait to rub it in Astoria's face tomorrow..." ("smile", "base", "base", "mid") - gen "I'm glad you think it was worth it. Did they pay you?" ("base", xpos="far_left", ypos="head") - "-Okay-": - gen "I'm sure it was worth it. Did they pay you?" ("base", xpos="far_left", ypos="head") - - her "Of course they did [name_genie_hermione], here you are." - gen "Well done [name_hermione_genie], ten points to Gryffindor." ("base", xpos="far_left", ypos="head") - - "-Dismiss her-": - her "Here's your payment [name_genie_hermione]." ("soft", "base", "base", "R") - gen "Well done [name_hermione_genie], ten points to Gryffindor." ("base", xpos="far_left", ypos="head") - - her "Thank you, [name_genie_hermione]." ("base", "happyCl", "base", "mid") - nar "You receive [payment] gold coins." - $ gryffindor+= 20 - $ game.gold += payment - - call her_walk(action="leave") - - $ hermione.equip(her_outfit_last) - - $ states.her.busy = True - $ current_job = None - jump main_room_menu - -# Slytherin Cheerleader Job -label job_4: - - if states.her.level <= 6: - her "*Humph*!..." - elif states.her.level >=7 and states.her.level <= 15: - her "Yes, [name_genie_hermione]..." - else: - her "As you wish, [name_genie_hermione]." - - show screen blkfade - with d5 - play sound "sounds/cloth_sound.ogg" - $ her_outfit_last.save() # Store current outfit. - if her_outfit_cheerleader_2.unlocked and states.her.level >= 11: #Sexy - $ hermione.equip(her_outfit_cheerleader_2) - else: #Normal - $ hermione.equip(her_outfit_cheerleader_1) - her "" ("base", "base", "base", "mid",xpos="right",ypos="base") - hide screen blkfade - with d5 - - pause 2.5 - hide hermione_main - with d3 - - gen "You look incredible!" ("angry", xpos="far_left", ypos="head") - her "Thank you..." ("base", "happyCl", "base", "mid") - gen "Off you go then..." ("base", xpos="far_left", ypos="head") - - call her_walk(action="leave") - - $ states.her.busy = True - $ current_job = "slytherin_cheerleader" - - call music_block - jump main_room_menu - -label slytherin_cheer_responses: - - if her_outfit_cheerleader_2.unlocked and states.her.level >= 11: #Sexy - $ hermione.equip(her_outfit_cheerleader_2) - else: #Normal - $ hermione.equip(her_outfit_cheerleader_1) - - $ payment = renpy.random.randint(50, 100) - - call her_walk(action="enter", xpos="mid", ypos="base") - - if states.her.public_level > 15: - her "" ("base", "narrow", "base", "up",xpos="right",ypos="base") - else: - her "" ("base", "base", "base", "mid",xpos="right",ypos="base") - pause.5 - - menu: - "-Ask her about her day-": - random: - block: - gen "How was your day today [name_hermione_genie]?" ("base", xpos="far_left", ypos="head") - her "Exhausting... Those Slytherin pigs insisted that I cheer for their entire practice session." ("open", "closed", "angry", "mid") - her "They were hardly playing the game by the end. They were just standing there watching me." - gen "Well what was your routine?" ("base", xpos="far_left", ypos="head") - her "Mostly star jumps while I cheered \"Go Slytherin!\"." ("annoyed", "squint", "angry", "mid") - gen "So you were just jumping up and down? That doesn't seem like a very intricate cheer." ("base", xpos="far_left", ypos="head") - her "It isn't, but it's what they insisted I do." ("annoyed", "narrow", "angry", "R") - gen "Well it definitely sounds like you earned your points." ("base", xpos="far_left", ypos="head") - gen "Thirty points to Gryffindor." ("base", xpos="far_left", ypos="head") - block: - gen "How was your day today [name_hermione_genie]?" ("base", xpos="far_left", ypos="head") - her "Uneventful. I completed my routine and then went back to my room..." ("open", "squint", "base", "mid") - gen "You didn't talk to anyone?" ("base", xpos="far_left", ypos="head") - her "I make a point of trying to avoid Slytherin students as best I can." ("annoyed", "narrow", "angry", "R") - gen "Are they really that unbearable?" ("base", xpos="far_left", ypos="head") - her "Yes..." ("open", "closed", "angry", "mid") - gen "Well, you earned your points." ("base", xpos="far_left", ypos="head") - gen "Thirty points to Gryffindor." ("base", xpos="far_left", ypos="head") - block: - gen "Hello [name_hermione_genie]." ("base", xpos="far_left", ypos="head") - her "Hello [name_genie_hermione]." ("normal", "base", "base", "mid") - gen "How did everything go today?" ("base", xpos="far_left", ypos="head") - her "Very well... In fact, I think I might be doing too well." ("annoyed", "base", "worried", "R") - gen "How so?" ("base", xpos="far_left", ypos="head") - her "I think that my cheering is having too much of a positive effect." ("open", "base", "worried", "mid") - her "I'm not sure that I want the Slytherin team to improve, let alone because of me..." ("open", "base", "worried", "R") - gen "Just think about how you're helping your house in other ways." ("base", xpos="far_left", ypos="head") - her "I suppose you're right [name_genie_hermione]." ("open", "base", "base", "mid") - gen "Of course I am... Now, did they pay you?" ("base", xpos="far_left", ypos="head") - her "Yes [name_genie_hermione]." ("base", "base", "base", "mid") - gen "Well done [name_hermione_genie], twenty points to Gryffindor." ("base", xpos="far_left", ypos="head") - block: - her "[name_genie_hermione], something must be done about those Slytherin boys..." ("open", "closed", "angry", "mid") - her "It's bad enough that I have to cheer for them, but they are being a little bit touchy." ("annoyed", "narrow", "angry", "R") - gen "Touchy?" ("base", xpos="far_left", ypos="head") - her "Yes, they keep groping me. It's highly inappropriate, and it interrupts my routine." ("scream", "closed", "angry", "mid") - gen "You kept dancing while they groped you?" ("base", xpos="far_left", ypos="head") - her "Of course, I'm there to complete a job. I'm not getting distracted just because of a few boys." ("open", "closed", "angry", "mid") - gen "Well, what would you have me do?" ("base", xpos="far_left", ypos="head") - her "Speak to Professor Snape, tell him to chastise them. They'll listen to him..." ("angry", "base", "angry", "mid") - gen "Very well, I'll speak to him. Although I'm not sure it will have the effect you're hoping for." ("base", xpos="far_left", ypos="head") - her "It better, otherwise I won't put my full effort into this..." ("normal", "squint", "angry", "mid") - gen "{size=-5}I'm sure that'll show them.{/size}" ("base", xpos="far_left", ypos="head") - her "What was that [name_genie_hermione]?" ("open", "squint", "base", "mid") - gen "Nothing [name_hermione_genie], I'll speak to Professor Snape tonight..." ("base", xpos="far_left", ypos="head") - block:#Comes back with cum on her - gen "What the hell happened to you?" ("base", xpos="far_left", ypos="head") - her "I did my job [name_genie_hermione]." ("angry", "narrow", "base", "down") - gen "What are you talking about? You were supposed to be a cheerleader." ("base", xpos="far_left", ypos="head") - gen "You know, cheering..." ("base", xpos="far_left", ypos="head") - gen "And all that." ("base", xpos="far_left", ypos="head") - her "I am [name_genie_hermione]. I just performed a different type of cheer today." ("soft", "narrow", "annoyed", "up") - gen "And by that, you mean jerking off the entire Slytherin team?" ("base", xpos="far_left", ypos="head") - her "Well that's not how it started. I was initially just giving them a bit of a dance in the locker room..." ("angry", "narrow", "base", "down") - her "And one thing led to another." - gen "Fine, I don't want to hear it. How much did they pay you for this \"cheering\"?" ("base", xpos="far_left", ypos="head") - her "Pay me?" ("silly", "narrow", "base", "dead") - gen "You are supposed to be paid for this [name_hermione_genie]." ("base", xpos="far_left", ypos="head") - her @ cheeks blush "Oh, I must have forgotten... Sorry [name_genie_hermione]." ("base", "base", "base", "R") - gen "Fine, but you aren't getting any points." ("base", xpos="far_left", ypos="head") - her "Of course [name_genie_hermione]. Will that be all?" ("base", "base", "base", "mid") - gen "Yes, you're free to go now." ("base", xpos="far_left", ypos="head") - her "Thank you, [name_genie_hermione]." ("base", "narrow", "base", "mid_soft") - - jump end_her_working_no_payment - "-Dismiss her-": - her "Here's your payment." ("open", "base", "base", "mid") - nar "You receive [payment] gold coins." - gen "Well done [name_hermione_genie], thirty points to Gryffindor." ("base", xpos="far_left", ypos="head") - - her "Thank you, [name_genie_hermione]." ("base", "narrow", "base", "mid_soft") - nar "You receive [payment] gold coins." - $ gryffindor+= 30 - $ game.gold += payment - - label end_her_working_no_payment: - - call her_walk(action="leave") - - $ hermione.equip(her_outfit_last) - - $ states.her.busy = True - $ current_job = None - - call music_block - jump main_room_menu - - #Send Hermione to work, promoting the card game. -label job_5: +label her_promoter_job: if states.her.ev.promote_cardgame.first_time: gen "Alright then, I think it's time you go help the twins with their shop." ("base", xpos="far_left", ypos="head") @@ -702,7 +366,10 @@ label job_5: gen "So it's a--" ("base", xpos="far_left", ypos="head") her "Of course it's a no!" ("shock", "base", "angry", "mid") her "" ("angry", "base", "angry", "mid") + $ states.her.mood += 5 + + $ _event.cancel() jump working_menu random: @@ -721,7 +388,8 @@ label job_5: her "That doesn't leave a lot to the imagination..." ("smile", "happy", "base", "mid") her "At least the straps should cover my nipples..." ("open", "wink", "base", "mid") her @ cheeks blush "I'll do it..." ("normal", "happy", "base", "mid") - + else: + gen "I think it's time you go help the twins with their shop again." ("base", xpos="far_left", ypos="head") show screen blkfade with d5 @@ -742,7 +410,7 @@ label job_5: call music_block jump main_room_menu -label hermione_helping_selling_cards: +label her_promoter_job_return: $ current_job = None $ hermione.equip(her_outfit_poker) diff --git a/game/scripts/characters/hermione/events/jobs_NOT_IN_USE.txt b/game/scripts/characters/hermione/events/jobs_NOT_IN_USE.txt new file mode 100644 index 00000000..6a449460 --- /dev/null +++ b/game/scripts/characters/hermione/events/jobs_NOT_IN_USE.txt @@ -0,0 +1,355 @@ + +# Barmaid Job +label job_2: + if states.her.level <= 6: + her "*Humph*!..." + elif states.her.level >=7 and states.her.level <= 15: + her "Yes [name_genie_hermione]..." + else: + her "As you wish [name_genie_hermione]." + + show screen blkfade + with d5 + # Setup + play sound "sounds/cloth_sound.ogg" + $ her_outfit_last.save() + $ hermione.equip(her_outfit_maid) + her "" ("base", "base", "base", "mid",xpos="right",ypos="base") + hide screen blkfade + with d5 + + pause 2.5 + hide hermione_main + with d3 + + gen "Off you go then..." ("base", xpos="far_left", ypos="head") + + call her_walk(action="leave") + + $ states.her.busy = True + $ current_job = "barmaid" + + jump main_room_menu + +label barmaid_responses: + + $ hermione.equip(her_outfit_maid) + $ payment = renpy.random.randint(20, 50) + + call her_walk(action="enter", xpos="mid", ypos="base") + + her "" ("base", "base", "base", "mid",xpos="right",ypos="base") + pause.5 + + menu: + "\"How was your day?\"": + her "Fine..." + gen "Anything unusual happen?" ("base", xpos="far_left", ypos="head") + her "Not really, I just served people drinks." + gen "Well, in that case, ten points to Gryffindor." ("base", xpos="far_left", ypos="head") + her "Thank you, [name_genie_hermione], here's your payment." + "-Dismiss her-": + her "Here's your payment." + nar "You receive {number=payment} gold coins." + gen "Well done [name_hermione_genie], ten points to Gryffindor." ("base", xpos="far_left", ypos="head") + + her "Thank you, [name_genie_hermione]." + + $ gryffindor+= 20 + $ game.gold += payment + + call her_walk(action="leave") + + $ hermione.equip(her_outfit_last) + + $ states.her.busy = True + $ current_job = None + jump main_room_menu + +# Gryffindor Cheerleader Job (Needs outfit) +label job_3: + if states.her.level <= 6: + her "*Humph*!..." + elif states.her.level <= 15: + her "Yes, [name_genie_hermione]..." ("normal", "base", "base", "R") + else: + her "As you wish, [name_genie_hermione]." ("open", "base", "base", "mid") + + show screen blkfade + with d5 + play sound "sounds/cloth_sound.ogg" + $ her_outfit_last.save() # Store current outfit. + if her_outfit_cheerleader_2.unlocked and states.her.level >= 11: #Sexy + $ hermione.equip(her_outfit_cheerleader_2) + else: #Normal + $ hermione.equip(her_outfit_cheerleader_1) + her "" ("base", "base", "base", "mid",xpos="right",ypos="base") + hide screen blkfade + with d5 + + pause 2.5 + hide hermione_main + with d3 + + gen "You look great!" ("grin", xpos="far_left", ypos="head") + her "Thank you..." ("base", "happyCl", "base", "mid") + gen "Off you go then..." ("base", xpos="far_left", ypos="head") + + call her_walk(action="leave") + + $ states.her.busy = True + $ current_job = "gryffindor_cheerleader" + + jump main_room_menu + +label gryffindor_cheer_responses: + + if her_outfit_cheerleader_2.unlocked and states.her.level >= 11: #Sexy + $ hermione.equip(her_outfit_cheerleader_2) + else: #Normal + $ hermione.equip(her_outfit_cheerleader_1) + $ payment = renpy.random.randint(40, 80) + + call her_walk(action="enter", xpos="mid", ypos="base") + + her "" ("base", "base", "base", "mid",xpos="right",ypos="base") + pause.5 + + menu: + "\"How was your day?\"": + random: + block: + her "It was good [name_genie_hermione], I think that the team morale has really started to go up." ("base", "base", "base", "mid") + gen "How so?" ("base", xpos="far_left", ypos="head") + her "Well, since I've started, they seem to have improved their tactics." ("open", "base", "base", "mid") + her "They also seem much happier. Harry is always looking at me with a smile on his face." ("base", "base", "base", "mid") + gen "And does he look at you a lot?" ("base", xpos="far_left", ypos="head") + her "Of course he does, we're good friends." ("open", "base", "base", "mid") + gen "\"I'm sure that must be the reason\"..." ("base", xpos="far_left", ypos="head") + her "Well, here's the money, [name_genie_hermione]." ("base", "base", "base", "mid") + nar "You receive [payment] gold coins." + gen "Well done, [name_hermione_genie], ten points to Gryffindor." ("base", xpos="far_left", ypos="head") + block: + her "Tiring. This cheering thing really is quite exhausting." ("open", "base", "worried", "mid") + gen "Anything interesting happen?" ("base", xpos="far_left", ypos="head") + her "Not unless you count me almost dropping my pom-pom." ("normal", "base", "base", "mid") + gen "I don't... Well, did they pay you?" ("base", xpos="far_left", ypos="head") + her "Of course, here you are [name_genie_hermione]." ("open", "base", "base", "mid") + nar "You receive [payment] gold coins." + gen "Well done [name_hermione_genie], ten points to Gryffindor." ("base", xpos="far_left", ypos="head") + block: + her "Very well, thank you... All the boys said that I helped keep their spirits up." ("open", "base", "base", "mid") + gen "{size=-5}I'm sure that wasn't the only thing you've helped stay up...{/size}" ("base", xpos="far_left", ypos="head") + her "What was that [name_genie_hermione]?" ("open", "squint", "base", "mid") + gen "I was just saying that I'm sure you did a stand up job." ("base", xpos="far_left", ypos="head") + her "I think so..." ("base", "happyCl", "base", "mid") + gen "Well, did they pay you for raising their \"spirits\"?" ("base", xpos="far_left", ypos="head") + her "Of course they did." ("open", "base", "base", "mid") + nar "You receive [payment] gold coins." + gen "Well done [name_hermione_genie], ten points to Gryffindor." ("base", xpos="far_left", ypos="head") + block: + gen "You seem very chipper today." ("base", xpos="far_left", ypos="head") + her "Of course I am, we won!" ("base", "base", "base", "mid") + gen "Won?" ("base", xpos="far_left", ypos="head") + her "We won! We beat Slytherin in a practice match." ("smile", "happyCl", "base", "mid") + gen "You seem a little bit overexcited for just a practice match." ("base", xpos="far_left", ypos="head") + her "Well it was such a great game. Not to mention that we got to rub it in those Slytherin students' faces afterwards." ("smile", "base", "base", "R") + gen "Well I'm glad that you are enjoying your work." ("grin", xpos="far_left", ypos="head") + her "I am [name_genie_hermione]. Given that most of the \"work\" I've done to help my house is kept private, it feels good to be able to do something public once." ("open", "base", "base", "mid") + gen "Not to mention you get paid for it..." ("base", xpos="far_left", ypos="head") + her "Oh, right, Here you are..." ("soft", "base", "base", "R") + nar "You receive [payment] gold coins." + gen "Well done [name_hermione_genie], ten points to Gryffindor." ("base", xpos="far_left", ypos="head") + block: + her "We won! We managed to beat Slytherin." ("base", "base", "base", "mid") + gen "That must have been very exhilarating. I'm sure your cheering gave the extra motivation needed to win." ("base", xpos="far_left", ypos="head") + her "I think it did [name_genie_hermione]. They were all very excited to receive their reward for winning the game." ("base", "happyCl", "base", "mid") + + menu: + "-Reward?-": + gen "What reward did you promise them?" ("base", xpos="far_left", ypos="head") + her "Well, I was quite keen to ensure our victory against Slytherin that I may have promised that I would give each of them a blowjob if they won." ("grin", "base", "base", "R") + gen "You gave every team member a blowjob after the game?" ("base", xpos="far_left", ypos="head") + her "And the water boy..." ("smile", "narrow", "base", "mid_soft") + gen "How did you even manage that? Did you have to crawl around the locker room on your knees?" ("base", xpos="far_left", ypos="head") + her "Of course not, they all patiently waited for their turn..." ("scream", "closed", "angry", "mid") + gen "Who doesn't love a queue..." ("base", xpos="far_left", ypos="head") + gen "So they queued up... And then?" ("base", xpos="far_left", ypos="head") + her "Well I did what I said I would, I'm not the kind of person to lie am I?" ("annoyed", "base", "worried", "R") + her "So, I gave them the reward I promised... And surely, you of all people would know how a blowjob works." ("annoyed", "happy", "base", "R") + gen "That's not quite what I meant." ("base", xpos="far_left", ypos="head") + gen "You just look rather..." ("base", xpos="far_left", ypos="head") + gen "Clean, that's all." ("base", xpos="far_left", ypos="head") + her @ cheeks blush "Oh, well..." ("base", "narrow", "worried", "down") + her @ cheeks blush "I didn't want to make a mess." ("soft", "narrow", "base", "down") + her "Anyhow, I'm glad I did it. I can't wait to rub it in Astoria's face tomorrow..." ("smile", "base", "base", "mid") + gen "I'm glad you think it was worth it. Did they pay you?" ("base", xpos="far_left", ypos="head") + "-Okay-": + gen "I'm sure it was worth it. Did they pay you?" ("base", xpos="far_left", ypos="head") + + her "Of course they did [name_genie_hermione], here you are." + gen "Well done [name_hermione_genie], ten points to Gryffindor." ("base", xpos="far_left", ypos="head") + + "-Dismiss her-": + her "Here's your payment [name_genie_hermione]." ("soft", "base", "base", "R") + gen "Well done [name_hermione_genie], ten points to Gryffindor." ("base", xpos="far_left", ypos="head") + + her "Thank you, [name_genie_hermione]." ("base", "happyCl", "base", "mid") + nar "You receive [payment] gold coins." + $ gryffindor+= 20 + $ game.gold += payment + + call her_walk(action="leave") + + $ hermione.equip(her_outfit_last) + + $ states.her.busy = True + $ current_job = None + jump main_room_menu + +# Slytherin Cheerleader Job +label job_4: + + if states.her.level <= 6: + her "*Humph*!..." + elif states.her.level >=7 and states.her.level <= 15: + her "Yes, [name_genie_hermione]..." + else: + her "As you wish, [name_genie_hermione]." + + show screen blkfade + with d5 + play sound "sounds/cloth_sound.ogg" + $ her_outfit_last.save() # Store current outfit. + if her_outfit_cheerleader_2.unlocked and states.her.level >= 11: #Sexy + $ hermione.equip(her_outfit_cheerleader_2) + else: #Normal + $ hermione.equip(her_outfit_cheerleader_1) + her "" ("base", "base", "base", "mid",xpos="right",ypos="base") + hide screen blkfade + with d5 + + pause 2.5 + hide hermione_main + with d3 + + gen "You look incredible!" ("angry", xpos="far_left", ypos="head") + her "Thank you..." ("base", "happyCl", "base", "mid") + gen "Off you go then..." ("base", xpos="far_left", ypos="head") + + call her_walk(action="leave") + + $ states.her.busy = True + $ current_job = "slytherin_cheerleader" + + call music_block + jump main_room_menu + +label slytherin_cheer_responses: + + if her_outfit_cheerleader_2.unlocked and states.her.level >= 11: #Sexy + $ hermione.equip(her_outfit_cheerleader_2) + else: #Normal + $ hermione.equip(her_outfit_cheerleader_1) + + $ payment = renpy.random.randint(50, 100) + + call her_walk(action="enter", xpos="mid", ypos="base") + + if states.her.public_level > 15: + her "" ("base", "narrow", "base", "up",xpos="right",ypos="base") + else: + her "" ("base", "base", "base", "mid",xpos="right",ypos="base") + pause.5 + + menu: + "-Ask her about her day-": + random: + block: + gen "How was your day today [name_hermione_genie]?" ("base", xpos="far_left", ypos="head") + her "Exhausting... Those Slytherin pigs insisted that I cheer for their entire practice session." ("open", "closed", "angry", "mid") + her "They were hardly playing the game by the end. They were just standing there watching me." + gen "Well what was your routine?" ("base", xpos="far_left", ypos="head") + her "Mostly star jumps while I cheered \"Go Slytherin!\"." ("annoyed", "squint", "angry", "mid") + gen "So you were just jumping up and down? That doesn't seem like a very intricate cheer." ("base", xpos="far_left", ypos="head") + her "It isn't, but it's what they insisted I do." ("annoyed", "narrow", "angry", "R") + gen "Well it definitely sounds like you earned your points." ("base", xpos="far_left", ypos="head") + gen "Thirty points to Gryffindor." ("base", xpos="far_left", ypos="head") + block: + gen "How was your day today [name_hermione_genie]?" ("base", xpos="far_left", ypos="head") + her "Uneventful. I completed my routine and then went back to my room..." ("open", "squint", "base", "mid") + gen "You didn't talk to anyone?" ("base", xpos="far_left", ypos="head") + her "I make a point of trying to avoid Slytherin students as best I can." ("annoyed", "narrow", "angry", "R") + gen "Are they really that unbearable?" ("base", xpos="far_left", ypos="head") + her "Yes..." ("open", "closed", "angry", "mid") + gen "Well, you earned your points." ("base", xpos="far_left", ypos="head") + gen "Thirty points to Gryffindor." ("base", xpos="far_left", ypos="head") + block: + gen "Hello [name_hermione_genie]." ("base", xpos="far_left", ypos="head") + her "Hello [name_genie_hermione]." ("normal", "base", "base", "mid") + gen "How did everything go today?" ("base", xpos="far_left", ypos="head") + her "Very well... In fact, I think I might be doing too well." ("annoyed", "base", "worried", "R") + gen "How so?" ("base", xpos="far_left", ypos="head") + her "I think that my cheering is having too much of a positive effect." ("open", "base", "worried", "mid") + her "I'm not sure that I want the Slytherin team to improve, let alone because of me..." ("open", "base", "worried", "R") + gen "Just think about how you're helping your house in other ways." ("base", xpos="far_left", ypos="head") + her "I suppose you're right [name_genie_hermione]." ("open", "base", "base", "mid") + gen "Of course I am... Now, did they pay you?" ("base", xpos="far_left", ypos="head") + her "Yes [name_genie_hermione]." ("base", "base", "base", "mid") + gen "Well done [name_hermione_genie], twenty points to Gryffindor." ("base", xpos="far_left", ypos="head") + block: + her "[name_genie_hermione], something must be done about those Slytherin boys..." ("open", "closed", "angry", "mid") + her "It's bad enough that I have to cheer for them, but they are being a little bit touchy." ("annoyed", "narrow", "angry", "R") + gen "Touchy?" ("base", xpos="far_left", ypos="head") + her "Yes, they keep groping me. It's highly inappropriate, and it interrupts my routine." ("scream", "closed", "angry", "mid") + gen "You kept dancing while they groped you?" ("base", xpos="far_left", ypos="head") + her "Of course, I'm there to complete a job. I'm not getting distracted just because of a few boys." ("open", "closed", "angry", "mid") + gen "Well, what would you have me do?" ("base", xpos="far_left", ypos="head") + her "Speak to Professor Snape, tell him to chastise them. They'll listen to him..." ("angry", "base", "angry", "mid") + gen "Very well, I'll speak to him. Although I'm not sure it will have the effect you're hoping for." ("base", xpos="far_left", ypos="head") + her "It better, otherwise I won't put my full effort into this..." ("normal", "squint", "angry", "mid") + gen "{size=-5}I'm sure that'll show them.{/size}" ("base", xpos="far_left", ypos="head") + her "What was that [name_genie_hermione]?" ("open", "squint", "base", "mid") + gen "Nothing [name_hermione_genie], I'll speak to Professor Snape tonight..." ("base", xpos="far_left", ypos="head") + block:#Comes back with cum on her + gen "What the hell happened to you?" ("base", xpos="far_left", ypos="head") + her "I did my job [name_genie_hermione]." ("angry", "narrow", "base", "down") + gen "What are you talking about? You were supposed to be a cheerleader." ("base", xpos="far_left", ypos="head") + gen "You know, cheering..." ("base", xpos="far_left", ypos="head") + gen "And all that." ("base", xpos="far_left", ypos="head") + her "I am [name_genie_hermione]. I just performed a different type of cheer today." ("soft", "narrow", "annoyed", "up") + gen "And by that, you mean jerking off the entire Slytherin team?" ("base", xpos="far_left", ypos="head") + her "Well that's not how it started. I was initially just giving them a bit of a dance in the locker room..." ("angry", "narrow", "base", "down") + her "And one thing led to another." + gen "Fine, I don't want to hear it. How much did they pay you for this \"cheering\"?" ("base", xpos="far_left", ypos="head") + her "Pay me?" ("silly", "narrow", "base", "dead") + gen "You are supposed to be paid for this [name_hermione_genie]." ("base", xpos="far_left", ypos="head") + her @ cheeks blush "Oh, I must have forgotten... Sorry [name_genie_hermione]." ("base", "base", "base", "R") + gen "Fine, but you aren't getting any points." ("base", xpos="far_left", ypos="head") + her "Of course [name_genie_hermione]. Will that be all?" ("base", "base", "base", "mid") + gen "Yes, you're free to go now." ("base", xpos="far_left", ypos="head") + her "Thank you, [name_genie_hermione]." ("base", "narrow", "base", "mid_soft") + + jump end_her_working_no_payment + "-Dismiss her-": + her "Here's your payment." ("open", "base", "base", "mid") + nar "You receive [payment] gold coins." + gen "Well done [name_hermione_genie], thirty points to Gryffindor." ("base", xpos="far_left", ypos="head") + + her "Thank you, [name_genie_hermione]." ("base", "narrow", "base", "mid_soft") + nar "You receive [payment] gold coins." + $ gryffindor+= 30 + $ game.gold += payment + + label end_her_working_no_payment: + + call her_walk(action="leave") + + $ hermione.equip(her_outfit_last) + + $ states.her.busy = True + $ current_job = None + + call music_block + jump main_room_menu + diff --git a/game/scripts/characters/hermione/summon.rpy b/game/scripts/characters/hermione/summon.rpy index 0ea78f50..6a1defe4 100644 --- a/game/scripts/characters/hermione/summon.rpy +++ b/game/scripts/characters/hermione/summon.rpy @@ -162,20 +162,27 @@ label hermione_favor_menu: jump hermione_favor_menu "-Personal favours-" (icon="interface/icons/small/heart_red.webp"): + label .favors: + call tutorial("hearts") $ result = show_events_menu(hermione_favors) - if result: + if result == "disabled": + "You haven't unlocked this favor opportunity yet." + jump .favors + elif result == "exit": + jump .skip_points_check + else: $ result.start() - jump hermione_favor_menu - "-Public requests-" (icon="interface/icons/small/star_yellow.webp", style="disabled") if not game.daytime: nar "Public requests are available during the day only." jump .skip_points_check "-Public requests-" (icon="interface/icons/small/star_yellow.webp") if game.daytime: + label .requests: + if states.her.public_level >= 16 and not "public" in states.her.ev.yule_ball.variant: # Public whore ending choice $ renpy.choice_for_skipping() @@ -192,10 +199,30 @@ label hermione_favor_menu: $ result = show_events_menu(hermione_requests) - if result: + if result == "disabled": + "You haven't unlocked this request opportunity yet." + jump .requests + elif result == "exit": + jump .skip_points_check + else: $ result.start() - jump hermione_favor_menu + "-Odd Jobs-" (icon="interface/icons/small/gold.webp"): + label .odd_jobs: + + $ result = show_events_menu(hermione_jobs, report_progress=False) + + if result == "disabled": + "You haven't unlocked this job opportunity yet." + jump .odd_jobs + elif result == "exit": + jump .skip_points_check + else: + $ result.start() + + "-Odd Jobs-" (icon="interface/icons/small/gold.webp", style="disabled") if not game.daytime: + nar "Public requests are available during the day only." + jump .skip_points_check "-Public Shaming-" (icon="interface/icons/small/star_pink.webp", style="disabled") if not game.daytime: nar "Public Shaming events are available during the day only." diff --git a/game/scripts/characters/hermione/talk.rpy b/game/scripts/characters/hermione/talk.rpy index 93a6edea..dace750b 100644 --- a/game/scripts/characters/hermione/talk.rpy +++ b/game/scripts/characters/hermione/talk.rpy @@ -1,60 +1,5 @@ label hermione_talk: menu: - "-Working-" (icon="interface/icons/small/gold.webp") if states.her.favors_unlocked: - label working_menu: - menu: - "-Work as a maid-" if game.daytime and her_outfit_maid.unlocked: - jump job_1 - - "-Work as a maid-" (style="disabled") if game.daytime and not her_outfit_maid.unlocked: - gen "(I'll need an outfit for hermione if I want her to work.)" ("base", xpos="far_left", ypos="head") - jump working_menu - - "-Work as a maid-" (style="disabled") if not game.daytime: - "This job is only available during the day." - jump working_menu - - #"-Work as a cheerleader for Gryffindor-" if game.daytime and (hg_cheer_g_ITEM.unlocked or hg_cheer_g_sexy_ITEM.unlocked): - #jump job_3 - - #"-Work as a cheerleader for Gryffindor-" if game.daytime and not (hg_cheer_g_ITEM.unlocked or hg_cheer_g_sexy_ITEM.unlocked): - #gen "(I'll need an outfit for hermione if I want her to work.)" ("base", xpos="far_left", ypos="head") - #jump working_menu - - #"-Work as a cheerleader for Gryffindor-" (style="disabled") if not game.daytime: - #"This job is only available during the day." - #jump working_menu - - #"-Work as a cheerleader for Slytherin-" if game.daytime and (hg_cheer_s_ITEM.unlocked or hg_cheer_s_sexy_ITEM.unlocked): - #jump job_4 - - #"-Work as a cheerleader for Slytherin-" if game.daytime and not (hg_cheer_s_ITEM.unlocked or hg_cheer_s_sexy_ITEM.unlocked): - #gen "(I'll need a slytherin cheerleader outfit for hermione if I want her to work.)" ("base", xpos="far_left", ypos="head") - #jump working_menu - - #"-Work as a cheerleader for Slytherin-" (style="disabled") if not game.daytime: - #"This job is only available during the day." - #jump working_menu - - "-Hidden-" (style="disabled") if not states.her.ev.promote_cardgame.offered or not poker_outfit_ITEM.unlocked: - "You haven't unlocked this job opportunity yet." - jump working_menu - - "-Work by advertising the card game-" (style="disabled") if states.her.ev.promote_cardgame.offered and poker_outfit_ITEM.unlocked and not her_outfit_poker.unlocked: - gen "(I'll need an outfit for Hermione if I want her to work.)" ("base", xpos="far_left", ypos="head") - gen "(Maybe the twins have something fitting for her in their stock.)" ("base", xpos="far_left", ypos="head") - jump working_menu - - "-Work by advertising the card game-" (style="disabled") if not game.daytime and states.her.ev.promote_cardgame.offered and her_outfit_poker.unlocked: - "This job is only available during the day." - jump working_menu - - "-Work by advertising the card game-" if game.daytime and states.her.ev.promote_cardgame.offered and her_outfit_poker.unlocked: - jump job_5 - - "-Never mind-": - jump hermione_talk - ### Astoria ### "-Ask her to help Tonks-" (icon="interface/icons/small/tonks.webp") if states.ast.ev.intro.e1_complete and not states.ast.ev.intro.e3_complete: if states.ast.ev.intro.e2_ask_hermione: diff --git a/game/scripts/events/ending.rpy b/game/scripts/events/ending.rpy index af03fc66..3783d2bb 100644 --- a/game/scripts/events/ending.rpy +++ b/game/scripts/events/ending.rpy @@ -1,5 +1,7 @@ ### Yule Ball Ending ### +default her_ev_yule_ball_ending_e1 = Event(id="her_ev_yule_ball_ending_e1", wait=2, label="ball_ending_E1", priority=0, req="game.daytime", repeat=False) + label ball_ending_start: gen "[name_hermione_genie], that ball you've mentioned..." ("base", xpos="far_left", ypos="head") gen "When did you say it would start again?" ("base", xpos="far_left", ypos="head") @@ -16,10 +18,10 @@ label ball_ending_start: $ states.her.ev.yule_ball.started = True $ ss_event_pause += 2 + $ her_ev_yule_ball_ending_e1.enqueue() jump hermione_favor_menu - screen genie_snape_shake_hands(shake=False): if shake: add "characters/snape/chibis/handshake/hand_01.webp" pos (220, 205) zoom 0.5 diff --git a/game/scripts/events/final_events.rpy b/game/scripts/events/final_events.rpy index 8fd57cf7..ac327eef 100644 --- a/game/scripts/events/final_events.rpy +++ b/game/scripts/events/final_events.rpy @@ -1,4 +1,9 @@ +default her_ev_yule_ball_e4 = Event(id="her_ev_yule_ball_e4", wait=2, label="ball_quest_E4", priority=15, req="game.daytime", repeat=False) +default her_ev_yule_ball_e3 = Event(id="her_ev_yule_ball_e3", wait=4, label="ball_quest_E3", priority=15, req="game.daytime", repeat=False, subevents=["her_ev_yule_ball_e4"]) +default her_ev_yule_ball_e2 = Event(id="her_ev_yule_ball_e2", wait=1, label="ball_quest_E2", priority=15, req="game.daytime", repeat=False, subevents=["her_ev_yule_ball_e3"]) +default her_ev_yule_ball_e1 = Event(id="her_ev_yule_ball_e1", label="ball_quest_E1", priority=15, req="states.her.tier >= 6 and game.daytime and not states.her.ev.yule_ball.e1_complete", autoenqueue=True, repeat=False, subevents=["her_ev_yule_ball_e2"]) + #hermione asks genie about who will be in-charge of the ball label ball_quest_E1: stop music fadeout 1.0 @@ -609,7 +614,7 @@ label ball_quest_E4: gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") her "Sorry to disturb you [name_genie_hermione]..." ("open", "base", "worried", "mid", xpos="right", ypos="base") her "I came to apologise for my..." ("open", "base", "worried", "R") - her "... My hysterical behaviour yesterday." + her "... My hysterical behaviour the other day." gen "Sure thing, don't worry about it." ("base", xpos="far_left", ypos="head") her "Thank you, [name_genie_hermione]." ("open", "base", "base", "mid") her "Still, I cannot help but feel awful for causing a scene..." ("open", "closed", "angry", "mid") diff --git a/game/scripts/events/quests.rpy b/game/scripts/events/quests.rpy index d1877748..a66f5ec1 100644 --- a/game/scripts/events/quests.rpy +++ b/game/scripts/events/quests.rpy @@ -242,22 +242,6 @@ label quests: $ play_potion_return("astoria") - # - # SEVERUS SNAPE - EVENTS - # - - if ss_event_pause == 0: - if game.daytime: - # Ending events - if states.her.level >= 15 and states.her.ev.yule_ball.e1_complete and not states.her.ev.yule_ball.e2_complete: - # Snape complains that appointing Hermione in the Autumn Ball committee was a mistake. - jump ball_quest_E2 - - else: - # Ending events - if states.her.ev.yule_ball.started and not states.her.ev.yule_ball.complete: - jump ball_ending_E1 - # # NYMPHADORA TONKS - EVENTS # @@ -281,30 +265,8 @@ label quests: if hg_event_pause == 0: if game.daytime: - # Ending events - if states.her.level >= 15 and not states.her.ev.yule_ball.e1_complete: - # Hermione wants to be in the Autumn Ball committee. - jump ball_quest_E1 - - if states.her.level >= 18 and states.her.ev.yule_ball.e2_complete and not states.her.ev.yule_ball.e3_complete: - # Hermione cries about having no proper dress for the Ball. - jump ball_quest_E3 - - if states.her.level >= 18 and states.her.ev.yule_ball.e3_complete and not states.her.ev.yule_ball.e4_complete: - # Hermione apologizes for the day (event) before. - jump ball_quest_E4 + pass else: - if current_job == "maid": - jump maid_responses - elif current_job == "barmaid": - jump barmaid_responses - elif current_job == "gryffindor_cheerleader": - jump gryffindor_cheer_responses - elif current_job == "slytherin_cheerleader": - jump slytherin_cheer_responses - elif current_job == "promoter": - jump hermione_helping_selling_cards - python: for i in hg_ps_list: #Call any public shaming event if it's in progress if i.inProgress: diff --git a/game/scripts/events/queue.rpy b/game/scripts/events/queue.rpy index f00da8eb..3a1f5fb5 100644 --- a/game/scripts/events/queue.rpy +++ b/game/scripts/events/queue.rpy @@ -305,7 +305,9 @@ init -1 python: # We need to add these after defaults are finished. renpy.config.label_callbacks.append(execute_event_callbacks) - def show_events_menu(queues, filter=False, **kwargs): + def show_events_menu(queues, filter=False, report_progress=True, **kwargs): + # This function is a stop gap until we update interfaces. Because it's not tied to any internals, + # it can be easily replaced or changed in the future without breaking save compatibility. def menu_hints(queue, filter): filtered_queue = queue.list_filtered() if filter is False else queue.list_filtered(filter) total_applicable = len(filtered_queue) @@ -313,17 +315,15 @@ init -1 python: completed = 0 icons = [] - path = "interface/icons/small/" - for ev in filtered_queue: if ev.completed: - icons.append("interface/icons/small/heart_red.webp") + icons.append(f"interface/icons/small/heart_red.webp") completed += 1 elif ev.completed_failed: - icons.append("interface/icons/small/heart_black.webp") + icons.append(f"interface/icons/small/heart_black.webp") completed += 1 else: - icons.append("interface/icons/small/heart_empty.webp") + icons.append(f"interface/icons/small/heart_empty.webp") hints = f" {completed}/{total_applicable}/{total_events}" @@ -336,20 +336,30 @@ init -1 python: queue = getattr(store, queue) hints, icons = menu_hints(queue, filter) - - _kwargs = {"progress": icons} title = f"-{title}-" if config.developer: title += hints + if ( ev := queue.next()) and ev.requirements_met(): + action = queue + else: + action = "disabled" + + _kwargs = {} + + if report_progress: + _kwargs = {"progress": icons} + + if action == "disabled": + _kwargs["style"] = "disabled" + location = renpy.game.context().current - choice = ui.ChoiceReturn(title, queue, location, kwargs=_kwargs) + choice = ui.ChoiceReturn(title, action, location, kwargs=_kwargs) l.append( (title, choice) ) - l.append( ("-Never mind-", False) ) - + l.append( ("-Never mind-", "exit") ) return renpy.display_menu(l, **kwargs) config.after_default_callbacks.append(initialize_event_callbacks)