WIP: Fixes #3 - Image Gallery #14

Closed
dagoddamnlazysnake wants to merge 18 commits from feature/ISSUE-3_CG_Gallery into Patchy-Patch5
20 changed files with 338 additions and 68 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -557,7 +557,7 @@ screen about():
add gui.main_menu_background
add gui.extras_submenu_panel
## This empty frame darkens the main menu.
frame:
pass
@ -609,46 +609,6 @@ style main_menu_text:
style main_menu_title:
properties gui.text_properties("title")
## Gallery screen ################################################################
##
## This screen holds the Gallery.
##
screen gallery():
tag menu
## This use statement includes the game_menu screen inside this one. The
## vbox child is then included inside the viewport inside the game_menu
## screen.
style_prefix "main_menu"
add gui.main_menu_background
add gui.extras_submenu_panel
frame:
pass
vbox:
xpos 500
yalign 0.2
textbutton "Back to Extras" action ShowMenu("extras")
vbox:
viewport id "gallery":
xpos 700
ypos 1000
style_prefix "gallery"
use images
text _("") ## Not sure why, but this keeps the vbox below working ... Renpy quirk? Does it kill scrolling in the viewport? Tune in when we have the gallery populated in the images screen.
vbox:
xpos 1942
# xalign 1.0
yalign 0.95
use extrasnavigation
style main_menu_frame is empty
style main_menu_vbox is vbox
style main_menu_text is gui_text
@ -675,21 +635,6 @@ style main_menu_title:
properties gui.text_properties("title")
## Images Screen ################################################################
##
## This is the screen that actually houses the images of the gallery
screen images():
tag menu
style_prefix "main_menu"
frame:
pass
vbox:
xpos 600
ypos 600
text _("Placeholder for gallery.")
## Updates screen ################################################################
##
@ -704,7 +649,7 @@ screen updates():
add gui.main_menu_background
add gui.extras_submenu_background
## This empty frame darkens the main menu.
frame:
pass
@ -1161,7 +1106,7 @@ screen extras():
add gui.main_menu_background
## This empty frame darkens the main menu.
frame:
pass
@ -1184,9 +1129,9 @@ screen extras():
# imagebutton auto "gui/button/menubuttons/updatesbutton_%s.png" action ShowMenu("updates")
# imagebutton auto "gui/button/menubuttons/gallerybutton_%s.png" action ShowMenu("gallery")
# imagebutton auto "gui/button/menubuttons/returnbutton_%s.png" action ShowMenu("main_menu")
# # if gui.show_name:
# #
# # vbox:
@ -1229,12 +1174,12 @@ style main_menu_title:
##Extras Navigation Screen #####################################################
##
##This screen is to be reused in
screen extrasnavigation():
screen extrasnavigation():
vbox:
#xalign 1.0
xpos 665
ypos 270
if persistent.splashtype == 1:
add "gui/sneedgame.png"
else:
@ -1247,9 +1192,9 @@ screen extrasnavigation():
imagebutton auto "gui/button/menubuttons/helpbutton_%s.png" action ShowMenu("help")
imagebutton auto "gui/button/menubuttons/aboutbutton_%s.png" action ShowMenu("about")
imagebutton auto "gui/button/menubuttons/updatesbutton_%s.png" action ShowMenu("updates")
imagebutton auto "gui/button/menubuttons/gallerybutton_%s.png" action ShowMenu("gallery")
imagebutton auto "gui/button/menubuttons/gallerybutton_%s.png" action ShowMenu("cg_gallery")
imagebutton auto "gui/button/menubuttons/returnbutton_%s.png" action ShowMenu("main_menu")
## Help screen #################################################################
##
@ -1265,7 +1210,7 @@ screen help():
add gui.main_menu_background
add gui.extras_submenu_panel
## This empty frame darkens the main menu.
frame:
pass
@ -1307,8 +1252,8 @@ screen help():
# xalign 1.0
yalign 0.95
use extrasnavigation
screen keyboard_help():
style_prefix "help"
@ -1380,7 +1325,7 @@ screen mouse_help():
text _("Rolls forward to later dialogue.")
screen gamepad_help():
screen gamepad_help():
style_prefix "help"
hbox:
label _("Right Trigger\nA/Bottom Button")

View File

@ -80,6 +80,7 @@ label chapter_1:
"I move to the entrance, only to see all of the steps occupied by students."
scene stairs with fade
scene stairs at Pan((6000, 1200),(553, 169), 30.0)
$ unlockCg("stairs")
"Their eyes turn to me. Expressions of confusion and contemplation. I can feel their judging stares, the same that had haunted me for four months previous."
"I can already picture what theyre thinking."
@ -111,6 +112,7 @@ label chapter_1:
play music "audio/OST/That Monochromatic Weirdo.ogg" fadein 0.5
scene fanglookback at Pan((0, 1080), (0, 0), 10.0)
$ unlockCg("fanglookback")
"Talk about wanting to stand out, I never thought it was possible to look like you were from a black and white twenties cartoon."
@ -137,6 +139,7 @@ label chapter_1:
"Go back to your friends."
scene fangtalkingwithtrish with dissolve
$ unlockCg("fangtalkingwithtrish")
stop music fadeout 1.0
pause 1
@ -190,6 +193,7 @@ label chapter_1:
"I lay on the ground, ass hurt from hitting jagged concrete and splintered wood."
"Thank god for jeans."
scene pathetic at Pan((0, 1031), (0, 0), 10.0)
$ unlockCg("pathetic")
play music 'audio/OST/Dragging on and on....ogg'
@ -795,6 +799,7 @@ label chapter_1:
stop music fadeout 1.0
scene fang band playing with fade
$ unlockCg("fang banf playing")
"Onstage is a trio of people my age."
@ -869,6 +874,7 @@ label chapter_1:
#(In-CG insult layers)
scene fang band screaming
$ unlockCg("fang band screaming")
unknown "FUCK YOU!"

View File

@ -116,6 +116,7 @@ label chapter_10:
A "...Fine..."
scene wounds1 with fade
$ unlockCg("wounds1")
pause 2
scene black with fade
"I step into my tiny shower stall and turn on the water."
@ -123,24 +124,29 @@ label chapter_10:
"The shower head sputters before it starts weakly spraying lukewarm water."
scene wounds2 with fade
$ unlockCg("wounds2")
"The temperature of the water doesnt help the tension in my muscles or the bruises marring my skin."
"I stretch around and see massive blotches of purple and black splattered across my torso."
scene wounds3
$ unlockCg("wounds3")
"Each contusion is hot to the touch under my fingers and the pain is intense."
scene wounds4
$ unlockCg("wounds4")
"The worst is across my chest where the bollard hit me."
scene wounds5
$ unlockCg("wounds5")
"I eventually get finished examining my wicked wounds and step out of the bathroom. Fang is on her phone doing Raptor Jesus knows what."
scene wounds6
$ unlockCg("wounds6")
"Fang then pats the bed"
@ -149,6 +155,7 @@ label chapter_10:
"I walk over and lie down on my stomach"
scene wounds7
$ unlockCg("wounds7")
F "Jesus that's bad..."
@ -194,10 +201,12 @@ label chapter_10:
F "I need to do the front."
scene wounds8
$ unlockCg("wounds8")
"Oh."
"Okay then. I roll over onto my back."
scene wounds9
$ unlockCg("wounds9")
"And find myself face to beak with her."
"Dangerously close."
@ -227,6 +236,7 @@ label chapter_10:
"Do you like me, Fang?"
scene wounds10
$ unlockCg("wounds10")
F "A-anon…"
@ -255,11 +265,13 @@ label chapter_10:
"A snort escapes from Fangs beak."
scene wounds11
$ unlockCg("wounds11")
play music 'audio/OST/west_coast_kicking.ogg' fadein 1.0
F "Youre such a fucking dweeb…"
scene wounds12
$ unlockCg("wounds12")
"Her fingers brush lightly across the largest bruise on my chest, without ointment."
@ -280,6 +292,7 @@ label chapter_10:
F "I… like you too…"
scene wounds10
$ unlockCg("wounds10")
"Fangs hand moves back to my chest, resting just over my machine-gun beating heart."
@ -292,6 +305,7 @@ label chapter_10:
"Which is dead center of the most serious bruise on my chest."
scene wounds14
$ unlockCg("wounds14")
A "FUCK!"
@ -300,6 +314,7 @@ label chapter_10:
A "Haaaah."
scene wounds15
$ unlockCg("wounds15")
"I manage to catch my breath."
@ -318,6 +333,7 @@ label chapter_10:
A "Liiike…Hug? Maybe? I don-"
scene wounds16
$ unlockCg("wounds16")
"Im cut off by Fang moving closer to me again."

View File

@ -475,6 +475,7 @@ label chapter_11:
Nas "Be warned, she counts them. You eat any and its all over."
scene nascar day with fade
$ unlockCg("nascar day")
"I climb into the passenger seat as Naser revs up the NasCar."
Nas "Youre gonna need some barbecue sauce too. And none of the bargain bin stuff, Fang ONLY likes top shelf dipping sauce."
@ -1657,6 +1658,7 @@ label chapter_11:
"Fang slips into my bed first, her wings carefully laid behind her."
scene wounds16 with fade
$ unlockCg("wounds16")
"I climb in to the space she left for me."
"Which shes quick to invade."

View File

@ -89,6 +89,7 @@ label chapter_12B:
"I can tell Naser is a bit nervous driving in this part of town with how hes constantly looking around the car."
scene nascar day
$ unlockCg("nascar day")
"The door barely shuts when he speeds away from my apartment building and back towards civilization."
Nas "So uh, Anon…"

View File

@ -150,6 +150,7 @@ label chapter_12D:
"She does have the act down though."
scene stingray pool with dissolve
$ unlockCg("stringray pool")
A "Oh, cool, a stingray pool."

View File

@ -375,6 +375,7 @@ label chapter_13A:
"I open the door for Fang as she fits her guitar in the back seat."
scene taxi night with fade
$ unlockCg("taxi night")
stop music fadeout 1.0
D "Ay, its my favorite couple again! Hows the leg, skinnie?"
@ -786,6 +787,7 @@ label chapter_13A:
play music 'audio/OST/its_the_piece_of_shit_you_asked_for.ogg' fadein 1.0
scene prom fang fuck up a ending with fade
$ unlockCg("prom fang fuck up a ending")
"Just like before, Fangs bass sounds horrifically wrong, far too heavy. Shes a guitarist using a fucking jazz bass, so of course it sounds horrid."
@ -804,6 +806,7 @@ label chapter_13A:
"Reed puts his hand on Trishs shoulder and the two duck out."
scene prom fang freak out a ending with fade
$ unlockCg("prom fang freak out a ending")
"Fang stays a moment longer, the despair on her face manifesting through hot streams of tears."
@ -1105,6 +1108,7 @@ label chapter_13A:
F "...Thanks…"
scene roomthrash1 at Pan((0, 610),(0, 0), 30.0)
$ unlockCg("roomthrash1")
"Fang plops down next to me, the hoodie falling down to her knees and hiding the shorts I gave her."
@ -1132,6 +1136,7 @@ label chapter_13A:
"I boot up the XROX and insert the Rock Ring 2 disc."
scene roomthrash2 with dissolve
$ unlockCg("roomthrash2")
"Fang flips over to see the TV as I take my spot on the floor sitting next to her."
A "This ones my favorite Rock Ring story."
@ -1178,6 +1183,7 @@ label chapter_13A:
A "Nows not a good time, we should talk about it lat-"
scene roomthrash3 with dissolve
$ unlockCg("roomthrash3")
"Fang grabs me by the shirt collar with shaking fists."
@ -1186,6 +1192,7 @@ label chapter_13A:
A "I-I-I cant! Fang, get a hold of yourself!"
scene roomthrash4 with dissolve
$ unlockCg("roomthrash4")
"She jumps to her feet, carrying my shirt with her and lurching my head with it."
F "DAMMIT ANON, WHAT HAVE YOU BEEN PLANNING WITH NAOMI?!"
@ -1197,6 +1204,7 @@ label chapter_13A:
A "SHE PUT ME WITH YOU!"
scene roomthrash5 with dissolve
$ unlockCg("roomthrash5")
"All at once, Fang loses all energy in her body."
@ -1226,6 +1234,7 @@ label chapter_13A:
"Out of nowhere Fangs energy returns into a fit of unrepressed rage."
scene roomthrash6 with dissolve
$ unlockCg("roomthrash6")
F "RAAAAAAAAAAAAAAAAAAAAAAAAAAAHHH!!"
F "THAT STUPID BITCH!!"
@ -1266,6 +1275,7 @@ label chapter_13A:
stop music fadeout 1.0
scene roomthrash7 with dissolve
$ unlockCg("roomthrash7")
"While Fang is recoiling, I take the moment to grab her by the wrists and rush her over to sit on the bed."
@ -1275,14 +1285,17 @@ label chapter_13A:
F "You dont like me, you just wanted to change me to something Im not to get Naomi off your back."
scene roomthrash8 with dissolve
$ unlockCg("roomthrash8")
A "Thats not true! Fang, listen to me. I do lo-"
scene roomthrash9 with dissolve
$ unlockCg("roomthrash9")
"The force makes me stumble back several feet."
"Luckily, I manage to regain my balance before falling on my ass."
"I raise my hands in a basic CQC stance."
scene roomthrash10 with dissolve
$ unlockCg("roomthrash10")
F "You took me away from my friends! You ruined our band!"
A "What the hell are you talking about? I havent done any of that!"
@ -1298,6 +1311,7 @@ label chapter_13A:
"The malice radiating from Fang is as tense as a razor."
scene roomthrash11 with dissolve
$ unlockCg("roomthrash11")
"Eventually, the weight of the situation causes her to collapse into the bed completely."

View File

@ -264,6 +264,7 @@ label chapter_13B:
"I open the door for Fang and we both climb in the back."
scene taxi night
$ unlockCg("taxi night")
D "Where am I takin you?"
F "Take us to the beach."

View File

@ -478,6 +478,7 @@ label chapter_13D:
"I open the door for Fang and we climb in the back, fitting her guitar behind the drivers seat."
scene taxi night
$ unlockCg("taxi night")
D "So wherere you two lovebirds heading dressed all snazzy like that?"
A "Volcano High, its prom night."
@ -1243,6 +1244,7 @@ label chapter_13D:
"She takes a deep breath and starts strumming the first notes of her song."
scene fang d ending preformance 1
$ unlockCg("fang d ending preformance 1")
"It took half a year but she finally completed the song from the roof."
@ -1317,6 +1319,7 @@ label chapter_13D:
"I can see the embarrassed mirth playing across her beautiful eyes."
scene fang d ending preformance 4
$ unlockCg("fang d ending preformance 4")
"No thought at all, I press my lips against hers."
"Behind me I can hear the audiences cheers grow louder."
@ -1559,6 +1562,7 @@ label chapter_13D:
xalign 1.2 yalign 0.0
"Everyone is conversating amongst themselves."
scene d01 with fade
$ unlockCg("d01")
T "-are totally in! Come on, youd look great in it!"
F "No fucking way thats fucking real! Beach maid?! Have you been sneaking Reeds stash again?"
@ -2150,6 +2154,7 @@ label chapter_13D:
A "Thats not what I wanted to show you."
scene d02a with fade
$ unlockCg("d02a")
"I remove the small package from the robot and hand it to Fang."
@ -2160,6 +2165,7 @@ label chapter_13D:
"Sliding the box open reveals an amber pendant on a silver chain."
scene d02b
$ unlockCg("d02b")
"I take the necklace from the box and hold it up for both of us to inspect."
@ -2186,6 +2192,7 @@ label chapter_13D:
A "...There."
scene d02c with fade
$ unlockCg("d02c")
"Fang lets her hair down again and holds up the pendant."

View File

@ -267,6 +267,7 @@ label chapter_14A:
"Shes in this crowd somewhere."
scene a02 with fade
$ unlockCg("a02")
T "YOU!!"
@ -357,6 +358,7 @@ label chapter_14A:
"All I will ever remember from this is the sight of my former classmates splattered across the halls like bags of waste."
scene a04 with fade
$ unlockCg("a04")
"The spills and trails of blood tell the story of their final moments."
@ -480,6 +482,7 @@ label chapter_14A:
"One that I easily recognize."
scene a10 with fade
$ unlockCg("a10")
A "Fang."
@ -529,6 +532,7 @@ label chapter_14A:
A "Fuck… Because… Because I love you! Haaaaaah."
scene a10 with fade
$ unlockCg("a10")
"I struggle to balance on my left leg. The hole in my shin dribbles blood down to the floor."
@ -605,6 +609,7 @@ label chapter_14A:
A "Look at me."
scene a11 with fade
$ unlockCg("a11")
"Her head shakily turns from the concrete below to meet my eyes again."
@ -637,6 +642,7 @@ label chapter_14A:
"The last of her tears falls."
scene a12 with fade
$ unlockCg("a12")
"She jumps."
@ -679,6 +685,7 @@ label chapter_14A:
"Ill need to stay on a crutch for a few months, but thats hardly the wound I'm worried about."
scene a13 with fade
$ unlockCg("a13")
"...Her funeral was today."
@ -689,6 +696,7 @@ label chapter_14A:
"So I wait out of sight several hundreds of feet away for the remaining family members to trickle out of the crowd and go home."
scene a14a with fade
$ unlockCg("a14a")
"The last figure lingers for over an hour."
@ -701,12 +709,14 @@ label chapter_14A:
"Eventually, he too leaves."
scene a15 with fade
$ unlockCg("a15")
"The alternations of footsteps and the crutch make me feel more mechanical than human."
"Then again, that may be true regardless of having a crutch."
scene a14 with fade
$ unlockCg("a14")
"The two graves are right next to each other."

View File

@ -89,6 +89,7 @@ label chapter_14B:
"..."
scene doomeranon02 with fade
$ unlockCg("doomeranon02")
stop music fadeout 1.0
play music 'audio/effects/chatter loop.ogg' fadein 1.0
@ -123,6 +124,7 @@ label chapter_14B:
"I throw an inconspicuous glance across the room and confirm my suspicions."
scene doomeranon03
$ unlockCg("doomeranon03")
play music 'audio/OST/The.ogg' fadein 1.0
"I can barely recognize Fang."
"A part of me denies that the person up on stage could have been her."
@ -200,6 +202,7 @@ label chapter_14B:
"I saw it, shes smart, Im a dope. Yet why does she do that to herself?"
scene doomeranon04 with fade
$ unlockCg("doomeranon04")
"The bell on the door jingles its farewell, and I open the box to eat the first slice."
"As the taste of cardboard fills my mouth I try to erase the last few minutes from my memory."

View File

@ -54,6 +54,7 @@ label chapter_14C:
Lucy "ANON! YOU REMEMBERED!"
scene c02
$ unlockCg("c02")
"What."
@ -309,6 +310,7 @@ label chapter_14C:
"..."
scene c04 with fade
$ unlockCg("c04")
stop music fadeout 1.0
play music "audio/effects/beach loop 2.ogg" fadein 1.0
"Catching up with Lucy was the happiest I felt in years, the memories came rushing back as we walked under the hot sun."
@ -481,6 +483,7 @@ label chapter_14C:
A "Then {i}you{/i} play."
stop music fadeout 30.0
scene c05 with fade
$ unlockCg("c05")
"As we sit by the piano, I think she understands why I'm teasing her like that."

View File

@ -283,6 +283,7 @@ label chapter_14D:
play music "audio/OST/she_fucks_human_men.ogg" fadein 1.0
scene d03 with fade
$ unlockCg("d03")
Re "Cmon, get over here. Ill order us all another watchamacallit of drinks. Its on me, the richest raptor in the woooorld!"
@ -570,6 +571,7 @@ label chapter_14D:
A "I know."
scene d04b with fade
$ unlockCg("d04b")
"That didnt stop Lucy from shuffling closer until our legs were pressed together."

View File

@ -1880,6 +1880,7 @@ label chapter_5:
"Fang grips my jacket with both hands, digging in."
scene fangroofcry with fade
$ unlockCg("fangroofcry")
F "What is it you have that I dont?!"
@ -2468,6 +2469,7 @@ label chapter_5:
Sp "Anon. Go to class. Now. Fang. To the Nurses."
scene bloodywing with dissolve
$ unlockCg("bloodywing")
play music 'audio/OST/Skinrow Soul.ogg' fadein 1.0
"I look to Fang one last time. She looks a mess."

View File

@ -422,6 +422,7 @@ label chapter_6:
"Fang and I take the back seats."
scene nascar day with fade
$ unlockCg("nascar day")
"Now that were getting this shitshow on the road, I should probably clarify with Fang about precisely what sort of venue she wants."
@ -918,18 +919,22 @@ label chapter_6:
"..."
scene bathroom1 with fade
$ unlockCg("bathroom1")
"The public restroom looks clean enough from the outside, but I can see through the open doors that it gets cleaned maybe once a week."
"Im not here to use the restroom anyways."
scene bathroom2
$ unlockCg("bathroom2")
"If Im right, I just need to look behind the building, and…"
"Jackpot."
scene bathroom3
$ unlockCg("bathroom3")
"Fang is resting on the wall with a half finished cigarette between her fingers."
play music "audio/OST/That Monochromatic Weirdo.ogg" fadein 1.0
scene bathroom4
$ unlockCg("bathroom4")
A "Got a spare?"
"She shrugs half-heartedly, holding out the half-smoked sin-stick to me."
@ -964,6 +969,7 @@ label chapter_6:
F "Howd you find me?"
scene bathroom5
$ unlockCg("bathroom5")
A "Where else would you be?"
"She gives a brief shrug."
@ -982,6 +988,7 @@ label chapter_6:
F "Alright. Lets get a move on."
scene bathroom6
$ unlockCg("bathroom6")
"The two of us peek from behind the building to make sure the coast is clear of any brothers or scheming persimmon piranhas."
"The coast is clear."
@ -1002,6 +1009,7 @@ label chapter_6:
A "Ah."
scene bathroom7
$ unlockCg("bathroom7")
"The two of us sprint conspicuously across the park to the nearest cover in the concrete jungle."
"..."
@ -1361,6 +1369,7 @@ label chapter_6:
F "Great. Now fuck off."
scene askfang1
$ unlockCg("askfang1")
Nas "H-hold on a second!"
Nas "Dad said hell do to me anything that you do to Fang!"
@ -1371,26 +1380,34 @@ label chapter_6:
Nas "Fang, you gotta promise to not let Anon do anything creepy."
scene askfang2
$ unlockCg("askfang2")
A "Thats fuckin rude."
scene askfang3
$ unlockCg("askfang3")
pause 1
scene askfang4
$ unlockCg("askfang4")
pause 1
scene askfang5
$ unlockCg("askfang5")
pause 1
scene askfang6
$ unlockCg("askfang6")
"Fang looks at me and grins wickedly."
scene askfang2
$ unlockCg("askfang2")
Nas "Please Fang."
#Le Sigh
scene askfang6
$ unlockCg("askfang6")
F "I promise."
F "Now go."
"Naser gulps and nods."
scene askfang7
$ unlockCg("askfang7")
Nas "You better not do anything creepy Anon!"
scene skinrow
@ -1423,6 +1440,7 @@ label chapter_6:
"Oh and theres the alarms again. I think Im finally starting to tune them out though."
scene troodonconvergence1 with fade
$ unlockCg("TroodonConvergence1")
"Fang reaches into her pocket and withdraws a crumpled back of cigarettes."
@ -1434,8 +1452,10 @@ label chapter_6:
"I hesitate."
scene troodonconvergence2
$ unlockCg("TroodonConvergence2")
"Fang tilts her head. Before she can pull her hand back I accept the last smoke."
scene troodonconvergence3
$ unlockCg("TroodonConvergence3")
"I bring the butt to my lips, feeling the pod within the filter."
A "Figures you smoke menthols."
@ -1458,6 +1478,7 @@ label chapter_6:
A "Its your last one, wanna savor it."
scene troodonconvergence4
$ unlockCg("TroodonConvergence4")
"I hand her back the cigarette."
"Its not an indirect kiss or anything like that I chant as a mantra."
@ -1465,6 +1486,7 @@ label chapter_6:
"Her drag is harsher, burning up twice the amount."
scene troodonconvergence2
$ unlockCg("TroodonConvergence2")
"She blows out hazy rings, one after another, as if signaling an indigenous Raptor tribe."
@ -1479,6 +1501,7 @@ label chapter_6:
F "Its still good, man."
scene troodonconvergence3
$ unlockCg("TroodonConvergence3")
"The filter feels moist between my index and middle knuckles."
@ -1497,13 +1520,16 @@ label chapter_6:
A "Mmm. Yeah, I cant."
scene troodonconvergence4
$ unlockCg("TroodonConvergence4")
"Fangs tail ticks a steady rhythm like a metronome as she takes one last, long drag."
scene troodonconvergence5
$ unlockCg("TroodonConvergence5")
"She blows out a thick cloud and drops the stump on the ground."
"I stamp on the stub before she can, giving it a solid twist before kicking the dead end into the street."
scene troodonconvergence6
$ unlockCg("TroodonConvergence6")
A "So now what?"
F "I think I know where we can look."

View File

@ -227,19 +227,26 @@ label chapter_9:
"At least theres cute little designs on the slides."
scene projector1
$ unlockCg("projector1")
"Theres a little penguin with a graduation cap…"
scene projector2
$ unlockCg("projector2")
"Theres the school mascot in a party hat… even has the fogged up window..."
scene projector3
$ unlockCg("projector3")
"A lineup of various graduates with a token human at the end for diversity. Typical."
scene projector4
$ unlockCg("projector4")
"Theres some scientists and engineers holding hands…"
scene projector5
$ unlockCg("projector5")
"Theres a triceratops holding onto a branch with the text hang in there, baby!"
scene projector6
$ unlockCg("projector6")
"Theres me two years ago when I photoshopped myself with an anime girl."
stop music
scene projector7
$ unlockCg("projector7")
"..."
@ -286,12 +293,14 @@ label chapter_9:
Re "I-I am!"
scene projector8
$ unlockCg("projector8")
"More pictures. So many more pictures."
"Each one more and more embarrassing than the last."
scene projector9
$ unlockCg("projector9")
"I… oh god…"
@ -1206,6 +1215,7 @@ label chapter_9:
A "Mmm."
scene taxi day
$ unlockCg("taxi day")
D "Now wherere you kids heading on a school day? Maybe the hospital?"

0
game/src/__init__.py Normal file
View File

220
game/src/cg_gallery.rpy Normal file
View File

@ -0,0 +1,220 @@
default persistent.cggallery = []
init python:
# GALLERY OBJECT
# Handles unlockables via ren'py
g = Gallery()
g.transition = dissolve
# CONST PARAMS
GALLERY_COLS = 3
GALLERY_CGS_PER_PAGE = 6
PREFERRED_WIDTH = 432 #px (1920 * 0.225)
PREFERRED_HEIGHT = 243 #px (1080 * 0.225)
DEFAULT_WIDTH_SCALE_RATIO = round(float(PREFERRED_WIDTH) / float(1920), 4)
DEFAULT_HEIGHT_SCALE_RATIO = round(float(PREFERRED_HEIGHT) / float(1080), 4)
NOT_UNLOCKED_COVER = im.FactorScale("gui/gallery/unlocked_cg_button_cover.png", DEFAULT_WIDTH_SCALE_RATIO, DEFAULT_HEIGHT_SCALE_RATIO)
ACCEPTED_EXTENSIONS = ["jpg", "png"]
# GALLERY ITEMS
# Data structure that holds the data for each cg and button
# item is the key in the Gallery
# ext is the file extension
# { item: string; cg: Displayable; ext: string }[]
galleryItems = []
# Which page of the gallery is shown
galleryPage = 1
# Global function to unlock a cg
# fname should be a key used in galleryItems
# (fname: string) -> None
def unlockCg(fname):
unlocked = fname in persistent.cggallery
if unlocked:
return
# Save to renpy persistent data
tmp = list(persistent.cggallery).copy()
tmp.append(fname)
persistent.cggallery = tmp
renpy.persistent.save()
# TODO: fix unlocking without game reset
# Rebuild the gallery
for i in range(0, len(galleryItems) - 1):
if fname == str(galleryItems[i]["item"]):
loadGallery()
return
# Make a scaled cg button
# (cg: string; ext: string; w: float; h: float; unlocked?: boolean): Displayable
def cg(fname, ext, w, h, unlocked = False):
if not unlocked:
return NOT_UNLOCKED_COVER
scaleFactor = getBoxNormalizerRatio(w, h)
return im.FactorScale("images/cgs/" + fname + "." + ext, scaleFactor["x"], scaleFactor["y"])
# Create an object in g:Gallery, add to galleryItems
# (imageName: string; ext: string; w: float; h: float; unlocked?: boolean) -> None
def addGalleryItem(imageName, ext, w, h, unlocked = False):
g.button(imageName)
g.image(imageName)
horizontalPan = Pan((w - 1920, h - 1080), (0, h - 1080), 30.0)
verticalPan = Pan((w - 1920, h - 1080), (w - 1920, 0), 30.0)
g.transform(horizontalPan if w > h else verticalPan) #TODO: niceify
if unlocked:
g.unlock(imageName)
g.condition("True")
else:
g.condition("False")
galleryItems.append({
"item": imageName,
"cg": cg(imageName, ext, w, h, unlocked),
"ext": ext
})
# Reads /images/cgs dir for all image files
# Populates g:Gallery and galleryItems
# Appends extra spaces at the end
# () -> None
def loadGallery():
from os import listdir, getcwd
from os.path import isfile, join
cgPath = "images/cgs/"
workingDirPath = getcwd().replace("\\", "/")
cgDirPath = workingDirPath + "/game/" + cgPath
# Reset gallery
galleryItems = []
g = Gallery()
g.transition = dissolve
# Add each image to the gallery
for cgFile in listdir(cgDirPath):
filePath = join(cgDirPath, cgFile)
if isfile(filePath):
ext = cgFile[-3:].lower()
if (ext in ACCEPTED_EXTENSIONS):
attr = getImageFileAttributes(filePath)
fname = str(cgFile[0:-4])
unlocked = fname in persistent.cggallery
addGalleryItem(fname, ext, attr["w"], attr["h"], unlocked)
# Add empty items to fill grid after last cg button
extraSpaces = GALLERY_COLS - (len(galleryItems) % GALLERY_COLS)
for i in range(0, extraSpaces):
galleryItems.append({
"item": None,
"cg": None,
"ext": None
})
# Get width/height of image by absolute path
# based on https://stackoverflow.com/questions/8032642/how-to-obtain-image-size-using-standard-python-class-without-using-external-lib
# (filePath: string) -> { w: int; h: int } | None
def getImageFileAttributes(filePath):
try:
from struct import unpack
from imghdr import what
w, h = 0, 0
with open(filePath, "rb") as file:
ext = what(filePath)
header = file.read(24)
if (len(header) != 24):
raise Exception("File header invalid for " + filePath)
if (ext == 'png'):
checksum = unpack('>i', header[4:8])[0]
if (checksum != 0x0d0a1a0a):
raise Exception("File checksum invalid for " + filePath)
w, h = unpack('>ii', head[16:24])
if (ext == 'jpeg' or ext == 'jpg'):
file.seek(0)
size = 2
ftype = 0
while not 0xc0 <= ftype <= 0xcf:
file.seek(size, 1)
byte = file.read(1)
while ord(byte) == 0xff:
byte = file.read(1)
ftype = ord(byte)
size = unpack('>H', file.read(2))[0] - 2
file.seek(1, 1)
h, w = unpack('>HH', file.read(4))
return { "w": w, "h": h }
except Exception:
#TODO: log error
return None
# Returns what params to call im.FactorScale with for cg button size
# Basically the delta diff dimensions
# (w: int; h: int) -> { x: float; y: float }
def getBoxNormalizerRatio(w, h):
x = round(float(PREFERRED_WIDTH) / float(w), 4)
y = round(float(PREFERRED_HEIGHT) / float(h), 4)
return { "x": x, "y": y }
# Returns the pageth slice from galleryItems
# (page: int): Partial<typeof galleryItems>
def getGalleryPage(page):
start = (page - 1) * GALLERY_CGS_PER_PAGE
end = start + GALLERY_CGS_PER_PAGE
return galleryItems[start:end]
# Call to loading the gallery
loadGallery()
## CG Gallery screen ########################################################
## A screen that shows the image gallery
screen cg_gallery():
tag menu
use game_menu(_("Gallery"), scroll="viewport"):
fixed:
$ pageItems = getGalleryPage(galleryPage)
$ galleryRows = len(pageItems) / GALLERY_COLS
$ maxPage = len(galleryItems) / GALLERY_CGS_PER_PAGE
vbox:
hbox:
grid GALLERY_COLS galleryRows:
spacing gui.slot_spacing
# Iterate through galleryItems and add cgs buttons
for item in pageItems:
if item["item"] == None:
hbox
else:
add g.make_button(item["item"], item["cg"], xalign = 0.5, yalign = 0.5)
grid 3 1:
if galleryPage > 1:
textbutton "<" action SetVariable("galleryPage", galleryPage - 1)
else:
hbox
label str(galleryPage)
if galleryPage < maxPage:
textbutton ">" action SetVariable("galleryPage", galleryPage + 1)
else:
hbox

View File

@ -57,5 +57,6 @@ label ending:
pause 5
if tradwife:
scene c10 with fade
$ unlockCg("c10")
pause 20
return