SnootGame/game/script.rpy

331 lines
12 KiB
Plaintext

#TODO
#<strike>add chadshark</strike>
#The game needs something like a CG gallery, if only to track your progress.
#remove sex
#troll /adgd/
#idk debug lol
#just like make game
#??????
#Profit&Export
#/usr/bin/touch gf - cannot touch 'gf': Permission denied
#To whoever looked at the old script file of this, woe be upon ye, because it was an absolute clusterfuck. story scripts are now in the script directory. everything here is just boilerplate code for characters, scenes, transitions, and whatnot.
#Even then (extending to definitions.rpy), it's incredibly inconsistant with how things are named, how things are set up, and there's definitely a lot of optimization that could be had and refactoring needed.
#Why yes all my code was formerly in one massive file called "script" thats 28k lines long, how could you tell?
#Licensed under the GNU AGPL v3, for more information check snootgame.xyz or the LICENSE file that should have came with this work.
init -1 python:
# Modding Support variables
# All mod rpy files must run a small init python script
mod_dir = "mods/"
mod_menu_access = []
init python:
import random
import webbrowser
#function for insult layers
def showCG():
files = ["text1", "text2", "text3", "text4", "text5", "text6", "text7", "text8", "text9"]
length = len(files)
picked = random.randint(0,length - 1)
fileName = files[picked]
renpy.show(fileName, at_list=[randPosition])
# extra music channel so we can do crossfade instead of fadeout followed by fadein
# TODO: function for stopping both channels with optional fadeout so we don't have to keep track of which channel is playing
renpy.music.register_channel("music1","music",True,tight=True)
renpy.music.register_channel("music2","music",True,tight=True)
# allows playing looped ambience alongside music
renpy.music.register_channel("ambient","sfx",True,tight=True)
renpy.music.register_channel("ambient1","sfx",True,tight=True)
renpy.music.register_channel("ambient2","sfx",True,tight=True)
renpy.music.register_channel("ambient3","sfx",True,tight=True)
if persistent.scroll == True:
config.keymap['dismiss'].append('mousedown_4')
elif persistent.scroll == None:
persistent.scroll = False
if persistent.lewd == None:
persistent.lewd = False
if persistent.autoup == None:
persistent.autoup = False
if persistent.bonus_chapters == None:
if renpy.seen_image("big ending"): #for returning players
persistent.bonus_chapters = 0b111111111
persistent.old_bonus_chapters = 0b111111111
else:
persistent.bonus_chapters = 0b0
persistent.old_bonus_chapters = 0b0
def randomize_choices(choices):
# fine for size of 2
if (renpy.random.randint(0, 1)):
choices.reverse()
return choices
pass
transform randPosition:
alpha 0.0
xalign random.uniform(0.2,0.8)
yalign random.uniform(0.2,0.8)
linear 0.6 alpha 1.0
linear 1.0 alpha 0.0
#python:
# def Walking( name ):
# show name:
# xalign 0.2 yalign 0.25
# ease 1.0 yalign 0.0
# ease 1.0 yalign 0.25
# repeat
#layeredimage aquariumexhibit:
#group animals:
# attribute babyTurtle:
# attribute octo:
# attribute
# attribute
# attribute
# attribute
#layeredimage aquarium
#group kids:
# attribute wkids:
# "smolpatrol.webp"
#layeredimage anon:
# group face:
# attribute neutralFace default:
# "anonb1f1.webp"
# attribute happyFace:
# "anonhappyface.webp"
# attribute flipNeutralFace:
# "flipanonb1f1.webp"
# attribute flipHappyFace:
# "flipanonhappyface.webp"
# group body:
# attribute neutralBody default:
# "anonspriteneutral.webp"
# attribute thumbsUp:
# "anonspritethumbsup.webp"
# attribute flipThumbsUp:
# "flipanonspritethumbsup.webp"
# attribute:
# "flipanonspriteneutral.webp"
# attribute monkey:
# "monkeyanon.webp"
# group holding:
# attribute guitar:
# "guitar.webp"
# Click-to-continue icons / animations
# TODO: settle on a position/animation that people like
#Raw Image & kwargs for long textboxes
define long_textbox_img = Image("gui/textbox_long.png", xalign=0.5, yalign=1.0)
define long_textbox = { "window_background": long_textbox_img, 'namebox_style': "namebox_large" }
#Characters
define base = Character (ctc="ctc_end_marker", ctc_pause="ctc_mid_marker", ctc_timedpause=Null(), ctc_position="nestled") # try to remember some of the basics of CTC
define narrator = Character(kind=base)
define A = Character (_('Anon'), base, color="#36E12D", who_outlines=[(gui.name_text_thickness, '#0C300A')]) # Light Green
define F = Character (_('Fang'), base, color="#B4D4CE", who_outlines=[(gui.name_text_thickness, '#0F3930')]) # Light Cyan
define Lucy = Character (_('Lucy'), base, color="#B4D4CE", who_outlines=[(gui.name_text_thickness, '#0F3930')]) # Light Cyan
define Ro = Character (_('Rosa'), base, color="#FE712B", who_outlines=[(gui.name_text_thickness, '#54230F')]) # Red-Orange
define St = Character (_('Stella'), base, color="#D5FFAE", who_outlines=[(gui.name_text_thickness, '#294211')]) # Light Green
define N = Character (_('Naomi'), base, color="#FDD2C1", who_outlines=[(gui.name_text_thickness, '#462628')]) # Peach
define Nas = Character (_('Naser'), base, color="#FFB561", who_outlines=[(gui.name_text_thickness, '#512322')]) # Orange
define T = Character (_('Trish'), base, color="#B675E6", who_outlines=[(gui.name_text_thickness, '#3A0C5D')]) # Purple
define Attendant = Character (_('Attendant'), base, color="#5BF0F8", who_outlines=[(gui.name_text_thickness, '#121C68')]) # Aqua
define Sp = Character (_('Spears'), base, color="#C7C7C7", who_outlines=[(gui.name_text_thickness, '#272727')]) # Light Grey
define Re = Character (_('Reed'), base, color="#ED4C5B", who_outlines=[(gui.name_text_thickness, '#421014')]) # Bright Red
define D = Character (_('Driver'), base, color="#FFECBC", who_outlines=[(gui.name_text_thickness, '#563010')]) # Yellow-Orange
define FM = Character (_("Fang's Mom"), base, color="#FFD8F6", who_outlines=[(gui.name_text_thickness, '#521947')]) # Bright Pink
define FD = Character (_("Fang's Dad"), base, color="#D8A09A", who_outlines=[(gui.name_text_thickness, '#461B1F')]) # Desaturated Orange
define LM = Character (_("Lucy's Mom"), base, color="#FFD8F6", who_outlines=[(gui.name_text_thickness, '#521947')]) # Bright Pink
define LD = Character (_("Lucy's Dad"), base, color="#D8A09A", who_outlines=[(gui.name_text_thickness, '#461B1F')]) # Desaturated Orange
define Tsuki = Character (_('Mr. Tsuki'), base, color="#A7F2A2", who_outlines=[(gui.name_text_thickness, '#471054')]) # Pear Green
define unknown = Character (_('(???)'), base, color="#FFF", who_outlines=[(gui.name_text_thickness, '#000')]) # White
define jingo = Character (_('Mr. Jingo'), base, color="#CD8283", who_outlines=[(gui.name_text_thickness, '#0F0D49')]) # Desaturated Red
define MaitD = Character (_('Maitre D'), base, color="#AF9EFF", who_outlines=[(gui.name_text_thickness, '#241630')]) # Cobalt Blue
define Moe = Character(_('Moe'), base, color="#A5BEED", who_outlines=[(gui.name_text_thickness, '#1F253B')]) # Desaturated Blue
define Vince = Character (_('Vince'), base, color="#FFECBC", who_outlines=[(gui.name_text_thickness, '#563010')]) # Yellow-Orange
define Waitress = Character (_('Waitress'), base, color="#F691C8", who_outlines=[(gui.name_text_thickness, '#512040')]) # Pink
define Riley = Character (_('Riley'), base, color="#B675E6", who_outlines=[(gui.name_text_thickness, '#1F0632')]) # TODO
define Tana = Character (_('Tana'), base, color="#B675E6", who_outlines=[(gui.name_text_thickness, '#1F0632')]) # TODO
define Trevor = Character (_('Trevor'), base, color="#B675E6", who_outlines=[(gui.name_text_thickness, '#1F0632')]) # TODO
#long TB chars
define AnonAndFang = Character(_('Anon and Fang'), base, color="72DFA8", who_outlines=[(gui.name_text_thickness, '#113623')]) # Cyan
define SV = Character (_('Street Vendor'), base, color="#F8E120", who_outlines=[(gui.name_text_thickness, '#58260C')]) # Yellow
define carl = Character ('Mr. Carldewskii', base, color="#EECB99", who_outlines=[(gui.name_text_thickness, '#082337')]) #Puke Orange
define Drf = Character ('Dr. Fernsworth', base, color="#DCEEF5", who_outlines=[(gui.name_text_thickness, '#253354')]) #Yellow-Orange
define FRT = Character (_('Fang Reed & Trish'), base, color="#DCBBF7", who_outlines=[(gui.name_text_thickness, '#191C78')]) #Light Purple
define FangAndTrish = Character(_('Fang and Trish'), base, color="#42DFA8", who_outlines=[(gui.name_text_thickness, '#183623')])
define NaserAndNaomi = Character(_('Naser and Naomi'), base, color="#22DFA8", who_outlines=[(gui.name_text_thickness, '#2036B3')])
define TeamMember = Character(_('Team member'), base, color="#D32552", who_outlines=[(gui.name_text_thickness, '#445F42')])
define Everyone = Character(_('Everyone'), base, color="#A45489", who_outline=[(gui.name_text_thickness, '#4F5F81')])
define Chet = Character(_('Chet'), base, color="#B45411", who_outline=[(gui.name_text_thickness, '#BF5F81')])
#Custom Vars for positions
transform scenter:
xalign 0.5 yalign 0.0
transform sleft:
xalign 0.0 yalign 0.0
transform sright:
xalign 1.0 yalign 0.0
#Stella
transform stcenter:
xalign 0.5 yalign 0.1
transform stleft:
xalign 0.0 yalign 0.1
transform stright:
xalign 1.0 yalign 0.1
#Anon
transform acenter:
xalign 0.5 yalign 0.1
transform aleft:
xalign 0.0 yalign 0.1
transform aright:
xalign 1.0 yalign 0.1
#Naser
transform ncenter:
xalign 0.6 yalign 0.1
transform nleft:
xalign -0.2 yalign 0.1
transform nright:
xalign 1.9 yalign 0.1
#Fangs mom
transform fmcenter:
xalign 0.5 yalign 0.1
transform fmleft:
xalign 0.0 yalign 0.1
transform fmright:
xalign 1.0 yalign 0.1
#Trish
transform tcenter:
xalign 0.5 yalign 0.1
transform tleft:
xalign 0.0 yalign 0.1
transform tright:
xalign 1.0 yalign 0.1
#Reed and other long tailed dinos
transform rcenter:
xalign 1.2 yalign 0.1
transform rleft:
xalign -0.2 yalign 0.1
transform rright:
xalign 1.7 yalign 0.1
#misc transforms
transform shudder:
subpixel True
around (.5, .5) alignaround (.5, .5) xalign .5 yalign .5
rotate 0
linear 0.0 rotate -0.75
block:
linear 0.04 rotate 0.75
linear 0.05 rotate -0.75
linear 0.07 rotate 0
transform turnaround:
linear 0.1 xzoom -1.0
transform wiggle:
subpixel True
block:
xpos 0.5 ypos 1.0 xanchor 0.5 yanchor 1.0 zoom 1.02
alignaround (.5, .5)
linear 10.0 yalign 1.0 clockwise circles 1
repeat
transform raymbatransform:
xcenter 0.6 ycenter 0.385 zoom 0.5
# PHONE SCROLLING
transform cursortransform:
block:
yalign 0.2 xalign 0.60
pause .25
easein_cubic 1 yalign 0.75 xalign 0.54
pause .5
repeat
screen prompt():
fixed:
add "cursor"
screen mousedetect():
transform: # thanks based nutbuster
zoom 0.8
rotate 12.5
mousearea:
ypos -75
area(432, 0, 795, 1100)
# xalign 0.5 yanchor 0 ypos 0
hovered Hide("prompt" )
unhovered Show("prompt")
screen textscroll():
timer 2.0 action(Show("mousedetect"), Show("prompt"))
add Solid("FFF")
transform:
zoom 0.8
rotate 12.5
viewport:
xalign 0.51 yanchor 0 ypos -75 xysize(795, 1150)
child_size(795, 7650)
draggable True
arrowkeys True
# edgescroll(400, 800)
yinitial 1.0
imagebutton auto "fangbutton%s" xalign 0.53 yalign 0.5:
ypos 65+(int(107/2))
xsize 284
ysize 107
action (Hide("mousedetect"), Hide("prompt"), Hide("textscroll", transition=Dissolve(1.0)), Return())
add "texts"
add "fang phone"
# Naser's position when helping Anon get up
transform nmidright:
xalign 1.5 yalign 0.08
# Naomi's position when handing the brochure to Anon
transform scloserleft:
xalign 0.1 yalign 0.0
label start:
$ fangscore = 0
$ anonscore = 0
$ tradwife = False
$ wingStory = False
pause 1.0
call storyline from _call_storyline