Compare commits

..

10 Commits
main ... gouv-5

26 changed files with 82 additions and 149 deletions

View File

@ -273,10 +273,10 @@ image ch_gen dick_out:
"characters/genie/chibis/jerk_off/dick_out.webp" "characters/genie/chibis/jerk_off/dick_out.webp"
image ch_gen dick_out_normal: image ch_gen dick_out_normal:
"characters/genie/chibis/jerk_off/dick_out_normal.webp" "characters/genie/chibis/jerk_off/dick_out_normal.webp"
image ch_gen dick_out_shocked: image ch_gen dick_out_shocked:
"characters/genie/chibis/jerk_off/dick_out_shocked.webp" "characters/genie/chibis/jerk_off/dick_out_shocked.webp"
# Masturbating while standing # Masturbating while standing
#TODO Genie's standing jerk off chibis don't stand level with the others. Fix this and check/correct relevant events #TODO Genie's standing jerk off chibis don't stand level with the others. Fix this and check/correct relevant events

View File

@ -18,7 +18,7 @@ init python:
renpy.show_screen(controller, focused) renpy.show_screen(controller, focused)
screen cho_dual_cg(focused, _layer="screens", bubble="cho_handjob_bubble", mask="cho_handjob_bubble_mask"): screen cho_dual_cg(focused, _layer="screens", bubble_="cho_handjob_bubble", mask="cho_handjob_bubble_mask"):
tag switcher tag switcher
zorder 300 zorder 300
@ -27,12 +27,12 @@ screen cho_dual_cg(focused, _layer="screens", bubble="cho_handjob_bubble", mask=
if d: if d:
$ btn = AlphaMask(Fixed(Transform(d, align=( (1.0, 0.05) if flip else (0.0, 0.05) ), zoom=0.5, xzoom=flip)), Transform(mask, zoom=0.25)) $ btn = AlphaMask(Fixed(Transform(d, align=( (1.0, 0.05) if flip else (0.0, 0.05) ), zoom=0.5, xzoom=flip)), Transform(mask, zoom=0.25))
$ btn = Fixed(Transform(bubble, zoom=0.25), btn) $ btn = Fixed(Transform(bubble_, zoom=0.25), btn)
imagebutton: imagebutton:
idle Transform(btn, alpha=0.75) idle Transform(btn, alpha=0.75)
hover Transform(btn, alpha=1.0) hover Transform(btn, alpha=1.0)
action Function(cg_pov_switch, layer=_layer) action Function(cg_pov_switch, layer=_layer)
focus_mask True focus_mask True
at transform: at transform:
xzoom flip xzoom flip

View File

@ -50,10 +50,10 @@ label ast_walk(xpos=None, ypos=None, speed=1.0, action=None, reduce=False, path=
return return
# Screens # Screens
screen ast_cloth_pile(position=(440, 425)): # Default position: Right of desk, below feet. screen ast_cloth_pile(pos=(440, 425)): # Default position: Right of desk, below feet.
tag ast_cloth_pile tag ast_cloth_pile
zorder astoria_chibi.zorder zorder astoria_chibi.zorder
add "characters/chibis/cloth_pile_r.webp" pos position zoom 0.5 add "characters/chibis/cloth_pile_r.webp" pos pos zoom 0.5
# Chibi definition # Chibi definition
default astoria_chibi = Chibi("astoria", ["fix", "base", "bottom", "shoes", "top", "robe", "gloves"], update_astoria_chibi) default astoria_chibi = Chibi("astoria", ["fix", "base", "bottom", "shoes", "top", "robe", "gloves"], update_astoria_chibi)

View File

@ -50,10 +50,10 @@ label cho_walk(xpos=None, ypos=None, speed=1.0, action=None, reduce=False, path=
return return
# Screens # Screens
screen cho_cloth_pile(position=(440, 425)): # Default position: Right of desk, below feet. screen cho_cloth_pile(pos=(440, 425)): # Default position: Right of desk, below feet.
tag cho_cloth_pile tag cho_cloth_pile
zorder cho_chibi.zorder zorder cho_chibi.zorder
add "characters/chibis/cloth_pile_r.webp" pos position zoom 0.5 add "characters/chibis/cloth_pile_r.webp" pos pos zoom 0.5
# Chibi definition # Chibi definition
default cho_chibi = Chibi("cho", ["fix", "base", "bottom", "shoes", "top", "robe", "gloves"], update_cho_chibi) default cho_chibi = Chibi("cho", ["fix", "base", "bottom", "shoes", "top", "robe", "gloves"], update_cho_chibi)

View File

@ -813,7 +813,7 @@ label cc_pf_strip_T2_intro_E3:
cho @ cheeks blush "Does Granger do these sorts of things for you too?" ("soft", "base", "worried", "mid") cho @ cheeks blush "Does Granger do these sorts of things for you too?" ("soft", "base", "worried", "mid")
# Remove skirt. # Remove skirt.
if cho.is_worn("bottom"): if cho.is_worn("bottom"):
play sound "sounds/cloth_sound3.ogg" play sound "sounds/cloth_sound3.ogg"
hide cho_main hide cho_main
@ -910,7 +910,7 @@ label cc_pf_strip_T2_intro_E3:
hide screen bld1 hide screen bld1
hide screen blkfade hide screen blkfade
with d3 with d3
call teleport(position="cho", effect=False) call teleport(position_="cho", effect=False)
pause .5 pause .5
call bld call bld
@ -1239,4 +1239,3 @@ label cc_pf_strip_T2_E3_fail_repeat:
call cho_walk(action="leave") call cho_walk(action="leave")
jump end_cho_event jump end_cho_event

View File

@ -101,7 +101,7 @@ label hufflepuff_match:
with d3 with d3
call gen_chibi("stand", "door", "base") call gen_chibi("stand", "door", "base")
call teleport(position="genie", effect=False) call teleport(position_="genie", effect=False)
pause .5 pause .5
call gen_chibi("stand", "door", "base", flip=False) call gen_chibi("stand", "door", "base", flip=False)

View File

@ -1680,7 +1680,7 @@ label cho_quid_E14:
play sound "sounds/kick.ogg" play sound "sounds/kick.ogg"
call gen_chibi("stand", 430, "base") call gen_chibi("stand", 430, "base")
call teleport(position="genie", effect=False) call teleport(position_="genie", effect=False)
cho @ cheeks blush "Whoa! I didn't know you could apparate at Hogwarts!" ("angry", "narrow", "base", "mid") cho @ cheeks blush "Whoa! I didn't know you could apparate at Hogwarts!" ("angry", "narrow", "base", "mid")
gen "Appa--{w=0.4} What?" ("base", xpos="far_left", ypos="base") gen "Appa--{w=0.4} What?" ("base", xpos="far_left", ypos="base")

View File

@ -31,9 +31,9 @@ style meter_text:
align (0.0, 0.5) align (0.0, 0.5)
xoffset 5 xoffset 5
screen swear_bubble(type): screen swear_bubble(kind):
tag bubble tag bubble
zorder 30 zorder 30
add "interface/meter/bubble/"+str(type)+".webp" ypos 100 xpos 100 add "interface/meter/bubble/[kind].webp" ypos 100 xpos 100
timer 1.0 action Hide("swear_bubble") timer 1.0 action Hide("swear_bubble")

View File

@ -146,7 +146,7 @@ label slytherin_match:
with d3 with d3
call gen_chibi("stand", "door", "base") call gen_chibi("stand", "door", "base")
call teleport(position="genie", effect=False) call teleport(position_="genie", effect=False)
pause .2 pause .2
call ton_chibi("stand", "desk", "base", flip=True) call ton_chibi("stand", "desk", "base", flip=True)

View File

@ -1,5 +1,3 @@
### Hermione Blowjob ### ### Hermione Blowjob ###
label start_hg_pf_blowjob: label start_hg_pf_blowjob:
@ -823,10 +821,10 @@ label hg_pf_hidden_blowjob:
jump hg_hidden_blowjob_luna jump hg_hidden_blowjob_luna
random: random:
block if states.her.ev.suck_it.snape_encounter: block:
jump hg_hidden_blowjob_snape jump hg_hidden_blowjob_snape
block if states.her.ev.suck_it.tonks_encounter: block:
jump hg_hidden_blowjob_tonks jump hg_hidden_blowjob_tonks
block if states.her.ev.suck_it.luna_encounter: block if states.her.ev.suck_it.luna_encounter:

View File

@ -13,20 +13,20 @@ label tentacle_scene_intro:
$ d_flag_03 = False $ d_flag_03 = False
label .spell: label .spell:
if d_flag_01 and d_flag_02 and d_flag_03: if d_flag_01 and d_flag_02 and d_flag_03:
jump .after_spell jump .after_spell
menu: menu:
"\"Open Sesame!\"" if not d_flag_01: "\"Open Sesame!\"" if not d_flag_01:
$ d_flag_01 = True $ d_flag_01 = True
gen "...{w=0.8} Guess not..." ("base", xpos="far_left", ypos="head") gen "...{w=0.8} Guess not..." ("base", xpos="far_left", ypos="head")
jump .spell jump .spell
"\"Hocus Pocus!\"" if not d_flag_02: "\"Hocus Pocus!\"" if not d_flag_02:
$ d_flag_02 = True $ d_flag_02 = True
gen "...{w=0.8} Damn..." ("base", xpos="far_left", ypos="head") gen "...{w=0.8} Damn..." ("base", xpos="far_left", ypos="head")
jump .spell jump .spell
"\"Abracadabra!\"" if not d_flag_03: "\"Abracadabra!\"" if not d_flag_03:
$ d_flag_03 = True $ d_flag_03 = True
gen "...{w=0.8} ..." ("base", xpos="far_left", ypos="head") gen "...{w=0.8} ..." ("base", xpos="far_left", ypos="head")
jump .spell jump .spell
label .after_spell: label .after_spell:
gen "Work, you stupid scroll, or I'll throw you in the fire!" ("angry", xpos="far_left", ypos="head") gen "Work, you stupid scroll, or I'll throw you in the fire!" ("angry", xpos="far_left", ypos="head")

View File

@ -611,8 +611,8 @@ label snape_intro_E4:
sna "......................." ("snape_01") sna "......................." ("snape_01")
sna "Yeah, right..." ("snape_01") sna "Yeah, right..." ("snape_01")
"\"I don't have a brother, Severus.\"": "\"I don't have a brother, Severus.\"":
sna "........................" ("snape_01") sna "........................" ("snape_01")
sna "You may not have one, but the real Albus Dumbledore does." ("snape_01") sna "You may not have one, but the real Albus Dumbledore does." ("snape_01")
"-Use magic to get the right answer-": "-Use magic to get the right answer-":
nar "You use your phenomenal cosmic powers to peek into the very fabric of the universe and get the correct answer." nar "You use your phenomenal cosmic powers to peek into the very fabric of the universe and get the correct answer."
gen "My little brother Aberforth? Why would I miss him?" ("base", xpos="far_left", ypos="head") gen "My little brother Aberforth? Why would I miss him?" ("base", xpos="far_left", ypos="head")
@ -640,8 +640,8 @@ label snape_intro_E4:
"\"A week or so...\"": "\"A week or so...\"":
sna "*Hmm*.... A week, huh..." ("snape_01") sna "*Hmm*.... A week, huh..." ("snape_01")
"\"Could be months...\"": "\"Could be months...\"":
sna "That long?" ("snape_01") sna "That long?" ("snape_01")
sna "Now isn't that just \"perfect\"?" ("snape_01") sna "Now isn't that just \"perfect\"?" ("snape_01")
"\"I have no clue...\"": "\"I have no clue...\"":
sna "....................." ("snape_01") sna "....................." ("snape_01")
sna "Splendid..." ("snape_31") sna "Splendid..." ("snape_31")

View File

@ -50,10 +50,10 @@ label ton_walk(xpos=None, ypos=None, speed=1.0, action=None, reduce=False, path=
return return
# Screens # Screens
screen ton_cloth_pile(position=(440, 425)): # Default position: Right of desk, below feet. screen ton_cloth_pile(pos=(440, 425)): # Default position: Right of desk, below feet.
tag ton_cloth_pile tag ton_cloth_pile
zorder tonks_chibi.zorder zorder tonks_chibi.zorder
add "characters/chibis/cloth_pile_r.webp" pos position zoom 0.5 add "characters/chibis/cloth_pile_r.webp" pos pos zoom 0.5
label ton_sit(xpos=nxpos, ypos=nypos, flip=None, chair=True): # TODO: replace this with the regular chibi call and add a sitting pose/action -- call ton_chibi("sit", chair=False) label ton_sit(xpos=nxpos, ypos=nypos, flip=None, chair=True): # TODO: replace this with the regular chibi call and add a sitting pose/action -- call ton_chibi("sit", chair=False)

View File

@ -81,13 +81,13 @@ init -1 python:
Actions are defined in the `actions` dict as a tuple: (special, transform, move_action|loop_time). Actions are defined in the `actions` dict as a tuple: (special, transform, move_action|loop_time).
* `special` (bool) specifies whether layer images should come from a folder with the same name as the action. * `special` (bool) specifies whether layer images should come from a folder with the same name as the action.
This can be useful to prevent repetitive code in update callbacks. This can be useful to prevent repetitive code in update callbacks.
* `transform` (string) is the name of the transform that is used for this action. * `transform` (string) is the name of the transform that is used for this action.
It will be combined with a base transform. It will be combined with a base transform.
* `move_action` (string) if set, it's the action that will be used when the chibi starts moving after the current action. * `move_action` (string) if set, it's the action that will be used when the chibi starts moving after the current action.
It should not be set for move actions. It should not be set for move actions.
* `loop_time` (float) if set, it's the time in seconds for one animation loop of this action. Used to calculate movement time. * `loop_time` (float) if set, it's the time in seconds for one animation loop of this action. Used to calculate movement time.
It should only be set for move actions. Set to zero to disable time adjustments. It should only be set for move actions. Set to zero to disable time adjustments.
Layers: Layers:
A chibi is made up of one or more named layers. These are cleared on update and should be set by a callback function. A chibi is made up of one or more named layers. These are cleared on update and should be set by a callback function.
@ -95,7 +95,7 @@ init -1 python:
* A layer can be set to either a filename or any kind of displayable. * A layer can be set to either a filename or any kind of displayable.
* When setting an image filename, this class will look for it in `image_path` (or `image_path/action` if the action is special). * When setting an image filename, this class will look for it in `image_path` (or `image_path/action` if the action is special).
* Adding `~` as a prefix to a filename will ignore the special action folder. * Adding `~` as a prefix to a filename will ignore the special action folder.
This can be useful for images that are compatible with multiple actions. This can be useful for images that are compatible with multiple actions.
* Layers are updated whenever the action changes by calling `update_callback`, which is expected to set the layers again. * Layers are updated whenever the action changes by calling `update_callback`, which is expected to set the layers again.
""" """

View File

@ -5,8 +5,8 @@ transform combine_transforms(one, two):
one one
two two
transform chibi_base(position, flip, scale): transform chibi_base(pos, flip, scale):
pos position pos pos
anchor (0.0, 1.0) anchor (0.0, 1.0)
xzoom (-1 if flip else 1) xzoom (-1 if flip else 1)
zoom (0.5 * scale) zoom (0.5 * scale)

View File

@ -211,9 +211,11 @@ init 5 python:
self.set_pose(pose or self.walk) self.set_pose(pose or self.walk)
# Note: Warper names and their count can change over time,
# so it's easier to just evaluate the input.
# List of available warpers: # List of available warpers:
# https://www.renpy.org/doc/html/atl.html?#warpers # https://www.renpy.org/doc/html/atl.html?#warpers
warper = getattr(_warper, warper, _warper.linear) warper = eval(f"_warper.{warper}")
distances = [] distances = []
times = [] times = []

View File

@ -348,7 +348,7 @@ label ball_ending_E1:
play music "music/Plaint.ogg" fadein 1 fadeout 1 #SAD CREDITS MUSIC. if_changed play music "music/Plaint.ogg" fadein 1 fadeout 1 #SAD CREDITS MUSIC. if_changed
centered """{size=+7}{color=#cbcbcb}Congratulations on completing the game!{/color}{/size}\n\n centered """{size=+7}{color=#cbcbcb}Congratulations on completing the game!{/color}{/size}\n\n
{size=+5}{color=#cbcbcb}This is ending \"00\" out of \"02\".{/color}{/size}{#LINT_IGNORE}""" {size=+5}{color=#cbcbcb}This is ending \"00\" out of \"02\".{/color}{/size}{#LINT_IGNORE}"""
centered "{size=+7}{color=#cbcbcb}Thank you for playing!{/color}{/size}\n\n{#LINT_IGNORE}" centered "{size=+7}{color=#cbcbcb}Thank you for playing!{/color}{/size}\n\n{#LINT_IGNORE}"

View File

@ -103,34 +103,33 @@ label increase_house_points(house, points):
return return
#TODO Check and fix teleport/heal effect position (chibis are now anchored bottom-left) #TODO Check and fix teleport/heal effect position (chibis are now anchored bottom-left)
label teleport(position=None,effect=True,poof_label=None): label teleport(position_=None, effect=True, poof_label=None):
python: if position_ == "genie":
if position == "genie": dynamic:
teleport_xpos = genie_chibi.pos[0]+75 teleport_pos = (genie_chibi.pos[0]+75, genie_chibi.pos[1])
teleport_ypos = genie_chibi.pos[1]
teleport_zorder = 3 teleport_zorder = 3
elif position == "hermione": elif position_ == "hermione":
teleport_xpos = hermione_chibi.pos[0]+45 dynamic:
teleport_ypos = hermione_chibi.pos[1] teleport_pos = (hermione_chibi.pos[0]+45, hermione_chibi.pos[1])
teleport_zorder = 3 teleport_zorder = 3
elif position == "cho": elif position_ == "cho":
teleport_xpos = cho_chibi.pos[0]+45 dynamic:
teleport_ypos = cho_chibi.pos[1] teleport_pos = (cho_chibi.pos[0]+45, cho_chibi.pos[1])
teleport_zorder = 3 teleport_zorder = 3
elif position == "astoria": elif position_ == "astoria":
teleport_xpos = astoria_chibi.pos[0]+45 dynamic:
teleport_ypos = astoria_chibi.pos[1] teleport_pos = (astoria_chibi.pos[0]+45, astoria_chibi.pos[1])
teleport_zorder = 3 teleport_zorder = 3
elif position == "desk": elif position_ == "desk":
teleport_xpos = 320 dynamic:
teleport_ypos = 450 teleport_pos = (320, 450)
teleport_zorder = 5 teleport_zorder = 5
else: else:
teleport_xpos = position[0] dynamic:
teleport_ypos = position[1] teleport_pos = position_
teleport_zorder = 2 teleport_zorder = 2
if effect == True: if effect:
play sound "sounds/magic4.ogg" play sound "sounds/magic4.ogg"
show screen whitefade show screen whitefade
with d1 with d1
@ -162,7 +161,7 @@ label teleport(position=None,effect=True,poof_label=None):
hide teleport_animation onlayer screens hide teleport_animation onlayer screens
with d5 with d5
if effect == True: if effect:
pause 1 pause 1
return return
@ -172,4 +171,4 @@ default hermione_action = None
label set_her_action(action=None, update=None): label set_her_action(action=None, update=None):
$ hermione_action = action $ hermione_action = action
return return

View File

@ -156,8 +156,8 @@ init -1 python:
if config.developer: if config.developer:
def __setattr__(self, attr, value): def __setattr__(self, attr, value):
if hasattr(self, attr) and getattr(self, attr) != value: if getattr(self, attr, value) != value:
id = getattr(self, "id") id = self.id
rollback = f"{stdcol.UNDERLINE}(Rollback){stdcol.END} " if renpy.in_rollback() else "" rollback = f"{stdcol.UNDERLINE}(Rollback){stdcol.END} " if renpy.in_rollback() else ""
caller_id = renpy.get_filename_line() caller_id = renpy.get_filename_line()

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