Convert Hermione's Personal Favours into the new Event system to address code logic bugs.

* Added internal counter for queues
* Simplified global vars for event completion checks.
* Temporarily disabled Hermione's statistics menu
* Replaced counter/points checks with status flags.
* Disabled debug profiling for images
This commit is contained in:
LoafyLemon 2023-06-24 23:27:13 +01:00
parent cceec862af
commit 13a7017773
32 changed files with 495 additions and 514 deletions

View File

@ -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")

View File

@ -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")

View File

@ -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:

View File

@ -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")

View File

@ -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")

View File

@ -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

View File

@ -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

View File

@ -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 ###

View File

@ -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

View File

@ -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)

View File

@ -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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -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")

View File

@ -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

View File

@ -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")

Some files were not shown because too many files have changed in this diff Show More