forked from logokas/ddcc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript-notebook.rpy
210 lines (199 loc) · 8.36 KB
/
script-notebook.rpy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
# The Missing Notebook by Terra
init -200 python:
skit_template = Skit(
"The Missing Notebook",
"terra_ddcc",
"club_date"
)
skits.append(skit_template)
label terra_ddcc(preserve_transition=True):
# Stuff this does!:
# Imagemap/hotspots and how they work
# Related, how to use them to make an interactable environment
# The "tear" glitch effect
# "Edited" style dialog
# Hard pauses - forcing the player to wait the duration of the pause
# Timers in screens - do an action after a specified length of time
# Also featured - questionable quality writing
python:
#Variable initialization
poster_clicked = 0
cookie_clicked = 0
natsu_clicked = 0
skill_clicked = 0
stop music fadeout 2.0
scene bg club_day
if preserve_transition == True:
with dissolve_scene_full
play music t3
show monika 5a at f11 zorder 2
m "Hi, [player]!"
m "I was wondering if you could help me with something before club meeting today."
mc "Sure, Monika, what's up?"
m 3a "After the festival, we packed up everything in the closet."
m 1p "And well, now I can't find my notebook. Do you mind looking for me?"
mc "Sure thing."
"That's strange.."
"Try as I might, I can't seem to walk away from her.."
m 1l "Oh, that's right, you can't actually walk around.."
m "Hold on one second. I can fix that."
$ srf = screenshot_srf()
show screen tear(20, 0.1, 0.1, 0, 40, srf)
play sound "sfx/s_kill_glitch1.ogg"
$ pause(0.25)
hide screen tear
stop sound
stop music
hide monika
jump walkabout_1
return
label walkabout_1:
play music t4
call screen walkabout_1() #Calling a screen (as opposed to "show") prevents the player from being able to dismiss it, which is the desired effect here.
screen walkabout_1():
imagemap:
#How-to imagemap:
#Ground is what you want the background image to be.
#The numbers in hotspot are (xpos,ypos,width,height) of the interactable rectangle.
#You can easily generate these values with the "Image picker" tool in the dev menu (shift + D)
#You'll have to scroll through -all- the images in the game till you find your ground image.
#Preferably, we'd use the "Call" action here instead of "Jump". However, the Call screen action is bugged or not implemented in 6.99.12 and doesn't work; forcing us to do flow control ourselves with Jump instead.
#I wanted it to be incredibly obvious when you moused over something interactable, so I made the hotspots make the button hover sound when you mouse over them.
ground "bg/club.png"
hotspot (915, 278, 121, 176) action Jump("closet_inv") hover_sound gui.hover_sound
if skill_clicked == 0: #Each time the hotspot is interacted with, the variable increases by 1. This if statement makes the hotspot interactable twice, then goes away.
hotspot (785, 277, 80, 66) action Jump("poster_desc") hover_sound gui.hover_sound
elif skill_clicked == 1:
hotspot (785, 277, 80, 66) action Jump("poster_desc_2") hover_sound gui.hover_sound
#I wanted to make it pretty obvious what was going on, but just in case - this will pop up a dialog box after 30 seconds if the player hasn't figured out what's up.
#This also helps conform to the time limit in the guidelines.
timer 30.0 action Show(screen="dialog", message="It seems you might be stuck. Helpful hint: Click the closet.", ok_action=Hide("dialog"))
return
label closet_inv:
stop music fadeout 2.0
scene bg closet
with dissolve_scene_full
play sound audio.closet_open
$ renpy.pause(delay=1.0, hard=True)
play music t4
call screen walkabout_2()
screen walkabout_2():
imagemap:
ground "bg/closet.png"
hotspot (457, 237, 30, 49) action Jump("monika_notebook") hover_sound gui.hover_sound
if poster_clicked == 0:
hotspot (698, 376, 106, 111) action Jump("yuri_poster") hover_sound gui.hover_sound
elif poster_clicked == 1:
hotspot (698, 376, 106, 111) action Jump("yuri_poster_2") hover_sound gui.hover_sound
if cookie_clicked == 0:
hotspot (726, 537, 82, 88) action Jump("cookie_box") hover_sound gui.hover_sound
elif cookie_clicked == 1:
hotspot (726, 537, 82, 88) action Jump("cookie_box_2") hover_sound gui.hover_sound
if natsu_clicked == 0:
hotspot (643, 263, 76, 66) action Jump("natsu_prons") hover_sound gui.hover_sound
elif natsu_clicked == 1:
hotspot (643, 263, 76, 66) action Jump("natsu_prons_2") hover_sound gui.hover_sound
return
label poster_desc:
"There's something strange about this particular chart."
"I can't really put my finger on it, though.."
"Maybe if I hang around long enough, it'll come to me."
$ skill_clicked += 1
call screen walkabout_1()
#As mentioned before, we have to call the screen back up at the end of these labels because we don't have the Call screen action.
#If we did, we could just Return at the end here.
label poster_desc_2:
show monika 2m at t11 zorder 2
m "[player]?"
m "What's so interesting about that chart?"
show monika 2n at t11 zorder 2
m "It's not going to magically change into something else..."
show monika 1h at t11 zorder 2
m "...Like my notebook."
$ skill_clicked += 1
show monika at thide zorder 1
hide monika
call screen walkabout_1()
label monika_notebook:
jump ending
label yuri_poster:
"This is the banner Yuri and I made for the festival."
"I'm gonna take a stab in the dark and say she would want this left here."
$ poster_clicked += 1
call screen walkabout_2()
label cookie_box:
"This box has a bunch of flyers for the Culinary Arts club in it."
"I notice something poking out underneath them."
"....A pile of cookies?"
"Oh, right, Sayori..."
$ cookie_clicked += 1
call screen walkabout_2()
label natsu_prons:
"This box looks like it has more of Natsuki's manga in it."
"I wonder why they're not lined up on the shelf with the others..."
stop music
play sound audio.page_turn
"....what's \"Yaoi\"?"
#This is just directly copy/pasted from Act 3 with some of the glitchy particles taken out.
#...I may have had too much fun with this.
play sound "sfx/monikapound.ogg"
show layer master:
truecenter
parallel:
zoom 1.5
easeout 0.35 zoom 1.0
zoom 1.5
easeout 0.35 zoom 1.0
zoom 1.5
easeout 0.35 zoom 1.0
parallel:
xpos 0
easein_elastic 0.35 xpos 640
xpos 1280
easein_elastic 0.35 xpos 640
xpos 0
easein_elastic 0.35 xpos 640
show layer screens:
truecenter
parallel:
zoom 1.5
easeout 0.35 zoom 1.0
zoom 1.5
easeout 0.35 zoom 1.0
zoom 1.5
easeout 0.35 zoom 1.0
parallel:
xpos 0
easein_elastic 0.35 xpos 640
xpos 1280
easein_elastic 0.35 xpos 640
xpos 0
easein_elastic 0.35 xpos 640
$ renpy.pause(delay=2.5, hard=True) #Setting hard=True prevents the player from clicking through the pause.
"{i}We will never speak of this.{/i}"
play music t4
$ natsu_clicked += 1
call screen walkabout_2()
label yuri_poster_2:
"I'm leaving the banner alone."
"Not about to upset the girl with a knife collection..."
$ poster_clicked += 1
call screen walkabout_2()
label cookie_box_2:
"I taste test one of the cookies."
"It's... {i}really good.{/i}"
"Okay, leaving that alone now."
"The last thing I need is Monika catching me eating cookies instead of finding her notebook."
$ cookie_clicked += 1
call screen walkabout_2()
label natsu_prons_2:
$ style.say_dialogue = style.edited
"There is nothing in the world that would make me open that box again."
$ style.say_dialogue = style.normal
$ natsu_clicked += 1
call screen walkabout_2()
label ending:
"Ah, here it is."
"I should get this back to Monika now."
"I wonder what she needed it for.."
return