360 lines
11 KiB
Plaintext
360 lines
11 KiB
Plaintext
# Hide all character images (not chibi)
|
|
label hide_characters:
|
|
hide hermione_main
|
|
hide luna_main
|
|
hide cho_main
|
|
hide astoria_main
|
|
hide susan_main
|
|
hide tonks_main
|
|
hide snape_main
|
|
hide screen genie_main
|
|
# Do not add transitions. Use one after return.
|
|
return
|
|
|
|
label hide_screens:
|
|
# Remove all displayables on layer 'screens'
|
|
$ renpy.scene("screens")
|
|
return
|
|
|
|
label update_interface_color(color=None):
|
|
if color in ["gold", "gray"]:
|
|
$ interface_color = color
|
|
elif game.daytime:
|
|
$ interface_color = "gold"
|
|
else:
|
|
$ interface_color = "gray"
|
|
|
|
return
|
|
|
|
label stop_sound_effects:
|
|
stop bg_sounds fadeout 0.5
|
|
stop weather fadeout 0.5
|
|
return
|
|
|
|
# Reset menu
|
|
label reset_menu_position:
|
|
|
|
$ menu_x = 0.5
|
|
$ menu_y = 0.6
|
|
|
|
return
|
|
|
|
label bld(action=None):
|
|
if action == "hide":
|
|
hide screen bld1
|
|
else:
|
|
show screen bld1
|
|
with d3
|
|
|
|
return
|
|
|
|
label blktone:
|
|
show screen bld1 # blktone looks stupid without bld1
|
|
show screen blktone
|
|
with d5
|
|
|
|
return
|
|
|
|
label hide_blktone:
|
|
hide screen blktone
|
|
with d5
|
|
|
|
return
|
|
|
|
label blktone_top:
|
|
show screen bld1 # blktone looks stupid without bld1
|
|
show screen blktone # Has higher zorder than normal blktone
|
|
with d5
|
|
|
|
return
|
|
|
|
label hide_blktone_top:
|
|
hide screen blktone
|
|
with d5
|
|
|
|
return
|
|
|
|
label blkfade:
|
|
hide screen bld1
|
|
hide screen blktone
|
|
show screen blkfade
|
|
with d5
|
|
pause.2
|
|
|
|
return
|
|
|
|
label hide_blkfade:
|
|
hide screen blkfade
|
|
with d5
|
|
|
|
return
|
|
|
|
label ctc:
|
|
show screen ctc
|
|
with d3
|
|
pause
|
|
hide screen ctc
|
|
with d1
|
|
|
|
return
|
|
|
|
label play_sound(sound=""):
|
|
|
|
# Objects
|
|
if sound in ["knock", "knocking"]: # knocking
|
|
$ renpy.play('sounds/knocking.ogg')
|
|
elif sound in ["knock2", "knocking2"]: # knocking
|
|
$ renpy.play('sounds/knocking2.ogg')
|
|
elif sound == "door":
|
|
$ renpy.play('sounds/door.ogg')
|
|
elif sound in ["lock","unlock"]: # lock
|
|
$ renpy.play('sounds/09_lock.ogg')
|
|
elif sound in ["desk","climb_desk"]: # climb_desk
|
|
$ renpy.play('sounds/08_hop_on_desk.ogg')
|
|
elif sound == "owl":
|
|
play sound "sounds/owl.ogg"
|
|
|
|
# Ambience
|
|
elif sound == "applause":
|
|
$ renpy.play('sounds/applause01.ogg')
|
|
|
|
# Affection
|
|
elif sound in ["gulp", "gulping", "swallow", "swallowing"]: # gulp
|
|
$ renpy.play('sounds/gulp.ogg')
|
|
elif sound == "slap_1":
|
|
$ renpy.play('sounds/slap.ogg')
|
|
elif sound == "slap": # slap_2
|
|
$ renpy.play('sounds/slap_02.ogg')
|
|
elif sound == "slap_3":
|
|
$ renpy.play('sounds/slap_03.ogg')
|
|
elif sound in ["spit", "spitting"]: # spit
|
|
$ renpy.play('sounds/spit.ogg')
|
|
elif sound in ["kick", "kicking", "bump"]: # kick
|
|
$ renpy.play('sounds/kick.ogg')
|
|
elif sound in ["kiss", "kissing"]: # kiss
|
|
$ renpy.play('sounds/kiss.ogg')
|
|
elif sound in ["insert", "inserting", "goo"]: # insert
|
|
$ renpy.play('sounds/gltch.ogg')
|
|
elif sound == "plop":
|
|
$ renpy.play('sounds/plop.ogg')
|
|
elif sound in ["pop", "bottle"]: # pop
|
|
$ renpy.play('sounds/bottle.ogg')
|
|
elif sound == "snore":
|
|
$ renpy.play('sounds/snore1.ogg')
|
|
elif sound == "snore_quiet":
|
|
$ renpy.play('sounds/snore2.ogg')
|
|
elif sound == "snore_loud":
|
|
$ renpy.play('sounds/snore3.ogg')
|
|
elif sound == "giggle":
|
|
$ renpy.sound.play("sounds/giggle2_loud.ogg")
|
|
elif sound == "gasp":
|
|
$ renpy.sound.play("sounds/MaleGasp.ogg")
|
|
|
|
# Magic
|
|
elif sound == "spell":
|
|
$ renpy.play('sounds/magic2.ogg')
|
|
elif sound == "morph":
|
|
$ renpy.sound.play("sounds/magic3.ogg")
|
|
elif sound == "magic":
|
|
$ renpy.play('sounds/magic4.ogg')
|
|
|
|
# Movement
|
|
elif sound == "footsteps":
|
|
$ renpy.play('sounds/footsteps.ogg')
|
|
elif sound == "walking":
|
|
$ renpy.play('sounds/run_04.ogg')
|
|
elif sound == "running":
|
|
$ renpy.play('sounds/run_03.ogg')
|
|
elif sound == "sprinting":
|
|
$ renpy.play('sounds/run_02.ogg')
|
|
elif sound in ["walking_on_grass", "grass"]: # walking_grass
|
|
$ renpy.play('sounds/steps_grass.ogg')
|
|
|
|
# Interface
|
|
elif sound == "scroll":
|
|
$ renpy.play('sounds/scroll.ogg')
|
|
elif sound in ["equip", "equip_inventory", "cloth"]: # equip
|
|
$ renpy.play('sounds/cloth_sound.ogg')
|
|
|
|
# Misc
|
|
elif sound == "scratch":
|
|
$ renpy.play('sounds/scratch.ogg')
|
|
elif sound == "shatter":
|
|
$ renpy.play('sounds/glass_shatter.ogg')
|
|
elif sound in ["glass_break","glass"]:
|
|
$ renpy.play('sounds/glass_break.ogg')
|
|
|
|
# Undefined sounds fallback
|
|
elif renpy.loadable("sounds/{}.ogg".format(sound)):
|
|
$ renpy.play("sounds/{}.ogg".format(sound))
|
|
|
|
return
|
|
|
|
#TODO One keyword per theme (maybe define everything in a dictionary to simplify code further?)
|
|
label play_music(music="", fadein=1.0, fadeout=1.0):
|
|
if music == "stop":
|
|
stop music fadeout fadeout
|
|
return
|
|
|
|
|
|
# Character Music
|
|
if music in ["snape", "dark_fog"]: # snape
|
|
play music "music/Dark Fog.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music in ["hermione", "chipper_doodle"]: # hermione
|
|
play music "music/Chipper Doodle v2.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "cho":
|
|
play music "music/fuzzball-parade-by-kevin-macleod.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "astoria":
|
|
play music "music/KMcL_OpenThoseBrightEyes.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "susan":
|
|
play music "music/teddy-bear-waltz-by-kevin-macleod.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "tonks":
|
|
play music "music/scheming-weasel-slower-version-by-kevin-macleod.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "luna":
|
|
play music "music/wallpaper-by-kevin-macleod.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "playful_tension":
|
|
play music "music/(Orchestral) Playful Tension by Shadow16nh.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "silly":
|
|
play music "music/silly_fun_loop.ogg" fadein fadein fadeout fadeout if_changed
|
|
|
|
# Store Music
|
|
elif music == "weasley_store":
|
|
play music "music/weasley_store.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "clothing_store":
|
|
play music "music/clothing_store.ogg" fadein fadein fadeout fadeout if_changed
|
|
|
|
# Background Music
|
|
elif music == "day":
|
|
play music "music/Brittle Rille.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "night":
|
|
play music "music/Music for Manatees.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "night_outside":
|
|
play music "sounds/night.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "jazz":
|
|
play music "sounds/jazz take 2.ogg" fadein fadein fadeout fadeout if_changed
|
|
|
|
# Interface
|
|
elif music == "wardrobe":
|
|
play music "music/Spring_In_My_Step.ogg" fadein fadein fadeout fadeout if_changed
|
|
|
|
# Misc
|
|
elif music == "hitman":
|
|
play music "music/hitman.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "cardgame":
|
|
play music "music/Juhani_Junkala.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music in ["sad","grape_soda"]: # sad
|
|
play music "music/GrapeSodaIsFuckingRawbyjrayteam6.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "anguish":
|
|
play music "music/Anguish.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "trance":
|
|
play music "music/Under-the-Radar by PhobyAk.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "despair":
|
|
play music "music/Despair_by_erenik.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "agenda":
|
|
play music "music/hidden-agenda-by-kevin-macleod.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "intro":
|
|
play music "music/the-chamber-by-kevin-macleod.ogg" fadein fadein fadeout fadeout if_changed
|
|
elif music == "snape_office":
|
|
play music "music/the-other-side-of-the-door-by-kevin-macleod-from-filmmusic-io.ogg" fadein fadein fadeout fadeout if_changed
|
|
|
|
# Fallback
|
|
else:
|
|
python:
|
|
try:
|
|
renpy.music.play(filenames="music/"+music+".ogg", channel="music", loop=True, fadeout=1.0, fadein=1.0)
|
|
except IOError:
|
|
if config.developer:
|
|
raise Exception("Music not found: {}".format(music))
|
|
return
|
|
|
|
# Play day/night theme
|
|
label music_block:
|
|
if current_room == "main_room":
|
|
if game.daytime:
|
|
call play_music("day")
|
|
else:
|
|
call play_music("night")
|
|
elif current_room == "snape_office":
|
|
call play_music("snape_office")
|
|
return
|
|
|
|
label unlock_clothing(text="", item="interface/icons/box_blue_1.webp"):
|
|
|
|
$ menu_x = 0.5
|
|
$ menu_y = 0.75 #makes the menu lower so it isn't writing over the image.
|
|
|
|
show screen clothing_unlock(item)
|
|
show screen blktone
|
|
with d3
|
|
|
|
menu:
|
|
"[text]"
|
|
"-Done Reading-":
|
|
pass
|
|
|
|
hide screen clothing_unlock
|
|
hide screen blktone
|
|
with d3
|
|
|
|
$ item.unlock()
|
|
|
|
call reset_menu_position
|
|
|
|
return
|
|
|
|
|
|
label describe_mood(name, value):
|
|
call blktone
|
|
if 5 > value >= 1:
|
|
">[name] is a little upset with you..."
|
|
elif 10 > value >= 5:
|
|
">[name] is upset with you."
|
|
elif 20 > value >= 10:
|
|
">[name] is very upset with you."
|
|
elif 30 > value >= 20:
|
|
">[name] is mad at you."
|
|
elif 40 > value >= 30:
|
|
">[name] is very mad at you."
|
|
elif 50 > value >= 40:
|
|
">[name] is furious at you."
|
|
elif value >= 50:
|
|
">[name] hates your guts."
|
|
else:
|
|
">[name] is calm."
|
|
call hide_blktone
|
|
|
|
return
|
|
|
|
|
|
label describe_mood_after_gift(was_negative, mood, change):
|
|
if was_negative and mood == 0:
|
|
call notes
|
|
"She's no longer upset with you."
|
|
elif was_negative and change < 0:
|
|
"But she's still upset with you."
|
|
elif was_negative:
|
|
"She's still upset with you."
|
|
|
|
return
|
|
|
|
|
|
label notes():
|
|
$ renpy.play('sounds/win_04.ogg') #Not loud.
|
|
hide screen notes
|
|
show screen notes
|
|
return
|
|
|
|
label not_implemented():
|
|
"Not implemented."
|
|
return
|
|
|
|
label end_of_content():
|
|
$ renpy.choice_for_skipping()
|
|
|
|
"SilverStudioGames" "This concludes story progression for this character as of version [config.version].\nThere still may be side events and activities that you have missed, but main story won't progress past this point."
|
|
"SilverStudioGames" "We hope you have enjoyed yourself. Stay tuned for more in the future."
|
|
call notes
|
|
"> All stats have been maxed out. You can now use all of the wardrobe options."
|
|
|
|
return
|