From b08e0d0071ff53ff00d70d0ffa94cecdaed9ea8a Mon Sep 17 00:00:00 2001 From: LoafyLemon Date: Sun, 2 Jul 2023 17:39:28 +0100 Subject: [PATCH] Astoria spell training and improvements * Converted Astoria's spell training into the new system, and cleaned up the code. * Improved Astoria's menu layout * Replaced -hidden- menu feature names with actual the actual feature names * Refactored Astoria's file structure and naming convention * Temporarily disabled spell training stats --- game/scripts/characters/astoria/common.rpy | 1 + .../characters/astoria/events/intro.rpy | 4 +- .../imperio_susan.rpy} | 55 ++-- .../imperio_tonks.rpy} | 257 +++++++++--------- game/scripts/characters/astoria/favors.rpy | 41 --- game/scripts/characters/astoria/spells.rpy | 22 ++ game/scripts/characters/astoria/summon.rpy | 131 ++++----- game/scripts/characters/astoria/vars.rpy | 2 + .../cho/events/requests/spy_on_the_girls.rpy | 2 +- game/scripts/characters/cho/summon.rpy | 2 +- .../hermione/events/favors/suck_it.rpy | 17 +- game/scripts/characters/susan/summon.rpy | 2 +- .../characters/tonks/events/clothing.rpy | 2 +- .../characters/tonks/events/clothing_old.txt | 2 +- game/scripts/characters/tonks/summon.rpy | 2 +- game/scripts/events/quests.rpy | 6 - game/scripts/interface/stats.rpy | 6 +- 17 files changed, 261 insertions(+), 293 deletions(-) rename game/scripts/characters/astoria/events/{imperio_practice.rpy => spells/imperio_susan.rpy} (98%) rename game/scripts/characters/astoria/events/{imperio_training.rpy => spells/imperio_tonks.rpy} (92%) delete mode 100644 game/scripts/characters/astoria/favors.rpy create mode 100644 game/scripts/characters/astoria/spells.rpy diff --git a/game/scripts/characters/astoria/common.rpy b/game/scripts/characters/astoria/common.rpy index 034bc5fe..25466913 100644 --- a/game/scripts/characters/astoria/common.rpy +++ b/game/scripts/characters/astoria/common.rpy @@ -25,6 +25,7 @@ label end_astoria_event: $ states.active_girl = None $ states.ast.busy = True $ astoria.wear("all") + $ astoria.set_cum(None) call music_block jump main_room_menu diff --git a/game/scripts/characters/astoria/events/intro.rpy b/game/scripts/characters/astoria/events/intro.rpy index 1b37a64a..46600cf0 100644 --- a/game/scripts/characters/astoria/events/intro.rpy +++ b/game/scripts/characters/astoria/events/intro.rpy @@ -922,12 +922,12 @@ label nt_he_astoria_E1: ton "Have you not been paying attention? It's a family curse!" ("mad", "base", "angry", "mid") gen "..." ("base", xpos="far_left", ypos="head") ton @ hair horny "That being said, I'd rather have her do it with me..." ("base", "base", "raised", "R") - gen "Are we still talking about the \"Imperio\" thingy?" ("base", xpos="far_left", ypos="head") + gen "Are we still talking about the im-pervio thingy?" ("base", xpos="far_left", ypos="head") ton "Yes..." ("soft", "narrow", "raised", "downR") gen "So your goal is to get rid of this curse she's inherited by somehow awakening her sexuality?" ("base", xpos="far_left", ypos="head") ton "It might not be that easy, but I think it would be a good start." ("open", "base", "base", "L") ton "I must at least know if my theory is correct..." ("normal", "base", "base", "R") - gen "I don't see how this \"Imperio\" thing plays into it, but if you say so..." ("base", xpos="far_left", ypos="head") + gen "I don't see how this im-pervio thing plays into it, but if you say so..." ("base", xpos="far_left", ypos="head") ton "I'll speak to Miss Greengrass." ("open", "base", "base", "mid") ton "I doubt she'll have many objections..." ("base", "happyCl", "base", "mid") diff --git a/game/scripts/characters/astoria/events/imperio_practice.rpy b/game/scripts/characters/astoria/events/spells/imperio_susan.rpy similarity index 98% rename from game/scripts/characters/astoria/events/imperio_practice.rpy rename to game/scripts/characters/astoria/events/spells/imperio_susan.rpy index cde44d72..005f6d23 100644 --- a/game/scripts/characters/astoria/events/imperio_practice.rpy +++ b/game/scripts/characters/astoria/events/spells/imperio_susan.rpy @@ -2,18 +2,23 @@ ### Susan Imperio Events ### -label ag_se_imperio_sb: # Move label +label ag_se_imperio_sb: - hide astoria_main - with d3 + if not _events_completed_any: + menu: + gen "{size=-4}(Should I ask her to cast Imperio on Miss Bones?){/size}" ("base", xpos="far_left", ypos="head") - menu: - gen "{size=-4}(Should I ask her to cast Imperio on Miss Bones?){/size}" ("base", xpos="far_left", ypos="head") + "\"(Yes, let's do it!)\"": + pass + "\"(Not right now.)\"": + $ _event.cancel() + jump astoria_favor_menu + + if states.sus.busy: + gen "(Something tells me Susan is not available right now, perhaps I should try later...)" ("base", xpos="far_left", ypos="head") + $ _event.cancel() + jump astoria_favor_menu - "\"(Yes, let's do it!)\"": - pass - "\"(Not right now.)\"": - jump astoria_spells # Setup $ sus_outfit_last.save() # Store current outfit. $ ast_outfit_last.save() # Store current outfit. @@ -25,7 +30,7 @@ label ag_se_imperio_sb: # Move label call ast_chibi("stand",530,"base") #Align with spell casting chibi - $ ag_se_imperio_sb.start() + return label end_ag_se_imperio_sb: @@ -38,13 +43,18 @@ label end_ag_se_imperio_sb: $ states.ast.busy = True $ states.sus.busy = True - call music_block - jump main_room_menu + # Increase level + if not _events_filtered_completed_all: + $ states.ast.level += 1 + $ states.ast.ev.imperio_with_susan.completed_once = True + jump end_astoria_event label ag_se_imperio_sb_E1: + call ag_se_imperio_sb + gen "I think it's time for you to try that spell on another person." ("base", xpos="far_left", ypos="head") ast "Another person?" ("open", "narrow", "base", "mid", xpos="base", ypos="base", trans=dissolve) ast "But I thought professor Tonks--" ("annoyed", "narrow", "worried", "mid") @@ -79,7 +89,6 @@ label ag_se_imperio_sb_E1: ast "...{fast} Heck yes!" ("smile", "narrow", "base", "mid") gen "Great! Then let me just bring her up here..." ("grin", xpos="far_left", ypos="head") - stop music fadeout 1 hide astoria_main with d3 @@ -95,7 +104,6 @@ label ag_se_imperio_sb_E1: call sus_walk(action="enter") - play music "music/KMcL_OpenThoseBrightEyes.ogg" fadein 1 if_changed ast "Hey [name_susan_astoria]!" ("grin", "narrow", "base", "L", xpos="right", ypos="base") sus "Astoria? What are you doing here?" ("angry", "wide", "shocked", "left", xpos="base", ypos="base") @@ -309,15 +317,12 @@ label ag_se_imperio_sb_E1: gen "(Maybe leaving Tonks out of this was a bad idea...)" ("base", xpos="far_left", ypos="head") gen "(Nah...{w=0.3} She's had her fun...)" ("base", xpos="far_left", ypos="head") - # Increase affection once (this is the first event) - if ag_se_imperio_sb.counter == 1: - $ states.ast.level += 1 - jump end_ag_se_imperio_sb - label ag_se_imperio_sb_E2: + call ag_se_imperio_sb + ast "Let's try something else this time!" ("grin", "narrow", "base", "mid", xpos="close", ypos="base", trans=fade) gen "Of course!" ("grin", xpos="far_left", ypos="head") ast "Great, I can't wait to see the look on Susan's dumb face..." ("grin", "closed", "base", "mid") @@ -619,16 +624,12 @@ label ag_se_imperio_sb_E2: with d3 pause.5 - - # Increase affection once (this is the second event) - if ag_se_imperio_sb.counter == 2: - $ states.ast.level += 1 - jump end_ag_se_imperio_sb - label ag_se_imperio_sb_E3: + call ag_se_imperio_sb + ast "" ("smile", "base", "base", "mid",xpos="close",ypos="base",trans=fade) gen "Ready for another go with the curse?" ("base", xpos="far_left", ypos="head") ast "You bet [name_genie_astoria]! I can't wait to see the look on Suzy's stupid face!" ("grin", "narrow", "angry", "down") @@ -1022,8 +1023,4 @@ label ag_se_imperio_sb_E3: call end_of_content - # Increase affection once (this is the third event) - #if ag_se_imperio_sb.counter == 3: - # $ states.ast.level += 1 - jump end_ag_se_imperio_sb diff --git a/game/scripts/characters/astoria/events/imperio_training.rpy b/game/scripts/characters/astoria/events/spells/imperio_tonks.rpy similarity index 92% rename from game/scripts/characters/astoria/events/imperio_training.rpy rename to game/scripts/characters/astoria/events/spells/imperio_tonks.rpy index f97ceb3e..32f3e819 100644 --- a/game/scripts/characters/astoria/events/imperio_training.rpy +++ b/game/scripts/characters/astoria/events/spells/imperio_tonks.rpy @@ -6,7 +6,23 @@ label ag_st_imperio: - if ag_st_imperio.points == 0: # Intro for 1st event. + if not _events_completed_any: + menu: + gen "{size=-4}(Should I ask her to cast Imperio on Tonks?){/size}" ("base", xpos="far_left", ypos="head") + + "\"(Yes, let's do it!)\"": + pass + + "\"(Not right now.)\"": + $ _event.cancel() + jump astoria_favor_menu + + if states.ton.busy: + gen "(Something tells me Tonks is not available right now, perhaps I should try later...)" ("base", xpos="far_left", ypos="head") + $ _event.cancel() + jump astoria_favor_menu + + if not _events_completed_any: # Intro for 1st event. ast "" ("base", "base", "base", "mid", xpos="right", ypos="base", trans=fade) gen "Ready for your first day of detention?" ("base", xpos="far_left", ypos="head") ast "No..." ("annoyed", "base", "base", "R") @@ -32,15 +48,16 @@ label ag_st_imperio: ast "Of course!" ("smile", "closed", "base", "mid") ast "See ya later!" ("smile", "base", "base", "mid") #smell ya later newbie! - gary oak - elif ag_st_imperio.points == 3: # Intro for 4th event. - ast "" ("annoyed", "base", "base", "mid", xpos="right", ypos="base", trans=fade) - gen "Time for another lesson, don't you think?" ("base", xpos="far_left", ypos="head") - ast "Do I really have to?" ("open", "narrow", "base", "R") - ast "I'd rather not spend the day, getting yelled at..." ("annoyed", "narrow", "base", "down") - gen "Nobody's gonna yell at you." ("base", xpos="far_left", ypos="head") - ast "If you say so, [name_genie_astoria]." ("annoyed", "base", "base", "mid") - gen "Return here after your lesson." ("base", xpos="far_left", ypos="head") - ast "..." ("annoyed", "base", "base", "R") + # TODO: This is problematic to implement, perhaps it could be done differently once we got to workinbg on Astoria's storyline. + # elif ag_st_imperio.points == 3: # Intro for 4th event. + # ast "" ("annoyed", "base", "base", "mid", xpos="right", ypos="base", trans=fade) + # gen "Time for another lesson, don't you think?" ("base", xpos="far_left", ypos="head") + # ast "Do I really have to?" ("open", "narrow", "base", "R") + # ast "I'd rather not spend the day, getting yelled at..." ("annoyed", "narrow", "base", "down") + # gen "Nobody's gonna yell at you." ("base", xpos="far_left", ypos="head") + # ast "If you say so, [name_genie_astoria]." ("annoyed", "base", "base", "mid") + # gen "Return here after your lesson." ("base", xpos="far_left", ypos="head") + # ast "..." ("annoyed", "base", "base", "R") else: ast "" ("grin", "base", "base", "mid", xpos="right", ypos="base", trans=fade) @@ -55,7 +72,7 @@ label ag_st_imperio: play sound "sounds/door.ogg" call hide_characters - call ast_chibi("hide") + call ast_walk(action="leave") hide screen bld1 with d3 @@ -66,14 +83,10 @@ label ag_st_imperio: $ tonks.equip(ton_outfit_default) $ astoria.equip(ast_outfit_default) - $ ag_st_imperio.inProgress = True - $ states.ast.busy = True $ states.ton.busy = True - call music_block - jump main_room_menu - + jump end_astoria_event label end_ag_st_imperio: call hide_characters @@ -83,19 +96,20 @@ label end_ag_st_imperio: $ tonks.equip(ton_outfit_last) # Equip player outfit. $ astoria.equip(ast_outfit_last) # Equip player outfit. - $ states.ton.busy = True - $ states.ast.busy = True + # Increase level + if not _events_filtered_completed_all: + $ states.ast.level += 1 - call music_block - jump main_room_menu + $ states.ast.ev.imperio_with_tonks.completed_once = True + jump end_astoria_event label ag_st_imperio_E1: stop music fadeout 1.0 play sound "sounds/door.ogg" call ton_chibi("stand","desk","base") call ast_chibi("stand",530,"base") # Make sure it's slightly to the left of Tonks' chibi. - with d3 + with fade pause.8 play music "music/scheming-weasel-slower-version-by-kevin-macleod.ogg" fadein 1 if_changed @@ -289,19 +303,14 @@ label ag_st_imperio_E1: call ton_chibi("hide") with d3 - # Increase affection once (this is the first event) - if ag_st_imperio.counter == 1: - $ states.ast.level += 1 - jump end_ag_st_imperio - label ag_st_imperio_E2: stop music fadeout 1.0 play sound "sounds/door.ogg" call ton_chibi("stand","desk","base") call ast_chibi("stand",530,"base") # Make sure it's slightly to the left of Tonks' chibi. - with d3 + with fade pause.8 play music "music/scheming-weasel-slower-version-by-kevin-macleod.ogg" fadein 1 if_changed @@ -393,17 +402,17 @@ label ag_st_imperio_E2: ton @ cheeks blush "" ("normal", "wide", "base", "stare", flip=False) pause.8 - ast "Yes, she did it!" ("smile", "base", "base", "L") ast "What shall I have her do next?" ("base", "base", "base", "mid") gen "*Hmm*................." ("base", xpos="far_left", ypos="head") $ d_flag_01 = False - label ag_st_imperio_E2_choices: + label .choices: menu: gen "Make her..." ("base", xpos="far_left", ypos="head") + "\"Do pig noises again!\"" if d_flag_01 == False: # Jumps back to choices. $ d_flag_01 = True @@ -476,7 +485,7 @@ label ag_st_imperio_E2: call ast_chibi("wand",530,"base") ast "And now?" ("open", "base", "base", "mid") - jump ag_st_imperio_E2_choices + jump .choices "\"Say something naughty!\"": # Fails ast "*Huh*?..." ("open", "base", "worried", "mid") @@ -561,111 +570,107 @@ label ag_st_imperio_E2: jump main_room_menu "\"Show us those tits!\"": # Succeeds - ast "What?" ("clench", "base", "base", "mid") - gen "Have her show us her breasts!" ("grin", xpos="far_left", ypos="head") - ast "Professor?!" ("open", "closed", "worried", "mid") - gen "You did the same to Miss bones, did you not?" ("base", xpos="far_left", ypos="head") - ast "Yes, but..." ("open", "narrow", "worried", "mid") - ast "I doubt Professor Tonks would be okay with that, she'll just refuse like she did before!" ("clench", "narrow", "base", "L") - gen "Did you have those concerns with Susan as well?" ("base", xpos="far_left", ypos="head") - ast "Susan didn't require much convincing, her boobs were already falling out of her--" ("clench", "narrow", "base", "L") - gen "Just try it." ("base", xpos="far_left", ypos="head") - gen "She can refuse to do it if she really doesn't want to..." ("base", xpos="far_left", ypos="head") - ast "Fine... But it's a waste of time." ("annoyed", "base", "base", "L") - ast "Professor Tonks, I'd like you to show us your..." ("open", "base", "base", "mid") - ast "*Uhm*..." ("upset", "base", "base", "down") - ast "Your breasts!" ("clench", "closed", "base", "mid") # embarrassed - ton "Oh..." ("open", "wide", "shocked", "up") - ton "............................" ("soft", "wide", "worried", "stare") - gen "(Fingers crossed!)" ("angry", xpos="far_left", ypos="head") - ton "............................" ("clench", "narrow", "base", "stare") # Clenched teeth - ast "What the--{w=0.4} I think she's struggling!" ("smile", "base", "base", "L") - gen "Very good, girl!" ("angry", xpos="far_left", ypos="head") - gen "Pressure her more! I want to see those puppies!" ("angry", xpos="far_left", ypos="head") - ast "Professor Tonks, show us your breasts! Now!" ("open", "base", "angry", "L") - gen "(It was easier for her to resist doing pig noises...)" ("base", xpos="far_left", ypos="head") - gen "(Could it be that she {b}wants{/b} to show them to us?{w} And is resisting that inner urge?)" ("base", xpos="far_left", ypos="head") - ton @ hair horny "................................" ("mad", "wide", "worried", "stare") # Really struggling! - gen "(What a slut!)" ("angry", xpos="far_left", ypos="head") # Small text - ast "Come on, do it!" ("clench", "narrow", "angry", "L") - ton @ hair horny "*Hnnnngh*!..." ("mad", "wide", "worried", "ahegao") - call cum_block - ton @ cheeks blush "*Aaaaahhh*..." ("open_wide_tongue", "base", "worried", "ahegao") # Relieved - gen "(Did she just--)" ("angry", xpos="far_left", ypos="head") - ton @ cheeks blush "" ("open", "narrow", "worried", "stare") - gen "..." ("base", xpos="far_left", ypos="head") - gen "Girl, I think your teacher is done for..." ("base", xpos="far_left", ypos="head") - ast "What?" ("clench", "base", "worried", "mid") - ton @ cheeks blush "" ("normal", "closed", "worried", "stare") - gen "She \"broke the curse.\" You can stop now..." ("base", xpos="far_left", ypos="head") - ast "*Aww*..." ("upset", "narrow", "base", "down") - ast "If you say so, Professor..." ("annoyed", "base", "base", "mid") + pass - # Tonks returns to normal. - pause.2 - call hide_characters - call ast_chibi("reset",530,"base") - hide screen bld1 - with fade - pause.8 + ast "What?" ("clench", "base", "base", "mid") + gen "Have her show us her breasts!" ("grin", xpos="far_left", ypos="head") + ast "Professor?!" ("open", "closed", "worried", "mid") + gen "You did the same to Miss bones, did you not?" ("base", xpos="far_left", ypos="head") + ast "Yes, but..." ("open", "narrow", "worried", "mid") + ast "I doubt Professor Tonks would be okay with that, she'll just refuse like she did before!" ("clench", "narrow", "base", "L") + gen "Did you have those concerns with Susan as well?" ("base", xpos="far_left", ypos="head") + ast "Susan didn't require much convincing, her boobs were already falling out of her--" ("clench", "narrow", "base", "L") + gen "Just try it." ("base", xpos="far_left", ypos="head") + gen "She can refuse to do it if she really doesn't want to..." ("base", xpos="far_left", ypos="head") + ast "Fine... But it's a waste of time." ("annoyed", "base", "base", "L") + ast "Professor Tonks, I'd like you to show us your..." ("open", "base", "base", "mid") + ast "*Uhm*..." ("upset", "base", "base", "down") + ast "Your breasts!" ("clench", "closed", "base", "mid") # embarrassed + ton "Oh..." ("open", "wide", "shocked", "up") + ton "............................" ("soft", "wide", "worried", "stare") + gen "(Fingers crossed!)" ("angry", xpos="far_left", ypos="head") + ton "............................" ("clench", "narrow", "base", "stare") # Clenched teeth + ast "What the--{w=0.4} I think she's struggling!" ("smile", "base", "base", "L") + gen "Very good, girl!" ("angry", xpos="far_left", ypos="head") + gen "Pressure her more! I want to see those puppies!" ("angry", xpos="far_left", ypos="head") + ast "Professor Tonks, show us your breasts! Now!" ("open", "base", "angry", "L") + gen "(It was easier for her to resist doing pig noises...)" ("base", xpos="far_left", ypos="head") + gen "(Could it be that she {b}wants{/b} to show them to us?{w} And is resisting that inner urge?)" ("base", xpos="far_left", ypos="head") + ton @ hair horny "................................" ("mad", "wide", "worried", "stare") # Really struggling! + gen "(What a slut!)" ("angry", xpos="far_left", ypos="head") # Small text + ast "Come on, do it!" ("clench", "narrow", "angry", "L") + ton @ hair horny "*Hnnnngh*!..." ("mad", "wide", "worried", "ahegao") + call cum_block + ton @ cheeks blush "*Aaaaahhh*..." ("open_wide_tongue", "base", "worried", "ahegao") # Relieved + gen "(Did she just--)" ("angry", xpos="far_left", ypos="head") + ton @ cheeks blush "" ("open", "narrow", "worried", "stare") + gen "..." ("base", xpos="far_left", ypos="head") + gen "Girl, I think your teacher is done for..." ("base", xpos="far_left", ypos="head") + ast "What?" ("clench", "base", "worried", "mid") + ton @ cheeks blush "" ("normal", "closed", "worried", "stare") + gen "She \"broke the curse.\" You can stop now..." ("base", xpos="far_left", ypos="head") + ast "*Aww*..." ("upset", "narrow", "base", "down") + ast "If you say so, Professor..." ("annoyed", "base", "base", "mid") - play music "music/KMcL_OpenThoseBrightEyes.ogg" fadein 1 if_changed - ast "" ("annoyed", "base", "base", "mid") - ton @ cheeks blush "*Ouch*... That was painful!" ("mad", "closed", "base", "mid", flip=False) - ton @ cheeks blush "You nearly got me there." ("disgust", "base", "shocked", "R") - ast "Did I really?" ("smile", "base", "base", "mid") - ton @ cheeks blush "Yes, well done, Astoria!" ("open", "base", "base", "down") - ast "Thank you!" ("smile", "closed", "base", "mid") - gen "Was it really such a struggle for you to not get your breasts out?" ("base", xpos="far_left", ypos="head") - ton @ cheeks heavy_blush "*Uhm*..." ("mad", "base", "base", "down") - gen "*He-he-he*!" ("grin", xpos="far_left", ypos="head") - ton @ cheeks blush "Shall we wrap it up for today?" ("upset", "base", "shocked", "downR") - ton "I'm sure you'll do even better next time, Astoria." ("soft", "base", "shocked", "R") - ast "{size=-4}Yes... Finally I shall release my unlimited power...{/size}" ("smile", "narrow", "base", "L") + # Tonks returns to normal. + pause.2 + call hide_characters + call ast_chibi("reset",530,"base") + hide screen bld1 + with fade + pause.8 - play sound "sounds/thunder_2.ogg" - pause .5 + play music "music/KMcL_OpenThoseBrightEyes.ogg" fadein 1 if_changed + ast "" ("annoyed", "base", "base", "mid") + ton @ cheeks blush "*Ouch*... That was painful!" ("mad", "closed", "base", "mid", flip=False) + ton @ cheeks blush "You nearly got me there." ("disgust", "base", "shocked", "R") + ast "Did I really?" ("smile", "base", "base", "mid") + ton @ cheeks blush "Yes, well done, Astoria!" ("open", "base", "base", "down") + ast "Thank you!" ("smile", "closed", "base", "mid") + gen "Was it really such a struggle for you to not get your breasts out?" ("base", xpos="far_left", ypos="head") + ton @ cheeks heavy_blush "*Uhm*..." ("mad", "base", "base", "down") + gen "*He-he-he*!" ("grin", xpos="far_left", ypos="head") + ton @ cheeks blush "Shall we wrap it up for today?" ("upset", "base", "shocked", "downR") + ton "I'm sure you'll do even better next time, Astoria." ("soft", "base", "shocked", "R") + ast "{size=-4}Yes... Finally I shall release my unlimited power...{/size}" ("smile", "narrow", "base", "L") - if game.weather in {"clear", "cloudy"}: - gen "Where the hell did that thunder come from?" ("base", xpos="far_left", ypos="head") - else: - gen "What the--" ("base", xpos="far_left", ypos="head") + play sound "sounds/thunder_2.ogg" + pause .5 - #Astoria walks to door but waits for Tonks. - call ast_walk(680, "base") - call ast_chibi("stand", 680, "base", flip=False) - with d3 + if game.weather in {"clear", "cloudy"}: + gen "Where the hell did that thunder come from?" ("base", xpos="far_left", ypos="head") + else: + gen "What the--" ("base", xpos="far_left", ypos="head") - ton "Have a good night, Professor!" ("base", "happyCl", "base", "mid") - gen "Until next time..." ("base", xpos="far_left", ypos="head") + #Astoria walks to door but waits for Tonks. + call ast_walk(680, "base") + call ast_chibi("stand", 680, "base", flip=False) + with d3 - # Tonks walks to door and they both leave - call ton_walk("door", "base") + ton "Have a good night, Professor!" ("base", "happyCl", "base", "mid") + gen "Until next time..." ("base", xpos="far_left", ypos="head") + # Tonks walks to door and they both leave + call ton_walk("door", "base") - hide tonks_main - call ton_chibi("leave") - hide astoria_main - call ast_chibi("stand", 680, "base", flip=True) - pause .3 - call ast_chibi("leave") - with d3 + hide tonks_main + call ton_chibi("leave") + hide astoria_main + call ast_chibi("stand", 680, "base", flip=True) + pause .3 + call ast_chibi("leave") + with d3 - gen "(And they say I'm the big, bad pervert...)" ("base", xpos="far_left", ypos="head") - - # Increase affection once (this is the second event) - if ag_st_imperio.counter == 2: - $ states.ast.level += 1 - - jump end_ag_st_imperio + gen "(And they say I'm the big, bad pervert...)" ("base", xpos="far_left", ypos="head") + jump end_ag_st_imperio label ag_st_imperio_E3: stop music fadeout 1.0 play sound "sounds/door.ogg" call ton_chibi("stand","desk","base") call ast_chibi("stand",500,"base") # Make sure it's slightly to the left of Tonks' chibi. - with d3 + with fade pause.8 play music "music/scheming-weasel-slower-version-by-kevin-macleod.ogg" fadein 1 if_changed @@ -827,13 +832,8 @@ label ag_st_imperio_E3: $ states.ast.mood += 12 - # Increase affection once (this is the third event) - if ag_st_imperio.counter == 3: - $ states.ast.level += 1 - jump end_ag_st_imperio - label ag_st_imperio_E4: stop music fadeout 1.0 @@ -1153,19 +1153,14 @@ label ag_st_imperio_E4: gen "(I hope she's planned something big!)" ("grin", xpos="far_left", ypos="head") - # Increase affection once (this is the fourth event) - if ag_st_imperio.counter == 4: - $ states.ast.level += 1 - jump end_ag_st_imperio - label ag_st_imperio_E5: stop music fadeout 1.0 play sound "sounds/door.ogg" call ton_chibi("stand","desk","base") call ast_chibi("stand",530,"base") # Make sure it's slightly to the left of Tonks' chibi. - with d3 + with fade pause.8 play music "music/KMcL_OpenThoseBrightEyes.ogg" fadein 1 if_changed @@ -1781,10 +1776,6 @@ label ag_st_imperio_E5: $ tonks.wear("all") # Wear all stripped clothing - # Increase affection once (this is the fifth event) - if ag_st_imperio.counter == 5: - $ states.ast.level += 1 - jump end_ag_st_imperio # astoria wand drop animation screen diff --git a/game/scripts/characters/astoria/favors.rpy b/game/scripts/characters/astoria/favors.rpy deleted file mode 100644 index 50411014..00000000 --- a/game/scripts/characters/astoria/favors.rpy +++ /dev/null @@ -1,41 +0,0 @@ -# Imperius Curse -default ag_st_imperio = event_class( - title = "Imperio Training", start_label = "ag_st_imperio", start_tier = 1, - events = [ - [ - ["ag_st_imperio_E1"], - ["ag_st_imperio_E2"], - ["ag_st_imperio_E3"], - ["ag_st_imperio_E4"], - ["ag_st_imperio_E5"] - ] - ], - icons = [None], # If a tier doesn't need an icon replace with None - iconset = [["star_empty", "star_yellow"]], - complete = False -) - -default ag_se_imperio_sb = event_class( - title = "Cast Imperio on Susan", start_label = "ag_se_imperio_sb", start_tier = 1, - events = [ - [ - ["ag_se_imperio_sb_E1"], - ["ag_se_imperio_sb_E2"], - ["ag_se_imperio_sb_E3"] - ] - ], - icons = [None], # If a tier doesn't need an icon replace with None - iconset = [["heart_empty", "heart_red"]], - complete = True -) - -default ag_spell_list = [] - -label update_astoria_spells: - python: - del ag_spell_list[:] # Clear list - if not ag_st_imperio.is_complete(): - ag_spell_list.append(ag_st_imperio) - else: - ag_spell_list.append(ag_se_imperio_sb) # Susan - return diff --git a/game/scripts/characters/astoria/spells.rpy b/game/scripts/characters/astoria/spells.rpy new file mode 100644 index 00000000..053fc4cb --- /dev/null +++ b/game/scripts/characters/astoria/spells.rpy @@ -0,0 +1,22 @@ +# Imperius Curse + +default ast_ev_imperio_training_t1_e1 = Event(id="ast_ev_imperio_training_t1_e1", label="ag_st_imperio_E1", req="game.daytime==False") +default ast_ev_imperio_training_t1_e2 = Event(id="ast_ev_imperio_training_t1_e2", label="ag_st_imperio_E2", req="game.daytime==False") +default ast_ev_imperio_training_t1_e3 = Event(id="ast_ev_imperio_training_t1_e3", label="ag_st_imperio_E3", req="game.daytime==False") +default ast_ev_imperio_training_t1_e4 = Event(id="ast_ev_imperio_training_t1_e4", label="ag_st_imperio_E4", req="game.daytime==False") +default ast_ev_imperio_training_t1_e5 = Event(id="ast_ev_imperio_training_t1_e5", label="ag_st_imperio_E5", req="game.daytime==False") + +default ast_ev_imperio_training_t1_e1_hub = Event(id="ast_ev_imperio_training_t1_e1_hub", label="ag_st_imperio", req="states.ast.tier >= 1", queue="ast_eventqueue_imperio_training_tonks", autoenqueue=True, autodequeue=False, subevents=["ast_ev_imperio_training_t1_e1"]) +default ast_ev_imperio_training_t1_e2_hub = Event(id="ast_ev_imperio_training_t1_e2_hub", label="ag_st_imperio", req="states.ast.tier >= 1", queue="ast_eventqueue_imperio_training_tonks", autoenqueue=True, autodequeue=False, subevents=["ast_ev_imperio_training_t1_e2"]) +default ast_ev_imperio_training_t1_e3_hub = Event(id="ast_ev_imperio_training_t1_e3_hub", label="ag_st_imperio", req="states.ast.tier >= 1", queue="ast_eventqueue_imperio_training_tonks", autoenqueue=True, autodequeue=False, subevents=["ast_ev_imperio_training_t1_e3"]) +default ast_ev_imperio_training_t1_e4_hub = Event(id="ast_ev_imperio_training_t1_e4_hub", label="ag_st_imperio", req="states.ast.tier >= 1", queue="ast_eventqueue_imperio_training_tonks", autoenqueue=True, autodequeue=False, subevents=["ast_ev_imperio_training_t1_e4"]) +default ast_ev_imperio_training_t1_e5_hub = Event(id="ast_ev_imperio_training_t1_e5_hub", label="ag_st_imperio", req="states.ast.tier >= 1", queue="ast_eventqueue_imperio_training_tonks", autoenqueue=True, autodequeue=False, subevents=["ast_ev_imperio_training_t1_e5"]) + +default ast_ev_imperio_training_susan_t1_e1 = Event(id="ast_ev_imperio_training_susan_t1_e1", label="ag_se_imperio_sb_E1", req="states.ast.tier >= 1", queue="ast_eventqueue_imperio_training_susan", autoenqueue=True, autodequeue=False) +default ast_ev_imperio_training_susan_t1_e2 = Event(id="ast_ev_imperio_training_susan_t1_e2", label="ag_se_imperio_sb_E2", req="states.ast.tier >= 1", queue="ast_eventqueue_imperio_training_susan", autoenqueue=True, autodequeue=False) +default ast_ev_imperio_training_susan_t1_e3 = Event(id="ast_ev_imperio_training_susan_t1_e3", label="ag_se_imperio_sb_E3", req="states.ast.tier >= 1", queue="ast_eventqueue_imperio_training_susan", autoenqueue=True, autodequeue=False) + +define astoria_spells = [ + ("ast_eventqueue_imperio_training_tonks", "Im-perv-ious with Tonks!"), + ("ast_eventqueue_imperio_training_susan", "Im-perv-ious with Susan!"), +] \ No newline at end of file diff --git a/game/scripts/characters/astoria/summon.rpy b/game/scripts/characters/astoria/summon.rpy index 77821161..a2e76321 100644 --- a/game/scripts/characters/astoria/summon.rpy +++ b/game/scripts/characters/astoria/summon.rpy @@ -19,7 +19,6 @@ label summon_astoria: ast "" (xpos="base",ypos="base") menu: - # Talk "-Talk-" (icon="interface/icons/small/talk.webp"): if states.ast.mood > 0: @@ -29,17 +28,14 @@ label summon_astoria: call astoria_chitchat jump astoria_talk - # Spells - "-Spells-" (icon="interface/icons/small/spell.webp"): + "-Sexual favours-" (icon="interface/icons/small/condom.webp"): # TODO: add 'if states.ast.favors_unlocked' once her story is looked over again if states.ast.mood != 0: ast "I don't want to today..." ("annoyed", "narrow", "base", "R") - jump astoria_requests - else: - jump astoria_spells + nar "Astoria is upset with you." - "-Sexual favours-" (icon="interface/icons/small/condom.webp", style="disabled") if states.cho.favors_unlocked: - $ TBA_message() - jump astoria_requests + jump astoria_requests + + jump astoria_favor_menu # Wardrobe "-Wardrobe-" (icon="interface/icons/small/wardrobe.webp") if states.ast.wardrobe_unlocked: @@ -47,7 +43,7 @@ label summon_astoria: call wardrobe jump astoria_requests - "-Hidden-" (style="disabled") if not states.ast.wardrobe_unlocked: + "-Wardrobe-" (style="disabled") if not states.ast.wardrobe_unlocked: nar "You haven't unlocked this feature yet." jump astoria_requests @@ -69,61 +65,6 @@ label summon_astoria: jump end_astoria_event - - -label astoria_spells: - call update_astoria_spells - - python: - spell_menu = [] - - for i in ag_spell_list: - if not i.is_complete(): # Not trained yet. - if game.daytime and not states.ton.busy: - spell_menu.append(i.get_menu_item()) - else: - spell_menu.append(i.get_menu_item(disabled=True)) - - else: # Spell trained and unlocked. - spell_menu.append(i.get_menu_item()) - - spell_menu.append(("-Never mind-", "nvm")) - - result = renpy.display_menu(spell_menu) - - if result == "nvm": - jump astoria_requests - elif result == "block": - call block_spell_training - jump astoria_spells - elif result == "vague": - call spell_not_known - jump astoria_spells - elif result == "busy": - call person_is_busy - jump astoria_spells - else: - $ renpy.jump(result) - - -label block_spell_training: - if not game.daytime: - gen "It's too late for that..." ("base", xpos="far_left", ypos="head") - elif states.ton.busy: - gen "I don't think Tonks has time for that right now..." ("base", xpos="far_left", ypos="head") - return - -label person_is_busy: - if game.daytime: - gen "Looks like she's taking classes right now." ("base", xpos="far_left", ypos="head") - else: - gen "Seems like she's already asleep." ("base", xpos="far_left", ypos="head") - return - -label spell_not_known: - nar "You haven't unlocked this spell yet." - return - label astoria_talk: menu: "-Ask about Slytherin Quidditch Team-" (icon="interface/icons/small/quidditch.webp") if states.cho.tier == 2 and states.cho.ev.quidditch.lock_practice and states.cho.ev.quidditch.e6_complete and not states.cho.ev.quidditch.e8_complete: @@ -313,3 +254,63 @@ label astoria_talk: "-Never mind-": jump astoria_requests + +label astoria_favor_menu: + menu: + # "-Level Up-" (icon="interface/icons/small/levelup.webp") if ast_level_up != None: + # call luna_level_up(tier=ast_level_up) + # jump luna_favor_menu + + "-Personal Favours-" (icon="interface/icons/small/heart_red.webp", style="disabled"): + # call tutorial("hearts") + + label .personal: + + call not_available + + # $ result = show_events_menu(astoria_favors) + + # if result in ("disabled", "noncompliant"): + # "You haven't unlocked this favour opportunity yet." + # jump .personal + # elif result == "exit": + # jump astoria_favor_menu + # else: + # $ result.start() + + jump astoria_favor_menu + + "-Public Requests-" (icon="interface/icons/small/star_yellow.webp", style="disabled"): + label .requests: + + call not_available + + # $ result = show_events_menu(hermione_requests) + + # if result in ("disabled", "noncompliant"): + # "You haven't unlocked this request opportunity yet." + # jump .requests + # elif result == "exit": + # jump .skip_points_check + # else: + # $ result.start() + + jump astoria_favor_menu + + "-Spell Training-" (icon="interface/icons/small/spell.webp"): + call tutorial("hearts") + + label .spells: + + $ result = show_events_menu(astoria_spells) + + if result in ("disabled", "noncompliant"): + "You haven't unlocked this spell training opportunity yet." + jump .spells + elif result == "exit": + jump astoria_favor_menu + else: + $ result.start() + + "-Never mind-": + jump astoria_requests \ No newline at end of file diff --git a/game/scripts/characters/astoria/vars.rpy b/game/scripts/characters/astoria/vars.rpy index 4c406be6..8c079d9d 100644 --- a/game/scripts/characters/astoria/vars.rpy +++ b/game/scripts/characters/astoria/vars.rpy @@ -32,6 +32,8 @@ default states.ast.ev.intro.e2_ask_snape = False # Tell Snape to look for her. H default states.ast.ev.intro.e2_complete = False # Asked both. default states.ast.ev.intro.e3_complete = False # Hermione finds her. default states.ast.ev.intro.e4_complete = False # Astoria unlocked. +default states.ast.ev.imperio_with_tonks.completed_once = False +default states.ast.ev.imperio_with_susan.completed_once = False # Names diff --git a/game/scripts/characters/cho/events/requests/spy_on_the_girls.rpy b/game/scripts/characters/cho/events/requests/spy_on_the_girls.rpy index bb8335eb..8a0c9df0 100644 --- a/game/scripts/characters/cho/events/requests/spy_on_the_girls.rpy +++ b/game/scripts/characters/cho/events/requests/spy_on_the_girls.rpy @@ -253,7 +253,7 @@ label cc_pr_spy_girls_T3_alicia: gen "Hypnosis? Now that sounds completely absurd." ("base", xpos="far_left", ypos="head") # Has player started imperius curse training? - if ag_st_imperio.points > 0: + if states.ast.ev.imperio_with_tonks.completed_once: gen "She's not using that im-perv-ius curse, is she?" ("base", xpos="far_left", ypos="head") cho "The Imperius curse?" ("open", "narrow", "raised", "mid") gen "That's what I said..." ("base", xpos="far_left", ypos="head") diff --git a/game/scripts/characters/cho/summon.rpy b/game/scripts/characters/cho/summon.rpy index ba588189..bfb16233 100644 --- a/game/scripts/characters/cho/summon.rpy +++ b/game/scripts/characters/cho/summon.rpy @@ -127,7 +127,7 @@ label summon_cho: call wardrobe jump cho_requests - "-Hidden-" (style="disabled") if not states.cho.wardrobe_unlocked: + "-Wardrobe-" (style="disabled") if not states.cho.wardrobe_unlocked: nar "You haven't unlocked this feature yet." jump cho_requests diff --git a/game/scripts/characters/hermione/events/favors/suck_it.rpy b/game/scripts/characters/hermione/events/favors/suck_it.rpy index 9dd1179e..187a55c9 100644 --- a/game/scripts/characters/hermione/events/favors/suck_it.rpy +++ b/game/scripts/characters/hermione/events/favors/suck_it.rpy @@ -1161,14 +1161,15 @@ label hg_hidden_blowjob_tonks: her "{size=-4}(.......... *Slurp*... *Slurp*... *Gulp*...){/size}" ("open_wide_tongue", "narrow", "worried", "stare") ton "Who is she?" - if ag_st_imperio.tier >= 3: - ton "Is it the blonde girl? Or..." - her "{size=-4}(Blonde!?! *Slurp*... *Slurp*... *Gulp*...){/size}" ("open_wide_tongue", "squint", "worried", "up") - her "{size=-4}(*Slurp*... *Slurp*... *Slurp*... *Gulp*...){/size}" ("open_wide_tongue", "narrow", "annoyed", "up") - elif ag_st_imperio.tier >= 5: - ton "You aren't shagging that busty red head, are you?" - her "{size=-4}(Busty who? *Slurp*... *Slurp*... *Gulp*...){/size}" ("open_wide_tongue", "squint", "worried", "up") - her "{size=-4}(Is she talking about Susan? *Slurp*... *Slurp*... *Gulp*...){/size}" ("open_wide_tongue", "narrow", "annoyed", "up") + random: + block if states.ast.ev.imperio_with_tonks.completed_once: + ton "Is it the blonde girl? Or..." + her "{size=-4}(Blonde!?! *Slurp*... *Slurp*... *Gulp*...){/size}" ("open_wide_tongue", "squint", "worried", "up") + her "{size=-4}(*Slurp*... *Slurp*... *Slurp*... *Gulp*...){/size}" ("open_wide_tongue", "narrow", "annoyed", "up") + block if states.ast.ev.imperio_with_susan.completed_once: + ton "You aren't shagging that busty red head, are you?" + her "{size=-4}(Busty who? *Slurp*... *Slurp*... *Gulp*...){/size}" ("open_wide_tongue", "squint", "worried", "up") + her "{size=-4}(Is she talking about Susan? *Slurp*... *Slurp*... *Gulp*...){/size}" ("open_wide_tongue", "narrow", "annoyed", "up") gen "That's none of your concern, Miss Tonks!" ("base", xpos="far_left", ypos="head") gen "You may leave now..." ("base", xpos="far_left", ypos="head") diff --git a/game/scripts/characters/susan/summon.rpy b/game/scripts/characters/susan/summon.rpy index 4af0ac9d..b902a645 100644 --- a/game/scripts/characters/susan/summon.rpy +++ b/game/scripts/characters/susan/summon.rpy @@ -42,7 +42,7 @@ label summon_susan: call wardrobe jump susan_requests - "-Hidden-" (style="disabled") if not states.sus.wardrobe_unlocked: + "-Wardrobe-" (style="disabled") if not states.sus.wardrobe_unlocked: nar "You haven't unlocked this feature yet." jump susan_requests diff --git a/game/scripts/characters/tonks/events/clothing.rpy b/game/scripts/characters/tonks/events/clothing.rpy index 867eb8c5..fe4a31e5 100644 --- a/game/scripts/characters/tonks/events/clothing.rpy +++ b/game/scripts/characters/tonks/events/clothing.rpy @@ -36,7 +36,7 @@ label tonks_summon_setup: ton @ cheeks heavy_blush hair horny "Oh, I would love for them to see me like this..." ("horny", "narrow", "shocked", "R") ton @ cheeks heavy_blush hair horny "Why don't you invite one to your office?" ("soft", "narrow", "shocked", "mid") - if ag_st_imperio.counter > 0: + if states.ast.ev.imperio_with_tonks.completed_once: gen "You'd like that wouldn't you..." ("base", xpos="far_left", ypos="head") ton @ cheeks heavy_blush hair horny "Very much!" ("base", "narrow", "base", "mid") gen "Like that Astoria girl you're so infatuated with?" ("base", xpos="far_left", ypos="head") diff --git a/game/scripts/characters/tonks/events/clothing_old.txt b/game/scripts/characters/tonks/events/clothing_old.txt index b54079be..13c89679 100644 --- a/game/scripts/characters/tonks/events/clothing_old.txt +++ b/game/scripts/characters/tonks/events/clothing_old.txt @@ -56,7 +56,7 @@ label tonks_summon_setup: ton "Oh, I would love for them to see me like this..." ("horny", "base", "raised", "mid") ton "Why don't you invite one to your office?" ("horny", "base", "base", "mid") - if ag_st_imperio.counter > 0: + if states.ast.ev.imperio_with_tonks.completed_once: gen "You'd like that wouldn't you..." ("base", xpos="far_left", ypos="head") ton "Very much!" gen "Like that Astoria girl you're so infatuated with?" ("base", xpos="far_left", ypos="head") diff --git a/game/scripts/characters/tonks/summon.rpy b/game/scripts/characters/tonks/summon.rpy index d3953977..3148891f 100644 --- a/game/scripts/characters/tonks/summon.rpy +++ b/game/scripts/characters/tonks/summon.rpy @@ -59,7 +59,7 @@ label summon_tonks: $ tonks_haircolor = [c for c in tonks.get_equipped("hair").color] jump tonks_requests - "-Hidden-" (style="disabled") if not states.ton.wardrobe_unlocked: + "-Wardrobe-" (style="disabled") if not states.ton.wardrobe_unlocked: nar "You haven't unlocked this feature yet." jump tonks_requests diff --git a/game/scripts/events/quests.rpy b/game/scripts/events/quests.rpy index 863b8d62..8cd82d06 100644 --- a/game/scripts/events/quests.rpy +++ b/game/scripts/events/quests.rpy @@ -234,12 +234,6 @@ label quests: if states.sus.ev.intro.e1_complete and not states.ast.ev.intro.e1_complete: jump astoria_intro_E1 - python: - for i in ag_spell_list: # Spell Training - if i.inProgress: - i.inProgress = False - i.start() - $ play_potion_return("astoria") # diff --git a/game/scripts/interface/stats.rpy b/game/scripts/interface/stats.rpy index b4c3509b..06987cab 100644 --- a/game/scripts/interface/stats.rpy +++ b/game/scripts/interface/stats.rpy @@ -433,9 +433,9 @@ screen stats_menuitem(xx, yy): pass elif current_category == "Astoria": pass - elif current_category == "Susan": - use text_stat("Cursed with Imperio:") - use text_stat("- ", " times -", ag_se_imperio_sb.counter) + # elif current_category == "Susan": + # use text_stat("Cursed with Imperio:") + # use text_stat("- ", " times -", ag_se_imperio_sb.counter) screen stat_bar(steps, top_text, bottom_text, stat_number, top_padding=20): sensitive False