Compare commits

...

29 Commits

Author SHA1 Message Date
683af5ae42 Bug fix
* Removed broke transition vpunch_repeat
2023-07-16 22:17:58 +01:00
3c34d60745 Bug fix
* Rebuild image on init to avoid displaying nulls
2023-07-16 17:58:39 +01:00
78f8658501 Spectrespecs
* Adjusted the UV effect to be easier on the eyes
2023-07-16 17:20:17 +01:00
6ce3a71391 Bug fix
* Fixed a crash during outfit overwrite due to invoking a wrong method
2023-07-16 16:57:53 +01:00
76cad4f443 Bug fixes and improvements
* Added a separate entry for mods compatibility (saves and mods rarely follow the same upgrade rules anyway)
* Improved mods handling by automatically disabling incompatible mods
* Fixed a RuntimeError caused by changing set size during iteration
2023-07-15 23:03:01 +01:00
ceb4678b36 Saves compatibility 2023-07-15 21:57:41 +01:00
ff952f6f90 Bug fixes
* Fixed an issue with rollback during event cancellation, rolling back attributes
* Fixed compatibility patch issue with None values
2023-07-15 21:54:01 +01:00
ece2690030 Bug fix
* Fixed clothing blacklists affecting all multislots instead of the specified multislot
2023-07-15 18:14:02 +01:00
01be33b5ee Bug fixes
* Fixed mods crashing on init in user space
* Fixed revertable types inside modding init
* Fixed semantic version crashing mod loader
* Updated example mod
2023-07-15 18:02:01 +01:00
ba7ee49915 Fix
* Fixed Astoria and Tonks outfits not being set properly during spell training.
2023-07-15 18:43:22 +02:00
2be9371482 Bug fixes
* Fixed 'Panty Thief' event requirements
* Improved event validation to avoid errors in user space
* Offset game object initialization to avoid bogus init errors
2023-07-15 16:50:47 +01:00
88a6b8941b Bug fix
* Fixed TypeError in cum layer constructor
2023-07-15 00:42:17 +01:00
03db672299 Bug fix
* Fixed Dynamic Clothes icon size
2023-07-14 23:58:17 +01:00
fc794f969a Android Bug fixes
* Added a UI lock mechanism to avoid render stalls
* Fixed initialization issue due to python init offset for android devices
* Fixed a hang caused by joining threads on android devices
* Fixed a race condition when forcefully stopping threads
2023-07-14 23:52:27 +01:00
b6c77b1992 Multi-threading preference
* Implemented multi-threading preference option
* Adjusted code to make asynchronous calls optional
* Fixed initialization order for certain tasks
2023-07-14 02:33:58 +01:00
4b1b01eb09 Doll performance and bug fixes
* Implemented threading and lazyloading for the main doll
* Added global rebuild method for the dolls
* Updated save compatibility patch
* Fixed wardrobe categories showing locked items
2023-07-14 00:59:26 +01:00
b21dbb6cbf Save compatibility
* Added dequeue method for event objects
* Updated save compatibility patch
2023-07-13 17:33:37 +01:00
4e7b4ac1bb Fix 2023-07-13 15:46:25 +02:00
e2f54742e1 Hermione fail events
* Replaced events using "too_much" label with unique writing.
2023-07-13 15:44:25 +02:00
6538e7ebea Bug fixes
* Fixed Cho's suspenders invalid image
* Fixed rebuild_wardrobe_icons referencing a global instead of a local
* Fixed get_equipped_wardrobe_item nulls
* Added debug info for debugging threaded icons
2023-07-12 23:25:53 +01:00
4c98cbe669 Wardrobe performance improvements and bug fixes
* Implemented new DollThread method with thread-safe locking mechanism and pickling support for thread event queues
* Added memoization for wardrobe elements
* Added threading for various wardrobe-related methods
* Added lazyloading (to avoid render stalls)
* Added button generation for DollCloth and DollOutfit instances
* Significantly reduced code repetition inside the wardrobe loop
* Added new methods for the Doll, and improved others.
* Fixed viewport adjustment values resetting on interaction
* Fixed character chit-chats performance issues
* Updated saves compatibility patch
2023-07-11 22:57:49 +01:00
a2794e3e47 Performance
* Improve wardrobe performance by caching last 100 generated icon references
2023-07-09 01:18:45 +01:00
6e93d8628f Bug fixes and improvements
* Added dev skip for cardgame for testing purposes (I swear!)
* Fixed missing achievement triggers for 'Mad Hatter' and 'Poster Boy'
* Fixed cardgame twins challenge being inaccessible
* Fixed colour picker invoking non-existing image outside wardrobe scope
* Disabled cardgame easter egg (broken, requires refactoring)
* Improved cardgame hints
* Improved cardgame event handling
* Fixed grammar
2023-07-08 21:44:47 +01:00
2f136986e2 Bug fixes
* Fixed character cheeks and tears layers being stuck in both gameplay and character studio
* Fixed missing reset properties during end event labels
* Improved updater hint for potential edge cases
2023-07-08 21:44:47 +01:00
47096ba09d Fix
* Fixed Hermione not taking bra off during "admire breasts" with certain clothing configuration.
2023-07-07 14:00:00 +02:00
3a853c8e60 Bug fixes and updater improvements
* Added feedback hints when clicking 'check for updates' button in the main menu
* Updated methods to reflect the new changes
* Fixed updater crashing with `u` parameter due to explicit no-parameter screen definition, while renpy expects the (lax) implicit definition
* Fixed server url
2023-07-06 00:23:00 +01:00
c42306f320 Bug fix
* Fixed choice menu hotkeys
2023-07-05 22:35:28 +01:00
79e25c27e9 Bug fixes
* Improved efficiency of RoomObject image creation
* Fixed a crash during one of the Tonks' hangout events
* Fixed DollMakeup object lacking clone method, causing issues with saved outfits
* Fixed DollMakeup non-uniform parameter order
* Fixed doll strip method affecting types like pubic hair, piercings, and tattoos
* Fixed ATL flicker on room objects due to inefficient creation of the images for room objects
2023-07-05 21:56:53 +01:00
37d481ea08 Android flickering fix
* Removed permission request for external storage (not functional since API level 30)
* Fixed flickering on android devices (caused by the above)
2023-07-05 17:06:58 +01:00
68 changed files with 1264 additions and 409 deletions

View File

@ -1,7 +1,7 @@
{ {
"Name": "MyMod", "Name": "ExampleMod",
"Author": "LoafyLemon", "Author": "LoafyLemon",
"Version": "1.0.0", "Version": "1.0.0",
"Description": "Adds ponytail hairstyle for Hermione", "Description": "Adds ponytail hairstyle for Hermione",
"GameVer": "1.45" "GameVer": "1.45.2"
} }

View File

@ -1,7 +1,7 @@
# Add new hairstyle for character as an instance of DollCloth, # Add new hairstyle for character as an instance of DollCloth,
# make sure the variable name is unique, preferably starting with mod name. # make sure the variable name is unique, preferably starting with mod name.
default MyMod_ponytail = DollCloth( default ExampleMod_ponytail = DollCloth(
modpath="MyMod", # File path; Usually a mod folder name. (case insensitive) modpath="ExampleMod", # File path; Usually a mod folder name. (case insensitive)
name="hermione", # Character name (case sensitive) name="hermione", # Character name (case sensitive)
categories=("head","hair"), # Main category and subcategory of the item (case sensitive) categories=("head","hair"), # Main category and subcategory of the item (case sensitive)
type="hair", # Item type (case sensitive) type="hair", # Item type (case sensitive)

View File

@ -1,8 +1,5 @@
transform sepia(strength=1.0, tint='#ffeec2', desat=(0.2126, 0.7152, 0.0722)): transform sepia(strength=1.0, tint='#ffeec2', desat=(0.2126, 0.7152, 0.0722), brightness=0.0):
matrixcolor TintMatrix(tint) * SaturationMatrix(1.0-strength, desat) matrixcolor TintMatrix(tint) * SaturationMatrix(1.0-strength, desat) * BrightnessMatrix(brightness)
transform uvlight():
matrixcolor SepiaMatrix("#590098", desat=(1.0, 1.5, 1.0))
transform move_in(x, t): transform move_in(x, t):
xpos x xpos x
@ -104,10 +101,12 @@ transform main_sprite_position(x, y, flip, scale):
transform random_rotation(a=-45, b=45): transform random_rotation(a=-45, b=45):
rotate random.randint(a, b) rotate random.randint(a, b)
transform pulse_hover(t=1.0, strength=0.2, pause=0.0): transform pulse_hover(t=2.0, strength=0.2, pause=0.0):
animation matrixcolor BrightnessMatrix(value=0.0)
linear t matrixcolor BrightnessMatrix(value=strength)
linear t matrixcolor BrightnessMatrix(value=0.0) on start:
linear t/2 matrixcolor BrightnessMatrix(value=strength)
linear t/2 matrixcolor BrightnessMatrix(value=0.0)
pause pause pause pause
repeat repeat

View File

@ -26,6 +26,7 @@ label end_astoria_event:
$ states.ast.busy = True $ states.ast.busy = True
$ astoria.wear("all") $ astoria.wear("all")
$ astoria.set_cum(None) $ astoria.set_cum(None)
$ astoria.set_face(tears=False, cheeks=False)
call music_block call music_block
jump main_room_menu jump main_room_menu

View File

@ -105,6 +105,8 @@ label end_ag_st_imperio:
jump end_astoria_event jump end_astoria_event
label ag_st_imperio_E1: label ag_st_imperio_E1:
$ tonks.equip(ton_outfit_default)
$ astoria.equip(ast_outfit_default)
stop music fadeout 1.0 stop music fadeout 1.0
play sound "sounds/door.ogg" play sound "sounds/door.ogg"
call ton_chibi("stand","desk","base") call ton_chibi("stand","desk","base")
@ -306,6 +308,8 @@ label ag_st_imperio_E1:
jump end_ag_st_imperio jump end_ag_st_imperio
label ag_st_imperio_E2: label ag_st_imperio_E2:
$ tonks.equip(ton_outfit_default)
$ astoria.equip(ast_outfit_default)
stop music fadeout 1.0 stop music fadeout 1.0
play sound "sounds/door.ogg" play sound "sounds/door.ogg"
call ton_chibi("stand","desk","base") call ton_chibi("stand","desk","base")
@ -666,6 +670,8 @@ label ag_st_imperio_E2:
jump end_ag_st_imperio jump end_ag_st_imperio
label ag_st_imperio_E3: label ag_st_imperio_E3:
$ tonks.equip(ton_outfit_default)
$ astoria.equip(ast_outfit_default)
stop music fadeout 1.0 stop music fadeout 1.0
play sound "sounds/door.ogg" play sound "sounds/door.ogg"
call ton_chibi("stand","desk","base") call ton_chibi("stand","desk","base")
@ -835,6 +841,8 @@ label ag_st_imperio_E3:
jump end_ag_st_imperio jump end_ag_st_imperio
label ag_st_imperio_E4: label ag_st_imperio_E4:
$ tonks.equip(ton_outfit_default)
$ astoria.equip(ast_outfit_default)
stop music fadeout 1.0 stop music fadeout 1.0
call ton_walk(action="enter",xpos="desk",ypos="base") call ton_walk(action="enter",xpos="desk",ypos="base")
@ -1156,6 +1164,8 @@ label ag_st_imperio_E4:
jump end_ag_st_imperio jump end_ag_st_imperio
label ag_st_imperio_E5: label ag_st_imperio_E5:
$ tonks.equip(ton_outfit_default)
$ astoria.equip(ast_outfit_default)
stop music fadeout 1.0 stop music fadeout 1.0
play sound "sounds/door.ogg" play sound "sounds/door.ogg"
call ton_chibi("stand","desk","base") call ton_chibi("stand","desk","base")

View File

@ -22,6 +22,7 @@ label end_cho_event:
$ states.cho.busy = True $ states.cho.busy = True
$ cho.wear("all") $ cho.wear("all")
$ cho.set_cum(None) $ cho.set_cum(None)
$ cho.set_face(tears=False, cheeks=False)
call music_block call music_block
jump main_room_menu jump main_room_menu

View File

@ -328,7 +328,7 @@ label cho_intro_E1:
cho "*Hmph*... There's no argument here..." ("open", "narrow", "angry", "L") cho "*Hmph*... There's no argument here..." ("open", "narrow", "angry", "L")
cho "I'm sure that Hermione's reasons for interrupting are totally valid..." ("upset", "narrow", "angry", "R") cho "I'm sure that Hermione's reasons for interrupting are totally valid..." ("upset", "narrow", "angry", "R")
her "And I'm sure Cho wasn't just coming here to flaunt her body..." ("soft", "narrow", "base", "L") her "And I'm sure Cho wasn't just coming here to flaunt her body..." ("soft", "narrow", "base", "L")
cho "What's that supposed to mean?!?" ("clench", "narrow", "angry", "R", trans=vpunch_repeat) cho "What's that supposed to mean?!?" ("clench", "narrow", "angry", "R", trans=vpunch)
gen "(I guess I'll just have to wait this one out...)" ("base", xpos="far_left", ypos="head") gen "(I guess I'll just have to wait this one out...)" ("base", xpos="far_left", ypos="head")
# Black screen # Black screen
@ -344,7 +344,7 @@ label cho_intro_E1:
play sound "sounds/snore1.ogg" play sound "sounds/snore1.ogg"
gen "*Snore*{w=2.0}{nw}" gen "*Snore*{w=2.0}{nw}"
her "" ("annoyed", "narrow", "annoyed", "R") her "" ("annoyed", "narrow", "annoyed", "R")
cho "As if I'm going to believe that nonsense, Granger!" ("angry", "narrow", "angry", "R", trans=vpunch_repeat) cho "As if I'm going to believe that nonsense, Granger!" ("angry", "narrow", "angry", "R", trans=vpunch)
play sound "sounds/snore2.ogg" play sound "sounds/snore2.ogg"
gen "......{w=0.5}*Snore*{w=1.0}{nw}" gen "......{w=0.5}*Snore*{w=1.0}{nw}"
her "I had completely legitimate reasons for coming here..." ("soft", "closed", "base", "mid") her "I had completely legitimate reasons for coming here..." ("soft", "closed", "base", "mid")

View File

@ -19,6 +19,7 @@ label end_hermione_event:
$ states.her.busy = True $ states.her.busy = True
$ hermione.wear("all") $ hermione.wear("all")
$ hermione.set_cum(None) $ hermione.set_cum(None)
$ hermione.set_face(tears=False, cheeks=False)
call music_block call music_block
jump main_room_menu jump main_room_menu

View File

@ -75,6 +75,8 @@ label hg_pf_strip_T1_E1: #Fails
her "[name_genie_hermione]! That is going too far!" ("angry", "base", "angry", "mid") her "[name_genie_hermione]! That is going too far!" ("angry", "base", "angry", "mid")
her "I think I better leave..." ("angry", "base", "base", "R") her "I think I better leave..." ("angry", "base", "base", "R")
call her_walk(action="leave")
$ states.her.mood += 5 $ states.her.mood += 5
jump hg_pf_strip_fail jump hg_pf_strip_fail

View File

@ -17,6 +17,9 @@ label start_hg_pf_handjob:
$ current_payout = 45 $ current_payout = 45
return return
label hg_pf_handjob_fail:
jump end_hermione_event
label end_hg_pf_handjob: label end_hg_pf_handjob:
# Setup # Setup
@ -62,15 +65,80 @@ label end_hg_pf_handjob:
### Fail Events ### ### Fail Events ###
label hg_pf_handjob_fail: label hg_pf_handjob_T1_E1:
call start_hg_pf_handjob call start_hg_pf_handjob
her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade) her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade)
gen "[name_hermione_genie]." ("base", xpos="far_left", ypos="head") gen "[name_hermione_genie]." ("base", xpos="far_left", ypos="head")
her "Yes, [name_genie_hermione]?" ("base", "base", "base", "mid") her "Yes, [name_genie_hermione]?" ("base", "base", "base", "mid")
gen "Do you know what a \"handjob\" is?" ("base", xpos="far_left", ypos="head") gen "How about you put your dainty little hands on my cock..." ("base", xpos="far_left", ypos="head")
gen "And give it a rub." ("base", xpos="far_left", ypos="head")
her "!!!" ("shock", "wide", "base", "stare")
gen "[name_genie_hermione]?" ("base", xpos="far_left", ypos="head")
gen "Hello?"
her "*Gulp*" ("angry", "closed", "base", "mid")
her "I'm sorry, [name_genie_hermione]... But I believe I must've misheard you." ("open", "closed", "base", "mid")
her "I'm sure you didn't just request what I think you did." ("base", "base", "base", "mid")
her "If you could please repeat your request, I'm sure we can work something out." ("base", "base", "base", "mid")
gen "Oh, of course..." ("base", xpos="far_left", ypos="head")
gen "One handjob please." ("base", xpos="far_left", ypos="head")
her "!!!" ("shock", "wide", "base", "stare")
her "I think I better leave." ("angry", "happyCl", "worried", "mid")
jump too_much call her_walk(action="leave")
gen "(*Hmm*... Perhaps she's worried that her hand isn't big enough...)" ("base", xpos="far_left", ypos="head")
$ states.her.mood += 10
jump hg_pf_handjob_fail
label hg_pf_handjob_T2_E1:
call start_hg_pf_handjob
her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade)
gen "[name_hermione_genie]." ("base", xpos="far_left", ypos="head")
her "[name_genie_hermione]?" ("base", "base", "base", "mid")
gen "Today, I require you to give me a hand--" ("base", xpos="far_left", ypos="head")
her "Of course, [name_genie_hermione]! Gryffindor could really do with some points right now!" ("base", "base", "base", "mid")
gen "I appreciate the enthusiasm, but I wasn't done speaking..." ("base", xpos="far_left", ypos="head")
her "Sorry, [name_genie_hermione]... What would you like me to give you a hand with?" ("angry", "base", "base", "mid")
gen "I'd like you to use your hands... To rub my cock." ("base", xpos="far_left", ypos="head")
her "Rub your--" ("shock", "wide", "base", "stare")
gen "That's right..." ("base", xpos="far_left", ypos="head")
gen "I'll be sure to award Gryffindor--" ("base", xpos="far_left", ypos="head")
her "I think I better leave." ("angry", "happyCl", "worried", "mid")
call her_walk(action="leave")
gen "(Did she not just say that she needed the points?)" ("base", xpos="far_left", ypos="head")
$ states.her.mood += 8
jump hg_pf_handjob_fail
label hg_pf_handjob_T3_E1:
call start_hg_pf_handjob
her "" ("base", "base", "base", "mid", xpos="mid", ypos="base", trans=fade)
gen "[name_hermione_genie]." ("base", xpos="far_left", ypos="head")
gen "For today's favour... I need you to rub my cock." ("base", xpos="far_left", ypos="head")
her "Your...{w=0.4} Cock!?!" ("angry", "base", "worried", "mid")
gen "That's right..." ("base", xpos="far_left", ypos="head")
her "You must be referring to your Phoenix, right?" ("angry", "base", "base", "mid")
gen "If that's what you want to call my penis, sure!" ("base", xpos="far_left", ypos="head")
her "That's not--{w=0.2} I think, I better leave..." ("angry", "happyCl", "worried", "mid")
call her_walk(action="leave")
gen "(*Hmm*... She must've gone to fetch some lubricant...)" ("base", xpos="far_left", ypos="head")
$ states.her.mood += 6
jump hg_pf_handjob_fail
### Tier 4 ### ### Tier 4 ###

View File

@ -108,9 +108,10 @@ label hg_pf_grope_T1_E1:
her "Play with...?" ("shock", "wide", "base", "stare") her "Play with...?" ("shock", "wide", "base", "stare")
her "My tits?!" ("angry", "wide", "base", "mid") her "My tits?!" ("angry", "wide", "base", "mid")
gen "Or your butt! I haven't fully decided yet!" ("grin", xpos="far_left", ypos="head") gen "Or your butt! I haven't fully decided yet!" ("grin", xpos="far_left", ypos="head")
her "[name_genie_hermione]??!" ("shock", "wide", "base", "stare")
jump too_much her "How could you ask for such a thing!?" ("angry", "wide", "base", "stare")
her "I think I better leave." ("angry", "happyCl", "worried", "mid")
else:
gen "[name_hermione_genie], I'd like to grope you a little!" ("grin", xpos="far_left", ypos="head") gen "[name_hermione_genie], I'd like to grope you a little!" ("grin", xpos="far_left", ypos="head")
her "This again...?" ("angry", "base", "angry", "mid") her "This again...?" ("angry", "base", "angry", "mid")
her "I've told you before, [name_genie_hermione], absolutely not!!" ("scream", "closed", "angry", "mid") her "I've told you before, [name_genie_hermione], absolutely not!!" ("scream", "closed", "angry", "mid")

View File

@ -26,7 +26,8 @@ label hg_pf_admire_breasts_transition:
$ hermione.strip("top", "bra", "accessory") $ hermione.strip("top", "bra", "accessory")
pause 2.0 pause 2.0
else: else:
$ hermione.strip("accessory") $ hermione.strip("accessory", "bra")
pause 2.0
her @ cheeks blush "" ("angry", "happyCl", "base", "down", trans=d3) her @ cheeks blush "" ("angry", "happyCl", "base", "down", trans=d3)
call ctc call ctc

View File

@ -88,9 +88,9 @@ label hg_pf_blowjob_T1_E1: #Fail
her "Yes, [name_genie_hermione]?" ("base", "base", "base", "mid") her "Yes, [name_genie_hermione]?" ("base", "base", "base", "mid")
gen "We're done playing games..." ("base", xpos="far_left", ypos="head") gen "We're done playing games..." ("base", xpos="far_left", ypos="head")
gen "Get over here, and suck my cock!" ("base", xpos="far_left", ypos="head") gen "Get over here, and suck my cock!" ("base", xpos="far_left", ypos="head")
her "[name_genie_hermione]??!" ("shock", "wide", "base", "stare",xpos="mid",trans=fade) her "[name_genie_hermione]??!" ("shock", "wide", "base", "stare")
her "How could you ask for such a thing!?" her "How could you ask for such a thing!?"
her "I think I better leave." ("angry", "happyCl", "worried", "mid",emote="sweat") her "I think I better leave." ("angry", "happyCl", "worried", "mid")
call her_walk(action="leave") call her_walk(action="leave")
@ -108,9 +108,11 @@ label hg_pf_blowjob_T2_E1: #Fail
gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head") gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head")
her "Yes, [name_genie_hermione]?" ("base", "base", "base", "mid") her "Yes, [name_genie_hermione]?" ("base", "base", "base", "mid")
gen "Why don't you open that pretty little mouth of yours... And then put it around my cock?" ("base", xpos="far_left", ypos="head") gen "Why don't you open that pretty little mouth of yours... And then put it around my cock?" ("base", xpos="far_left", ypos="head")
her "[name_genie_hermione]??!" ("shock", "wide", "base", "stare",xpos="mid",trans=fade) her "Put my mouth--" ("shock", "wide", "base", "stare")
her "How could you ask for such a thing!?" her "[name_genie_hermione]!" ("angry", "base", "worried", "mid")
her "I think I better leave." ("angry", "happyCl", "worried", "mid",emote="sweat") her "Why would you think asking me for something like that is a good idea?" ("angry", "base", "worried", "mid")
gen "I figured there'd be less talking if your mouth was busy--" ("base", xpos="far_left", ypos="head")
her "I'm leaving!" ("angry", "happyCl", "angry", "mid")
call her_walk(action="leave") call her_walk(action="leave")
@ -131,9 +133,10 @@ label hg_pf_blowjob_T3_E1: #Fail
her "Of course!" ("base", "base", "base", "mid") her "Of course!" ("base", "base", "base", "mid")
gen "Great!" ("grin", xpos="far_left", ypos="head") gen "Great!" ("grin", xpos="far_left", ypos="head")
gen "Then get over here, and suck my cock!" ("grin", xpos="far_left", ypos="head") gen "Then get over here, and suck my cock!" ("grin", xpos="far_left", ypos="head")
her "[name_genie_hermione]??!" ("shock", "wide", "base", "stare",xpos="mid",trans=fade) her "Suck your--" ("angry", "base", "base", "stare")
her "How could you ask for such a thing!?" her "What is the reason you believe I would do such a thing?" ("angry", "base", "angry", "mid")
her "I think I better leave." ("angry", "happyCl", "worried", "mid",emote="sweat") gen "So that you can earn points for your house? Or have your character motivation changed already?" ("base", xpos="far_left", ypos="head")
her "I think I better leave..." ("angry", "happyCl", "worried", "mid")
call her_walk(action="leave") call her_walk(action="leave")

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