Compare commits

..

12 Commits

Author SHA1 Message Date
5d7c09a8a8 Bug fix
* Fixed update logo path
* Updated internals
2023-07-27 20:09:13 +01:00
083b8e4f3c Update whitespace 2023-07-27 17:40:02 +01:00
43b1954263 Bug fix
* Fixed whitespace calculation for non-wardrobe elements
* Fixed an issue with floats when expecting an int
2023-07-27 00:54:03 +01:00
027f237606 Bug fix
* Fixed puzzle generator outputting invalid combinations due to the lack of floor division
2023-07-27 00:52:41 +01:00
cd8b94e40c Bug fixes and improvements
* Improved skipping performance by delaying the call to render functions until after skipping ends
* Fixed skipping not refreshing the doll image
* Fixed skipping callback handler being affected by rollback
* Refactored doll show method
2023-07-23 17:40:03 +01:00
ac39490836 Bug fixes
* Fixed updater logo issues
* Fixed modpath getting 'mods' subpath appended to it recursively with each clone
2023-07-20 22:11:17 +01:00
37ed32f50d Bug fixes
* Fixed updater (AGAIN!!)
* Disabled the 'server not responding' hint because it doesn't really match what's happening in the server code
* Version bump
2023-07-19 22:11:55 +01:00
18721850f5 Bug fix
* Fixed mods warning for compatible mods due to old var reference
2023-07-19 17:49:51 +01:00
105d60e61e Bug fixes
* Fixed cardgame TypeError crash during random matches
* Fixed mistakenly excluded ExampleMod from releases
2023-07-19 16:39:24 +01:00
dad333ffc8 Bug fixes and autosaves
* Added autosave toggle
* Fixed achievements being granted in replay scope
2023-07-18 17:01:17 +01:00
c536626a0b Bug fixes
* Fixed outfit deletion tab not updating the list of items
* Fixed Tonks' public requests menu crashing due to an omitted result type
* Removed manual image rebuilding in wardrobe (superseded)
2023-07-18 16:30:15 +01:00
5a0f55cc08 Bug fix
* Fixed stale images being displayed when threading is enabled and no image was called in a while
2023-07-18 16:17:35 +01:00
26 changed files with 610 additions and 162 deletions

File diff suppressed because it is too large Load Diff

5
game/mods/.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
# Ignore everything in this directory
*
# Except this file and ExampleMod
!.gitignore
!ExampleMod/

View File

@ -38,7 +38,7 @@ init python:
emote=None, xpos=None, ypos=None, pos=None, flip=None, trans=None, animation=False, **kwargs): emote=None, xpos=None, ypos=None, pos=None, flip=None, trans=None, animation=False, **kwargs):
def show(): def show():
astoria.show() astoria.show(force=True)
if not renpy.in_rollback(): if not renpy.in_rollback():
renpy.with_statement(trans or d2) renpy.with_statement(trans or d2)

View File

@ -36,7 +36,7 @@ init python in character:
emote=None, face=None, xpos=None, ypos=None, pos=None, flip=None, trans=None, animation=False, **kwargs): emote=None, face=None, xpos=None, ypos=None, pos=None, flip=None, trans=None, animation=False, **kwargs):
def show(): def show():
renpy.store.cho.show() renpy.store.cho.show(force=True)
if not renpy.in_rollback(): if not renpy.in_rollback():
renpy.with_statement(trans or renpy.store.d2) renpy.with_statement(trans or renpy.store.d2)

View File

@ -31,7 +31,7 @@ init python:
emote=None, face=None, xpos=None, ypos=None, pos=None, flip=None, trans=None, animation=False, **kwargs): emote=None, face=None, xpos=None, ypos=None, pos=None, flip=None, trans=None, animation=False, **kwargs):
def show(): def show():
hermione.show() hermione.show(force=True)
if not renpy.in_rollback(): if not renpy.in_rollback():
renpy.with_statement(trans or d2) renpy.with_statement(trans or d2)

View File

@ -22,7 +22,7 @@ init python:
emote=None, face=None, xpos=None, ypos=None, pos=None, flip=None, trans=None, animation=False, **kwargs): emote=None, face=None, xpos=None, ypos=None, pos=None, flip=None, trans=None, animation=False, **kwargs):
def show(): def show():
hooch.show() hooch.show(force=True)
if not renpy.in_rollback(): if not renpy.in_rollback():
renpy.with_statement(trans or d2) renpy.with_statement(trans or d2)

View File

@ -34,7 +34,7 @@ init python:
emote=None, face=None, xpos=None, ypos=None, pos=None, flip=None, trans=None, animation=False, **kwargs): emote=None, face=None, xpos=None, ypos=None, pos=None, flip=None, trans=None, animation=False, **kwargs):
def show(): def show():
luna.show() luna.show(force=True)
if not renpy.in_rollback(): if not renpy.in_rollback():
renpy.with_statement(trans or d2) renpy.with_statement(trans or d2)

View File

@ -33,7 +33,7 @@ init python:
emote=None, face=None, xpos=None, ypos=None, pos=None, flip=None, trans=None, animation=False, **kwargs): emote=None, face=None, xpos=None, ypos=None, pos=None, flip=None, trans=None, animation=False, **kwargs):
def show(): def show():
susan.show() susan.show(force=True)
if not renpy.in_rollback(): if not renpy.in_rollback():
renpy.with_statement(trans or d2) renpy.with_statement(trans or d2)

View File

@ -44,7 +44,7 @@ init python:
emote=None, face=None, xpos=None, ypos=None, pos=None, flip=None, trans=None, animation=False, **kwargs): emote=None, face=None, xpos=None, ypos=None, pos=None, flip=None, trans=None, animation=False, **kwargs):
def show(): def show():
tonks.show() tonks.show(force=True)
if not renpy.in_rollback(): if not renpy.in_rollback():
renpy.with_statement(trans or d2) renpy.with_statement(trans or d2)

View File

@ -126,7 +126,7 @@ label tonks_favor_menu:
$ result = show_events_menu(tonks_requests) $ result = show_events_menu(tonks_requests)
if result == "disabled": if result in ("disabled", "noncompliant"):
"You haven't unlocked this request opportunity yet." "You haven't unlocked this request opportunity yet."
jump .requests jump .requests
elif result == "exit": elif result == "exit":

View File

@ -383,7 +383,8 @@ init python:
def clone(self): def clone(self):
"""Creates a clone of this cloth object. Since it requires a parent object it should be used internally only to avoid object depth issue.""" """Creates a clone of this cloth object. Since it requires a parent object it should be used internally only to avoid object depth issue."""
return DollCloth(self.name, self.categories, self.type, self.id, [x for x in self.color] if self.color else None, self.zorder, self.unlocked, self.level, self.blacklist, self.modpath, self) modpath = self.modpath.lstrip("mods/")
return DollCloth(self.name, self.categories, self.type, self.id, [x for x in self.color] if self.color else None, self.zorder, self.unlocked, self.level, self.blacklist, modpath, self)
def is_modded(self): def is_modded(self):
"""Returns True if item comes from a mod.""" """Returns True if item comes from a mod."""

View File

@ -183,4 +183,5 @@ init python:
def clone(self): def clone(self):
"""Creates a clone of this cloth object. Since it requires a parent object it should be used internally only to avoid object depth issue.""" """Creates a clone of this cloth object. Since it requires a parent object it should be used internally only to avoid object depth issue."""
return DollClothDynamic(self.name, self.categories, self.type, self.id, [x for x in self.color] if self.color else None, self.zorder, self.unlocked, self.level, self.blacklist, self.modpath, self._tracking, self) modpath = self.modpath.lstrip("mods/")
return DollClothDynamic(self.name, self.categories, self.type, self.id, [x for x in self.color] if self.color else None, self.zorder, self.unlocked, self.level, self.blacklist, modpath, self._tracking, self)

View File

@ -78,8 +78,11 @@ init -1 python:
def DollRebuild(): def DollRebuild():
for i in states.dolls: for i in states.dolls:
doll = getattr(store, i) doll = getattr(store, i)
doll.build_image()
if doll.is_stale() and not settings.get("multithreading"):
doll.show(ignore_skipping=True)
renpy.restart_interaction() renpy.restart_interaction()
config.after_load_callbacks.append(DollRebuild) config.after_load_callbacks.append(DollRebuild)
# end_skip_callbacks.append(DollRebuild) end_skip_callbacks.append(DollRebuild)

File diff suppressed because it is too large Load Diff

View File

@ -62,4 +62,5 @@ init python:
def clone(self): def clone(self):
"""Creates a clone of this cloth object. Since it requires a parent object it should be used internally only to avoid object depth issue.""" """Creates a clone of this cloth object. Since it requires a parent object it should be used internally only to avoid object depth issue."""
return DollMakeup(self.name, self.categories, self.type, self.id, [x for x in self.color] if self.color else None, self.zorder, self.unlocked, self.level, self.blacklist, self.modpath, self, self.tracking) modpath = self.modpath.lstrip("mods/")
return DollMakeup(self.name, self.categories, self.type, self.id, [x for x in self.color] if self.color else None, self.zorder, self.unlocked, self.level, self.blacklist, modpath, self, self.tracking)

View File

@ -255,7 +255,7 @@ screen navigation(title=None):
if not title: if not title:
if not renpy.mobile: if not renpy.mobile:
if version_float(UPDATE_VER) < version_float(): if version_float(UPDATE_VER) > version_float():
textbutton "Install updates" action InstallUpdates() style_prefix "update_available" sensitive (not prerelease) textbutton "Install updates" action InstallUpdates() style_prefix "update_available" sensitive (not prerelease)
else: else:
textbutton "Check for updates" action CheckUpdates(300) sensitive (not prerelease) textbutton "Check for updates" action CheckUpdates(300) sensitive (not prerelease)

View File

@ -63,7 +63,7 @@ screen mods():
text "[name]": text "[name]":
style "mods_text" style "mods_text"
size 16 size 16
if not compat >= compatible_version: if not compat >= mods_compatible:
color "#ff8000" color "#ff8000"
text "[version]": text "[version]":
@ -101,7 +101,7 @@ screen mods():
add logo xalign 0.5 size (320, 240) add logo xalign 0.5 size (320, 240)
text "[name]\n[version]" offset (6, 6) text "[name]\n[version]" offset (6, 6)
if not compat >= compatible_version: if not compat >= mods_compatible:
text "{color=#ff8000}[compat]{/color}" align (1.0, 1.0) offset (-6, -3) text "{color=#ff8000}[compat]{/color}" align (1.0, 1.0) offset (-6, -3)
else: else:
text "{color=#228B22}[compat]{/color}" align (1.0, 1.0) offset (-6, -3) text "{color=#228B22}[compat]{/color}" align (1.0, 1.0) offset (-6, -3)

View File

@ -63,6 +63,7 @@ screen preferences_general():
textbutton _("Tooltips") action settings.Toggle("tooltip") textbutton _("Tooltips") action settings.Toggle("tooltip")
textbutton _("System Cursor") action Preference("system cursor", "toggle") textbutton _("System Cursor") action Preference("system cursor", "toggle")
textbutton _("Automatic Updates") action settings.Toggle("updates") textbutton _("Automatic Updates") action settings.Toggle("updates")
textbutton _("Autosave") action ToggleField(store, "_autosave")
default trans = config.intra_transition default trans = config.intra_transition

View File

@ -83,6 +83,9 @@ init python:
return self.achievements.get(id)[3] return self.achievements.get(id)[3]
def unlock(self, id, silent=False): def unlock(self, id, silent=False):
if _in_replay:
return
if persistent.achievements[id][3] == False: if persistent.achievements[id][3] == False:
self.achievements[id][3] = True self.achievements[id][3] = True
persistent.achievements[id][3] = True persistent.achievements[id][3] = True

View File

@ -579,7 +579,7 @@ init python:
while min > get_deck_score(new_deck) or max < get_deck_score(new_deck): while min > get_deck_score(new_deck) or max < get_deck_score(new_deck):
replace_index = 0 replace_index = 0
if new_deck < min: if get_deck_score(new_deck) < min:
replace_index = find_index_func(temp_pool, smalles_func) replace_index = find_index_func(temp_pool, smalles_func)
else: else:
replace_index = find_index_func(temp_pool, gretest_func) replace_index = find_index_func(temp_pool, gretest_func)

Some files were not shown because too many files have changed in this diff Show More