Lint, CDS, and bug fixes

* Added weights support to random block statements
* Added missing `open_wide_tongue_panties` mouth for Hermione
* Simplified CDS vars and attributes, and changed them to be in line with Renpy standards
* Fixed linting of character statements
* Fixed 'jazz take 2.ogg' file being located in the wrong directory
* Fixed minimum and maximum allowed initialization offset for statements
* Fixed show image statement missing space
* Fixed poster image show statement to enable prediction
* Fixed updater screen lacking parenthesis (was valid but slowed down initialization)
* Fixed random statement prediction
* Fixed uncommented Tonks chit-chat check (forgot to do so after testing)
This commit is contained in:
LoafyLemon 2023-03-13 20:29:05 +00:00
parent 3db9804d10
commit 591377163a
12 changed files with 69 additions and 52 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
init -1401 python: init -999 python:
# Remove style overrides # Remove style overrides
adv.who_args.pop("style", None) adv.who_args.pop("style", None)
adv.what_args.pop("style", None) adv.what_args.pop("style", None)

View File

@ -1,8 +1,8 @@
label tonks_chitchat: label tonks_chitchat:
# if tonks_chatted: if tonks_chatted:
# return return
$ tonks_chatted = True $ tonks_chatted = True
@ -135,35 +135,35 @@ label tonks_chitchat:
ton "A foul creature that is drawn to footwear..." ("open", "base", "base", "R") ton "A foul creature that is drawn to footwear..." ("open", "base", "base", "R")
ton "It doesn't actually exist, I just wanted an excuse to have the students show me their feet." ("horny", "base", "base", "mid") ton "It doesn't actually exist, I just wanted an excuse to have the students show me their feet." ("horny", "base", "base", "mid")
if tonks_morph_known: block if tonks_morph_known:
ton "Since Metamorphmagi can change their skin, I sometimes just don't bother wearing any clothes." ("soft", "base", "shocked", "mid") ton "Since Metamorphmagi can change their skin, I sometimes just don't bother wearing any clothes." ("soft", "base", "shocked", "mid")
ton "I once changed the colour of my skin and made it look like a tight shirt..." ("grin", "narrow", "base", "R") ton "I once changed the colour of my skin and made it look like a tight shirt..." ("grin", "narrow", "base", "R")
ton "I might have worked topless once or twice..." ("horny", "base", "raised", "mid") ton "I might have worked topless once or twice..." ("horny", "base", "raised", "mid")
if tonks_morph_known: block if tonks_morph_known:
ton "I often got detentions by morphing into prefects..." ("normal", "base", "base", "R") ton "I often got detentions by morphing into prefects..." ("normal", "base", "base", "R")
ton "It was worth it though as I had free range to the prefects' bathroom..." ("base", "wide", "base", "mid") ton "It was worth it though as I had free range to the prefects' bathroom..." ("base", "wide", "base", "mid")
if tonks_morph_known: block if tonks_morph_known:
ton "Most of my abilities are based around emotions..." ("open", "base", "base", "mid") ton "Most of my abilities are based around emotions..." ("open", "base", "base", "mid")
ton "My hair can go red when I'm upset or angry..." ("upset", "base", "base", "mid") ton "My hair can go red when I'm upset or angry..." ("upset", "base", "base", "mid")
ton "Don't tell anyone but my natural hair colour is actually more brown..." ("open", "base", "base", "R") ton "Don't tell anyone but my natural hair colour is actually more brown..." ("open", "base", "base", "R")
ton "People think it's pink but that's because I'm horny all the time." ("base", "base", "base", "down") ton "People think it's pink but that's because I'm horny all the time." ("base", "base", "base", "down")
if tonks_morph_known: block if tonks_morph_known:
ton "There are rumours that Snape has set up an Age Line to keep students away from his private stash..." ("normal", "narrow", "base", "R") ton "There are rumours that Snape has set up an Age Line to keep students away from his private stash..." ("normal", "narrow", "base", "R")
ton "Won't stop me borrowing some polyjuice potions though... Not that I need them..." ("open", "base", "base", "R") ton "Won't stop me borrowing some polyjuice potions though... Not that I need them..." ("open", "base", "base", "R")
ton "But maybe I can find a girl that doesn't mind drinking it and have some fun." ("horny", "base", "raised", "R") ton "But maybe I can find a girl that doesn't mind drinking it and have some fun." ("horny", "base", "raised", "R")
if tonks_morph_known: block if tonks_morph_known:
ton "I'm a metamorphmagus. I can change my appearance at will..." ("open", "base", "base", "mid") ton "I'm a metamorphmagus. I can change my appearance at will..." ("open", "base", "base", "mid")
ton "Makes spying on the other teachers and students a lot easier..." ("grin", "base", "raised", "mid") ton "Makes spying on the other teachers and students a lot easier..." ("grin", "base", "raised", "mid")
if tonks_morph_known: block if tonks_morph_known:
ton "I can change the shape and length of my tongue any way I want." ("open", "base", "base", "mid") ton "I can change the shape and length of my tongue any way I want." ("open", "base", "base", "mid")
ton "Imagine the possibilities..." ("open_wide_tongue2", "narrow", "base", "mid") ton "Imagine the possibilities..." ("open_wide_tongue2", "narrow", "base", "mid")
if susan_unlocked: block if susan_unlocked:
ton "Susan is such a lovely girl..." ("open", "base", "base", "mid") ton "Susan is such a lovely girl..." ("open", "base", "base", "mid")
ton "But she really isn't very confident in her body..." ("open", "base", "raised", "R") ton "But she really isn't very confident in her body..." ("open", "base", "raised", "R")
ton "I do hope your little games can help her open up a bit..." ("base", "base", "base", "mid") ton "I do hope your little games can help her open up a bit..." ("base", "base", "base", "mid")

View File

@ -1,6 +1,6 @@
default persistent.mods_enabled = set() default persistent.mods_enabled = set()
init -1000: init -999:
python: python:
import json import json
import os import os

View File

@ -1,6 +1,6 @@
label enlarge_poster: label enlarge_poster:
show image "#00000080" as underlay show image "#00000080" as underlay
$ renpy.show(name="poster", what=Image(poster_OBJ.decoration.image), zorder=25, at_list=[truecenter]) show image Image(poster_OBJ.decoration.image) zorder 25 at truecenter as poster
call ctc call ctc

View File

@ -1,4 +1,4 @@
init -1000 python early: init -999 python early:
if renpy.version_tuple < (7,5,3,22090809): if renpy.version_tuple < (7,5,3,22090809):
raise RuntimeWarning("Your Ren'Py launcher is outdated, the current minimal requirement is 7.5.3.22090809+\nPlease perform an update and try launching the game again.") raise RuntimeWarning("Your Ren'Py launcher is outdated, the current minimal requirement is 7.5.3.22090809+\nPlease perform an update and try launching the game again.")
@ -130,7 +130,7 @@ screen placeholder():
add Placeholder("girl") add Placeholder("girl")
init 2000 python hide: init 999 python hide:
def set_screen_layer(layer, *screens): def set_screen_layer(layer, *screens):
for scr_name in screens: for scr_name in screens:
for _, scr in renpy.display.screen.get_all_screen_variants(scr_name): for _, scr in renpy.display.screen.get_all_screen_variants(scr_name):

View File

@ -25,6 +25,7 @@ init -1 python:
nodes = [i for i in renpy.game.script.all_stmts if isinstance(i, (renpy.ast.Say, renpy.ast.Menu))] nodes = [i for i in renpy.game.script.all_stmts if isinstance(i, (renpy.ast.Say, renpy.ast.Menu))]
nodes.sort(key=lambda x: (x.filename, x.linenumber)) nodes.sort(key=lambda x: (x.filename, x.linenumber))
files = renpy.list_files()
SELF_CLOSING_TAGS = re.compile(r'(\{\{)|(\{(p|w|nw|fast|done|image|space)(?:\=([^}]*))?\})', re.S) SELF_CLOSING_TAGS = re.compile(r'(\{\{)|(\{(p|w|nw|fast|done|image|space)(?:\=([^}]*))?\})', re.S)
@ -92,7 +93,8 @@ init -1 python:
val = strip(val) val = strip(val)
msg = "'{}'".format(key) msg = "'{}'".format(key)
fn = "characters/{}/face/{}/{}.webp".format(SAYERS.get(who), key, val) fp = f"characters/{SAYERS.get(who)}/poses/default/face/{key}/{val}/"
fn = next((f for f in files if f.startswith(fp)), f"{fp}expression.webp")
if not has_failed: if not has_failed:
# Avoid repeating node destination # Avoid repeating node destination

View File

@ -259,7 +259,7 @@ define update_message_list = [
"Insert disc 2", "Insert disc 2",
] ]
screen updater: screen updater():
tag menu tag menu