diff --git a/game/scripts/animations/common.rpy b/game/scripts/animations/common.rpy index e02d1135..2e5d1cf4 100644 --- a/game/scripts/animations/common.rpy +++ b/game/scripts/animations/common.rpy @@ -399,36 +399,3 @@ image menu_ani: contains: alpha 0.8 "#000" - -# Transitions -init offset = -1 - -define d1 = Dissolve(0.1) -define d2 = Dissolve(0.2) -define d3 = Dissolve(0.3) -define d4 = Dissolve(0.4) -define d5 = Dissolve(0.5) -define d6 = Dissolve(0.6) -define d7 = Dissolve(0.7) -define d8 = Dissolve(0.8) -define d9 = Dissolve(0.9) - -define f1 = Fade(0.1, 0.0, 0.1) -define f2 = Fade(0.2, 0.0, 0.2) -define f3 = Fade(0.3, 0.0, 0.3) - -define flash = Fade(0.1, 0.0, 0.5, color="#fff") -define flashbulb = Fade(0.2, 0.0, 0.8, color='#fff') -define flashbb = Fade(0.2, 0.0, 0.8, color='#000') -define flashblood = Fade(0.2, 0.0, 0.8, color='#f02424') -define kissiris = Fade(0.2, 0.0, 0.8, color='#fb8dc8') -define black_magic = Fade(0.2, 0.0, 0.5, color='#7f3590') -define blackfade = Fade(0.9, 0.5, 1, color='#000000') - -define morph = ComposeTransition(Dissolve(0.9), before=Fade(0.1, 0.5, 0.5, color="#fff"), after=Dissolve(0.5)) -define teleport = ImageDissolve("id_teleport.webp", 1.0, 0) - -define vpunch_repeat = Move((0, 10), (0, -10), .5, bounce=True, repeat=True, delay=4.5) - -define faderight = ImageDissolve("interface/transitions/faderight.webp", 1.0) -define fadeleft = ImageDissolve("interface/transitions/faderight.webp", 1.0, reverse=True) diff --git a/game/scripts/characters.rpy b/game/scripts/characters.rpy index 5713e04b..78847ad9 100644 --- a/game/scripts/characters.rpy +++ b/game/scripts/characters.rpy @@ -8,6 +8,13 @@ init -1401 python: # Default icon adv.show_args["icon"] = "narrator" + def narrator_fade(ev, interact=True, **kwargs): + if ev == "begin": + chars = [f"{i}_main" for i in CHARACTERS] + ["snape_main", "genie_main"] + renpy.show("fade", zorder=15, behind=chars) + elif ev == "end": + renpy.hide("fade") + # Characters define m = Character(None, show_side_image=Image("characters/genie/mage.webp", xpos=20), show_icon="genie") define g2 = Character(None, show_side_image=Image("characters/genie/mage2.webp", xpos=20), show_icon="genie") @@ -42,8 +49,8 @@ define cra = Character("Crabbe") define goy = Character("Goyle") define maf = Character("Madam Mafkin", show_side_image=Image("characters/misc/mafkin.webp", xalign=1.0)) define myr = Character("Moaning Myrtle") -define faw = Character('Fawkes', show_icon="fawkes") -define abe = Character('Aberforth') +define faw = Character("Fawkes", show_icon="fawkes") +define abe = Character("Aberforth") # Non-important characters define fem = Character("Female Student") @@ -55,7 +62,7 @@ define sly2 = Character("Another Slytherin student") define qcr = Character("Quidditch Crowd") # Special -define nar = Character("Narrator", show_side_image=Image("characters/misc/narrator.webp"), what_prefix=">", screen="say_narrator") +define nar = Character("", what_prefix=">", show_icon="narrator", callback=narrator_fade) define anon = Character("???") # Dumbledore diff --git a/game/scripts/characters/hermione/events/forest.rpy b/game/scripts/characters/hermione/events/forest.rpy index 5117ce40..bdc5a8e2 100644 --- a/game/scripts/characters/hermione/events/forest.rpy +++ b/game/scripts/characters/hermione/events/forest.rpy @@ -1,17 +1,19 @@ label hermione_map_BJ: - stop weather + stop weather fadeout 1 $ renpy.call('forest_BJ_'+str(forest_BJ_progress)) $ hermione_busy = True call set_her_map_location("gryffindor_room") + stop background fadeout 1 + jump return_office label forest_BJ_1: #BJ in the forest interrupted by moaning myrtle show screen blkfade with d3 - play music "music/night.ogg" fadein 1 + play background "sounds/night.ogg" fadein 1 play sound "sounds/steps_grass.ogg" nar "Sure enough, the map seems to {b}magically{/b} guide you to the girl, alone in the midnight air..." @@ -141,7 +143,7 @@ label forest_BJ_2: show screen blkfade with d3 - play music "music/night.ogg" fadein 1 + play background "sounds/night.ogg" fadein 1 play sound "sounds/steps_grass.ogg" $ hermione.wear("all") @@ -301,7 +303,7 @@ label forest_BJ_3: #Complete BJ with Myrtle appearing after the cumshot show screen blkfade with d3 - play music "music/night.ogg" fadein 1 + play background "sounds/night.ogg" fadein 1 play sound "sounds/steps_grass.ogg" $ hermione.wear("all") @@ -556,7 +558,7 @@ label forest_BJ_4: #Moaning myrtle dirty talk (Repeatable) (Threaten to expose) show screen blkfade with d3 - play music "music/night.ogg" fadein 1 + play background "sounds/night.ogg" fadein 1 play sound "sounds/steps_grass.ogg" $ hermione.wear("top") diff --git a/game/scripts/events/ending.rpy b/game/scripts/events/ending.rpy index 14fb0462..666c04a8 100644 --- a/game/scripts/events/ending.rpy +++ b/game/scripts/events/ending.rpy @@ -301,7 +301,7 @@ label ball_ending_E1: # Outskirts of Hogwarts centered "{size=+7}{color=#cbcbcb}Outskirts of Hogwarts{/color}{/size}" - play music "music/night.ogg" fadein 1 + play background "sounds/night.ogg" fadein 1 $ dynamic_cg("ball", "173") @@ -358,8 +358,6 @@ label ball_ending_E1: hide screen blkfade with d9 - play music "sounds/night.ogg" fadein 1 fadeout 1 #NIGHT SOUNDS. - gen "....................." ("base", xpos="far_left", ypos="head") $ dynamic_cg("ball", "171", "172") gen "No, I can't just leave like this!" ("base", xpos="far_left", ypos="head") @@ -373,7 +371,7 @@ label ball_ending_E1: hide screen dynamic_cg call blkfade - stop music fadeout 1.0 + stop background fadeout 1.0 if not persistent.game_complete: # First play-through @@ -2662,7 +2660,7 @@ label ball_ending_E2: pause.3 call hide_blkfade - play music "music/night.ogg" fadein 1 + play background "sounds/night.ogg" fadein 1 call ctc play sound "sounds/steps_grass.ogg" @@ -2707,7 +2705,7 @@ label ball_ending_E2: with d7 $ achievements.unlock("ending") - stop music fadeout 1.0 + stop background fadeout 1.0 if public_whore_ending: centered "{size=+7}{color=#cbcbcb}Congratulations on completing the game!{/color}{/size}\n\n{color=#cbcbcb}This is one of two possible endings (public whore){/color}" @@ -2732,7 +2730,6 @@ label ball_ending_E2: hide screen dynamic_cg hide screen blktone - stop background stop weather hide screen notes hide screen bld1 diff --git a/game/scripts/events/ending_after.rpy b/game/scripts/events/ending_after.rpy index 0ef2035d..1784f77e 100644 --- a/game/scripts/events/ending_after.rpy +++ b/game/scripts/events/ending_after.rpy @@ -81,7 +81,7 @@ label ending_after: # Genie stands in the forest before he's about to leave $ dynamic_cg("ball", "171", "172", "173") - play music "music/night.ogg" fadein 1 + play background "sounds/night.ogg" fadein 1 pause.5 call hide_blkfade @@ -91,7 +91,7 @@ label ending_after: # Record scratch, music stops $ dynamic_cg("ball", "171", "172") - stop music fadeout 1.5 + stop background fadeout 1.5 play sound "sounds/scratch.ogg" with hpunch @@ -99,7 +99,7 @@ label ending_after: gen "Why leave now when I'm the king of a castle filled with women ready to serve!?" ("angry", xpos="far_left", ypos="head") # Heading back to the castle - play music "music/night.ogg" fadein 1 + play background "sounds/night.ogg" fadein 1 call blkfade hide screen dynamic_cg @@ -109,7 +109,7 @@ label ending_after: pause .5 nar "You hastily make your way back to the castle, wondering what kind of impulse made you want to leave in the first place..." - stop music fadeout 3 + stop background fadeout 3 if public_whore_ending: play music "music/court-of-the-queen-by-kevin-macleod.ogg" fadein 1 fadeout 1 diff --git a/game/scripts/gui/say.rpy b/game/scripts/gui/say.rpy index d817743d..3bb138df 100644 --- a/game/scripts/gui/say.rpy +++ b/game/scripts/gui/say.rpy @@ -20,11 +20,6 @@ screen nvl(dialogue, items=None): # # https://www.renpy.org/doc/html/screen_special.html#say -screen say_narrator(**kwargs): - add "#00000080" - - use say(**kwargs) - screen say(who, what, side_image=None, icon=None): zorder 31 @@ -39,6 +34,10 @@ screen say(who, what, side_image=None, icon=None): else: add SideImage() + # TODO: While this works, there might be a better way to add effects based on contents of the dialogue. + if what.startswith("(") and what.endswith(")") and not renpy.showing("cg"): + add "fade_gradient" + window id "window": style gui.theme("say_window") diff --git a/game/scripts/minigames/mirror/events/suck_and_run.rpy b/game/scripts/minigames/mirror/events/suck_and_run.rpy index b3cdf798..ab03da44 100644 --- a/game/scripts/minigames/mirror/events/suck_and_run.rpy +++ b/game/scripts/minigames/mirror/events/suck_and_run.rpy @@ -181,7 +181,7 @@ label suck_and_run: hide screen bld1 call gen_chibi("sit_behind_desk") - play music "music/night.ogg" fadein 1 + play music "sounds/night.ogg" fadein 1 # Intentional, because background channel is already preoccupied show screen add_overlay hide screen blkfade diff --git a/game/scripts/utility/transitions.rpy b/game/scripts/utility/transitions.rpy new file mode 100644 index 00000000..b2eb0b0f --- /dev/null +++ b/game/scripts/utility/transitions.rpy @@ -0,0 +1,35 @@ + +image fade = "#00000080" +image fade_gradient = "interface/bld.webp" + +# Transitions +init offset = -1 +define d1 = Dissolve(0.1) +define d2 = Dissolve(0.2) +define d3 = Dissolve(0.3) +define d4 = Dissolve(0.4) +define d5 = Dissolve(0.5) +define d6 = Dissolve(0.6) +define d7 = Dissolve(0.7) +define d8 = Dissolve(0.8) +define d9 = Dissolve(0.9) + +define f1 = Fade(0.1, 0.0, 0.1) +define f2 = Fade(0.2, 0.0, 0.2) +define f3 = Fade(0.3, 0.0, 0.3) + +define flash = Fade(0.1, 0.0, 0.5, color="#fff") +define flashbulb = Fade(0.2, 0.0, 0.8, color='#fff') +define flashbb = Fade(0.2, 0.0, 0.8, color='#000') +define flashblood = Fade(0.2, 0.0, 0.8, color='#f02424') +define kissiris = Fade(0.2, 0.0, 0.8, color='#fb8dc8') +define black_magic = Fade(0.2, 0.0, 0.5, color='#7f3590') +define blackfade = Fade(0.9, 0.5, 1, color='#000000') + +define morph = ComposeTransition(Dissolve(0.9), before=Fade(0.1, 0.5, 0.5, color="#fff"), after=Dissolve(0.5)) +define teleport = ImageDissolve("id_teleport.webp", 1.0, 0) + +define vpunch_repeat = Move((0, 10), (0, -10), .5, bounce=True, repeat=True, delay=4.5) + +define faderight = ImageDissolve("interface/transitions/faderight.webp", 1.0) +define fadeleft = ImageDissolve("interface/transitions/faderight.webp", 1.0, reverse=True)