* Fixed Cho's Sweater 2
* Added sanity check for mismatched number of textures and colours for clothing items, with a user-friendly warning rather than a hard crash
* Fixed pulse_hover animation resetting
* Fixed Hermione's hold book pose
* Fixed minor story inconsistencies and spelling
* Fixed Tonks' hair colour not resetting
* Blocked Hermione from being summoned during Tonks' investigation
* Blocked Snape from being summoned during the day (It's not like he'd help anyway)
* Updated tutorials to reflect these changes
* Overhauled colour codes support with Ren'py supplied Color class
* Added support for hexadecimals alongside colour tuples w/ backwards compatibility
* Reduced colour assignments overhead
* Converted all colour lists into hexadecimals for all characters
* Added the ability to add fan-made characters, and to modify the existing ones through modpath overrides
* Changed modpath initialisation to automatically add 'mods/' directory
* Added DollBodypart class to allow more extensive modding support for characters, along with dedicates layers for breasts, hips and so on...
* Added more bangs into DollClothDynamic, allowing tracking of singular objects and the ability to chainload the IDs
* Added get_character_body global method
* Added istype global method
* Improved caching, layering for dynamic clothes
* Improved hashing for Doll instances
* Improved readability and improved internal naming convention for Doll-type classes
* Removed dedicated buttplug slot (superseded by multislot reimplementation)
* Fixed clothing supplied skin layer issues with zorders
* Fixed DollClothDynamic __repr__ lack of quotes
* Fixed Hermione's open_wide_tongue mouth
* Fixed Hermione's tattoos missing images
* Fixed Cho's 'goodbye' after-summon skit using wrong number of expressions
* Converted Hermione's potion body changes into clothing items for better maintainability and to provide modding support
* Composited body images of characters into singular files to reduce layering complexity and overhead
* Fixed Luna's eyemasks
* Added dynamic cum layering based on clothing and facial states w/ backwards compatibility
* Fixed layers zordering
* Refactored default layer dicts
* Fixed repr class name in DollClothDynamic
* Added back and front zorder modifiers to cum layers
* Fixed cum layers not updating on call
* Fixed skin layers fighting for zorder with the body
* Refactored DollFace
* Refactored DollBody
* Refactored DollCum
* Refactored DollCloth
* Refactored Doll
* Refactored clothing item zorders
* Refactored implementation of body, face, cum, clothing layers
* Refactored function calls
* Removed DollLipstick
* Added DollMakeup class, allowing adding dynamic clothes tracking face states
* Added DollClothDynamic, allowing dynamic clothes tracking other cloth states with bangs support
* Added cache to frequently called functions, drastically reducing the overhead
* Added hash system, reducing clone redundancy
* Added layer modifiers support for all types (face, body, cum, clothes etc.)
* Added support for an arbitrary number of equipped multislot clothing items (makeup, tattoos, piercings, etc.)
* Simplified initialization for clothing items and dolls
* Simplified class function calls
* Reduced the number of image creation calls
* Added hue support for additional skin layers
* Added displayable support to image cropping function
* Replaced store cache with built-in functools cache for _list_files function
* Refactored all character files
* and more...
* Disabled detection of orphaned scripts for non-devs
* Added cache to renpy.list_files to reduce IO overhead (~14s -> ~0.01s per 10k calls)
* Fixed wrong module call in weather.
* Fixed Genie flashing his goods in stats menu
* Fixed lipstick causing a crash in saved outfits due to missing zlayers
* Fixed debug print spam
* Version bump
* Added new Genie Stripper Santa Outfit.
* Added experimental Genie Outfit cheat.
* Refactored santa speaker to utilize a single `gen` speaker and applied the change to all affected events.
* Improved base Genie model, the default robes outfit and image creation code.
* Added new Genie Stripper Santa Outfit.
* Added experimental Genie Outfit cheat.
* Refactored santa speaker to utilize a single `gen` speaker and applied the change to all affected events.
* Improved base Genie model, the default robes outfit and image creation code.
* Split 'Inspect her body' into sections, to make the events more manageable.
* Added new content for Tier 2.
* Added new content for Tier 3.
* Added a flag for Cho's blowjob events.
* Fixed Luna sprite persisting throughout Wardrobe context
* Fixed regression related to wardrobe chit-chats due to the mixing of renpy and python scopes
Mirror of Erised:
* Set doll positioning at start of mirror stories to ensure dolls are correct.
* Adjusted Doll flip on "A booty at sea" story.
* Removed Doll Cum layers on "A booty at sea" story as genie cums inside/on her back.
* Improved "A bad time to disrobe" writing.
* "Flash your tits", Minor writing fix
* Added custom animation/transform support
* Added Rollback support
* Added special layers support
* Rewritten parts of code responsible for displaying the animation
* Rewritten animation creator to mirror Doll-like file behaviour
* Fixed mouse button events handling
* Fixed raise error type
* Fixed inability to add more than one layer for each frame
* Replaced PY2 format with f strings for clarity
* Implemented automatic clothing system
* Implemented Skipping support
* Implemented interrupt support
* Implemented pause support
* Implemented Loop Pathfinding (A -> B -> A)
* Implemented Loop Pathfinding with Reverse (A -> B -> C -> B -> A)
* Implemented Repeat Pathfinding (A -> B x2)
* Implemented Repeat Pathfinding with wrap (A -> B -> A x2)
* Implemented Repeat Pathfinding with Reverse (A -> B -> C -> B -> A x2)
* Added Cho chibi placeholders
* Added squirting to Hermione masturbate favour.
* Added "squirt_transition" image variants (mix of "squirt" and "squirt_post" for when she cums multiple times).
* Removed unnecessary code that's already part of end label.
* Removed "set music volume" for one of the events.
* Posed Low level Public event and intro.
* Added alternative low public tier intro writing when Hermione's personal tier is higher.
* Added clothing equips at start of public return to avoid it being overwritten by outfit scheduler.
* Adjusted some wording to improve flow of conversation.
* Posed Vibrator event Main Intro section.
* Added repeat writing variants at start of event
* Adjusted stripping/equipping sections.
* Adjusted some writing slightly about her taping on the vibrators.
* Fixed leaking color on basic bra.
* Posed part of the personal vibrator event
* Adjusted "closed" eyes slightly on personal vibrator CG
* Fixed "base underwear" so it matches "vibrator underwear"
* Removed itertools dependency
* Removed substitution for variables (redundant)
* Fixed a crash caused by anonymous variable assignment inside a nested lambda function, inside list comprehension due to unsupported ast magic (what a mouthful)
* Improved styling
* Fixed Xray displayable not updating when its children supplied no image attributes.
* Defined default zorders on children of Xray displayable
* Posed parts of the event
* Added support for image references
* Added support for LayeredImage, and LayeredImageProxy
* Added the ability to use show statements as a proxy for Xray displayables
* Added previously omitted mask child to the visit method
* Restored automatic image definitions (As a part of CG implementation effort)
* Rewritten and re-implemented color picker in shading language
* Vastly improved performance
* Added live preview back
* Overhauled interface
* Code Cleanup
* Reduced import overhead
* Fixed generic update image creator
* Fixed new side image type regression
* Fixed MyMod game version inside manifest
* Fixed MyMod missing from release
* Fixed android mods detection
* Removed android searchpaths (superseded)
* Moved engine related changes into its own file
* Fix `fem` caller unnecessary arguments (Caused by regex most likely)
* Fixed xray displayable opaque Render flag (superseded by internal Ren'py changes)
* Fixed Doll animation concatenation to list
* Added checkpoints to forbid the editor from rolling back to menu context
* Added forced checkpoint for when the editor is being opened to avoid rolling back to before it was opened (by opening a console for example)
* Alleviated the issue for when the game tries to recover from the place it cannot stop rolling back, but version var is unavailable because of it being not initialized in that moment
* Defined Remaining uniform pieces and adjusted base outfit.
* Fixed highlights on top by separating into "extra" layer.
* Fixed School skirt button luminosity. Separated highlights into "extra" layer.
* Added Socks Highlights as "extra" layer.
* Forbade interactions outside the Updater screen
* Added Automatic Updates preference
* Updated config vars
* Disabled custom GC values for wider testing purposes
* Added update logo fallback in case of unexpected circumstances
* Added CheckUpdates Screen Action Function
* Simplified parts of the updater code and reduced bloat
* Added new Susan Bones model with new expressions.
* Added new base hairstyle
* Removed old clothes files
* Further reduced the number of Null displayables for Dolls
* Reimplemented weather using renpy image methods
* Fixed weather causing fps drop
* Added cached weather results to the main room
* Reduced animation overhead
* Removed weather screen
* Unified day and night cloud images
* Added asset archives for distributed builds
* Added platform specific classification for files
* Changed save directory from "WT SILVER" to "WTS"
* Changed executable name from "WT SILVER" to "WTS"
* Removed redundant font file
* Moved mods.rpy to scripts directory
* Added new expression editor
* Fixed error parser for mods
* Unified Non-doll character expression parameter names
* Moved strip quotes function to global scope
* Added matches function that strips spaces before comparing