2022-05-16 23:48:22 +00:00
label desk:
2024-04-25 19:14:25 +00:00
if states.env.day == 1:
2023-03-31 22:41:48 +00:00
if not states.gen.ev.intro.desk_examined:
$ states.gen.ev.intro.desk_examined = True
2022-05-16 23:48:22 +00:00
$ desk_OBJ.idle = "ch_gen sit_behind_desk"
call bld
gen "A desk of some sort..." ("base", xpos="far_left", ypos="head")
gen "And a letter..." ("base", xpos="far_left", ypos="head")
gen "Mailed to a certain \"Albus Dumbledore\"." ("base", xpos="far_left", ypos="head")
menu:
gen "Should I open it?" ("base", xpos="far_left", ypos="head")
"-Read the letter-":
call bld
gen "Of course I will!" ("grin", xpos="far_left", ypos="head")
"-Leave it be-":
call bld
gen "Hell no!" ("angry", xpos="far_left", ypos="head")
gen "Of course I will read it!" ("grin", xpos="far_left", ypos="head")
# First letter from Hermione
$ desk_OBJ.foreground = None
$ letter_hg_1.open()
gen "*Ehm*........." ("base", xpos="far_left", ypos="head")
gen "What?" ("base", xpos="far_left", ypos="head")
gen "................................." ("base", xpos="far_left", ypos="head")
else:
gen "I've already checked the desk." ("base", xpos="far_left", ypos="head")
2023-03-31 22:41:48 +00:00
if states.gen.ev.intro.bird_examined and states.gen.ev.intro.desk_examined and states.gen.ev.intro.cupboard_examined and states.gen.ev.intro.door_examined and states.gen.ev.intro.fireplace_examined:
2022-05-16 23:48:22 +00:00
jump genie_intro_E2
else:
jump main_room_menu
# TODO: Refactor. Low priority.
call update_character_map_locations
#Screens
2023-03-11 22:01:39 +00:00
play sound "sounds/scroll.ogg"
2023-11-14 22:53:14 +00:00
call screen desk_menu(_with_none=False) with d1
2022-05-16 23:48:22 +00:00
#Do NOT add a transition here!
2023-11-14 22:53:14 +00:00
$ renpy.dynamic(__choice = _return)
2022-05-16 23:48:22 +00:00
#Hermione
2023-11-15 00:03:03 +00:00
if __choice == "hermione":
if states.her.busy:
2024-04-25 18:49:09 +00:00
if states.env.daytime:
2023-11-15 00:03:03 +00:00
nar "Hermione is taking classes."
else:
nar "Hermione is already asleep."
2023-11-15 00:07:16 +00:00
jump main_room_menu
2022-05-16 23:48:22 +00:00
else:
2023-11-15 00:03:03 +00:00
if states.her.map_location == "forest":
nar "Hermione is currently at the Forbidden Forest.\n>Would you like to go there?"
menu:
"-Yes, pay her a visit-":
jump hermione_map_BJ
"-No, summon her to your office-":
pass
2022-05-16 23:48:22 +00:00
2023-11-15 00:03:03 +00:00
jump summon_hermione
2022-05-16 23:48:22 +00:00
#Luna
2023-11-15 00:03:03 +00:00
elif states.lun.unlocked and __choice == "luna":
if states.lun.busy:
2024-04-25 18:49:09 +00:00
if states.env.daytime:
2023-11-15 00:03:03 +00:00
nar "Luna is taking classes."
else:
nar "Luna is already asleep."
2023-11-15 00:07:16 +00:00
jump main_room_menu
2022-05-16 23:48:22 +00:00
else:
2023-11-15 00:03:03 +00:00
jump summon_luna
2022-05-16 23:48:22 +00:00
#Astoria
2023-11-15 00:03:03 +00:00
elif __choice == "astoria":
if states.ast.busy:
2024-04-25 18:49:09 +00:00
if states.env.daytime:
2023-11-15 00:03:03 +00:00
nar "Astoria is taking classes."
else:
nar "Astoria is already asleep."
2023-11-15 00:07:16 +00:00
jump main_room_menu
2023-11-15 00:03:03 +00:00
else: #Summoning after intro events done.
jump summon_astoria
2022-05-16 23:48:22 +00:00
#Susan
2023-11-15 00:03:03 +00:00
elif __choice == "susan":
if states.sus.busy:
2024-04-25 18:49:09 +00:00
if states.env.daytime:
2023-11-15 00:03:03 +00:00
nar "Susan is taking classes."
else:
nar "Susan is already asleep."
2023-11-15 00:07:16 +00:00
jump main_room_menu
2022-05-16 23:48:22 +00:00
else:
2023-11-15 00:03:03 +00:00
jump summon_susan
2022-05-16 23:48:22 +00:00
#Cho
2023-11-15 00:03:03 +00:00
elif __choice == "cho":
if states.cho.busy:
2024-04-25 18:49:09 +00:00
if states.env.daytime:
2023-11-15 00:03:03 +00:00
nar "Cho is taking classes."
else:
nar "Cho is already asleep."
2023-11-15 00:07:16 +00:00
jump main_room_menu
2022-05-16 23:48:22 +00:00
else:
2023-11-15 00:03:03 +00:00
jump summon_cho
2022-05-16 23:48:22 +00:00
#Snape
2023-11-15 00:03:03 +00:00
elif __choice == "snape":
if states.sna.busy:
nar "Professor Snape is unavailable."
2023-11-15 00:07:16 +00:00
jump main_room_menu
2022-05-16 23:48:22 +00:00
else:
2023-11-15 00:03:03 +00:00
jump summon_snape
2022-05-16 23:48:22 +00:00
#Tonks
2023-11-15 00:03:03 +00:00
elif __choice == "tonks":
if states.ton.busy:
nar "Tonks is unavailable."
2023-11-15 00:07:16 +00:00
jump main_room_menu
2022-05-16 23:48:22 +00:00
else:
2023-11-15 00:03:03 +00:00
jump summon_tonks
2022-05-16 23:48:22 +00:00
#Close
2023-11-14 22:16:26 +00:00
elif __choice == "Close":
2022-05-16 23:48:22 +00:00
jump main_room_menu
2023-11-14 22:16:26 +00:00
elif __choice in {"snape_office", "seventh_floor", "map_lake", "map_forest", "map_attic", "clothing_store", "item_store", "ravenclaw_dormitories", "gryffindor_dormitories"}:
2022-05-16 23:48:22 +00:00
call gen_chibi("stand", "desk", "base")
with d3
call gen_walk(action="leave", speed=1.5)
2023-11-14 23:57:25 +00:00
jump expression __choice
2022-05-16 23:48:22 +00:00
screen desk_menu():
tag desk_interface
zorder 5
2023-11-14 23:17:26 +00:00
default ball_hint = None
2022-05-16 23:48:22 +00:00
#Background
add "interface/desk/_bg_.webp"
2023-03-31 22:41:48 +00:00
if states.map.unlocked:
2022-05-16 23:48:22 +00:00
use map_screen
# Ugly hands
# add "interface/desk/_hands_.webp" xpos 0 ypos -30
2023-11-14 23:17:26 +00:00
use crystal_ball(ball_hint)
2022-05-16 23:48:22 +00:00
use watch
#Book
if item_store_intro_done:
2024-03-25 14:57:36 +00:00
add "interface/desk/book.webp" xalign 1.0 ypos 0
2022-05-16 23:48:22 +00:00
imagebutton:
ypos 0
xalign 1.0
idle "interface/desk/book.webp"
hover "interface/desk/book_hover.webp"
2023-11-14 23:17:26 +00:00
hovered SetScreenVariable("ball_hint", "book")
2022-05-16 23:48:22 +00:00
keysym "inventory"
2023-11-14 23:17:26 +00:00
unhovered SetScreenVariable("ball_hint", None)
2022-05-16 23:48:22 +00:00
action Return("inventory")
#Tissue Box
2024-03-25 14:57:36 +00:00
add "interface/desk/tissues.webp" xalign 1.0 ypos 320
2022-05-16 23:48:22 +00:00
imagebutton:
ypos 320
xalign 1.0
idle "interface/desk/tissues.webp"
hover "interface/desk/tissues_hover.webp"
2023-11-14 23:17:26 +00:00
hovered SetScreenVariable("ball_hint", "jerk_off")
2022-05-16 23:48:22 +00:00
keysym "fap"
2023-11-14 23:17:26 +00:00
unhovered SetScreenVariable("ball_hint", None)
2022-05-16 23:48:22 +00:00
action Return("jerk_off")
#Work
2023-03-31 22:41:48 +00:00
if states.paperwork_unlocked:
2022-05-16 23:48:22 +00:00
imagebutton:
xpos -10
ypos 0
2024-03-25 14:57:36 +00:00
xanchor 0.0
2022-05-16 23:48:22 +00:00
idle "interface/desk/work.webp"
hover "interface/desk/work_hover.webp"
2023-11-14 23:17:26 +00:00
hovered SetScreenVariable("ball_hint", "work")
2022-05-16 23:48:22 +00:00
keysym "work"
2023-11-14 23:17:26 +00:00
unhovered SetScreenVariable("ball_hint", None)
2022-05-16 23:48:22 +00:00
action Return("paperwork")
#Cards
2023-04-02 23:48:38 +00:00
if states.cardgame.unlocked: #Or letter_cards_unlock.read #Day 26+
2022-05-16 23:48:22 +00:00
imagebutton:
xalign 0.0
yalign 1.0
idle "interface/desk/cards.webp"
hover "interface/desk/cards_hover.webp"
2023-11-14 23:17:26 +00:00
hovered SetScreenVariable("ball_hint", "cards")
unhovered SetScreenVariable("ball_hint", None)
2022-05-16 23:48:22 +00:00
action Return("deck_builder")
#exit
imagebutton:
xanchor 0.5
yanchor 1.0
xpos 510
ypos 600
idle "interface/desk/exit_mask.webp"
hover "interface/desk/exit.webp"
2023-11-14 23:17:26 +00:00
hovered SetScreenVariable("ball_hint", "exit")
unhovered SetScreenVariable("ball_hint", None)
2022-05-16 23:48:22 +00:00
action Return("Close")
#Night Overlay
2024-04-25 18:49:09 +00:00
if not states.env.daytime:
2022-05-16 23:48:22 +00:00
add "interface/desk/_night_overlay_.webp"
use close_button
2023-11-14 23:17:26 +00:00
screen crystal_ball(ball_hint):
2022-05-16 23:48:22 +00:00
tag desk_interface
zorder 8
add "interface/desk/crystal_ball.webp" xpos 268 ypos 0
2023-11-14 22:52:38 +00:00
if ball_hint is not None:
2022-05-16 23:48:22 +00:00
add "interface/desk/hints/glow.webp" xpos 268+40
add "interface/desk/hints/"+str(ball_hint)+ ".webp" xpos 268+125 xanchor 0.5
screen watch():
#Day/Night Clock
add "interface/desk/watch.webp" xpos 603 ypos 0
imagebutton:
xpos 603
ypos 0
idle "interface/desk/watch.webp"
hover "interface/desk/watch_hover.webp"
2023-11-14 23:17:26 +00:00
unhovered SetScreenVariable("ball_hint", None)
2022-05-16 23:48:22 +00:00
keysym "sleep"
2024-04-25 18:49:09 +00:00
hovered If(states.env.daytime, SetScreenVariable("ball_hint", "doze_off"), SetScreenVariable("ball_hint", "sleep"))
action If(states.env.daytime, Return("night_start"), Return("day_start"))
2022-05-16 23:48:22 +00:00
$ watch_x = 603 +67
$ watch_y = 35
2024-04-25 19:15:36 +00:00
if states.env.weather == "rain":
2022-05-16 23:48:22 +00:00
add "interface/desk/watch/rain.webp" xpos watch_x ypos watch_y
2024-04-25 19:15:36 +00:00
elif states.env.weather in ("snow", "blizzard"):
2022-05-16 23:48:22 +00:00
add "interface/desk/watch/snow.webp" xpos watch_x ypos watch_y
2024-04-25 19:15:36 +00:00
elif states.env.weather == "storm":
2022-05-16 23:48:22 +00:00
add "interface/desk/watch/storm.webp" xpos watch_x ypos watch_y
else:
2024-04-25 18:49:09 +00:00
if states.env.daytime:
2022-05-16 23:48:22 +00:00
add "interface/desk/watch/sun.webp" xpos watch_x ypos watch_y
else:
add "interface/desk/watch/moon.webp" xpos watch_x ypos watch_y
2024-04-25 18:49:09 +00:00
if states.env.daytime:
2022-05-16 23:48:22 +00:00
add "interface/desk/watch/day.webp" xpos watch_x+40 ypos watch_y+6 xanchor 0.5
else:
add "interface/desk/watch/night.webp" xpos watch_x+40 ypos watch_y+6 xanchor 0.5
2024-04-22 17:11:01 +00:00
label examine_desk:
if not states.gen.ev.intro.desk_examined:
$ states.gen.ev.intro.desk_examined = True
$ desk_OBJ.idle = "ch_gen sit_behind_desk"
$ desk_OBJ.action = Jump("examine_desk")
call bld
gen "A desk of some sort..." ("base", xpos="far_left", ypos="head")
gen "And a letter..." ("base", xpos="far_left", ypos="head")
gen "Mailed to a certain \"Albus Dumbledore\"." ("base", xpos="far_left", ypos="head")
menu:
gen "Should I open it?" ("base", xpos="far_left", ypos="head")
"-Read the letter-":
call bld
gen "Of course I will!" ("grin", xpos="far_left", ypos="head")
"-Leave it be-":
call bld
gen "Hell no!" ("angry", xpos="far_left", ypos="head")
gen "Of course I will read it!" ("grin", xpos="far_left", ypos="head")
# First letter from Hermione
$ desk_OBJ.foreground = None
$ letter_hg_1.open()
gen "*Ehm*........." ("base", xpos="far_left", ypos="head")
gen "What?" ("base", xpos="far_left", ypos="head")
gen "................................." ("base", xpos="far_left", ypos="head")
else:
gen "I've already checked the desk." ("base", xpos="far_left", ypos="head")
jump main_room_menu
2022-05-16 23:48:22 +00:00
label paperwork:
if letter_work_report in mailbox.get_letters():
2023-03-17 15:48:17 +00:00
gen "(I need to get paid first.)" ("base", xpos="far_left", ypos="head")
2022-05-16 23:48:22 +00:00
jump main_room_menu
call weather_sound
if not renpy.music.is_playing("weather"):
call music_block
else:
stop music fadeout 1.0
call gen_chibi("paperwork")
with d3
2023-03-11 19:43:02 +00:00
nar "You do some paperwork."
2022-05-16 23:48:22 +00:00
call paperwork_progress_chapter
2024-04-25 19:14:25 +00:00
if not states.env.daytime and (states.env.day % 7 == 0):
2024-04-23 18:26:24 +00:00
call paperwork_progress_chapter("The Full moon makes you feel vastly more productive.\n", bonus=2)
2024-04-25 19:14:25 +00:00
if not states.env.daytime and (states.env.day % 7 == 3):
2024-04-23 18:26:24 +00:00
call paperwork_progress_chapter("The half moon makes you feel more productive.\n")
2022-05-16 23:48:22 +00:00
call gen_chibi("sit_behind_desk")
2024-04-25 18:49:09 +00:00
if states.env.daytime:
2022-05-16 23:48:22 +00:00
jump night_start
else:
jump day_start
label paperwork_report_check:
# Check if a report was completed
2023-03-31 22:41:48 +00:00
if states.paperwork_chapters >= 4:
2023-03-11 19:43:02 +00:00
nar "You've completed a report."
2023-03-31 22:41:48 +00:00
$ states.paperwork_chapters = 0
$ states.paperwork_reports += 1
$ states.paperwork_reports_times += 1
2022-05-16 23:48:22 +00:00
return
2024-04-23 18:26:24 +00:00
label paperwork_progress_chapter(message="", bonus=1):
$ states.paperwork_chapters += bonus
2022-05-16 23:48:22 +00:00
call notes
2023-03-31 22:41:48 +00:00
if states.paperwork_chapters == 1:
2023-03-17 15:48:17 +00:00
"[message]You finished one chapter so far."
2022-05-16 23:48:22 +00:00
else:
2023-03-31 22:41:48 +00:00
"[message]You finished {number=states.paperwork_chapters} chapters so far."
2022-05-16 23:48:22 +00:00
call paperwork_report_check
return
screen gui_tooltip(img=None, xx=335, yy=210):
add img xpos xx ypos yy
zorder 3