diff --git a/game/scripts/characters/cho/events/favors/inspect_her_body_tier3.rpy b/game/scripts/characters/cho/events/favors/inspect_her_body_tier3.rpy index 0c3a4f78..3e109799 100644 --- a/game/scripts/characters/cho/events/favors/inspect_her_body_tier3.rpy +++ b/game/scripts/characters/cho/events/favors/inspect_her_body_tier3.rpy @@ -2923,7 +2923,7 @@ label cc_pf_strip_T3_intro_E3: her "" ("grin", "narrow", "base", "mid") ton "I sometimes stroll around the school grounds, disguised as one of the girls... Wearing nothing but a school robe..." - if hg_pr_flash.counter > 1: + if states.her.status.public_voyer: her "" ("crooked_smile", "narrow", "base", "down") ton "And If you ever had a boy say he got some tits flashed at him by Miss Granger... Then it was most likely me." cho @ cheeks blush "That's awesome!" ("grin", "base", "base", "L") diff --git a/game/scripts/characters/cho/events/quidditch/intros.rpy b/game/scripts/characters/cho/events/quidditch/intros.rpy index a68b5acb..12567693 100644 --- a/game/scripts/characters/cho/events/quidditch/intros.rpy +++ b/game/scripts/characters/cho/events/quidditch/intros.rpy @@ -553,7 +553,7 @@ label cho_quid_E6: her "Well, if that's the case, it seems like I'm no longer needed..." ("open", "base", "angry", "mid") "\"All you need is a bit of practice...\"": - if hg_pf_sex.counter == 0: + if not states.her.status.sex: gen "(And a good fucking, but we'll get to that...)" ("grin", xpos="far_left", ypos="head") else: gen "(And a good fucking...)" ("grin", xpos="far_left", ypos="head") diff --git a/game/scripts/characters/hermione/chibi.rpy b/game/scripts/characters/hermione/chibi.rpy index 205ccc56..e334d82c 100644 --- a/game/scripts/characters/hermione/chibi.rpy +++ b/game/scripts/characters/hermione/chibi.rpy @@ -129,7 +129,7 @@ init python: elif chibi.action == "lift_skirt": if hermione.is_worn("panties"): #TODO Figure out a better way to determine the expression (so it can be reused in a different event) - if hg_pf_admire_panties.counter <= 1: + if not states.her.status.show_panties: # Reluctant expression chibi["base"] = "~/lift_skirt/panties_00.webp" else: diff --git a/game/scripts/characters/hermione/chitchats.rpy b/game/scripts/characters/hermione/chitchats.rpy index 539a0976..da1a7464 100644 --- a/game/scripts/characters/hermione/chitchats.rpy +++ b/game/scripts/characters/hermione/chitchats.rpy @@ -461,7 +461,7 @@ label hermione_chitchat: her @ cheeks blush "If you ever need some \"assistance\", [name_genie_hermione]... Please let me know." ("open_wide_tongue", "base", "base", "R") her @ cheeks blush "" ("base", "base", "base", "R") - block if hg_pr_sex.counter > 0: + block if states.her.status.public_sex: her "I am sorry to bother you with this, [name_genie_hermione]..." ("open", "base", "base", "mid") her "But do you have any condoms?" ("open", "base", "base", "mid") her "Sadly, the ones I've bought are already gone..." ("annoyed", "happyCl", "worried", "mid",emote="sweat") diff --git a/game/scripts/characters/hermione/events/cardgame_wager.rpy b/game/scripts/characters/hermione/events/cardgame_wager.rpy index c3bc2130..8196b944 100644 --- a/game/scripts/characters/hermione/events/cardgame_wager.rpy +++ b/game/scripts/characters/hermione/events/cardgame_wager.rpy @@ -657,8 +657,7 @@ label hg_wager_bj: $ gryffindor -= 20 $ states.her.mood += 10 - $ hg_pf_blowjob.points += 1 - $ hg_pf_blowjob.counter += 1 + $ states.her.status.blowjob = True $ achievements.unlock("headlib") call blkfade call her_chibi("stand","mid","base") diff --git a/game/scripts/characters/hermione/events/favors/dance_for_me.rpy b/game/scripts/characters/hermione/events/favors/dance_for_me.rpy index ebec546b..aeed9510 100644 --- a/game/scripts/characters/hermione/events/favors/dance_for_me.rpy +++ b/game/scripts/characters/hermione/events/favors/dance_for_me.rpy @@ -2,25 +2,21 @@ ### Hermione Dance ### -#TODO Add her_main(animation=bob) to parts where she's dancing +label start_hg_pf_strip: -label hg_pf_strip: - - if hg_pf_strip.counter < 1: + if not _events_completed_any: gen "{size=-4}(Ask her to dance for me?){/size}" ("base", xpos="far_left", ypos="head") + menu: "\"(Yes, let's do it!)\"": pass "\"(Not right now.)\"": jump hermione_favor_menu - - # Start Event $ current_payout = 35 - $ hg_pf_strip.start() + return - # End Event - label end_hg_pf_strip: +label end_hg_pf_strip: # Setup stop music fadeout 1.0 @@ -69,11 +65,9 @@ label hg_pf_strip_fail: her "... Dance for you, [name_genie_hermione]?" ("open", "wide", "base", "stare") - $ hg_pf_strip.fail_intentional() - jump too_much -label hg_pf_strip_T2_fail_intro: # Hermione starts dancing, but it will fail anyway. +label hg_pf_strip_T2_intro_fail: # Hermione starts dancing, but it will fail anyway. gen "[name_hermione_genie], I need you to dance for me a little." ("base", xpos="far_left", ypos="head") her "You want me to..." ("open", "base", "worried", "mid") her "... Dance for you, [name_genie_hermione]?" ("open", "wink", "base", "mid") @@ -121,11 +115,10 @@ label hg_pf_strip_T2_fail_intro: # Hermione starts dancing, but it will fail any call her_walk(action="leave") $ states.her.mood += 5 - $ hg_pf_strip.fail_intentional() jump end_hermione_event -label hg_pf_strip_T2_fail_repeat: +label hg_pf_strip_T2_repeat_fail: gen "[name_hermione_genie], I need you to dance for me a little." ("base", xpos="far_left", ypos="head") her "And would you like me to take off my clothes as well?" ("soft", "closed", "base", "mid") gen "Yes?" ("base", xpos="far_left", ypos="head") @@ -139,7 +132,6 @@ label hg_pf_strip_T2_fail_repeat: call her_walk(action="leave") $ states.her.mood += 5 - $ hg_pf_strip.fail_intentional() jump end_hermione_event @@ -150,6 +142,9 @@ label hg_pf_strip_T2_fail_repeat: # Event 3 (r) - Hermione strips for. You will get some event choices. label hg_pf_strip_T3_intro_E1: + + call start_hg_pf_strip + gen "[name_hermione_genie], I need you to dance for me a little." ("base", xpos="far_left", ypos="head") her "You want me to..." ("open", "base", "worried", "mid") her "... dance for you, [name_genie_hermione]?" ("open", "wink", "base", "mid") @@ -411,6 +406,8 @@ label hg_pf_strip_T3_intro_E2: $ states.her.status.show_tits = True $ states.her.status.show_pussy = True + call start_hg_pf_strip + gen "[name_hermione_genie], I need you to dance for me." ("base", xpos="far_left", ypos="head") her "Again, [name_genie_hermione]...?" ("disgust", "narrow", "base", "mid_soft") gen "You will get paid accordingly, of course..." ("base", xpos="far_left", ypos="head") @@ -729,13 +726,14 @@ label hg_pf_strip_T3_intro_E2: if not states.her.status.stripping: $ achievements.unlock("herstrip") - $ hg_pf_strip.change_icon(a="heart_half", b="heart_red") $ states.her.status.stripping = True - $ hg_pf_strip.title = "Strip for Me!" jump end_hg_pf_strip label hg_pf_strip_T3_E2: + + call start_hg_pf_strip + gen "[name_hermione_genie], how about another strip?" ("base", xpos="far_left", ypos="head") her ".............." ("disgust", "narrow", "base", "mid_soft", xpos="base", ypos="base") her "I would really rather not, [name_genie_hermione]..." @@ -1002,6 +1000,9 @@ label hg_pf_strip_T3_masturbate: # Event 3 (r) - label hg_pf_strip_T4_intro_E1: + + call start_hg_pf_strip + gen "[name_hermione_genie], why don't you get on this desk for another show?" ("base", xpos="far_left", ypos="head") her ".............." ("annoyed", "squint", "base", "mid_soft", xpos="base", ypos="base") her "I would really rather not, [name_genie_hermione]..." @@ -1014,6 +1015,9 @@ label hg_pf_strip_T4_intro_E1: jump hg_pf_strip_T4 label hg_pf_strip_T4_intro_E2: + + call start_hg_pf_strip + gen "[name_hermione_genie], would you like to climb onto my desk for another show?" ("base", xpos="far_left", ypos="head") her "*Hmm*..." ("annoyed", "base", "base", "R", xpos="base", ypos="base") her "Sure! Why not..." ("base", "happyCl", "base", "mid") @@ -1031,6 +1035,9 @@ label hg_pf_strip_T4_intro_E2: jump hg_pf_strip_T4 label hg_pf_strip_T4_E2: + + call start_hg_pf_strip + gen "[name_hermione_genie], how do you feel about getting on my desk for another show?" ("base", xpos="far_left", ypos="head") if states.her.tier <= 5: her "Of course, [name_genie_hermione]..." ("open", "base", "base", "mid", xpos="base", ypos="base") diff --git a/game/scripts/characters/hermione/events/favors/dance_for_me_snape.rpy b/game/scripts/characters/hermione/events/favors/dance_for_me_snape.rpy index b89157e2..66a86c97 100644 --- a/game/scripts/characters/hermione/events/favors/dance_for_me_snape.rpy +++ b/game/scripts/characters/hermione/events/favors/dance_for_me_snape.rpy @@ -25,7 +25,6 @@ label hg_pf_strip_T3_snape: # Fails call her_walk(action="leave") $ states.her.mood += 15 - $ hg_pf_strip.fail() jump end_hermione_event 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 81c95060..a631d04d 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 @@ -2,27 +2,21 @@ ### Hermione Handjob ### -label hg_pf_handjob: +label start_hg_pf_handjob: - if hg_pf_handjob.counter == 0: + if not _events_completed_any: gen "{size=-4}(Should I ask her for a handjob?){/size}" ("base", xpos="far_left", ypos="head") - else: - gen "{size=-4}(I feel like getting another handjob!){/size}" ("base", xpos="far_left", ypos="head") - if hg_pf_handjob.counter < 1: menu: "\"(Yes, let's do it!)\"": pass "\"(Not right now.)\"": jump hermione_favor_menu - # Start Event $ current_payout = 45 - $ hg_pf_handjob.start() + return - - # End Event - label end_hg_pf_handjob: +label end_hg_pf_handjob: # Setup stop music fadeout 1.0 @@ -73,8 +67,6 @@ label hg_pf_handjob_fail: her "Yes, [name_genie_hermione]?" ("base", "base", "base", "mid") gen "Do you know what a \"handjob\" is?" ("base", xpos="far_left", ypos="head") - $ hg_pf_handjob.fail_intentional() - jump too_much ### Tier 4 ### @@ -84,6 +76,9 @@ label hg_pf_handjob_fail: # Event 3 (r) - label hg_pf_handjob_T4_intro_E1: + + call start_hg_pf_handjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]." ("base", xpos="far_left", ypos="head") her "Yes, [name_genie_hermione]?" ("open", "base", "base", "mid") @@ -142,6 +137,9 @@ label hg_pf_handjob_T4_intro_E1: jump hg_pf_handjob_1 label hg_pf_handjob_T4_intro_E2: + + call start_hg_pf_handjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") her "Yes, [name_genie_hermione]?" ("base", "base", "base", "mid") @@ -172,6 +170,9 @@ label hg_pf_handjob_T4_intro_E2: jump hg_pf_handjob_1 label hg_pf_handjob_T4_repeat: + + call start_hg_pf_handjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") her "[name_genie_hermione]?" ("open", "base", "base", "mid") @@ -190,6 +191,9 @@ label hg_pf_handjob_T4_repeat: # Event 3 (r) - label hg_pf_handjob_T5_intro_E1: + + call start_hg_pf_handjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") her "[name_genie_hermione]?" ("open", "base", "base", "mid") @@ -201,6 +205,9 @@ label hg_pf_handjob_T5_intro_E1: jump hg_pf_handjob_2 label hg_pf_handjob_T5_intro_E2: + + call start_hg_pf_handjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") her "[name_genie_hermione]?" ("soft", "base", "base", "mid") @@ -212,6 +219,9 @@ label hg_pf_handjob_T5_intro_E2: jump hg_pf_handjob_2 label hg_pf_handjob_T5_repeat: + + call start_hg_pf_handjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") her "[name_genie_hermione]?" ("open", "base", "base", "mid") @@ -261,7 +271,7 @@ label hg_pf_handjob_1: play music "music/(Orchestral) Playful Tension by Shadow16nh.ogg" fadein 1 if_changed # SEX THEME. gen "Nice..." ("grin", xpos="far_left", ypos="head") - if hg_pf_handjob.counter == 1: + if not _events_completed_any: her "!!!" ("shock", "wide", "base", "stare") her "Are you about to finish, [name_genie_hermione]?!" ("mad", "wide", "base", "stare") gen "About to finish?" ("base", xpos="far_left", ypos="head") @@ -431,7 +441,6 @@ label hg_pf_handjob_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") - $ hg_pf_handjob.change_icon(a="heart_half", b="heart_red") 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") @@ -873,7 +882,7 @@ label hg_pf_handjob_2: gen "Keep stroking it--{w=0.2} *Ngh*...{w=0.4} Just like that, [name_hermione_genie]..." ("base", xpos="far_left", ypos="head") her @ cheeks blush ".............." ("base", "narrow", "base", "down") - if hg_pf_handjob.points == 1: + if not _events_completed_any: jump hg_pf_handjob_2_cumming else: jump hg_pf_handjob_2_continue diff --git a/game/scripts/characters/hermione/events/favors/give_me_a_tittyjob.rpy b/game/scripts/characters/hermione/events/favors/give_me_a_tittyjob.rpy index 883e7631..2930c097 100644 --- a/game/scripts/characters/hermione/events/favors/give_me_a_tittyjob.rpy +++ b/game/scripts/characters/hermione/events/favors/give_me_a_tittyjob.rpy @@ -2,27 +2,21 @@ ### Hermione Titjob ### -label hg_pf_titjob: +label start_hg_pf_titjob: - if hg_pf_titjob.counter == 0: + if not _events_completed_any: gen "{size=-4}(Should I ask her for a titjob?){/size}" ("base", xpos="far_left", ypos="head") - else: - gen "{size=-4}(I feel like putting my cock between those tits again!){/size}" ("grin", xpos="far_left", ypos="head") - if hg_pf_titjob.counter < 1: menu: "\"(Yes, let's do it!)\"": pass "\"(Not right now.)\"": jump hermione_favor_menu - # Start Event $ current_payout = 45 - $ hg_pf_titjob.start() + return - - # End Event - label end_hg_pf_titjob: +label end_hg_pf_titjob: # Setup stop music fadeout 1.0 @@ -85,8 +79,6 @@ label hg_pf_titjob_fail: her "Yes, [name_genie_hermione]?" ("base", "base", "base", "mid") gen "Have you ever given somebody a \"titjob\"?" ("base", xpos="far_left", ypos="head") - $ hg_pf_titjob.fail_intentional() - jump too_much ### Tier 5 ### @@ -95,6 +87,9 @@ label hg_pf_titjob_fail: # Event 2 (r) - Reluctantly does it again. label hg_pf_titjob_T5_intro_E1: + + call start_hg_pf_titjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "Alright then...{w=0.4} [name_hermione_genie]." ("base", xpos="far_left", ypos="head") her "Yes, [name_genie_hermione]?" ("open", "base", "base", "mid") @@ -175,6 +170,9 @@ label hg_pf_titjob_T5_intro_E1: jump hg_pf_titjob_1 label hg_pf_titjob_T5_repeat: + + call start_hg_pf_titjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie], would you like to earn some house points today?" ("base", xpos="far_left", ypos="head") her "Of course, [name_genie_hermione]..." ("base", "base", "base", "mid") @@ -194,6 +192,9 @@ label hg_pf_titjob_T5_repeat: # Event 3 (r) - Repeat. label hg_pf_titjob_T6_intro_E1: + + call start_hg_pf_titjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") her "Yes, [name_genie_hermione]?" ("soft", "base", "base", "mid") @@ -226,6 +227,9 @@ label hg_pf_titjob_T6_intro_E1: jump hg_pf_titjob_2 label hg_pf_titjob_T6_intro_E2: + + call start_hg_pf_titjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") her "Yes, [name_genie_hermione]?" ("base", "base", "base", "mid") @@ -240,6 +244,9 @@ label hg_pf_titjob_T6_intro_E2: jump hg_pf_titjob_2 label hg_pf_titjob_T6_repeat: + + call start_hg_pf_titjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie], what do you think about wrapping those perfect tits of yours around my cock again?" ("base", xpos="far_left", ypos="head") her "Sure thing, [name_genie_hermione]..." ("soft", "happy", "base", "R") @@ -842,7 +849,7 @@ label hg_pf_titjob_2: her "Of course, [name_genie_hermione]..............." ("base", "narrow", "worried", "down") nar "Hermione opens her mouth and lets her saliva dribble down on your cock." - if hg_pf_titjob.points == 1: + if not _events_completed_any: jump hg_pf_titjob_2_cumming else: # Repeat jump hg_pf_titjob_2_continue diff --git a/game/scripts/characters/hermione/events/favors/grope_her.rpy b/game/scripts/characters/hermione/events/favors/grope_her.rpy index e24dd10b..828dd4af 100644 --- a/game/scripts/characters/hermione/events/favors/grope_her.rpy +++ b/game/scripts/characters/hermione/events/favors/grope_her.rpy @@ -2,24 +2,24 @@ ### Hermione Groping ### -label hg_pf_grope: +label start_hg_pf_grope: - gen "{size=-4}(I will grope her a little. Pretty harmless stuff.){/size}" ("base", xpos="far_left", ypos="head") + if not _events_completed_any: + gen "{size=-4}(I will grope her a little. Pretty harmless stuff.){/size}" ("base", xpos="far_left", ypos="head") - if hg_pf_grope.counter < 1: menu: "\"(Yes, let's do it!)\"": pass "\"(Not right now.)\"": jump hermione_favor_menu - # Start Event $ current_payout = 15 - $ hg_pf_grope.start() + return +label hg_pf_grope_fail: + jump end_hermione_event - # End Event - label end_hg_pf_grope: +label end_hg_pf_grope: # Setup stop music fadeout 1.0 @@ -104,8 +104,6 @@ label hg_pf_grope_T1_fail_intro: her "My tits?!" ("angry", "wide", "base", "mid") gen "Or your butt! I haven't fully decided yet!" ("grin", xpos="far_left", ypos="head") - $ hg_pf_grope.fail_intentional() - jump too_much label hg_pf_grope_T1_fail_repeat: @@ -120,9 +118,7 @@ label hg_pf_grope_T1_fail_repeat: $ states.her.mood += 6 - $ hg_pf_grope.fail_intentional() - - jump end_hermione_event + jump hg_pf_grope_fail ### Tier 2 ### diff --git a/game/scripts/characters/hermione/events/favors/lets_have_sex.rpy b/game/scripts/characters/hermione/events/favors/lets_have_sex.rpy index ae138884..1cbeab55 100644 --- a/game/scripts/characters/hermione/events/favors/lets_have_sex.rpy +++ b/game/scripts/characters/hermione/events/favors/lets_have_sex.rpy @@ -2,10 +2,11 @@ ### Hermione Sex ### -label hg_pf_sex: +label start_hg_pf_sex: - if hg_pf_sex.counter < 1: + if not _events_completed_any: gen "{size=-4}(Should I ask her to have sex with me?){/size}" ("base", xpos="far_left", ypos="head") + menu: "\"(Yes, let's do it!)\"": pass @@ -15,10 +16,10 @@ label hg_pf_sex: # Start Event $ current_payout = 65 $ _temp_outfit_choice = "naked" - $ hg_pf_sex.start() + return # End Event - label end_hg_pf_sex: +label end_hg_pf_sex: # Setup stop music fadeout 1.0 @@ -79,8 +80,6 @@ label hg_pf_sex_fail: gen "Why don't you come over here, and then I pound your pussy for a bit..." ("base", xpos="far_left", ypos="head") gen "With my cock!" ("grin", xpos="far_left", ypos="head") - $ hg_pf_sex.fail_intentional() - jump too_much ### Tier 6 ### @@ -91,6 +90,9 @@ label hg_pf_sex_fail: # Event 3 (r) - Regular or anal sex, naked option (Once spread on desk CG is ready, we'll add new writing as a menu option) label hg_pf_sex_T6_intro_E1: + + call start_hg_pf_sex + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") her "[name_genie_hermione]?" ("soft", "base", "base", "mid") @@ -168,6 +170,9 @@ label hg_pf_sex_T6_intro_E1: label hg_pf_sex_T6_intro_E2: + + call start_hg_pf_sex + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]..." ("base", xpos="far_left", ypos="head") gen "Last night I had a dream..." ("base", xpos="far_left", ypos="head") @@ -231,6 +236,9 @@ label hg_pf_sex_T6_intro_E2: label hg_pf_sex_T6_intro_E3: + + call start_hg_pf_sex + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie], are you keeping your pussy wet and ready for me?" ("base", xpos="far_left", ypos="head") her "[name_genie_hermione]!" ("scream", "closed", "angry", "mid") @@ -295,12 +303,15 @@ label hg_pf_sex_T6_intro_E3: "-Poke her butthole!-": gen "(Yes! Let's see if she's willing to take it up her ass!)" ("base", xpos="far_left", ypos="head") - $ hg_pf_anal_sex.start() + $ her_eventqueue_anal.start() jump end_hg_pf_sex label hg_pf_sex_T6_E3: # repeats + + call start_hg_pf_sex + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie], are you keeping your pussy wet and ready for me?" ("base", xpos="far_left", ypos="head") her "[name_genie_hermione]..." ("upset", "base", "worried", "down") @@ -362,7 +373,7 @@ label hg_pf_sex_T6_E3: # repeats "-Fuck her asshole!-": gen "(Let's see how well she takes it up the ass!)" ("angry", xpos="far_left", ypos="head") - $ hg_pf_anal_sex.start() + $ her_eventqueue_anal.start() jump end_hg_pf_sex diff --git a/game/scripts/characters/hermione/events/favors/lets_have_sex_anal.rpy b/game/scripts/characters/hermione/events/favors/lets_have_sex_anal.rpy index d1003f27..225b1141 100644 --- a/game/scripts/characters/hermione/events/favors/lets_have_sex_anal.rpy +++ b/game/scripts/characters/hermione/events/favors/lets_have_sex_anal.rpy @@ -7,7 +7,6 @@ label hg_anal_sex_1_intro: $ states.her.status.anal = True $ current_payout = 90 - $ hg_pf_sex.change_icon(a="heart_half", b="heart_red") gen "[name_hermione_genie]..." ("base", xpos="far_left", ypos="head") her "[name_genie_hermione]...?" ("annoyed", "happy", "base", "mid", flip=True) @@ -732,7 +731,6 @@ label hg_anal_sex_1_intro: label hg_anal_sex_2_intro: $ states.her.status.anal = True $ current_payout = 90 - $ hg_pf_sex.change_icon(a="heart_half", b="heart_red") gen "How about another ass-fucking, [name_hermione_genie]?" her "Of course, [name_genie_hermione]." ("base", "narrow", "base", "up", flip=True) diff --git a/game/scripts/characters/hermione/events/favors/show_me_your_panties.rpy b/game/scripts/characters/hermione/events/favors/show_me_your_panties.rpy index 94f510c4..dcf15b5e 100644 --- a/game/scripts/characters/hermione/events/favors/show_me_your_panties.rpy +++ b/game/scripts/characters/hermione/events/favors/show_me_your_panties.rpy @@ -2,23 +2,24 @@ ### Hermione Admire Panties ### -label hg_pf_admire_panties: +label start_hg_pf_admire_panties: - gen "{size=-4}(I will ask her to show me her panties. Plain and simple.){/size}" ("base", xpos="far_left", ypos="head") + if not _events_completed_any: + + gen "{size=-4}(I will ask her to show me her panties. Plain and simple.){/size}" ("base", xpos="far_left", ypos="head") - if hg_pf_admire_panties.counter < 1: menu: "\"(Yes, let's do it!)\"": pass + "\"(Not right now.)\"": jump hermione_favor_menu - # Start Event $ current_payout = 10 - $ hg_pf_admire_panties.start() + + return - # End Event - label end_hg_pf_admire_panties: +label end_hg_pf_admire_panties: # Setup stop music fadeout 2.0 @@ -46,7 +47,7 @@ label hg_pf_admire_panties: $ gryffindor += current_payout gen "{number=current_payout} points to Gryffindor, [name_hermione_genie]. Well done." ("base", xpos="far_left", ypos="head") - if hg_pf_admire_panties.counter == 1: # First time + if not _events_completed_any: # First time her "Another {number=current_payout} points..." ("base", "narrow", "worried", "down") her "Can't wait to tell the guys!" ("smile", "happyCl", "base", "mid") her "Except that I can't actually tell them about any of this..." ("annoyed", "narrow", "angry", "R") @@ -102,6 +103,9 @@ label hg_pf_admire_panties: # Event 2 (r) - Hermione still can't believe what you ask her to do. label hg_pf_admire_panties_T1_intro_E1: + + call start_hg_pf_admire_panties + gen "Nothing drastic, really..." ("base", xpos="far_left", ypos="head") gen "I just want you to show me your panties." ("base", xpos="far_left", ypos="head") her "My... Panties...?" ("open", "base", "base", "mid") @@ -123,6 +127,9 @@ label hg_pf_admire_panties_T1_intro_E1: label hg_pf_admire_panties_T1_E1: + + call start_hg_pf_admire_panties + gen "Nothing drastic, really..." ("base", xpos="far_left", ypos="head") gen "I just want you to show me your panties." ("base", xpos="far_left", ypos="head") her "This again?" ("angry", "base", "angry", "mid") @@ -170,10 +177,10 @@ label hg_pf_admire_panties_T1: # Call label "-Stare at her panties-": nar "It's plain girlish underwear, nothing that an ordinary girl wouldn't wear." - if hg_pf_admire_panties.counter > 1: # Second time - her "......................." ("angry", "narrow", "base", "R", emote="angry") - else: # First time + if not _events_completed_any: her "......................." ("angry", "narrow", "annoyed", "mid", emote="angry") + else: + her "......................." ("angry", "narrow", "base", "R", emote="angry") call ctc return @@ -185,11 +192,14 @@ label hg_pf_admire_panties_T1: # Call label # Event 2 (r) - Hermione is still not happy. label hg_pf_admire_panties_T2_intro_E1: + + call start_hg_pf_admire_panties + her "So, what will it be, [name_genie_hermione]?" gen "Nothing drastic, really..." ("base", xpos="far_left", ypos="head") gen "I just want you to show me your panties." ("base", xpos="far_left", ypos="head") - if hg_pf_admire_panties.counter == 1: + if not _events_completed_any: her "My Panties?!" ("clench", "base", "worried", "mid") else: her "Oh... again?" ("annoyed", "base", "worried", "R") @@ -202,6 +212,9 @@ label hg_pf_admire_panties_T2_intro_E1: jump end_hg_pf_admire_panties label hg_pf_admire_panties_T2_E1: + + call start_hg_pf_admire_panties + her "What will it be, [name_genie_hermione]?" gen "I'd like you to show me your panties again." ("base", xpos="far_left", ypos="head") her ".................." ("annoyed", "base", "worried", "R") @@ -262,9 +275,11 @@ label hg_pf_admire_panties_T2: # Call label label hg_pf_admire_panties_T3_intro_E1: + call start_hg_pf_admire_panties + $ states.her.status.show_pussy = True - if hg_pf_admire_panties.counter == 1: + if not _events_completed_any: gen "[name_hermione_genie], could you show me your panties?" ("base", xpos="far_left", ypos="head") if not states.her.status.stripping: her "My panties?" ("open", "narrow", "base", "mid") @@ -386,6 +401,9 @@ label hg_pf_admire_panties_T3_intro_E1: jump end_hg_pf_admire_panties label hg_pf_admire_panties_T3_E1: + + call start_hg_pf_admire_panties + gen "[name_hermione_genie], I think it's time I took another look at your panties." ("base", xpos="far_left", ypos="head") her "Just my panties?" ("open", "narrow", "base", "mid") gen "*Hmm*... We'll see..." ("base", xpos="far_left", ypos="head") @@ -492,7 +510,10 @@ label hg_pf_admire_panties_T3_E1: ## Can unequip underwear in wardrobe at this stage ## label hg_pf_admire_panties_T4_intro_E1: - if hg_pf_admire_panties.counter == 1: + + call start_hg_pf_admire_panties + + if not _events_completed_any: gen "[name_hermione_genie], I'd like you to show me your panties, if that's not too much trouble." ("base", xpos="far_left", ypos="head") else: gen "[name_hermione_genie], I'd like you to show me your panties again, if that's not too much trouble." ("base", xpos="far_left", ypos="head") @@ -593,6 +614,9 @@ label hg_pf_admire_panties_T4_intro_E1: jump end_hg_pf_admire_panties label hg_pf_admire_panties_T4_E1: + + call start_hg_pf_admire_panties + gen "[name_hermione_genie], I'd like you to show me your panties again, if possible." ("base", xpos="far_left", ypos="head") her "Oh..." ("open", "narrow", "worried", "down") her @ cheeks blush "Well, that might be an issue..." ("base", "narrow", "base", "down") @@ -713,6 +737,8 @@ label hg_pf_admire_panties_T4_E1: label hg_pf_admire_panties_T4_E2: + call start_hg_pf_admire_panties + gen "[name_hermione_genie], show me those cute panties of yours again." ("base", xpos="far_left", ypos="head") her "Oh..." ("open", "narrow", "worried", "down") her @ cheeks blush "Okay..." ("base", "narrow", "base", "down") diff --git a/game/scripts/characters/hermione/events/favors/show_me_your_tits.rpy b/game/scripts/characters/hermione/events/favors/show_me_your_tits.rpy index d8e49b61..afb8a9ad 100644 --- a/game/scripts/characters/hermione/events/favors/show_me_your_tits.rpy +++ b/game/scripts/characters/hermione/events/favors/show_me_your_tits.rpy @@ -1,23 +1,24 @@ ### Hermione Admire Breasts ### -label hg_pf_admire_breasts: +label start_hg_pf_admire_breasts: - gen "{size=-4}(I feel like gazing upon those titties.){/size}" ("base", xpos="far_left", ypos="head") + if not _events_completed_any: + gen "{size=-4}(I feel like gazing upon those titties.){/size}" ("base", xpos="far_left", ypos="head") - if hg_pf_admire_breasts.counter < 1: menu: "\"(Yes, let's do it!)\"": pass "\"(Not right now.)\"": jump hermione_favor_menu - # Start Event $ current_payout = 10 - $ hg_pf_admire_breasts.start() + return - # End Event - label end_hg_pf_admire_breasts: +label hg_pf_admire_breasts_fail: + jump end_hermione_event + +label end_hg_pf_admire_breasts: # Setup stop music fadeout 2.0 @@ -61,17 +62,16 @@ label hg_pf_admire_breasts: else: her "I'd better head off for today, It's getting pretty late..." - # Hermione leaves call her_walk("door", "base") - if states.her.tier <= 1 and hg_pf_admire_breasts.points == 1: + if states.her.tier <= 1 and not _events_filtered_completed_any: her @ cheeks blush "........................" ("disgust", "narrow", "base", "down", xpos="far_right", flip=True, trans=d3) - elif states.her.tier <= 2 and hg_pf_admire_breasts.points == 1: + elif states.her.tier <= 2 and not _events_filtered_completed_any: her @ cheeks blush "(How humiliating... What have I become...?)" ("disgust", "narrow", "base", "down", xpos="far_right", flip=True, trans=d3) - elif states.her.tier <= 2: + elif states.her.tier <= 2 and not _event_completed: her @ cheeks blush "........................" ("disgust", "narrow", "base", "down", xpos="far_right", flip=True, trans=d3) - elif states.her.tier <= 3 and hg_pf_admire_breasts.points == 1: + elif states.her.tier <= 3 and not _events_filtered_completed_any: if not _cumming: her @ cheeks blush "{size=-5}(That was so humiliating...){/size}" ("base", "narrow", "base", "up", xpos="far_right", flip=True, trans=d3) her @ cheeks blush "{size=-5}(No, Hermione, you silly girl!){/size}" ("angry", "base", "angry", "mid") @@ -106,6 +106,9 @@ label hg_pf_admire_breasts: # Event 3 (r) - Hermione will lift up her top. label hg_pf_admire_breasts_T1_intro_E1: + + call start_hg_pf_admire_breasts + her "" ("normal", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") @@ -154,11 +157,10 @@ label hg_pf_admire_breasts_T1_intro_E1: call her_walk(action="leave") $ states.her.mood += 3 - $ hg_pf_admire_breasts.fail() gen "(Well... Next time, I guess.)" ("base", xpos="far_left", ypos="head") - jump main_room_menu + jump hg_pf_admire_breasts_fail play music "music/Chipper Doodle v2.ogg" fadein 1 if_changed # HERMIONE'S THEME. her "(................)" ("annoyed", "narrow", "angry", "R") @@ -196,6 +198,9 @@ label hg_pf_admire_breasts_T1_intro_E1: label hg_pf_admire_breasts_T1_intro_E2: + + call start_hg_pf_admire_breasts + her "" ("normal", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie], Is it just me?" ("base", xpos="far_left", ypos="head") @@ -242,11 +247,10 @@ label hg_pf_admire_breasts_T1_intro_E2: call her_walk(action="leave") $ states.her.mood += 6 - $ hg_pf_admire_breasts.fail() gen "Bummer..." ("base", xpos="far_left", ypos="head") - jump main_room_menu + jump hg_pf_admire_breasts_fail call hg_pf_admire_breasts_T1 @@ -255,6 +259,9 @@ label hg_pf_admire_breasts_T1_intro_E2: label hg_pf_admire_breasts_T1_E2: + + call start_hg_pf_admire_breasts + her "" ("normal", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie], how would you like to lift up your top for me?" ("base", xpos="far_left", ypos="head") @@ -304,6 +311,9 @@ label hg_pf_admire_breasts_T1: # Call label # Event 3 (r) - Hermione will lift up her top. label hg_pf_admire_breasts_T2_intro_E1: + + call start_hg_pf_admire_breasts + her "" ("normal", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") @@ -391,7 +401,6 @@ label hg_pf_admire_breasts_T2_intro_E1: gen "Maybe I have pushed her a bit too hard." ("base", xpos="far_left", ypos="head") $ states.her.mood += 12 - $ hg_pf_admire_breasts.fail() $ states.her.ev.show_me_your_tits.failed = True jump end_hermione_event @@ -399,6 +408,9 @@ label hg_pf_admire_breasts_T2_intro_E1: jump hg_pf_admire_breasts_T2 label hg_pf_admire_breasts_T2_intro_E2: + + call start_hg_pf_admire_breasts + her "" ("normal", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie], how would you like to show me your breasts again?" ("base", xpos="far_left", ypos="head") @@ -419,6 +431,9 @@ label hg_pf_admire_breasts_T2_intro_E2: jump hg_pf_admire_breasts_T2 label hg_pf_admire_breasts_T2_E2: + + call start_hg_pf_admire_breasts + her "" ("normal", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie], I would very much like to see your breasts again!" ("grin", xpos="far_left", ypos="head") @@ -443,6 +458,9 @@ label hg_pf_admire_breasts_T2_E2: # Event 2 (r) - Hermione will lift up her top. label hg_pf_admire_breasts_T3_intro_E1: + + call start_hg_pf_admire_breasts + her "" ("normal", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") @@ -457,6 +475,9 @@ label hg_pf_admire_breasts_T3_intro_E1: jump hg_pf_admire_breasts_T3 label hg_pf_admire_breasts_T3_E1: + + call start_hg_pf_admire_breasts + her "" ("normal", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "I need to see your tits, [name_hermione_genie]." ("base", xpos="far_left", ypos="head") @@ -477,6 +498,9 @@ label hg_pf_admire_breasts_T3_E1: # Event 3 (r) - Hermione will lift up her top. label hg_pf_admire_breasts_T4_intro_E1: + + call start_hg_pf_admire_breasts + her "" ("normal", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") @@ -495,6 +519,9 @@ label hg_pf_admire_breasts_T4_intro_E1: jump hg_pf_admire_breasts_T4 label hg_pf_admire_breasts_T4_E1: + + call start_hg_pf_admire_breasts + her "" ("normal", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "I need to see your tits, [name_hermione_genie]." ("base", xpos="far_left", ypos="head") @@ -508,6 +535,9 @@ label hg_pf_admire_breasts_T4_E1: jump hg_pf_admire_breasts_T4 label hg_pf_admire_breasts_T4_E2: + + call start_hg_pf_admire_breasts + her "" ("normal", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "I have to see your marvellous knockers, [name_hermione_genie]." ("base", xpos="far_left", ypos="head") diff --git a/game/scripts/characters/hermione/events/favors/show_me_your_tits_branches.rpy b/game/scripts/characters/hermione/events/favors/show_me_your_tits_branches.rpy index dbf0e13d..de235662 100644 --- a/game/scripts/characters/hermione/events/favors/show_me_your_tits_branches.rpy +++ b/game/scripts/characters/hermione/events/favors/show_me_your_tits_branches.rpy @@ -83,7 +83,7 @@ label hg_pf_admire_breasts_T2: menu: "-Break your promise. Grab the tits!-": # Event will fail. - jump hg_pf_admire_breasts_T2_touch + jump hg_pf_admire_breasts_T2_touch_fail "-Keep promise. Admire visually-": call hg_pf_admire_breasts_T2_promise @@ -115,7 +115,7 @@ label hg_pf_admire_breasts_T2_promise: # Call label return -label hg_pf_admire_breasts_T2_touch: # Not a Call label +label hg_pf_admire_breasts_T2_touch_fail: # Not a Call label #Event Fails # if states.her.level >= 6 and states.her.level <= 8: @@ -187,9 +187,8 @@ label hg_pf_admire_breasts_T2_masturbate: # Not a Call label hide screen blktone call her_chibi_scene("grope_tits_jerk_off", trans=fade) - if states.her.status.voyer == False: + if not states.her.status.voyer: $ achievements.unlock("busted") - $ hg_pf_talk.change_icon(a="heart_half", b="heart_red") $ states.her.status.voyer = True call ctc diff --git a/game/scripts/characters/hermione/events/favors/suck_it.rpy b/game/scripts/characters/hermione/events/favors/suck_it.rpy index 5660f40b..35516cc2 100644 --- a/game/scripts/characters/hermione/events/favors/suck_it.rpy +++ b/game/scripts/characters/hermione/events/favors/suck_it.rpy @@ -2,14 +2,11 @@ ### Hermione Blowjob ### -label hg_pf_blowjob: +label start_hg_pf_blowjob: - if hg_pf_blowjob.counter == 0: + if not _events_completed_any: gen "{size=-4}(Should I ask her for a blowjob?){/size}" ("base", xpos="far_left", ypos="head") - else: - gen "{size=-4}(Let's see if she's up for another blowjob...){/size}" ("base", xpos="far_left", ypos="head") - if hg_pf_blowjob.counter < 1: menu: "\"(Yes, let's do it!)\"": pass @@ -19,11 +16,9 @@ label hg_pf_blowjob: # Start Event $ current_payout = 55 $ _mouth_full_of_cum = False - $ hg_pf_blowjob.start() + return - - # End Event - label end_hg_pf_blowjob: +label end_hg_pf_blowjob: # Setup stop music fadeout 1.0 @@ -87,8 +82,6 @@ label hg_pf_blowjob_fail: gen "I plan to grant Gryffindor {number=current_payout} house points today..." ("base", xpos="far_left", ypos="head") gen "If you suck me off..." ("base", xpos="far_left", ypos="head") - $ hg_pf_blowjob.fail_intentional() - jump too_much ### Tier 4 - Fails ### @@ -97,6 +90,9 @@ label hg_pf_blowjob_fail: # Event 2 (r) - Repeat. label hg_pf_blowjob_T4_fail_intro: + + call start_hg_pf_blowjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") her "Yes, [name_genie_hermione]?" ("base", "base", "base", "mid") @@ -128,11 +124,13 @@ label hg_pf_blowjob_T4_fail_intro: gen "(Tough luck...)" ("base", xpos="far_left", ypos="head") $ states.her.mood += 6 - $ hg_pf_blowjob.fail_intentional() jump end_hermione_event label hg_pf_blowjob_T4_fail_repeat: + + call start_hg_pf_blowjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") her "Yes, [name_genie_hermione]?" ("base", "base", "base", "mid") @@ -160,7 +158,6 @@ label hg_pf_blowjob_T4_fail_repeat: call her_walk(action="leave") $ states.her.mood += 6 - $ hg_pf_blowjob.fail_intentional() jump end_hermione_event @@ -171,6 +168,9 @@ label hg_pf_blowjob_T4_fail_repeat: # Event 3 (r) - Normal blowjob with choices. label hg_pf_blowjob_T5_intro_E1: + + call start_hg_pf_blowjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") her "Yes, [name_genie_hermione]?" ("open", "base", "base", "mid") @@ -195,6 +195,9 @@ label hg_pf_blowjob_T5_intro_E1: label hg_pf_blowjob_T5_intro_E2: + + call start_hg_pf_blowjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") her "[name_genie_hermione]?" ("soft", "base", "base", "mid") @@ -211,6 +214,9 @@ label hg_pf_blowjob_T5_intro_E2: jump hg_pf_hidden_blowjob # Snape label hg_pf_blowjob_T5_repeat: + + call start_hg_pf_blowjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") her "[name_genie_hermione]?" ("soft", "base", "base", "mid") @@ -230,6 +236,9 @@ label hg_pf_blowjob_T5_repeat: # Event 3 (r) - Blowjob with choices. label hg_pf_blowjob_T6_intro_E1: + + call start_hg_pf_blowjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") her "Yes, [name_genie_hermione]?" ("open", "base", "base", "mid") @@ -325,6 +334,9 @@ label hg_pf_blowjob_T6_intro_E1: jump hg_pf_blowjob_2 label hg_pf_blowjob_T6_hidden_repeat: + + call start_hg_pf_blowjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) play music "music/(Orchestral) Playful Tension by Shadow16nh.ogg" fadein 1 if_changed # SEX THEME. gen "Come here and suck my dick, [name_hermione_genie]." ("base", xpos="far_left", ypos="head") @@ -336,6 +348,9 @@ label hg_pf_blowjob_T6_hidden_repeat: jump hg_pf_hidden_blowjob label hg_pf_blowjob_T6_repeat: + + call start_hg_pf_blowjob + her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) play music "music/(Orchestral) Playful Tension by Shadow16nh.ogg" fadein 1 if_changed # SEX THEME. gen "Come here and suck my dick, [name_hermione_genie]." ("base", xpos="far_left", ypos="head") @@ -1646,8 +1661,6 @@ label hg_pf_blowjob_2: gen "Well, since you asked..." ("base", xpos="far_left", ypos="head") menu: - #"\"Take it down your throat!\"" if hg_pf_blowjob.points >= 2: # Second event (facefuck) happened. - # jump hg_pf_facefuck_1 gen "..." ("base", xpos="far_left", ypos="head") "\"Pretend I am your father.\"": her "My father?" ("angry", "wink", "base", "mid") @@ -1862,7 +1875,7 @@ label hg_pf_blowjob_2: her "*Gobble*! *Gulp*! *Gobble*!" ("open_wide_tongue", "narrow", "annoyed", "up") gen "*Mmm*... Very good, [name_hermione_genie]..." ("base", xpos="far_left", ypos="head") - if hg_pr_blowjob.counter == 0: + if not states.her.status.public_blowjob: call her_chibi_scene("bj_pause", trans=d5) her "I love sucking your perfect dick..." ("base", "narrow", "base", "up") her "... and no one else's." ("base", "narrow", "base", "up") diff --git a/game/scripts/characters/hermione/events/favors/talk_to_me.rpy b/game/scripts/characters/hermione/events/favors/talk_to_me.rpy index f2efcee9..556a48ef 100644 --- a/game/scripts/characters/hermione/events/favors/talk_to_me.rpy +++ b/game/scripts/characters/hermione/events/favors/talk_to_me.rpy @@ -1,24 +1,20 @@ +### Hermione 'Talk to me' ### -### Hermione Talks ### +label start_hg_pf_talk: + if not _events_completed_any: + gen "{size=-4}(All I'll do is have an innocent conversation with her...){/size}" ("base", xpos="far_left", ypos="head") -label hg_pf_talk: - - gen "{size=-4}(All I'll do is have an innocent conversation with her...){/size}" ("base", xpos="far_left", ypos="head") - - if hg_pf_talk.counter < 1: menu: "\"(Yes, let's do it!)\"": pass "\"(Not right now.)\"": jump hermione_favor_menu - # Start Event $ current_payout = 5 - $ hg_pf_talk.start() + return - # End Event - label end_hg_pf_talk: +label end_hg_pf_talk: # Setup stop music fadeout 2.0 @@ -28,25 +24,22 @@ label hg_pf_talk: call her_chibi("stand", flip=False) call gen_chibi("sit_behind_desk") + her "" (xpos="mid", ypos="base") hide screen blkfade - her "" (xpos="mid", ypos="base", trans=fade) - + with d3 # Points if states.her.tier <= 3: $ gryffindor += current_payout gen "{number=current_payout} points to Gryffindor, [name_hermione_genie]. Well done." ("base", xpos="far_left", ypos="head") - elif states.her.tier == 4 and hg_pf_talk.points == 1: - gen "{number=current_payout} points to Gryffindor, [name_hermione_genie]. Well done." ("base", xpos="far_left", ypos="head") + elif states.her.tier == 4 and not _events_filtered_completed_any: + gen "{number=current_payout} points to Gryff--" ("base", xpos="far_left", ypos="head") her "Oh, don't worry about the points, [name_genie_hermione]. We were just having a nice talk." gen "Really? What about Gryffindor winning the cup?" ("base", xpos="far_left", ypos="head") her "It's only {number=current_payout} points..." ("soft", "base", "base", "R") gen "If you say so." ("base", xpos="far_left", ypos="head") - if hg_pf_talk.counter == 1: #First time. - her "Another {number=current_payout} points... The Guys will be so happy!" ("base", "happyCl", "base", "mid") - if states.her.mood != 0: her "Will this be all then?" ("annoyed", "base", "angry", "mid") else: @@ -56,6 +49,10 @@ label hg_pf_talk: # Hermione leaves call her_walk("door", "base") + + if states.her.tier == 1 and not _events_completed_any: + her "Another {number=current_payout} points... The Guys will be so happy!" ("base", "happyCl", "base", "mid") + call her_chibi("leave") # Increase level @@ -69,11 +66,12 @@ label hg_pf_talk: jump end_hermione_event - - ### Tier 1 ### label hg_pf_talk_T1_intro_E1: + + call start_hg_pf_talk + play music "music/Chipper Doodle v2.ogg" fadein 1 if_changed gen "Alright then..." ("base", xpos="far_left", ypos="head") @@ -93,6 +91,9 @@ label hg_pf_talk_T1_intro_E1: label hg_pf_talk_T1_E1: + + call start_hg_pf_talk + play music "music/Chipper Doodle v2.ogg" fadein 1 if_changed gen "Alright then..." ("base", xpos="far_left", ypos="head") @@ -190,6 +191,8 @@ label hg_pf_talk_T1: # Call label label hg_pf_talk_T2_intro_E1: + call start_hg_pf_talk + her "Very well, Sir." ("base", "base", "base", "mid") call hg_pf_talk_T2 @@ -199,6 +202,8 @@ label hg_pf_talk_T2_intro_E1: label hg_pf_talk_T2_E1: + call start_hg_pf_talk + if states.her.status.voyer: her "Another talk, [name_genie_hermione]?" ("soft", "base", "base", "mid") her "(I hope he doesn't do \"that\" again...)" ("disgust", "narrow", "base", "down") @@ -310,7 +315,6 @@ label hg_pf_talk_T2: $ states.her.ev.talk_to_me.caught_masturbating = True $ achievements.unlock("busted") - $ hg_pf_talk.change_icon(a="heart_half", b="heart_red") else: her "We need to put an end to this behaviour, [name_genie_hermione]!" ("open", "closed", "base", "mid") @@ -335,6 +339,9 @@ label hg_pf_talk_T2: # Favours can revolve around Cho, Luna, Tonks label hg_pf_talk_T3_intro_E1: + + call start_hg_pf_talk + gen "Let's have another chat, [name_hermione_genie]." ("base", xpos="far_left", ypos="head") her "Okay..." ("annoyed", "base", "worried", "mid") gen "I'd like you to tell me a bit about your day." ("base", xpos="far_left", ypos="head") @@ -350,15 +357,17 @@ label hg_pf_talk_T3_intro_E1: label hg_pf_talk_T3_intro_E2: - gen "{size=-4}(Although perhaps I could spice things up a bit...){/size}" ("base", xpos="far_left", ypos="head") + + call start_hg_pf_talk + + gen "{size=-4}(Perhaps I could spice things up a bit...){/size}" ("base", xpos="far_left", ypos="head") menu: #"-Suggest inviting Snape-": # pass # #To be added - # #$ hg_pf_talk_snape.start() "-Suggest inviting Tonks-": # Start event chronologically - $ hg_pf_talk_tonks.start() + $ her_eventqueue_talk_to_me_tonks.start() "-Decide against it-": gen "Let's have another chat, [name_hermione_genie]." ("base", xpos="far_left", ypos="head") her "Okay..." ("base", "base", "base", "mid") @@ -369,14 +378,16 @@ label hg_pf_talk_T3_intro_E2: label hg_pf_talk_T3_repeat: + + call start_hg_pf_talk + menu: #"-Suggest inviting Snape-": # pass # #To be added - # #$ hg_pf_talk_snape.start() "-Suggest inviting Tonks-": # Start event chronologically - $ hg_pf_talk_tonks.start() + $ her_eventqueue_talk_to_me_tonks.start() "-Decide against it-": gen "Tell me about your day, [name_hermione_genie]." ("base", xpos="far_left", ypos="head") her "Okay..." ("base", "base", "base", "mid") @@ -758,35 +769,37 @@ label hg_pf_talk_tonks: if states.gen.masturbating: gen "(Oh yes you have, you naughty slut...)" ("grin", xpos="far_left", ypos="head") else: - $ tmp_val = states.gen.stats.masturbated_to_hermione+hg_pf_admire_panties.counter+hg_pf_admire_breasts.counter+hg_pf_grope.counter+hg_pf_strip.counter+hg_pf_handjob.counter+hg_pf_blowjob.counter+hg_pf_titjob.counter+hg_pf_sex.counter - $ tmp_word = num_to_word(tmp_val) # Sum up all favour counters and turn them into a word. + # TODO: Might need changes, depending on how we'll deal with statistics. + # $ tmp_val = states.gen.stats.masturbated_to_hermione+hg_pf_admire_panties.counter+hg_pf_admire_breasts.counter+hg_pf_grope.counter+hg_pf_strip.counter+hg_pf_handjob.counter+hg_pf_blowjob.counter+hg_pf_titjob.counter+hg_pf_sex.counter + # $ tmp_word = num_to_word(tmp_val) # Sum up all favour counters and turn them into a word. - gen "{size=-4}... [tmp_word]...{/size}" ("base", xpos="far_left", ypos="head") - her @ cheeks blush "*huh*?" ("open", "squint", "angry", "mid") - gen "You've sold me exactly [tmp_word] favours." ("base", xpos="far_left", ypos="head") - her @ cheeks blush "B-but that's--" ("angry","happy", "angry", "mid") - if tmp_val < 10: - ton @ hair basic "Disappointing, but it's a start." ("open", "closed", "base", "mid") - her @ cheeks blush "..." ("annoyed", "narrow", "base", "R_soft") - elif tmp_val >= 10 and tmp_val < 20: - ton @ hair basic "Not bad, but I expected better from one of our top students." ("open", "base", "base", "L") - elif tmp_val >= 20 and tmp_val < 30: - her @ cheeks blush "" ("angry", "narrow", "base", "R_soft") - ton @ hair basic "You go, girl! I expected as much from one of my students." ("open", "base", "angry", "L") - gen "..." ("base", xpos="far_left", ypos="head") - ton @ hair basic "I meant to say, one of {i}our{/i} students, of course." ("upset", "base", "worried", "mid") - elif tmp_val >= 30 and tmp_val < 40: - ton @ hair horny "Aren't you a sneaky one, *huh*? Almost tricked me that you were an innocent girl with those doe-like eyes of yours." ("horny", "base", "angry", "L") - ton @ hair basic "But, as it turns out, you're actually quite high on the list." ("open", "base", "raised", "L") - her @ cheeks blush "(... There's a list...?)" ("open", "happyCl", "worried", "mid") - ton "At the very top, in fact!" ("silly", "happyCl", "base", "mid") - her @ cheeks blush "..." ("angry", "narrow", "base", "down") - else: - ton "Wow! Who would have thought you're the girl at the top of the list." ("silly", "happyCl", "base", "mid") - ton @ hair horny "Colour me surprised... Looks like they were telling the truth after all." ("horny", "base", "angry", "L") - her @ cheeks blush "(... A list... What list...?)" ("angry", "wide", "worried", "stare") - ton "Congratulations on being a \"top\" student." ("horny", "base", "raised", "L") - her @ cheeks blush "..." ("disgust", "narrow", "base", "R_soft") + # gen "{size=-4}... [tmp_word]...{/size}" ("base", xpos="far_left", ypos="head") + # her @ cheeks blush "*huh*?" ("open", "squint", "angry", "mid") + # gen "You've sold me exactly [tmp_word] favours." ("base", xpos="far_left", ypos="head") + # her @ cheeks blush "B-but that's--" ("angry","happy", "angry", "mid") + # if tmp_val < 10: + # ton @ hair basic "Disappointing, but it's a start." ("open", "closed", "base", "mid") + # her @ cheeks blush "..." ("annoyed", "narrow", "base", "R_soft") + # elif tmp_val >= 10 and tmp_val < 20: + # ton @ hair basic "Not bad, but I expected better from one of our top students." ("open", "base", "base", "L") + # elif tmp_val >= 20 and tmp_val < 30: + # her @ cheeks blush "" ("angry", "narrow", "base", "R_soft") + # ton @ hair basic "You go, girl! I expected as much from one of my students." ("open", "base", "angry", "L") + # gen "..." ("base", xpos="far_left", ypos="head") + # ton @ hair basic "I meant to say, one of {i}our{/i} students, of course." ("upset", "base", "worried", "mid") + # elif tmp_val >= 30 and tmp_val < 40: + # ton @ hair horny "Aren't you a sneaky one, *huh*? Almost tricked me that you were an innocent girl with those doe-like eyes of yours." ("horny", "base", "angry", "L") + # ton @ hair basic "But, as it turns out, you're actually quite high on the list." ("open", "base", "raised", "L") + # her @ cheeks blush "(... There's a list...?)" ("open", "happyCl", "worried", "mid") + # ton "At the very top, in fact!" ("silly", "happyCl", "base", "mid") + # her @ cheeks blush "..." ("angry", "narrow", "base", "down") + # else: + + ton "Wow! Who would have thought you're the girl at the top of the list." ("silly", "happyCl", "base", "mid") + ton @ hair horny "Colour me surprised... Looks like they were telling the truth after all." ("horny", "base", "angry", "L") + her @ cheeks blush "(... A list... What list...?)" ("angry", "wide", "worried", "stare") + ton "Congratulations on being a \"top\" student." ("horny", "base", "raised", "L") + her @ cheeks blush "..." ("disgust", "narrow", "base", "R_soft") ton @ hair basic "Don't be so shy, girl. I'm happy that you took my advice to heart..." ("open", "base", "base", "L") ton "Consider for a minute where your house would be if you hadn't." ("base", "base", "base", "L") @@ -932,7 +945,7 @@ label hg_pf_talk_tonks: her "Thank you professor..." ("open", "closed", "base", "mid") her "Even then, that doesn't even compare to what the Slytherins are doing..." ("open", "closed", "base", "mid") - block if cc_pf_strip.counter >= 2: # After Cho stripped for you. + block if states.cho.status.stripping: # After Cho stripped for you. her "You're well aware that it's not just the Slytherins that have been doing stuff like this..." ("open", "closed", "angry", "mid") ton "If you'd like to give an example..." ("base", "base", "base", "L") her "I'm talking about Cho Chang!" ("open", "base", "angry", "mid") @@ -953,7 +966,7 @@ label hg_pf_talk_tonks: else: gen "The latter!" ("grin", xpos="far_left", ypos="head") ton "Oh my... What kind of girl would do such a shameful thing..." ("open", "base", "worried", "mid") - if hg_pf_strip.counter > 1: + if states.her.status.stripping: her @ cheeks blush "..." ("disgust", "narrow", "worried", "down") ton "Are you blushing, Miss Granger?" ("base", "base", "angry", "L") her @ cheeks blush "..." ("disgust", "narrow", "base", "down") @@ -979,7 +992,7 @@ label hg_pf_talk_tonks: her "Anyway..." ("open", "closed", "base", "mid") her "She's not even the worst person amongst the Slytherins." ("angry", "narrow", "angry", "down") - block if not any(((states.cho.tier >= 2), (cc_pf_strip.counter >= 2), states.ast.unlocked)): + block if not any(((states.cho.tier >= 2), (states.cho.status.stripping), states.ast.unlocked)): her @ cheeks blush "..." ("annoyed", "narrow", "worried", "down") ton "Miss Granger?" ("normal", "base", "raised", "L") her @ cheeks blush "*Ehm*..." ("annoyed", "base", "base", "R") diff --git a/game/scripts/characters/hermione/events/items/butt_plugs.rpy b/game/scripts/characters/hermione/events/items/butt_plugs.rpy index 1244c7b8..b08cd781 100644 --- a/game/scripts/characters/hermione/events/items/butt_plugs.rpy +++ b/game/scripts/characters/hermione/events/items/butt_plugs.rpy @@ -813,7 +813,7 @@ label hg_butt_plugs_medium_return: her "I was a mess afterwards..." gen "And did you return the favour?" ("grin", xpos="far_left", ypos="head") - if hg_pr_kiss.counter >= 1: + if states.her.status.public_kissing: her @ cheeks blush "*Err*... maybe..." ("open", "happy", "base", "mid") gen "What did you do?" ("base", xpos="far_left", ypos="head") her @ cheeks blush "Well, I don't want to say too much [name_genie_hermione]." ("base", "base", "base", "R") diff --git a/game/scripts/characters/hermione/events/items/collars.rpy b/game/scripts/characters/hermione/events/items/collars.rpy index f5b3d1b3..311de01a 100644 --- a/game/scripts/characters/hermione/events/items/collars.rpy +++ b/game/scripts/characters/hermione/events/items/collars.rpy @@ -21,7 +21,7 @@ label hg_collars: gen "But first, I'll need you to remove your top, or it might get caught in your clothing." ("base", xpos="far_left", ypos="head") if states.her.tier == 1: - if hg_pf_admire_panties.is_event_complete(1, 1) or hg_pf_admire_breasts.is_event_complete(1, 1): + if states.her.status.show_bra or states.her.status.show_panties: her "You want me to remove my top?" ("soft", "happy", "worried", "R") gen "Yes please..." ("base", xpos="far_left", ypos="head") her "I'm getting paid for this, right?" ("open", "narrow", "base", "down") @@ -265,9 +265,9 @@ label hg_collars: menu: "-Tell her she's a slave-" if states.her.status.anal: jump slave_scene - "-Tell her she's a whore-" if states.her.status.sex and hg_pr_sex.is_event_complete(6, 1): + "-Tell her she's a whore-" if states.her.status.sex: jump whore_scene - "-Tell her she's a slut-" if hg_pf_blowjob.is_event_complete(5, 3) or states.her.tier > 5: + "-Tell her she's a slut-" if states.her.status.blowjob or states.her.tier > 5: jump slut_scene "-Tell her she's a flasher-" if states.her.status.stripping: jump flasher_scene diff --git a/game/scripts/characters/hermione/events/requests/flirt_with_teachers.rpy b/game/scripts/characters/hermione/events/requests/flirt_with_teachers.rpy index 7c95e2a4..15c9dcbf 100644 --- a/game/scripts/characters/hermione/events/requests/flirt_with_teachers.rpy +++ b/game/scripts/characters/hermione/events/requests/flirt_with_teachers.rpy @@ -159,7 +159,7 @@ label hg_pr_flirt_teacher_T1_E1: # Flitwick her "But [name_genie_hermione], I now know for a fact that professor Flitwick is \"dirty\"!" ("angry", "base", "worried", "mid") her "He looked at my panties, [name_genie_hermione]!" ("annoyed", "base", "worried", "R") - if hg_pf_admire_panties.counter > 1: + if states.her.status.show_panties: gen "Didn't you show them off before?" ("base", xpos="far_left", ypos="head") her "What?" ("open", "base", "base", "mid") her @ cheeks blush "That was... different..." ("annoyed", "base", "angry", "R") diff --git a/game/scripts/characters/hermione/events/requests/let_them_grope_you.rpy b/game/scripts/characters/hermione/events/requests/let_them_grope_you.rpy index 479bde1b..99480481 100644 --- a/game/scripts/characters/hermione/events/requests/let_them_grope_you.rpy +++ b/game/scripts/characters/hermione/events/requests/let_them_grope_you.rpy @@ -115,6 +115,8 @@ label end_hg_pr_grope: label .quick_end: + $ states.her.status.public_groping = True + # Increase Points if not hg_pr_grope.is_tier_complete(): $ states.her.public_level += 1 diff --git a/game/scripts/characters/hermione/favors.rpy b/game/scripts/characters/hermione/favors.rpy index e227bb1b..181a9cce 100644 --- a/game/scripts/characters/hermione/favors.rpy +++ b/game/scripts/characters/hermione/favors.rpy @@ -1,264 +1,100 @@ -# Personal favours -default hg_pf_talk = event_class(title = "Talk to me!", start_label = "hg_pf_talk", start_tier = 1, events = [ - [ - ["hg_pf_talk_T1_intro_E1"], - ["hg_pf_talk_T1_E1"] - ], - [ - ["hg_pf_talk_T2_intro_E1"], - ["hg_pf_talk_T2_E1"] - ], +default her_ev_talk_to_me_t1_e1 = Event(id="talk_to_me_t1_e1", label="hg_pf_talk_T1_intro_E1", priority=5, req="states.her.tier == 1", queue="her_eventqueue_talk_to_me", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["end_hg_pf_talk", "hermione_favor_menu"]) +default her_ev_talk_to_me_t1_e2 = Event(id="talk_to_me_t1_e2", label="hg_pf_talk_T1_E1", priority=6, req="states.her.tier == 1", queue="her_eventqueue_talk_to_me", autoenqueue=True, autodequeue=False, ignore_labels=["end_hg_pf_talk", "hermione_favor_menu"]) +default her_ev_talk_to_me_t2_e1 = Event(id="talk_to_me_t2_e1", label="hg_pf_talk_T2_intro_E1", priority=5, req="states.her.tier == 2", queue="her_eventqueue_talk_to_me", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["end_hg_pf_talk", "hermione_favor_menu"]) +default her_ev_talk_to_me_t2_e2 = Event(id="talk_to_me_t2_e2", label="hg_pf_talk_T2_E1", priority=6, req="states.her.tier == 2", queue="her_eventqueue_talk_to_me", autoenqueue=True, autodequeue=False, ignore_labels=["end_hg_pf_talk", "hermione_favor_menu"]) +default her_ev_talk_to_me_t3_e1 = Event(id="talk_to_me_t3_e1", label="hg_pf_talk_T3_intro_E1", priority=5, req="states.her.tier >= 3", queue="her_eventqueue_talk_to_me", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["end_hg_pf_talk", "hg_pf_talk_tonks_T3_intro_E1", "hg_pf_talk_tonks_T3_E1", "hermione_favor_menu"]) +default her_ev_talk_to_me_t3_e2 = Event(id="talk_to_me_t3_e2", label="hg_pf_talk_T3_intro_E2", priority=6, req="states.her.tier >= 3", queue="her_eventqueue_talk_to_me", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["end_hg_pf_talk", "hg_pf_talk_tonks_T3_intro_E1", "hg_pf_talk_tonks_T3_E1", "hermione_favor_menu"]) +default her_ev_talk_to_me_t3_e3 = Event(id="talk_to_me_t3_e3", label="hg_pf_talk_T3_repeat", priority=7, req="states.her.tier >= 3", queue="her_eventqueue_talk_to_me", autoenqueue=True, autodequeue=False, ignore_labels=["end_hg_pf_talk", "hg_pf_talk_tonks_T3_intro_E1", "hg_pf_talk_tonks_T3_E1", "hermione_favor_menu"]) - [ - ["hg_pf_talk_T3_intro_E1"], - ["hg_pf_talk_T3_intro_E2"], - ["hg_pf_talk_T3_repeat"] - ] +default her_ev_talk_to_me_tonks_t3_e1 = Event(id="talk_to_me_tonks_t3_e1", label="hg_pf_talk_tonks_T3_intro_E1", priority=5, req="states.her.tier >= 3", queue="her_eventqueue_talk_to_me_tonks", autoenqueue=True, autodequeue=False, repeat=False) +default her_ev_talk_to_me_tonks_t3_e2 = Event(id="talk_to_me_tonks_t3_e2", label="hg_pf_talk_tonks_T3_E1", priority=6, req="states.her.tier >= 3", queue="her_eventqueue_talk_to_me_tonks", autoenqueue=True, autodequeue=False) - ], - icons = [None, None, None], # If a tier doesn't need an icon replace with None - iconset = [["heart_empty", "heart_red"], ["heart_empty", "heart_half"], ["heart_empty", "heart_red"]] - ) +default her_ev_admire_panties_t1_e1 = Event(id="admire_panties_t1_e1", label="hg_pf_admire_panties_T1_intro_E1", priority=5, req="states.her.tier == 1", queue="her_eventqueue_admire_panties", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["end_hg_pf_admire_panties", "hermione_favor_menu"]) +default her_ev_admire_panties_t1_e2 = Event(id="admire_panties_t1_e2", label="hg_pf_admire_panties_T1_E1", priority=6, req="states.her.tier == 1", queue="her_eventqueue_admire_panties", autoenqueue=True, autodequeue=False, ignore_labels=["end_hg_pf_admire_panties", "hermione_favor_menu"]) +default her_ev_admire_panties_t2_e1 = Event(id="admire_panties_t2_e1", label="hg_pf_admire_panties_T2_intro_E1", priority=5, req="states.her.tier == 2", queue="her_eventqueue_admire_panties", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["end_hg_pf_admire_panties", "hermione_favor_menu"]) +default her_ev_admire_panties_t2_e2 = Event(id="admire_panties_t2_e2", label="hg_pf_admire_panties_T2_E1", priority=6, req="states.her.tier == 2", queue="her_eventqueue_admire_panties", autoenqueue=True, autodequeue=False, ignore_labels=["end_hg_pf_admire_panties", "hermione_favor_menu"]) +default her_ev_admire_panties_t3_e1 = Event(id="admire_panties_t3_e1", label="hg_pf_admire_panties_T3_intro_E1", priority=5, req="states.her.tier == 3", queue="her_eventqueue_admire_panties", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["end_hg_pf_admire_panties", "hermione_favor_menu"]) +default her_ev_admire_panties_t3_e2 = Event(id="admire_panties_t3_e2", label="hg_pf_admire_panties_T3_E1", priority=6, req="states.her.tier == 3", queue="her_eventqueue_admire_panties", autoenqueue=True, autodequeue=False, ignore_labels=["end_hg_pf_admire_panties", "hermione_favor_menu"]) +default her_ev_admire_panties_t4_e1 = Event(id="admire_panties_t4_e1", label="hg_pf_admire_panties_T4_intro_E1", priority=5, req="states.her.tier >= 4", queue="her_eventqueue_admire_panties", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["end_hg_pf_admire_panties", "hermione_favor_menu"]) +default her_ev_admire_panties_t4_e2 = Event(id="admire_panties_t4_e2", label="hg_pf_admire_panties_T4_E1", priority=6, req="states.her.tier >= 4", queue="her_eventqueue_admire_panties", autoenqueue=True, autodequeue=False, ignore_labels=["end_hg_pf_admire_panties", "hermione_favor_menu"]) +default her_ev_admire_panties_t4_e3 = Event(id="admire_panties_t4_e3", label="hg_pf_admire_panties_T4_E2", priority=7, req="states.her.tier >= 4", queue="her_eventqueue_admire_panties", autoenqueue=True, autodequeue=False, ignore_labels=["end_hg_pf_admire_panties", "hermione_favor_menu"]) -# Alternate talk event with TONKS -default hg_pf_talk_tonks = event_class(title = "", start_label = "", start_tier = 3, events = [ - [ - ["hg_pf_talk_tonks_T3_intro_E1"], - ["hg_pf_talk_tonks_T3_E1"] - ] +default her_ev_admire_breasts_t1_e1 = Event(id="admire_breasts_t1_e1", label="hg_pf_admire_breasts_T1_intro_E1", priority=5, req="states.her.tier == 1", queue="her_eventqueue_admire_breasts", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["end_hg_pf_admire_breasts", "hermione_favor_menu"]) +default her_ev_admire_breasts_t1_e2 = Event(id="admire_breasts_t1_e2", label="hg_pf_admire_breasts_T1_intro_E2", priority=6, req="states.her.tier == 1", queue="her_eventqueue_admire_breasts", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["end_hg_pf_admire_breasts", "hermione_favor_menu"]) +default her_ev_admire_breasts_t1_e3 = Event(id="admire_breasts_t1_e3", label="hg_pf_admire_breasts_T1_E2", priority=7, req="states.her.tier == 1", queue="her_eventqueue_admire_breasts", autoenqueue=True, autodequeue=False, ignore_labels=["end_hg_pf_admire_breasts", "hermione_favor_menu"]) +default her_ev_admire_breasts_t2_e1 = Event(id="admire_breasts_t2_e1", label="hg_pf_admire_breasts_T2_intro_E1", priority=5, req="states.her.tier == 2", queue="her_eventqueue_admire_breasts", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["end_hg_pf_admire_breasts", "hermione_favor_menu", "hg_pf_admire_breasts_T2", "hg_pf_admire_breasts_T2_masturbate"]) +default her_ev_admire_breasts_t2_e2 = Event(id="admire_breasts_t2_e2", label="hg_pf_admire_breasts_T2_intro_E2", priority=6, req="states.her.tier == 2", queue="her_eventqueue_admire_breasts", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["end_hg_pf_admire_breasts", "hermione_favor_menu", "hg_pf_admire_breasts_T2", "hg_pf_admire_breasts_T2_masturbate"]) +default her_ev_admire_breasts_t2_e3 = Event(id="admire_breasts_t2_e3", label="hg_pf_admire_breasts_T2_E2", priority=7, req="states.her.tier == 2", queue="her_eventqueue_admire_breasts", autoenqueue=True, autodequeue=False, ignore_labels=["end_hg_pf_admire_breasts", "hermione_favor_menu", "hg_pf_admire_breasts_T2", "hg_pf_admire_breasts_T2_masturbate"]) +default her_ev_admire_breasts_t3_e1 = Event(id="admire_breasts_t3_e1", label="hg_pf_admire_breasts_T3_intro_E1", priority=5, req="states.her.tier == 3", queue="her_eventqueue_admire_breasts", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["end_hg_pf_admire_breasts", "hermione_favor_menu", "hg_pf_admire_breasts_T3"]) +default her_ev_admire_breasts_t3_e2 = Event(id="admire_breasts_t3_e2", label="hg_pf_admire_breasts_T3_E1", priority=6, req="states.her.tier == 3", queue="her_eventqueue_admire_breasts", autoenqueue=True, autodequeue=False, ignore_labels=["end_hg_pf_admire_breasts", "hermione_favor_menu", "hg_pf_admire_breasts_T3"]) +default her_ev_admire_breasts_t4_e1 = Event(id="admire_breasts_t4_e1", label="hg_pf_admire_breasts_T4_intro_E1", priority=5, req="states.her.tier >= 4", queue="her_eventqueue_admire_breasts", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["end_hg_pf_admire_breasts", "hermione_favor_menu", "hg_pf_admire_breasts_T4"]) +default her_ev_admire_breasts_t4_e2 = Event(id="admire_breasts_t4_e2", label="hg_pf_admire_breasts_T4_E1", priority=6, req="states.her.tier >= 4", queue="her_eventqueue_admire_breasts", autoenqueue=True, autodequeue=False, ignore_labels=["end_hg_pf_admire_breasts", "hermione_favor_menu", "hg_pf_admire_breasts_T4"]) +default her_ev_admire_breasts_t4_e3 = Event(id="admire_breasts_t4_e3", label="hg_pf_admire_breasts_T4_E2", priority=7, req="states.her.tier >= 4", queue="her_eventqueue_admire_breasts", autoenqueue=True, autodequeue=False, ignore_labels=["end_hg_pf_admire_breasts", "hermione_favor_menu", "hg_pf_admire_breasts_T4"]) - ], - icons = [None, None, None], # If a tier doesn't need an icon replace with None - iconset = [["heart_empty", "heart_red"], ["heart_empty", "heart_half"], ["heart_empty", "heart_red"]] - ) +default her_ev_grope_t1_e1 = Event(id="grope_t1_e1", label="hg_pf_grope_T1_fail_intro", priority=5, req="states.her.tier == 1", queue="her_eventqueue_grope", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu"]) +default her_ev_grope_t1_e2 = Event(id="grope_t1_e2", label="hg_pf_grope_T1_fail_repeat", priority=6, req="states.her.tier == 1", queue="her_eventqueue_grope", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu"]) +default her_ev_grope_t2_e1 = Event(id="grope_t2_e1", label="hg_pf_grope_T2_intro_E1", priority=5, req="states.her.tier == 2", queue="her_eventqueue_grope", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu", "hg_pf_grope_breasts_T2", "hg_pf_grope_ass_T2", "hg_pf_grope_ass_T2_back", "hg_pf_grope_ass_T2_front", "hg_pf_grope_ass_T2_continue", "hg_pf_grope_breasts_T2_continue"]) +default her_ev_grope_t2_e2 = Event(id="grope_t2_e2", label="hg_pf_grope_T2_E1", priority=6, req="states.her.tier == 2", queue="her_eventqueue_grope", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu", "hg_pf_grope_breasts_T2", "hg_pf_grope_ass_T2", "hg_pf_grope_ass_T2_back", "hg_pf_grope_ass_T2_front", "hg_pf_grope_ass_T2_continue", "hg_pf_grope_breasts_T2_continue"]) +default her_ev_grope_t3_e1 = Event(id="grope_t3_e1", label="hg_pf_grope_T3_intro_E1", priority=5, req="states.her.tier == 3", queue="her_eventqueue_grope", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu", "hg_pf_grope_breasts_T3", "hg_pf_grope_ass_T3", "hg_pf_grope_ass_T3_back", "hg_pf_grope_ass_T3_front", "hg_pf_grope_ass_T3_continue", "hg_pf_grope_breasts_T3_continue"]) +default her_ev_grope_t3_e2 = Event(id="grope_t3_e2", label="hg_pf_grope_T3_E1", priority=6, req="states.her.tier == 3", queue="her_eventqueue_grope", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu", "hg_pf_grope_breasts_T3", "hg_pf_grope_ass_T3", "hg_pf_grope_ass_T3_back", "hg_pf_grope_ass_T3_front", "hg_pf_grope_ass_T3_continue", "hg_pf_grope_breasts_T3_continue"]) +default her_ev_grope_t4_e1 = Event(id="grope_t4_e1", label="hg_pf_grope_T4_intro_E1", priority=5, req="states.her.tier >= 4", queue="her_eventqueue_grope", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu", "hg_pf_grope_breasts_T4", "hg_pf_grope_ass_T4", "hg_pf_grope_ass_T4_back", "hg_pf_grope_ass_T4_front", "hg_pf_grope_ass_T4_continue", "hg_pf_grope_breasts_T4_continue"]) +default her_ev_grope_t4_e2 = Event(id="grope_t4_e2", label="hg_pf_grope_T4_intro_E2", priority=6, req="states.her.tier >= 4", queue="her_eventqueue_grope", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu", "hg_pf_grope_breasts_T4", "hg_pf_grope_ass_T4", "hg_pf_grope_ass_T4_back", "hg_pf_grope_ass_T4_front", "hg_pf_grope_ass_T4_continue", "hg_pf_grope_breasts_T4_continue"]) +default her_ev_grope_t4_e3 = Event(id="grope_t4_e3", label="hg_pf_grope_T4_E2", priority=7, req="states.her.tier >= 4", queue="her_eventqueue_grope", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu", "hg_pf_grope_breasts_T4", "hg_pf_grope_ass_T4", "hg_pf_grope_ass_T4_back", "hg_pf_grope_ass_T4_front", "hg_pf_grope_ass_T4_continue", "hg_pf_grope_breasts_T4_continue"]) +default her_ev_strip_for_me_t1_e1 = Event(id="strip_for_me_t1_e1", label="hg_pf_strip_fail", priority=5, req="states.her.tier == 1", queue="her_eventqueue_strip_for_me", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu"]) +default her_ev_strip_for_me_t2_e1 = Event(id="strip_for_me_t2_e1", label="hg_pf_strip_T2_intro_fail", priority=5, req="states.her.tier == 2", queue="her_eventqueue_strip_for_me", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu"]) +default her_ev_strip_for_me_t2_e2 = Event(id="strip_for_me_t2_e2", label="hg_pf_strip_T2_repeat_fail", priority=6, req="states.her.tier == 2", queue="her_eventqueue_strip_for_me", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu"]) +default her_ev_strip_for_me_t3_e1 = Event(id="strip_for_me_t3_e1", label="hg_pf_strip_T3_intro_E1", priority=5, req="states.her.tier == 3", queue="her_eventqueue_strip_for_me", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu"]) +default her_ev_strip_for_me_t3_e2 = Event(id="strip_for_me_t3_e2", label="hg_pf_strip_T3_intro_E2", priority=6, req="states.her.tier == 3", queue="her_eventqueue_strip_for_me", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu"]) +default her_ev_strip_for_me_t3_e3 = Event(id="strip_for_me_t3_e3", label="hg_pf_strip_T3_E2", priority=7, req="states.her.tier == 3", queue="her_eventqueue_strip_for_me", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu", "hg_pf_strip_T3_masturbate", "hg_pf_strip_T3_watch", "hg_pf_strip_T3_snape"]) +default her_ev_strip_for_me_t4_e1 = Event(id="strip_for_me_t4_e1", label="hg_pf_strip_T4_intro_E1", priority=5, req="states.her.tier >= 4", queue="her_eventqueue_strip_for_me", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu", "hg_pf_strip_T4", "hg_pf_strip_T4_snape", "hg_pf_strip_T4_masturbate", "hg_pf_strip_T4_watch", "hg_pf_strip_T4_fingering", "hg_pf_strip_T5_fingering", "hg_pf_strip_T6_fingering"]) +default her_ev_strip_for_me_t4_e2 = Event(id="strip_for_me_t4_e2", label="hg_pf_strip_T4_intro_E2", priority=6, req="states.her.tier >= 4", queue="her_eventqueue_strip_for_me", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu", "hg_pf_strip_T4", "hg_pf_strip_T4_snape", "hg_pf_strip_T4_masturbate", "hg_pf_strip_T4_watch", "hg_pf_strip_T4_fingering", "hg_pf_strip_T5_fingering", "hg_pf_strip_T6_fingering"]) +default her_ev_strip_for_me_t4_e3 = Event(id="strip_for_me_t4_e3", label="hg_pf_strip_T4_E2", priority=7, req="states.her.tier >= 4", queue="her_eventqueue_strip_for_me", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu", "hg_pf_strip_T4", "hg_pf_strip_T4_snape", "hg_pf_strip_T4_masturbate", "hg_pf_strip_T4_watch", "hg_pf_strip_T4_fingering", "hg_pf_strip_T5_fingering", "hg_pf_strip_T6_fingering"]) -default hg_pf_admire_panties = event_class(title = "Show me your Panties!", start_label = "hg_pf_admire_panties", start_tier = 1, events = [ - [ - ["hg_pf_admire_panties_T1_intro_E1"], - ["hg_pf_admire_panties_T1_E1"] - ], +default her_ev_handjob_t1_to_t3_e1 = Event(id="handjob_t1_to_t3_e1", label="hg_pf_handjob_fail", priority=5, req="states.her.tier < 4", queue="her_eventqueue_handjob", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu"]) +default her_ev_handjob_t4_e1 = Event(id="handjob_t4_e1", label="hg_pf_handjob_T4_intro_E1", priority=5, req="states.her.tier == 4", queue="her_eventqueue_handjob", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu", "hg_pf_handjob_1"]) +default her_ev_handjob_t4_e2 = Event(id="handjob_t4_e2", label="hg_pf_handjob_T4_intro_E2", priority=6, req="states.her.tier == 4", queue="her_eventqueue_handjob", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu", "hg_pf_handjob_1"]) +default her_ev_handjob_t4_e3 = Event(id="handjob_t4_e3", label="hg_pf_handjob_T4_repeat", priority=7, req="states.her.tier == 4", queue="her_eventqueue_handjob", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu", "hg_pf_handjob_1"]) +default her_ev_handjob_t5_e1 = Event(id="handjob_t5_e1", label="hg_pf_handjob_T5_intro_E1", priority=5, req="states.her.tier >= 5", queue="her_eventqueue_handjob", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu", "hg_pf_handjob_2", "hg_pf_handjob_2_cumming", "hg_pf_handjob_2_continue"]) +default her_ev_handjob_t5_e2 = Event(id="handjob_t5_e2", label="hg_pf_handjob_T5_intro_E2", priority=6, req="states.her.tier >= 5", queue="her_eventqueue_handjob", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu", "hg_pf_handjob_2", "hg_pf_handjob_2_cumming", "hg_pf_handjob_2_continue"]) +default her_ev_handjob_t5_e3 = Event(id="handjob_t5_e3", label="hg_pf_handjob_T5_repeat", priority=7, req="states.her.tier >= 5", queue="her_eventqueue_handjob", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu", "hg_pf_handjob_2", "hg_pf_handjob_2_cumming", "hg_pf_handjob_2_continue"]) - [ - ["hg_pf_admire_panties_T2_intro_E1"], - ["hg_pf_admire_panties_T2_E1"] - ], +default her_ev_titjob_t1_to_t4_e1 = Event(id="titjob_t1_to_t4_e1", label="hg_pf_titjob_fail", priority=5, req="states.her.tier < 5", queue="her_eventqueue_titjob", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu"]) +default her_ev_titjob_t5_e1 = Event(id="titjob_t5_e1", label="hg_pf_titjob_T5_intro_E1", priority=5, req="states.her.tier == 5", queue="her_eventqueue_titjob", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu", "back_to_titjob_choices", "hg_pf_titjob_1"]) +default her_ev_titjob_t5_e2 = Event(id="titjob_t5_e2", label="hg_pf_titjob_T5_repeat", priority=6, req="states.her.tier == 5", queue="her_eventqueue_titjob", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu", "hg_pf_titjob_1"]) +default her_ev_titjob_t6_e1 = Event(id="titjob_t6_e1", label="hg_pf_titjob_T6_intro_E1", priority=5, req="states.her.tier >= 6", queue="her_eventqueue_titjob", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu", "hg_pf_titjob_2", "hg_pf_titjob_2_cumming", "hg_pf_titjob_2_continue"]) +default her_ev_titjob_t6_e2 = Event(id="titjob_t6_e2", label="hg_pf_titjob_T6_intro_E2", priority=6, req="states.her.tier >= 6", queue="her_eventqueue_titjob", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu", "hg_pf_titjob_2", "hg_pf_titjob_2_cumming", "hg_pf_titjob_2_continue"]) +default her_ev_titjob_t6_e3 = Event(id="titjob_t6_e3", label="hg_pf_titjob_T6_repeat", priority=7, req="states.her.tier >= 6", queue="her_eventqueue_titjob", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu", "hg_pf_titjob_2", "hg_pf_titjob_2_cumming", "hg_pf_titjob_2_continue"]) - [ - ["hg_pf_admire_panties_T3_intro_E1"], - ["hg_pf_admire_panties_T3_E1"], - ], +default her_ev_blowjob_t1_to_t3_e1 = Event(id="blowjob_t1_to_t3_e1", label="hg_pf_blowjob_fail", priority=5, req="states.her.tier < 4", queue="her_eventqueue_blowjob", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu"]) +default her_ev_blowjob_t4_e1 = Event(id="blowjob_t4_e1", label="hg_pf_blowjob_T4_fail_intro", priority=5, req="states.her.tier == 4", queue="her_eventqueue_blowjob", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu"]) +default her_ev_blowjob_t4_e2 = Event(id="blowjob_t4_e2", label="hg_pf_blowjob_T4_fail_repeat", priority=6, req="states.her.tier == 4", queue="her_eventqueue_blowjob", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu"]) +default her_ev_blowjob_t5_e1 = Event(id="blowjob_t5_e1", label="hg_pf_blowjob_T5_intro_E1", priority=5, req="states.her.tier == 5", queue="her_eventqueue_blowjob", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu", "hg_pf_blowjob_1", "hg_pf_blowjob_2", "hg_pf_hidden_blowjob", "hg_hidden_blowjob_snape", "hg_hidden_blowjob_tonks", "hg_hidden_blowjob_luna", "hg_hidden_blowjob_cumming"]) +default her_ev_blowjob_t5_e2 = Event(id="blowjob_t5_e2", label="hg_pf_blowjob_T5_intro_E2", priority=6, req="states.her.tier == 5", queue="her_eventqueue_blowjob", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu", "hg_pf_blowjob_1", "hg_pf_blowjob_2", "hg_pf_hidden_blowjob", "hg_hidden_blowjob_snape", "hg_hidden_blowjob_tonks", "hg_hidden_blowjob_luna", "hg_hidden_blowjob_cumming"]) +default her_ev_blowjob_t5_e3 = Event(id="blowjob_t5_e3", label="hg_pf_blowjob_T5_repeat", priority=7, req="states.her.tier == 5", queue="her_eventqueue_blowjob", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu", "hg_pf_blowjob_1", "hg_pf_blowjob_2", "hg_pf_hidden_blowjob", "hg_hidden_blowjob_snape", "hg_hidden_blowjob_tonks", "hg_hidden_blowjob_luna", "hg_hidden_blowjob_cumming"]) +default her_ev_blowjob_t6_e1 = Event(id="blowjob_t6_e1", label="hg_pf_blowjob_T6_intro_E1", priority=5, req="states.her.tier >= 6", queue="her_eventqueue_blowjob", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu", "hg_pf_blowjob_1", "hg_pf_blowjob_2", "hg_pf_hidden_blowjob", "hg_hidden_blowjob_snape", "hg_hidden_blowjob_tonks", "hg_hidden_blowjob_luna", "hg_hidden_blowjob_cumming"]) +default her_ev_blowjob_t6_e2 = Event(id="blowjob_t6_e2", label="hg_pf_blowjob_T6_hidden_repeat", priority=6, req="states.her.tier >= 6", queue="her_eventqueue_blowjob", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu", "hg_pf_blowjob_1", "hg_pf_blowjob_2", "hg_pf_hidden_blowjob", "hg_hidden_blowjob_snape", "hg_hidden_blowjob_tonks", "hg_hidden_blowjob_luna", "hg_hidden_blowjob_cumming"]) +default her_ev_blowjob_t6_e3 = Event(id="blowjob_t6_e3", label="hg_pf_blowjob_T6_repeat", priority=7, req="states.her.tier >= 6", queue="her_eventqueue_blowjob", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu", "hg_pf_blowjob_1", "hg_pf_blowjob_2", "hg_pf_hidden_blowjob", "hg_hidden_blowjob_snape", "hg_hidden_blowjob_tonks", "hg_hidden_blowjob_luna", "hg_hidden_blowjob_cumming"]) - [ - ["hg_pf_admire_panties_T4_intro_E1"], - ["hg_pf_admire_panties_T4_E1"], - ["hg_pf_admire_panties_T4_E2"] - ] +default her_ev_sex_t1_to_t5_e1 = Event(id="sex_t1_to_t5_e1", label="hg_pf_sex_fail", priority=5, req="states.her.tier < 6", queue="her_eventqueue_sex", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu"]) +default her_ev_sex_t6_e1 = Event(id="sex_t6_e1", label="hg_pf_sex_T6_intro_E1", priority=5, req="states.her.tier >= 6", queue="her_eventqueue_sex", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu"]) +default her_ev_sex_t6_e2 = Event(id="sex_t6_e2", label="hg_pf_sex_T6_intro_E2", priority=6, req="states.her.tier >= 6", queue="her_eventqueue_sex", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu"]) +default her_ev_sex_t6_e3 = Event(id="sex_t6_e3", label="hg_pf_sex_T6_intro_E3", priority=7, req="states.her.tier >= 6", queue="her_eventqueue_sex", autoenqueue=True, autodequeue=False, repeat=False, ignore_labels=["hermione_favor_menu"]) +default her_ev_sex_t6_e4 = Event(id="sex_t6_e4", label="hg_pf_sex_T6_E3", priority=8, req="states.her.tier >= 6", queue="her_eventqueue_sex", autoenqueue=True, autodequeue=False, ignore_labels=["hermione_favor_menu"]) - ], - icons = [None, None, None, None], # If a tier doesn't need an icon replace with None - iconset = [["heart_empty", "heart_red"], ["heart_empty", "heart_red"], ["heart_empty", "heart_red"], ["heart_empty", "heart_red"]] - ) +default her_ev_anal_t6_e1 = Event(id="anal_t6_e1", label="hg_anal_sex_1_intro", priority=5, req="states.her.tier >= 6", queue="her_eventqueue_anal", autoenqueue=True, autodequeue=False, repeat=False) +default her_ev_anal_t6_e2 = Event(id="anal_t6_e2", label="hg_anal_sex_2_intro", priority=6, req="states.her.tier >= 6", queue="her_eventqueue_anal", autoenqueue=True, autodequeue=False, repeat=False) +default her_ev_anal_t6_e3 = Event(id="anal_t6_e3", label="hg_anal_sex_3", priority=7, req="states.her.tier >= 6", queue="her_eventqueue_anal", autoenqueue=True, autodequeue=False) - -default hg_pf_admire_breasts = event_class(title = "Show me your tits!", start_label = "hg_pf_admire_breasts", start_tier = 1, events = [ - [ - ["hg_pf_admire_breasts_T1_intro_E1"], - ["hg_pf_admire_breasts_T1_intro_E2"], - ["hg_pf_admire_breasts_T1_E2"] - ], - - [ - ["hg_pf_admire_breasts_T2_intro_E1"], - ["hg_pf_admire_breasts_T2_intro_E2"], - ["hg_pf_admire_breasts_T2_E2"] - ], - - [ - ["hg_pf_admire_breasts_T3_intro_E1"], - ["hg_pf_admire_breasts_T3_E1"] - ], - - [ - ["hg_pf_admire_breasts_T4_intro_E1"], - ["hg_pf_admire_breasts_T4_E1"], - ["hg_pf_admire_breasts_T4_E2"] - ] - - ], - icons = [None, None, None, None], # If a tier doesn't need an icon replace with None - iconset = [["heart_empty", "heart_red"], ["heart_empty", "heart_red"], ["heart_empty", "heart_red"], ["heart_empty", "heart_red"]] - ) - - -default hg_pf_grope = event_class(title = "Grope her!", start_label = "hg_pf_grope", start_tier = 1, events = [ - [ - ["hg_pf_grope_T1_fail_intro"], - ["hg_pf_grope_T1_fail_repeat"], - ], - - [ - ["hg_pf_grope_T2_intro_E1"], - ["hg_pf_grope_T2_E1"] - ], - - [ - ["hg_pf_grope_T3_intro_E1"], - ["hg_pf_grope_T3_E1"] - ], - - [ - ["hg_pf_grope_T4_intro_E1"], - ["hg_pf_grope_T4_intro_E2"], - ["hg_pf_grope_T4_E2"] - ] - - ], - icons = [None, None, None, None], # If a tier doesn't need an icon replace with None - iconset = [["heart_empty", "heart_black"], ["heart_empty", "heart_red"], ["heart_empty", "heart_red"], ["heart_empty", "heart_red"]] - ) - - -default hg_pf_strip = event_class(title = "Dance for Me!", start_label = "hg_pf_strip", start_tier = 1, events = [ - [["hg_pf_strip_fail"]], # Tier 1 - - [ - ["hg_pf_strip_T2_fail_intro"], - ["hg_pf_strip_T2_fail_repeat"], - ], - - [ - ["hg_pf_strip_T3_intro_E1"], # First Strip event. - ["hg_pf_strip_T3_intro_E2"], # Strip event where Snape enters. - ["hg_pf_strip_T3_E2"] # Clumsy Strip. Has branches. - ], - - [ - ["hg_pf_strip_T4_intro_E1"], # Hermione has improved. - ["hg_pf_strip_T4_intro_E2"], # Hermione doesn't mind stripping. - ["hg_pf_strip_T4_E2"] # She's happy to strip. - ] - - ], - icons = [None, None, None, None], # If a tier doesn't need an icon replace with None - iconset = [["heart_empty", "heart_black"], ["heart_empty", "heart_black"], ["heart_empty", "heart_half"], ["heart_empty", "heart_red"]] - ) - - -default hg_pf_handjob = event_class(title = "Give me a handy!", start_label = "hg_pf_handjob", start_tier = 1, events = [ - [["hg_pf_handjob_fail"]], # Tier 1 - [["hg_pf_handjob_fail"]], # Tier 2 - [["hg_pf_handjob_fail"]], # Tier 3 - - [ - ["hg_pf_handjob_T4_intro_E1"], # First time handjob - ["hg_pf_handjob_T4_intro_E2"], # Second time handjob - ["hg_pf_handjob_T4_repeat"] # Repeated handjob - ], - - [ - ["hg_pf_handjob_T5_intro_E1"], # New interaction - ["hg_pf_handjob_T5_intro_E2"], # More reply options - ["hg_pf_handjob_T5_repeat"] # Repeated handjob - ] - - ], - icons = [None, None, None, None, None], # If a tier doesn't need an icon replace with None - iconset = [["heart_empty", "heart_black"], ["heart_empty", "heart_black"], ["heart_empty", "heart_black"], ["heart_empty", "heart_half"], ["heart_empty", "heart_red"]] - ) - - -default hg_pf_titjob = event_class(title = "Give me a tittyjob!", start_label = "hg_pf_titjob", start_tier = 1, events = [ - [["hg_pf_titjob_fail"]], # Tier 1 - [["hg_pf_titjob_fail"]], # Tier 2 - [["hg_pf_titjob_fail"]], # Tier 3 - [["hg_pf_titjob_fail"]], # Tier 4 - - [ - ["hg_pf_titjob_T5_intro_E1"], # First time titjob - ["hg_pf_titjob_T5_repeat"] # Repeated titjob - ], - - [ - ["hg_pf_titjob_T6_intro_E1"], # Couple of choices - ["hg_pf_titjob_T6_intro_E2"], # New interactions - ["hg_pf_titjob_T6_repeat"] # Repeated titjob - ] - - ], - icons = [None, None, None, None, None, None], # If a tier doesn't need an icon replace with None - iconset = [["heart_empty", "heart_black"], ["heart_empty", "heart_black"], ["heart_empty", "heart_black"], ["heart_empty", "heart_black"], ["heart_empty", "heart_red"], ["heart_empty", "heart_red"]] - ) - - -default hg_pf_blowjob = event_class(title = "Suck it!", start_label = "hg_pf_blowjob", start_tier = 1, events = [ - [["hg_pf_blowjob_fail"]], # Tier 1 - [["hg_pf_blowjob_fail"]], # Tier 2 - [["hg_pf_blowjob_fail"]], # Tier 3 - - [ - ["hg_pf_blowjob_T4_fail_intro"], # Hermione refuses - ["hg_pf_blowjob_T4_fail_repeat"] # Repeat fail - ], - - [ - ["hg_pf_blowjob_T5_intro_E1"], # First time blowjob - ["hg_pf_blowjob_T5_intro_E2"], # Snape visit - ["hg_pf_blowjob_T5_repeat"] # Repeated blowjob - ], - - [ - ["hg_pf_blowjob_T6_intro_E1"], # Couple of choices - ["hg_pf_blowjob_T6_hidden_repeat"], # Repeat: Random visit - ["hg_pf_blowjob_T6_repeat"] # Repeat: Regular + Facefuck - ] - - ], - icons = [None, None, None, None, None, None], # If a tier doesn't need an icon replace with None - iconset = [["heart_empty", "heart_black"], ["heart_empty", "heart_black"], ["heart_empty", "heart_black"], ["heart_empty", "heart_black"], ["heart_empty", "heart_red"], ["heart_empty", "heart_red"]] - ) - - -default hg_pf_sex = event_class(title = "Let's have sex!", start_label = "hg_pf_sex", start_tier = 1, events = [ - [["hg_pf_sex_fail"]], # Tier 1 - [["hg_pf_sex_fail"]], # Tier 2 - [["hg_pf_sex_fail"]], # Tier 3 - [["hg_pf_sex_fail"]], # Tier 4 - [["hg_pf_sex_fail"]], # Tier 5 (Add tier 0 events that fail.) - - [ - ["hg_pf_sex_T6_intro_E1"], # First time sex - ["hg_pf_sex_T6_intro_E2"], # Second time sex - ["hg_pf_sex_T6_intro_E3"], # Choice to do anal - ["hg_pf_sex_T6_E3"] # Regular or anal sex - ] - - ], - icons = [None, None, None, None, None, None], # If a tier doesn't need an icon replace with None - iconset = [["heart_empty", "heart_black"], ["heart_empty", "heart_black"], ["heart_empty", "heart_black"], ["heart_empty", "heart_black"], ["heart_empty", "heart_black"], ["heart_empty", "heart_half"]] - ) - -default hg_pf_anal_sex = event_class(title = "", start_label = "hg_pf_sex", start_tier = 6, events = [ - [ - ["hg_anal_sex_1_intro"], - ["hg_anal_sex_2_intro"], - ["hg_anal_sex_3"], - ] - - ], - icons = [None, None, None], - iconset=[["heart_empty", "heart_red"]] -) - -default hg_favor_list = [ - hg_pf_talk, - hg_pf_admire_breasts, - hg_pf_admire_panties, - hg_pf_grope, - hg_pf_strip, - hg_pf_handjob, - hg_pf_titjob, - hg_pf_blowjob, - hg_pf_sex, - ] +define hermione_favors = [ + "her_eventqueue_talk_to_me", + "her_eventqueue_admire_panties", + "her_eventqueue_admire_breasts", + "her_eventqueue_grope", + "her_eventqueue_strip_for_me", + "her_eventqueue_handjob", + "her_eventqueue_titjob", + "her_eventqueue_blowjob", + "her_eventqueue_sex", + ] \ No newline at end of file diff --git a/game/scripts/characters/hermione/summon.rpy b/game/scripts/characters/hermione/summon.rpy index eadf098c..903b2ca7 100644 --- a/game/scripts/characters/hermione/summon.rpy +++ b/game/scripts/characters/hermione/summon.rpy @@ -23,7 +23,6 @@ label summon_hermione: her "" (xpos="base",ypos="base") menu: - "-Talk-" (icon="interface/icons/small/talk.webp"): if states.her.mood > 0: her "I have nothing to say to you sir..." @@ -149,7 +148,6 @@ label hermione_level_up(tier=None): return label hermione_favor_menu: - call update_her_favors call update_her_requests if not is_in_lead(gryffindor): @@ -167,30 +165,10 @@ label hermione_favor_menu: "-Personal favours-" (icon="interface/icons/small/heart_red.webp"): call tutorial("hearts") - label .personal: - python: - menu_choices = [] - for i in hg_favor_list: - if i in []: # Not in the game yet. - menu_choices.append(gui.menu_item("-Not available-", "na", style="disabled")) - elif i.start_tier > states.her.tier: - menu_choices.append(gui.menu_item("-Not Ready-", "vague", style="disabled")) - else: - menu_choices.append(i.get_menu_item()) + $ result = show_events_menu(hermione_favors) + $ result.start() - menu_choices.append(("-Never mind-", "nvm")) - result = renpy.display_menu(menu_choices) - - if result == "nvm": - jump silver_requests_root - elif result == "vague": - call favor_not_ready - jump .personal - elif result == "na": - call not_available - jump .personal - else: - $ renpy.jump(result) + 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." @@ -346,13 +324,6 @@ label hermione_favor_menu: gen "(I guess another hangout with Snape is in order.)" ("base", xpos="far_left", ypos="head") jump hermione_requests -label update_her_favors: - python: - for i in hg_favor_list: - i.tier = states.her.tier - - return - label update_her_requests: python: for i in hg_requests_list: diff --git a/game/scripts/characters/hermione/vars.rpy b/game/scripts/characters/hermione/vars.rpy index 8fc58a65..6b3b2631 100644 --- a/game/scripts/characters/hermione/vars.rpy +++ b/game/scripts/characters/hermione/vars.rpy @@ -36,6 +36,27 @@ default states.her.status.creampie = False default states.her.status.anal = False default states.her.status.anal_creampie = False +# Sexual activity states (public) + +default states.her.status.public_voyer = False +default states.her.status.public_show_bra = False +default states.her.status.public_show_tits = False +default states.her.status.public_show_panties = False +default states.her.status.public_show_pussy = False +default states.her.status.public_stripping = False +default states.her.status.public_cumshot = False +default states.her.status.public_handjob = False +default states.her.status.public_kissing = False +default states.her.status.public_titjob = False +default states.her.status.public_blowjob = False +default states.her.status.public_gokkun = False +default states.her.status.public_masturbating = False +default states.her.status.public_sex = False +default states.her.status.public_creampie = False +default states.her.status.public_anal = False +default states.her.status.public_anal_creampie = False +default states.her.status.public_groping = False + # Event flags default states.her.ev.tutoring.offered = False @@ -116,19 +137,19 @@ init python early: # simulate tiers without spending weeks refactoring it and risking # breaking save compatibility again. Technical debt sucks. ¯\_(ツ)_/¯ def _her_public_tier(): - if hg_pr_sex.counter > 0: + if states.her.status.public_sex: return 6 - elif hg_pr_blowjob.counter > 0: + elif states.her.status.public_blowjob: return 5 - elif hg_pr_handjob.counter > 0: + elif states.her.status.public_handjob: return 4 - elif hg_pr_kiss.counter > 0 or hg_pr_flash.counter > 0: + elif states.her.status.public_kissing or states.her.status.public_voyer: return 3 - elif hg_pr_grope.counter > 0: + elif states.her.status.public_groping: return 2 else: return 1 diff --git a/game/scripts/characters/tonks/events/requests/detention_with_tonks.rpy b/game/scripts/characters/tonks/events/requests/detention_with_tonks.rpy index 5fa88b49..118cb282 100644 --- a/game/scripts/characters/tonks/events/requests/detention_with_tonks.rpy +++ b/game/scripts/characters/tonks/events/requests/detention_with_tonks.rpy @@ -27,11 +27,11 @@ label nt_pr_teach_start: ton "What did you do with Hermione on her first favour?" ("open", "narrow", "shocked", "down") gen "*Ugh*... I think I got her to make \"a silly face\", or something..." ("base", xpos="far_left", ypos="head") ton "You paid her for that? I expected something a little more...{w=0.4} Perverse." ("crooked_smile", "base", "base", "R") - if hg_pf_admire_panties.counter != 0: + if states.her.status.show_panties: gen "In that case, the first \"real\" favour I bought was getting her to lift her skirt for me." ("base", xpos="far_left", ypos="head") ton "That's more like it!" ("horny", "base", "base", "mid") ton "But, even though we're in Scotland, none of the boys are wearing skirts..." ("open", "base", "base", "L") - elif hg_pf_admire_breasts.counter != 0: + elif states.her.status.show_tits: gen "In that case, the first \"real\" favour I bought was getting her to show me her bra." ("base", xpos="far_left", ypos="head") ton "That's more like it!" ("horny", "base", "base", "mid") ton "Although it's not a big deal for boys to show you their chests..." ("open", "base", "base", "L") diff --git a/game/scripts/events/final_events.rpy b/game/scripts/events/final_events.rpy index 4104b3e5..8fd57cf7 100644 --- a/game/scripts/events/final_events.rpy +++ b/game/scripts/events/final_events.rpy @@ -60,7 +60,7 @@ label ball_quest_E1: her "Is that all?" ("open", "squint", "base", "mid") jump ball_quest_E1.after_strip - "\"You will have to sleep with me.\"" if not d_flag_02 and not hg_pf_sex.counter > 0: + "\"You will have to sleep with me.\"" if not d_flag_02 and not states.her.status.sex: $ states.her.mood += 10 $ d_flag_02 = True diff --git a/game/scripts/events/queue.rpy b/game/scripts/events/queue.rpy index 12072452..cd3803b9 100644 --- a/game/scripts/events/queue.rpy +++ b/game/scripts/events/queue.rpy @@ -1,6 +1,13 @@ default event_callbacks = [] +default _events_completed_any = None +default _events_completed_all = None +default _events_filtered_completed_all = None +default _events_filtered_completed_any = None +default _event_completed = None +default _event_completed_failed = None + init -1 python: class EventQueue(object): @@ -10,6 +17,8 @@ init -1 python: self.queue = [] self.freeze = False + self.counter = 0 + def freeze(self): self.freeze = True @@ -35,12 +44,19 @@ init -1 python: return queue def start(self, allow_repeat=True): - global _ev_queue_completed, _ev_queue_any_completed + global _events_completed_all, _events_completed_any, _events_filtered_completed_all, _events_filtered_completed_any + + queue = self.queue + + _events_completed_all = all(ev.completed for ev in queue) + _events_completed_any = any(ev.completed for ev in queue) queue = self.list_applicable() - _ev_queue_completed = all(ev.completed for ev in queue) - _ev_queue_any_completed = any(ev.completed for ev in queue) + _events_filtered_completed_all = all(ev.completed for ev in queue) + _events_filtered_completed_any = any(ev.completed for ev in queue) + + self.counter += 1 for ev in queue: if not ev.repeat and ev.completed: @@ -176,12 +192,12 @@ init -1 python: return True def start(self): - global _ev_completed, _ev_completed_failed + global _event_completed, _event_completed_failed self.started = True - _ev_completed = self.completed - _ev_completed_failed = self.completed_failed + _event_completed = self.completed + _event_completed_failed = self.completed_failed if self.autodequeue and self in self.queue: self.queue.remove(self) diff --git a/game/scripts/interface/stats.rpy b/game/scripts/interface/stats.rpy index fedbce53..8cf5a5c8 100644 --- a/game/scripts/interface/stats.rpy +++ b/game/scripts/interface/stats.rpy @@ -400,31 +400,31 @@ screen stats_menuitem(xx, yy): use text_stat("Hung out with Tonks:") use text_stat("- ", " times -", nt_he_drink.counter) - elif current_category == "Hermione": - # Tier 1 - use text_stat("You Jerked off in front of her:") - use text_stat("- ", " times -", states.gen.stats.masturbated_to_hermione) - use text_stat("You saw her panties:") - use text_stat("- ", " times -", hg_pf_admire_panties.counter) - use text_stat("You admired her tits:") - use text_stat("- ", " times -", hg_pf_admire_breasts.counter) - # Tier 2 - use text_stat("You groped her:") - use text_stat("- ", " times -", hg_pf_grope.counter) - # Tier 3 - use text_stat("Hermione has \"danced\" for you:") - use text_stat("- ", " times -", hg_pf_strip.counter) - # Tier 4 - use text_stat("Hermione has given you:") - use text_stat("- ", " Handjobs -", hg_pf_handjob.counter) - # Tier 5 - use text_stat("Hermione has given you:") - use text_stat("- ", " Blowjobs -", hg_pf_blowjob.counter) - use text_stat("Hermione has given you:") - use text_stat("- ", " Tit jobs -", hg_pf_titjob.counter) - # Tier 6 - use text_stat("You've had sex with her:") - use text_stat("- ", " times -", hg_pf_sex.counter) + # elif current_category == "Hermione": + # # Tier 1 + # use text_stat("You Jerked off in front of her:") + # use text_stat("- ", " times -", states.gen.stats.masturbated_to_hermione) + # use text_stat("You saw her panties:") + # use text_stat("- ", " times -", hg_pf_admire_panties.counter) + # use text_stat("You admired her tits:") + # use text_stat("- ", " times -", hg_pf_admire_breasts.counter) + # # Tier 2 + # use text_stat("You groped her:") + # use text_stat("- ", " times -", hg_pf_grope.counter) + # # Tier 3 + # use text_stat("Hermione has \"danced\" for you:") + # use text_stat("- ", " times -", hg_pf_strip.counter) + # # Tier 4 + # use text_stat("Hermione has given you:") + # use text_stat("- ", " Handjobs -", hg_pf_handjob.counter) + # # Tier 5 + # use text_stat("Hermione has given you:") + # use text_stat("- ", " Blowjobs -", hg_pf_blowjob.counter) + # use text_stat("Hermione has given you:") + # use text_stat("- ", " Tit jobs -", hg_pf_titjob.counter) + # # Tier 6 + # use text_stat("You've had sex with her:") + # use text_stat("- ", " times -", hg_pf_sex.counter) elif current_category == "Cho": use text_stat("You Jerked off in front of her:") diff --git a/game/scripts/minigames/cardgame/_snape_card_game_.rpy b/game/scripts/minigames/cardgame/_snape_card_game_.rpy index 0b3b75af..2f186d61 100644 --- a/game/scripts/minigames/cardgame/_snape_card_game_.rpy +++ b/game/scripts/minigames/cardgame/_snape_card_game_.rpy @@ -146,7 +146,7 @@ label snape_duel_menu: sna "But I think we should up our wager a bit..." ("snape_02") gen "In what way?" ("base", xpos="far_left", ypos="head") sna "I was thinking maybe you could send the Granger girl to my room tonight if I win." ("snape_20") - if hg_pr_kiss.counter >= 3 or states.her.public_level >= 21: + if states.her.status.public_sex or states.her.public_level >= 21: gen "We'll see about that." ("base", xpos="far_left", ypos="head") else: gen "I doubt she would agree to that." ("base", xpos="far_left", ypos="head") diff --git a/game/scripts/minigames/mirror/init.rpy b/game/scripts/minigames/mirror/init.rpy index 240e5667..91476bec 100644 --- a/game/scripts/minigames/mirror/init.rpy +++ b/game/scripts/minigames/mirror/init.rpy @@ -39,7 +39,7 @@ default mr_ev_ABTTD = MirrorEvent( label="a_bad_time_to_disrobe", authors=["SilverStudioGames"], tags=["Sexual","Flashing"], - req="hg_pf_admire_breasts.points > 1", + req="states.her.status.show_tits", ) default mr_ev_ASOC = MirrorEvent( diff --git a/game/scripts/options.rpy b/game/scripts/options.rpy index 21303da9..b729cc6e 100644 --- a/game/scripts/options.rpy +++ b/game/scripts/options.rpy @@ -131,7 +131,7 @@ define config.say_attribute_transition = d3 define config.open_file_encoding = "utf-8" # Debug -define config.profile = True +define config.profile = False # Garbage Collector # define config.manage_gc = True diff --git a/game/scripts/utility/engine.rpy b/game/scripts/utility/engine.rpy index f8877f08..52d6753a 100644 --- a/game/scripts/utility/engine.rpy +++ b/game/scripts/utility/engine.rpy @@ -1,5 +1,4 @@ init python: - if renpy.android: settings.default("crashdefendersetting", 0) @@ -123,6 +122,32 @@ python early hide: renpy.display.focus.set_focused = set_focused + # Add a callbacks for label calls, we use them for the event class + # in order to figure out if the event was completed or if it's just a call. + # + # Might not be required + # + # class _CallException(Exception): + + # from_current = False + + # def __init__(self, label, args, kwargs, from_current=False): + # Exception.__init__(self) + + # self.label = label + # self.args = args + # self.kwargs = kwargs + # self.from_current = from_current + + # for i in renpy.config.call_callbacks: + # i(label, args, kwargs) + + # def __reduce__(self): + # return (_CallException, (self.label, self.args, self.kwargs, self.from_current)) + + # renpy.game.CONTROL_EXCEPTIONS = tuple(list(renpy.game.CONTROL_EXCEPTIONS) + [_CallException]) + # renpy.game.CallException = _CallException + init -100 python: # Due to the sheer number of Doll-type objects we create and keep per each character, # we have to use each and every optimization technique we can get our hands on. @@ -210,4 +235,7 @@ init -100 python: if isinstance(expression, Action): expression = expression() - return true if expression else false \ No newline at end of file + return true if expression else false + +# python early: +# renpy.config.call_callbacks = [] # CallException callback