#TODO #add chadshark #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