Merge branch 'master' into Monster-Update-6
Move mod_menu into it's own file in src/
|
@ -23,10 +23,10 @@ init python:
|
|||
## The colors of text in the interface.
|
||||
|
||||
## An accent color used throughout the interface to label and highlight text.
|
||||
define gui.accent_color = '#FF00FC'
|
||||
define gui.accent_color = '#A2029F'
|
||||
|
||||
## The color used for a text button when it is neither selected nor hovered.
|
||||
define gui.idle_color = '#FFFE00'
|
||||
define gui.idle_color = '#D5D507'
|
||||
|
||||
## The small color is used for small text, which needs to be brighter/darker to
|
||||
## achieve the same effect.
|
||||
|
@ -103,6 +103,8 @@ define gui.main_menu_text_size = 60
|
|||
## The images used for the main and game menus.
|
||||
define gui.main_menu_background = "gui/main_menu.png"
|
||||
define gui.game_menu_background = "gui/game_menu.png"
|
||||
define gui.extras_submenu_background = "gui/overlay/extras_submenu.png"
|
||||
define gui.extras_submenu_panel = "gui/overlay/extras_submenu_panel.png"
|
||||
|
||||
## Dialogue ####################################################################
|
||||
##
|
||||
|
|
BIN
game/gui/gallery/unlocked_cg_button_cover.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
game/gui/overlay/extras_submenu.png
Normal file
After Width: | Height: | Size: 86 KiB |
BIN
game/gui/overlay/extras_submenu_panel.png
Normal file
After Width: | Height: | Size: 215 KiB |
Before Width: | Height: | Size: 425 KiB |
Before Width: | Height: | Size: 549 KiB |
Before Width: | Height: | Size: 210 KiB |
Before Width: | Height: | Size: 226 KiB After Width: | Height: | Size: 226 KiB |
Before Width: | Height: | Size: 246 KiB After Width: | Height: | Size: 246 KiB |
Before Width: | Height: | Size: 204 KiB After Width: | Height: | Size: 204 KiB |
Before Width: | Height: | Size: 167 KiB After Width: | Height: | Size: 167 KiB |
Before Width: | Height: | Size: 183 KiB After Width: | Height: | Size: 183 KiB |
Before Width: | Height: | Size: 198 KiB After Width: | Height: | Size: 198 KiB |
Before Width: | Height: | Size: 199 KiB After Width: | Height: | Size: 199 KiB |
Before Width: | Height: | Size: 266 KiB After Width: | Height: | Size: 266 KiB |
Before Width: | Height: | Size: 214 KiB After Width: | Height: | Size: 214 KiB |
|
@ -23,7 +23,7 @@ define gui.show_name = True
|
|||
|
||||
## The version of the game.
|
||||
|
||||
define config.version = "Patchy-patch5"
|
||||
define config.version = "Patchy-patch5.1.1"
|
||||
|
||||
## Text that is placed on the game's about screen. Place the text between the
|
||||
## triple-quotes, and leave a blank line between paragraphs.
|
||||
|
@ -77,7 +77,7 @@ define config.exit_transition = dissolve
|
|||
|
||||
## Between screens of the game menu.
|
||||
|
||||
define config.intra_transition = dissolve
|
||||
define config.intra_transition = Dissolve(0.20)
|
||||
|
||||
|
||||
## A transition that is used after a game has been loaded.
|
||||
|
|
3465
game/screens.rpy
|
@ -86,38 +86,35 @@ transform randPosition:
|
|||
# attribute guitar:
|
||||
# "guitar.webp"
|
||||
|
||||
#Raw Image & kwargs for long textboxes
|
||||
|
||||
#Characters
|
||||
define A = Character ('Anon',color="#36E12D") #Light Green
|
||||
define F = Character ('Fang',color="#7E2DE1") #Purple
|
||||
define Lucy = Character ('Lucy',color="#7E2DE1") #Purple
|
||||
define Ro = Character ('Rosa',color="#E12D36") #Red
|
||||
define St = Character ('Stella',color="#E17E2D") #orang
|
||||
define N = Character ('Naomi',color="#2D36E1") #Blue
|
||||
define Nas = Character ('Naser',color="#501D5E") #Dark Purple
|
||||
define T = Character ('Trish',color="#8A0036") #Maroon
|
||||
define Attendant = Character ('Attendant',color="#8A0036") #Maroon
|
||||
define Sp = Character ('Spears',color="#7B8A00") #Dark Yellow
|
||||
define Re = Character ('Reed',color="#368A00") #Dark Green
|
||||
define D = Character ('Driver',color="#098A00")
|
||||
define FM = Character ('Fangs Mom',color="#EA1A84")
|
||||
define FD = Character ('Fangs Dad',color="#1A1CEA")
|
||||
define Tsuki = Character ('Mr. Tsuki',color="#CEAF23")
|
||||
define unknown = Character ('(???)',color="#000000")
|
||||
define jingo = Character ('Mr. Jingo',color="#42C053")
|
||||
define MaitD = Character ('Maitre D',color="#42C053")
|
||||
define Moe = Character('Moe',color="#42C053")
|
||||
define Vince = Character ('Vince',color="#3C770D") #Dark Green
|
||||
define Waitress = Character ('Waitress',color="#C89B19") #Gold
|
||||
define A = Character ('Anon',color="#36E12D", who_outlines=[(1, '#0C300A')]) # Light Green
|
||||
define F = Character ('Fang',color="#B4D4CE", who_outlines=[(1, '#112D27')]) # Light Cyan
|
||||
define Lucy = Character ('Lucy',color="#B4D4CE", who_outlines=[(1, '#112D27')]) # Light Cyan
|
||||
define Ro = Character ('Rosa',color="#FE712B", who_outlines=[(1, '#3D1809')]) # Red-Orange
|
||||
define St = Character ('Stella',color="#D2FFAA", who_outlines=[(1, '#203011')]) # Light Green
|
||||
define N = Character ('Naomi',color="#F8B9A0", who_outlines=[(1, '#291A1B')]) # Peach
|
||||
define Nas = Character ('Naser',color="#F89E38", who_outlines=[(1, '#2D2D2D')]) # Orange
|
||||
define T = Character ('Trish',color="#B675E6", who_outlines=[(1, '#1F0632')]) # Purple
|
||||
define Attendant = Character ('Attendant',color="#8A0036", who_outlines=[(1, '#FFFFFF')]) # Maroon
|
||||
define Sp = Character ('Spears',color="#C4C3C3", who_outlines=[(1, '#272727')]) # Light Grey
|
||||
define Re = Character ('Reed',color="#ED4C5B", who_outlines=[(1, '#361013')]) # Bright Red
|
||||
define D = Character ('Driver',color="#FFC63A", who_outlines=[(1, '#4D280A')]) # Yellow-Orange
|
||||
define FM = Character ('Fangs Mom',color="#FFD8F6", who_outlines=[(1, '#361730')]) # Bright Pink
|
||||
define FD = Character ('Fangs Dad',color="#D8A09A", who_outlines=[(1, '#190E0F')]) # Desaturated Orange
|
||||
define Tsuki = Character ('Mr. Tsuki',color="#A7F2A2", who_outlines=[(1, '#320E3B')]) # Pear Green
|
||||
define unknown = Character ('(???)',color="#000000", who_outlines=[(1, '#FFFFFF')]) # Black
|
||||
define jingo = Character ('Mr. Jingo',color="#CD8283", who_outlines=[(1, '#0F0D49')]) # Desaturated Red
|
||||
define MaitD = Character ('Maitre D',color="#241630", who_outlines=[(1, '#241630')]) # Cobalt Blue
|
||||
define Moe = Character('Moe',color="#A5BEED", who_outlines=[(1, '#342210')]) # Desaturated Blue
|
||||
define Vince = Character ('Vince',color="#FFC63A", who_outlines=[(1, '#4D280A')]) # Yellow-Orange
|
||||
define Waitress = Character ('Waitress',color="#F691C8", who_outlines=[(1, '#402E3A')]) # Pink
|
||||
#long TB chars
|
||||
|
||||
define AnonAndFang = Character('Anon and Fang',color="34F313")
|
||||
define SV = Character ('Street Vendor',color="#420046")
|
||||
define carl = Character ('Mr. Carldewskii',color="#4963A5")
|
||||
define Drf = Character ('Dr. Fernsworth',color="#4963A5")
|
||||
define FRT = Character ('Fang Reed & Trish',color="#4963A5")
|
||||
|
||||
define AnonAndFang = Character('Anon and Fang',color="72DFA8", who_outlines=[(1, '#113623')])
|
||||
define SV = Character ('Street Vendor',color="#F8E120", who_outlines=[(1, '#361504')])
|
||||
define carl = Character ('Mr. Carldewskii',color="#E19E40", who_outlines=[(1, '#03223B')])
|
||||
define Drf = Character ('Dr. Fernsworth',color="#253354", who_outlines=[(1, '#334573')])
|
||||
define FRT = Character ('Fang Reed & Trish',color="#4963A5", who_outlines=[(1, '#FFFFFF')])
|
||||
|
||||
#Extra image translations
|
||||
#siloettes
|
||||
|
@ -301,6 +298,13 @@ image black = "#000"
|
|||
label splashscreen:
|
||||
$ persistent.splashtype = random.randint(0,2000 - 1)
|
||||
$ renpy.movie_cutscene("images/intros/CaveManonProductions.webm")
|
||||
|
||||
if persistent.autoup:
|
||||
python:
|
||||
UpdateCheck()
|
||||
if persistent.updateresult != "No new version is available":
|
||||
updater.update(persistent.updateWebServer, force=True)
|
||||
|
||||
stop sound
|
||||
return
|
||||
|
||||
|
|
|
@ -774,7 +774,7 @@ label chapter_1:
|
|||
|
||||
Nas "Look, whatever happens promise you won’t hold this against them."
|
||||
|
||||
Nas "They're actually a really a nice person once you get to know them"
|
||||
Nas "They're actually a really nice person once you get to know them"
|
||||
|
||||
A "Naser why did you just murder the english language in cold blood?"
|
||||
|
||||
|
|
|
@ -115,32 +115,32 @@ label chapter_10:
|
|||
|
||||
A "...Fine..."
|
||||
|
||||
scene wounds1 with fade
|
||||
scene wounds01 with fade
|
||||
pause 2
|
||||
scene black with fade
|
||||
"I step into my tiny shower stall and turn on the water."
|
||||
|
||||
"The shower head sputters before it starts weakly spraying lukewarm water."
|
||||
|
||||
scene wounds2 with fade
|
||||
scene wounds02 with fade
|
||||
|
||||
"The temperature of the water doesn’t 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
|
||||
scene wounds03
|
||||
|
||||
"Each contusion is hot to the touch under my fingers and the pain is intense."
|
||||
|
||||
scene wounds4
|
||||
scene wounds04
|
||||
|
||||
"The worst is across my chest where the bollard hit me."
|
||||
|
||||
scene wounds5
|
||||
scene wounds05
|
||||
|
||||
"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
|
||||
scene wounds06
|
||||
|
||||
"Fang then pats the bed"
|
||||
|
||||
|
@ -148,7 +148,7 @@ label chapter_10:
|
|||
|
||||
"I walk over and lie down on my stomach"
|
||||
|
||||
scene wounds7
|
||||
scene wounds07
|
||||
|
||||
F "Jesus that's bad..."
|
||||
|
||||
|
@ -193,11 +193,11 @@ label chapter_10:
|
|||
A "Hm?"
|
||||
|
||||
F "I need to do the front."
|
||||
scene wounds8
|
||||
scene wounds08
|
||||
"Oh."
|
||||
|
||||
"Okay then. I roll over onto my back."
|
||||
scene wounds9
|
||||
scene wounds09
|
||||
"And find myself face to beak with her."
|
||||
|
||||
"Dangerously close."
|
||||
|
@ -350,4 +350,4 @@ label chapter_10:
|
|||
stop music fadeout 1.0
|
||||
"..."
|
||||
|
||||
return
|
||||
return
|
||||
|
|
|
@ -1853,8 +1853,6 @@ label chapter_13D:
|
|||
|
||||
"Curled up around my pillow, suckling on her thumb."
|
||||
|
||||
"And my present to her still hung around securely on her neck."
|
||||
|
||||
"I go back to the scrapbook, enjoying the memories I’ve shared with my friends."
|
||||
|
||||
"And to think I wanted to stay a loner when I first got here."
|
||||
|
|
|
@ -1244,7 +1244,7 @@ label chapter_2:
|
|||
|
||||
A "Huh?"
|
||||
|
||||
Re "Get your phone out man… Look up {color=#66cc33}'LW_S9znpklI'{/color}.."
|
||||
Re "Get your phone out man… Look up {color=#66cc33}'T9nXyUye3pg'{/color}.."
|
||||
|
||||
A "How did you say that out loud?"
|
||||
|
||||
|
|
|
@ -288,7 +288,7 @@ label chapter_5:
|
|||
label movie:
|
||||
A "FANG!"
|
||||
stop music fadeout 1.0
|
||||
image fang tail = Movie(play="animations/fangtail.webm",loop=True)
|
||||
image fang tail = Movie(play="animations/fang tail.webm",loop=True)
|
||||
|
||||
scene fang tail with fade
|
||||
|
||||
|
@ -502,7 +502,7 @@ label chapter_5:
|
|||
|
||||
F "{i}Uuuuughhhhh…{/i}"
|
||||
|
||||
F "...Allright, whatever."
|
||||
F "...Alright, whatever."
|
||||
|
||||
Ro "Go, go now! And no more tripping!"
|
||||
|
||||
|
@ -2546,4 +2546,8 @@ label chapter_5:
|
|||
|
||||
"..."
|
||||
|
||||
return
|
||||
return
|
||||
|
||||
label fang_movie:
|
||||
scene fang tail with fade
|
||||
""
|
||||
|
|
|
@ -2598,7 +2598,7 @@ label chapter_6:
|
|||
|
||||
A "Like… Like her passion, Naser. She adores music. Adores {i}playing{/i} music."
|
||||
|
||||
A "And she has theses… moments where I can see the softer side of her."
|
||||
A "And she has these… moments where I can see the softer side of her."
|
||||
|
||||
"The pop of knuckles from Naser tells me I should rephrase that."
|
||||
|
||||
|
@ -2685,4 +2685,4 @@ label chapter_6:
|
|||
|
||||
"..."
|
||||
|
||||
return
|
||||
return
|
||||
|
|
|
@ -174,11 +174,11 @@ label chapter_7:
|
|||
#>>golden
|
||||
St "Upright Strength"
|
||||
St "OH! I don’t think you need to worry about what’s to come, Anon."
|
||||
elif anonscore >= 3 and fangscore <= 2:
|
||||
elif anonscore >= 3 and fangscore <= 3:
|
||||
#>>tradwife
|
||||
St "Inverted Hierophant."
|
||||
St "You need to be wary of your words and actions, Anon."
|
||||
elif anonscore <= 2 and fangscore >= 3:
|
||||
elif anonscore <= 3 and fangscore >= 3:
|
||||
#>>doomer
|
||||
St "Inverted Hermit."
|
||||
St "Anon, if you ever feel lonely you can come to me."
|
||||
|
@ -641,166 +641,167 @@ label chapter_7:
|
|||
F "T-tuesday?"
|
||||
|
||||
"Fang fell out of tempo with Reed’s drums, stumbling over the end of the song."
|
||||
"It’s silent."
|
||||
"It’s silent."
|
||||
|
||||
"I began to clap, followed by several other patrons."
|
||||
"I began to clap, followed by several other patrons."
|
||||
|
||||
"Including Stella who looked seconds away from being curb-stomped."
|
||||
"Including Stella who looked seconds away from being curb-stomped."
|
||||
|
||||
"Rosa is on the other side of the room, too entranced by the music to care."
|
||||
"Rosa is on the other side of the room, too entranced by the music to care."
|
||||
|
||||
play music 'audio/OST/Summertime Synth.ogg' fadein 1.0
|
||||
scene moebackrooms
|
||||
show anon neutral flip at aright
|
||||
with fade
|
||||
"My eyes scan the room before noticing Trish, the sheer vehement rage radiating from her visibly distorting the air around her."
|
||||
play music 'audio/OST/Summertime Synth.ogg' fadein 1.0
|
||||
scene moebackrooms
|
||||
show anon neutral flip at aright
|
||||
with fade
|
||||
"My eyes scan the room before noticing Trish, the sheer vehement rage radiating from her visibly distorting the air around her."
|
||||
|
||||
"Fuck."
|
||||
stop music fadeout 1.0
|
||||
"Fuck."
|
||||
stop music fadeout 1.0
|
||||
|
||||
"My jaw aches as I picture myself in Stella’s place, courtesy of one pissed of womanlet."
|
||||
"My jaw aches as I picture myself in Stella’s place, courtesy of one pissed of womanlet."
|
||||
|
||||
"Before I have the chance to escape I hear my one saving grace."
|
||||
"Before I have the chance to escape I hear my one saving grace."
|
||||
|
||||
show fang very happy with moveinleft:
|
||||
xalign 0.6 yalign 0.1
|
||||
show fang very happy with moveinleft:
|
||||
xalign 0.6 yalign 0.1
|
||||
|
||||
F "ANON!"
|
||||
F "ANON!"
|
||||
|
||||
"Fang reaches me before Trish leaves the stage, extending her hand for a high-five."
|
||||
show fang happy with dissolve
|
||||
"Fang reaches me before Trish leaves the stage, extending her hand for a high-five."
|
||||
show fang happy with dissolve
|
||||
|
||||
F "We did it!"
|
||||
show trish unimpressed at tleft with moveinleft
|
||||
T "No thanks to that asshole!"
|
||||
F "We did it!"
|
||||
show trish unimpressed at tleft with moveinleft
|
||||
T "No thanks to that asshole!"
|
||||
|
||||
"Oh no."
|
||||
"Oh no."
|
||||
|
||||
show fang neutral flip behind anon with dissolve
|
||||
show fang neutral flip behind anon with dissolve
|
||||
|
||||
F "What’s wrong?"
|
||||
F "What’s wrong?"
|
||||
|
||||
show trish angry with dissolve
|
||||
show trish angry with dissolve
|
||||
|
||||
T "Skinnie sabotaged the show!"
|
||||
T "Skinnie sabotaged the show!"
|
||||
|
||||
T "I told him not to touch the wires and look what happened!"
|
||||
T "I told him not to touch the wires and look what happened!"
|
||||
|
||||
A "I was only trying to help."
|
||||
A "I was only trying to help."
|
||||
|
||||
show trish annoyed with dissolve
|
||||
show trish annoyed with dissolve
|
||||
|
||||
"Trish holds up her hand to my face, waving the other around in grand gestures."
|
||||
"Trish holds up her hand to my face, waving the other around in grand gestures."
|
||||
|
||||
show trish indignant with dissolve
|
||||
show trish indignant with dissolve
|
||||
|
||||
T "You ruined the big finale! We missed our chance to make it big!"
|
||||
T "You ruined the big finale! We missed our chance to make it big!"
|
||||
|
||||
T "Why is it that only my bass cut out anyways?!"
|
||||
T "Why is it that only my bass cut out anyways?!"
|
||||
|
||||
T "Are you actively trying to ruin us?!"
|
||||
T "Are you actively trying to ruin us?!"
|
||||
|
||||
T "I told you Reed knew what he was doing!"
|
||||
T "I told you Reed knew what he was doing!"
|
||||
|
||||
T "Do you not trust him and I?"
|
||||
T "Do you not trust him and I?"
|
||||
|
||||
show fang sad flip
|
||||
show trish fury point:
|
||||
yalign 10.0
|
||||
with dissolve
|
||||
show fang sad flip
|
||||
show trish fury point:
|
||||
yalign 10.0
|
||||
with dissolve
|
||||
|
||||
"Tears trickle down her sweat-glazed face."
|
||||
"Tears trickle down her sweat-glazed face."
|
||||
|
||||
T "Is Fang really the only one here you care about?!"
|
||||
T "Is Fang really the only one here you care about?!"
|
||||
|
||||
T "You are not the only person in the world!"
|
||||
show trish sad at tleft with dissolve
|
||||
show anon sad flip with dissolve
|
||||
T "You are not the only person in the world!"
|
||||
show trish sad at tleft with dissolve
|
||||
show anon sad flip with dissolve
|
||||
|
||||
"This hypocritical bitch!"
|
||||
"This hypocritical bitch!"
|
||||
|
||||
"The sharp words cut right through me."
|
||||
"The sharp words cut right through me."
|
||||
|
||||
F "Jeez, Trish. The show went great! Our first good concert!"
|
||||
F "Jeez, Trish. The show went great! Our first good concert!"
|
||||
|
||||
show fang neutral flip
|
||||
with dissolve
|
||||
F "The crowd actually clapped this time!"
|
||||
show fang neutral flip
|
||||
with dissolve
|
||||
F "The crowd actually clapped this time!"
|
||||
|
||||
T "No thanks to him."
|
||||
T "No thanks to him."
|
||||
|
||||
A "I didn’t do it on purpose."
|
||||
A "I didn’t do it on purpose."
|
||||
|
||||
"Even though you deserved it."
|
||||
"Even though you deserved it."
|
||||
|
||||
"Before she could interrogate me further, Fang grabbed Trish on the arm."
|
||||
"Before she could interrogate me further, Fang grabbed Trish on the arm."
|
||||
|
||||
show fang happy flip with dissolve
|
||||
F "Trish! Didn’t you say you wanted to set up our merch!"
|
||||
show trish unimpressed with dissolve
|
||||
show anon neutral flip with dissolve
|
||||
show fang happy flip with dissolve
|
||||
F "Trish! Didn’t you say you wanted to set up our merch!"
|
||||
show trish unimpressed with dissolve
|
||||
show anon neutral flip with dissolve
|
||||
|
||||
"Trish winces, then gives a begrudging sigh, lowering her accusatory finger."
|
||||
"Trish winces, then gives a begrudging sigh, lowering her accusatory finger."
|
||||
|
||||
show trish unimpressed with dissolve
|
||||
show trish unimpressed with dissolve
|
||||
|
||||
T "Ugh, you aren’t worth it."
|
||||
T "Ugh, you aren’t worth it."
|
||||
|
||||
hide trish with dissolve
|
||||
show fang neutral flip with dissolve
|
||||
"Trish storms off leaving Fang and I alone."
|
||||
hide trish with dissolve
|
||||
show fang neutral flip with dissolve
|
||||
"Trish storms off leaving Fang and I alone."
|
||||
|
||||
"And Reed who was listening the entire time."
|
||||
"And Reed who was listening the entire time."
|
||||
|
||||
show reed neutral at rleft with moveinleft
|
||||
pause 1
|
||||
show reed considering with dissolve
|
||||
pause 1
|
||||
show reed neutral with dissolve
|
||||
pause 1
|
||||
show reed explanatory with dissolve
|
||||
Re "Anon, dude… you really should trust others, y’know?"
|
||||
show reed neutral at rleft with moveinleft
|
||||
pause 1
|
||||
show reed considering with dissolve
|
||||
pause 1
|
||||
show reed neutral with dissolve
|
||||
pause 1
|
||||
show reed explanatory with dissolve
|
||||
Re "Anon, dude… you really should trust others, y’know?"
|
||||
|
||||
Re "It’s like they say… trust is the building block of our economy, or something."
|
||||
Re "It’s like they say… trust is the building block of our economy, or something."
|
||||
|
||||
"What."
|
||||
"What."
|
||||
|
||||
Re "There are two kinds of people in this world, bro... people who believe and people who trust."
|
||||
Re "There are two kinds of people in this world, bro... people who believe and people who trust."
|
||||
|
||||
Re "And you believed in something false, your impulsiveness."
|
||||
show reed shocked
|
||||
show fang surprised
|
||||
show anon neutral
|
||||
with dissolve
|
||||
"Before I can begin to comprehend Reed’s capitalist sermon, my ears are assaulted by very Italian yelling."
|
||||
Re "And you believed in something false, your impulsiveness."
|
||||
show reed shocked
|
||||
show fang surprised
|
||||
show anon neutral
|
||||
with dissolve
|
||||
"Before I can begin to comprehend Reed’s capitalist sermon, my ears are assaulted by very Italian yelling."
|
||||
|
||||
Moe "AY, KIDS!"
|
||||
Moe "AY, KIDS!"
|
||||
|
||||
#moe now has vvurm drama apron
|
||||
show moealt with moveinright:
|
||||
xalign 1.8 yalign 0.0
|
||||
#moe now has vvurm drama apron
|
||||
show moealt with moveinright:
|
||||
xalign 1.8 yalign 0.0
|
||||
|
||||
Moe "LOOKIT DIS ‘ERE AH-PRON YA LIL TRIGGA FRIEN SOL’ ME!"
|
||||
Moe "LOOKIT DIS ‘ERE AH-PRON YA LIL TRIGGA FRIEN SOL’ ME!"
|
||||
|
||||
"Reed looks almost jealous of Moe’s new garb."
|
||||
"Reed looks almost jealous of Moe’s new garb."
|
||||
|
||||
show reed neutral
|
||||
show reed neutral
|
||||
|
||||
Re "Nice threads, compadre."
|
||||
Re "Nice threads, compadre."
|
||||
|
||||
show fang happy with dissolve
|
||||
show fang happy with dissolve
|
||||
|
||||
unknown "Hey! Someone took ma apron!"
|
||||
unknown "Hey! Someone took ma apron!"
|
||||
|
||||
Moe "GIT BACK TA WORK JERRY YER ON DA CLOCK!"
|
||||
Moe "GIT BACK TA WORK JERRY YER ON DA CLOCK!"
|
||||
|
||||
F "It uh… looks nice, Uncle Moe."
|
||||
F "It uh… looks nice, Uncle Moe."
|
||||
|
||||
Moe "Anyways, youse all gonna be helpin’ wit da clean up, right?"
|
||||
Moe "Anyways, youse all gonna be helpin’ wit da clean up, right?"
|
||||
|
||||
"I look at the absolute mess around us."
|
||||
"I look at the absolute mess around us."
|
||||
|
||||
"Fuck."
|
||||
"Fuck."
|
||||
stop music fadeout 1.0
|
||||
|
||||
scene black with fade
|
||||
scene moebackrooms with fade
|
||||
|
@ -812,7 +813,7 @@ label chapter_7:
|
|||
|
||||
"Rosa wanted to stay and help clean buuut…"
|
||||
|
||||
"{i}Ro I am so sorry Stella! Come, I shall nurse you back at my home!{/i}"
|
||||
Ro "{i}I am so sorry Stella! Come, I shall nurse you back at my home!{/i}"
|
||||
|
||||
"I’d feel more sorry for Stella but Rosa looked capable of helping her."
|
||||
|
||||
|
|
285
game/src/cg_gallery.rpy
Normal file
|
@ -0,0 +1,285 @@
|
|||
init python:
|
||||
|
||||
# CONST PARAMS
|
||||
ALLOW_ZOOM = False
|
||||
GALLERY_COLS = 3
|
||||
PREFERRED_WIDTH = 432 #px (1920 * 0.225)
|
||||
PREFERRED_HEIGHT = 243 #px (1080 * 0.225)
|
||||
PREFERRED_ASPECT_RATIO = 16.0/9.0 # 1.7777..
|
||||
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", "webm"]
|
||||
CG_PATHS = [
|
||||
#CG doesn't really make sense
|
||||
{ 'path': "images/cgs/", 'name': "CG", 'eval': None },
|
||||
{ 'path': "images/animations/", 'name': "Animations", 'eval': None },
|
||||
{ 'path': "images/NotForKids!/", 'name': "Lewd",
|
||||
'eval': 'persistent.lewd == True'
|
||||
}
|
||||
]
|
||||
#path: folder, name: shows up in gallery, eval: runs eval() on string
|
||||
|
||||
"""
|
||||
Data structure that holds the data for each cg and button
|
||||
item is name, fn is fullpath
|
||||
ext is the file extension
|
||||
{ item: str; fn: str; cg: Displayable; ext: str; wh: [] }[]
|
||||
(reference in this init python, actually used in screens)
|
||||
"""
|
||||
gallery_items = []
|
||||
|
||||
# key dict pair, cg <-> cgs' galleryitems []
|
||||
gallery_dic = {} #
|
||||
for cp in CG_PATHS:
|
||||
gallery_dic[cp['name']] = [] #
|
||||
|
||||
# Make a scaled cg button
|
||||
# (cg: string; ext: string; w: float
|
||||
def cg(fname, ext, w):
|
||||
scale = PREFERRED_WIDTH * 100.0 / w / 100.0
|
||||
#scale = box_ratio(wh)
|
||||
return im.FactorScale(fname, scale, scale, False)
|
||||
|
||||
# Reads /images/cgs dir for all image files
|
||||
# Populates galleryItems
|
||||
# () -> None
|
||||
def loadGallery():
|
||||
|
||||
list_img = renpy.list_images()
|
||||
|
||||
#if ext is "webm":
|
||||
# Add each image to the gallery
|
||||
for str in list_img:
|
||||
for cp in CG_PATHS:
|
||||
for ext in ACCEPTED_EXTENSIONS:
|
||||
path = cp['path']
|
||||
_str = path+str+"."+ext
|
||||
|
||||
if renpy.loadable(_str): #brute force
|
||||
image = renpy.image_size(Image(_str))
|
||||
|
||||
gallery_dic[cp['name']] += [{
|
||||
"item": str,
|
||||
"fn": _str,
|
||||
"cg": cg(_str, ext, image[0]),
|
||||
"ext": ext,
|
||||
"wh": image
|
||||
}]
|
||||
return
|
||||
|
||||
# Call to loading the gallery
|
||||
loadGallery()
|
||||
|
||||
# hard code the webm because renpy is really dumb and doesn't add Movies properly until much later
|
||||
fang_webm = 'images/animations/fang tail.webm'
|
||||
gallery_dic['Animations'] = [{
|
||||
"item": 'fang tail',
|
||||
"fn": fang_webm,
|
||||
"cg": Movie(fang_webm),#cg(_str, 'webm', 1920),
|
||||
"ext": 'webm',
|
||||
"wh": [1920, 1080]
|
||||
}]
|
||||
|
||||
#for zooming in and out
|
||||
zoom_arr = [0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1.0, 1.125, 1.25, 1.5, 1.75, 2.0]
|
||||
|
||||
"""
|
||||
for x in range(1,5):
|
||||
_zoom = 1.0
|
||||
_zoom *= 1+(x*0.25)
|
||||
zoom_arr.append(_zoom)
|
||||
|
||||
for y in range(9,1,-1):
|
||||
_zoom = 1.0
|
||||
_zoom *= (y*0.125)
|
||||
zoom_arr.append(_zoom)
|
||||
|
||||
zoom_arr.sort()
|
||||
"""
|
||||
"""
|
||||
'Recursive' / Loopable / Roundtrip Screens
|
||||
_0 <-> _1
|
||||
"""
|
||||
#There is renpy.restart_interaction but since I wrote all this, it's too late
|
||||
#screen cg_gallery(flag, __yoffset = 0, origin = 'CG'):
|
||||
screen cg_gallery_0(__yoffset = 0, origin = 'CG'):
|
||||
tag menu
|
||||
use cg_gallery('1', __yoffset, origin)
|
||||
screen cg_gallery_1( __yoffset = 0, origin = 'CG'):
|
||||
tag menu
|
||||
use cg_gallery('0', __yoffset, origin)
|
||||
|
||||
#screen view_image(fn, _origin, zoom=1):
|
||||
screen view_image_a(fn, _origin, zoom = zoom_arr.index(1.0)):
|
||||
tag menu
|
||||
use view_image(fn, _origin, zoom, 'b')
|
||||
screen view_image_b(fn, _origin, zoom = zoom_arr.index(1.0)):
|
||||
tag menu
|
||||
use view_image(fn, _origin, zoom, 'a')
|
||||
|
||||
"""
|
||||
CG Gallery screen - A screen that shows the image gallery
|
||||
Basically Gallery Object has terrible defaults, so I just wrote my own stuff
|
||||
"""
|
||||
screen cg_gallery(flag, __yoffset = 0, origin = 'CG'):
|
||||
|
||||
if main_menu:
|
||||
key "game_menu" action ShowMenu("main_menu")
|
||||
|
||||
|
||||
frame:
|
||||
pass
|
||||
add gui.main_menu_background
|
||||
add gui.game_menu_background
|
||||
|
||||
tag menu
|
||||
|
||||
python:
|
||||
empty_spaces = gallery_rows = item_counter = 0
|
||||
|
||||
gallery_items = gallery_dic[origin]
|
||||
items = len(gallery_items)
|
||||
gallery_rows = (items / GALLERY_COLS) + 1
|
||||
empty_spaces = GALLERY_COLS - (items % GALLERY_COLS)
|
||||
|
||||
|
||||
vbox:
|
||||
transform:
|
||||
zoom 0.95
|
||||
hbox:
|
||||
style_prefix "navigation"
|
||||
xalign 0.5
|
||||
|
||||
spacing gui.navigation_spacing
|
||||
|
||||
for cp in CG_PATHS:
|
||||
if cp['name'] == origin:
|
||||
textbutton _(cp['name']) text_color gui.selected_color text_xalign 0.5
|
||||
else:
|
||||
if cp['eval'] is None:
|
||||
textbutton _(cp['name']) action ShowMenu('cg_gallery_'+flag, 0, cp['name']) text_xalign 0.5
|
||||
elif eval(cp['eval']):
|
||||
textbutton _(cp['name']) action ShowMenu('cg_gallery_'+flag, 0, cp['name']) text_xalign 0.5
|
||||
else:
|
||||
textbutton _(cp['name']) text_xalign 0.5
|
||||
textbutton _("Return") action ShowMenu('main_menu') text_xalign 0.5
|
||||
|
||||
if _in_replay:
|
||||
textbutton _("End Replay") action EndReplay(confirm=True)
|
||||
elif not main_menu:
|
||||
textbutton _("Main Menu") action MainMenu()
|
||||
|
||||
transform:
|
||||
zoom 0.95
|
||||
xcenter 0.525
|
||||
ycenter 0.525
|
||||
|
||||
viewport:
|
||||
yinitial __yoffset
|
||||
scrollbars "vertical"
|
||||
mousewheel True
|
||||
draggable True
|
||||
pagekeys True
|
||||
xfill True
|
||||
|
||||
grid GALLERY_COLS gallery_rows:
|
||||
xcenter 0.5
|
||||
ycenter 0.5
|
||||
for item in gallery_items:
|
||||
# Should properly fix with actual margin difference but good
|
||||
# enough or the actual position
|
||||
python:
|
||||
item_counter += 1
|
||||
yoffset = item_counter / 3 * PREFERRED_HEIGHT * 1.15
|
||||
yoffset = int( yoffset + (PREFERRED_HEIGHT * 1.15))
|
||||
|
||||
use flag_button(item, yoffset, origin)
|
||||
|
||||
for i in range(0, empty_spaces):
|
||||
null height 20
|
||||
|
||||
|
||||
"""
|
||||
if/else flow control & extra parameters for Buttons
|
||||
"""
|
||||
screen flag_button(item, yoffset, origin):
|
||||
python:
|
||||
flag = renpy.seen_image(item['item'])
|
||||
|
||||
if flag:
|
||||
button:
|
||||
if item['ext'] == "webm":
|
||||
action Replay('fang_movie')#ShowMenu('view_movie', item, ShowMenu('cg_gallery_0', yoffset, origin))
|
||||
else:
|
||||
action ShowMenu('view_image_a', item, ShowMenu('cg_gallery_0', yoffset, origin))
|
||||
xcenter 0.5 ycenter 0.5
|
||||
padding (1,0,1,2)
|
||||
vbox:
|
||||
text item["item"] xalign 0.5
|
||||
add item["cg"] fit 'contain' xcenter 0.5 ycenter 0.5 size (PREFERRED_WIDTH, PREFERRED_HEIGHT)
|
||||
else:
|
||||
vbox:
|
||||
ymaximum PREFERRED_HEIGHT
|
||||
xcenter 0.5 ycenter 0.5
|
||||
text "? ? ?" xalign 0.5
|
||||
add NOT_UNLOCKED_COVER
|
||||
|
||||
|
||||
screen view_movie(item, _origin):
|
||||
tag menu
|
||||
key "game_menu" action _origin
|
||||
python:
|
||||
renpy.movie_cutscene(item['item'], None, -1)
|
||||
frame:
|
||||
pass
|
||||
#scene fang tail with fade
|
||||
|
||||
|
||||
"""
|
||||
view_image, Loads the image in fullscreen with viewport control.
|
||||
"""
|
||||
screen view_image(item, _origin, zoom = zoom_arr.index(1.0), flag='a'):
|
||||
python:
|
||||
zoom_a = zoom+1
|
||||
zoom_a_f = ShowMenu('view_image_'+flag, item, _origin, zoom_a)
|
||||
zoom_b = zoom-1
|
||||
zoom_b_f = ShowMenu('view_image_'+flag, item, _origin, zoom_b)
|
||||
|
||||
tag menu
|
||||
key "game_menu" action _origin
|
||||
|
||||
# mousewheel & insert+delete
|
||||
if (ALLOW_ZOOM):
|
||||
if zoom < len(zoom_arr)-1: #zoom in
|
||||
key 'mousedown_4' action zoom_a_f
|
||||
key 'K_INSERT' action zoom_a_f
|
||||
if zoom > 0: #and (item['wh'][0] <= 1920 or item['wh'][1] <= 1080):
|
||||
key 'mousedown_5' action zoom_b_f
|
||||
key 'K_DELETE' action zoom_b_f
|
||||
|
||||
viewport id "vie":
|
||||
#Ren'Py isn't smart enough to not edgescroll while pressed,
|
||||
#so we'll have to disable this for mobile
|
||||
if renpy.variant("pc"):
|
||||
edgescroll (300, 1800)
|
||||
draggable True
|
||||
arrowkeys True
|
||||
pagekeys True
|
||||
xfill False
|
||||
yfill False
|
||||
add item['fn'] zoom zoom_arr[zoom] anchor (0.55, 0.55)
|
||||
|
||||
#Reuse quick buttons, Ren'Py handles touch input lazy, it doesn't have
|
||||
#double finger pinch zoom, it translates taps as mouse events - have to use
|
||||
#buttons
|
||||
if (ALLOW_ZOOM) and renpy.variant("small"):
|
||||
hbox:
|
||||
style_prefix "quick"
|
||||
xalign 0.5
|
||||
yalign 0.975
|
||||
use quick_buttons("gui/button/uioptionbuttons/template_idle.png",
|
||||
[
|
||||
[ "+", zoom_a_f ],
|
||||
[ "-", zoom_b_f ]
|
||||
] )
|
69
game/src/mod_menu.rpy
Normal file
|
@ -0,0 +1,69 @@
|
|||
# Mod Menu screen ############################################################
|
||||
##
|
||||
## Handles jumping to the mods scripts
|
||||
## Could be more lean but if this is going to one of last time I touch the UI,
|
||||
## then fine by me
|
||||
##
|
||||
#similar to quick_button funcs
|
||||
screen mod_menu_button(filename, label, function):
|
||||
button:
|
||||
xmaximum 600
|
||||
ymaximum 129
|
||||
action function
|
||||
fixed:
|
||||
add filename xalign 0.5 yalign 0.5 zoom 0.9
|
||||
text label xalign 0.5 yalign 0.5 xanchor 0.5 size 34
|
||||
|
||||
# arr is [{
|
||||
# 'Name': string (name that appears on the button)
|
||||
# 'Label': string (jump label)
|
||||
# }, { .. } ]
|
||||
# Reuse the same image string and keep things 'neat'.
|
||||
screen mod_menu_buttons(filename, arr):
|
||||
for x in arr:
|
||||
use mod_menu_button(filename, x['Name'], Start(x['Label']))
|
||||
|
||||
screen mod_menu():
|
||||
|
||||
tag menu
|
||||
|
||||
style_prefix "main_menu"
|
||||
|
||||
add gui.main_menu_background
|
||||
|
||||
frame:
|
||||
xsize 420
|
||||
yfill True
|
||||
background "gui/overlay/main_menu.png"
|
||||
|
||||
#side_yfill True
|
||||
vbox:
|
||||
xpos 1940
|
||||
yalign 0.03
|
||||
if persistent.splashtype == 1:
|
||||
add "gui/sneedgame.png"
|
||||
else:
|
||||
add "gui/snootgame.png"
|
||||
|
||||
viewport:
|
||||
# this could be better but its ok for now
|
||||
xpos 1885-540
|
||||
xmaximum 540
|
||||
ymaximum 0.8
|
||||
ypos 200
|
||||
yinitial 0
|
||||
scrollbars "vertical"
|
||||
mousewheel True
|
||||
draggable True
|
||||
pagekeys True
|
||||
vbox:
|
||||
#xpos 1885
|
||||
spacing 18
|
||||
#yalign 0.98
|
||||
|
||||
#buttons are messed up but that's ok
|
||||
use mod_menu_button("gui/button/menubuttons/template_idle.png", "Return", ShowMenu("main_menu"))
|
||||
if len(mod_menu_access) is not 0:
|
||||
use mod_menu_buttons("gui/button/menubuttons/template_idle.png", mod_menu_access )
|
||||
else:
|
||||
use mod_menu_button("gui/button/menubuttons/template_idle.png", "You have no mods", None)
|