Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
11be2af833 | |||
7ca17b7ba7 | |||
56d6abea1a | |||
5c7bbfcc85 | |||
e40b966a0f | |||
22348f0901 | |||
40335c5fa4 | |||
25820e002a | |||
60244e258a | |||
5e0513b2ce |
@ -273,10 +273,10 @@ image ch_gen dick_out:
|
||||
"characters/genie/chibis/jerk_off/dick_out.webp"
|
||||
|
||||
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:
|
||||
"characters/genie/chibis/jerk_off/dick_out_shocked.webp"
|
||||
"characters/genie/chibis/jerk_off/dick_out_shocked.webp"
|
||||
|
||||
# Masturbating while standing
|
||||
#TODO Genie's standing jerk off chibis don't stand level with the others. Fix this and check/correct relevant events
|
||||
|
@ -18,7 +18,7 @@ init python:
|
||||
|
||||
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
|
||||
zorder 300
|
||||
|
||||
@ -27,12 +27,12 @@ screen cho_dual_cg(focused, _layer="screens", bubble="cho_handjob_bubble", mask=
|
||||
|
||||
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 = Fixed(Transform(bubble, zoom=0.25), btn)
|
||||
|
||||
$ btn = Fixed(Transform(bubble_, zoom=0.25), btn)
|
||||
|
||||
imagebutton:
|
||||
idle Transform(btn, alpha=0.75)
|
||||
hover Transform(btn, alpha=1.0)
|
||||
action Function(cg_pov_switch, layer=_layer)
|
||||
focus_mask True
|
||||
at transform:
|
||||
xzoom flip
|
||||
xzoom flip
|
||||
|
@ -50,10 +50,10 @@ label ast_walk(xpos=None, ypos=None, speed=1.0, action=None, reduce=False, path=
|
||||
return
|
||||
|
||||
# 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
|
||||
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
|
||||
default astoria_chibi = Chibi("astoria", ["fix", "base", "bottom", "shoes", "top", "robe", "gloves"], update_astoria_chibi)
|
||||
|
@ -50,10 +50,10 @@ label cho_walk(xpos=None, ypos=None, speed=1.0, action=None, reduce=False, path=
|
||||
return
|
||||
|
||||
# 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
|
||||
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
|
||||
default cho_chibi = Chibi("cho", ["fix", "base", "bottom", "shoes", "top", "robe", "gloves"], update_cho_chibi)
|
||||
|
@ -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")
|
||||
|
||||
# Remove skirt.
|
||||
# Remove skirt.
|
||||
if cho.is_worn("bottom"):
|
||||
play sound "sounds/cloth_sound3.ogg"
|
||||
hide cho_main
|
||||
@ -910,7 +910,7 @@ label cc_pf_strip_T2_intro_E3:
|
||||
hide screen bld1
|
||||
hide screen blkfade
|
||||
with d3
|
||||
call teleport(position="cho", effect=False)
|
||||
call teleport(position_="cho", effect=False)
|
||||
pause .5
|
||||
|
||||
call bld
|
||||
@ -1239,4 +1239,3 @@ label cc_pf_strip_T2_E3_fail_repeat:
|
||||
call cho_walk(action="leave")
|
||||
|
||||
jump end_cho_event
|
||||
|
||||
|
@ -101,7 +101,7 @@ label hufflepuff_match:
|
||||
with d3
|
||||
|
||||
call gen_chibi("stand", "door", "base")
|
||||
call teleport(position="genie", effect=False)
|
||||
call teleport(position_="genie", effect=False)
|
||||
pause .5
|
||||
|
||||
call gen_chibi("stand", "door", "base", flip=False)
|
||||
|
@ -1680,7 +1680,7 @@ label cho_quid_E14:
|
||||
|
||||
play sound "sounds/kick.ogg"
|
||||
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")
|
||||
gen "Appa--{w=0.4} What?" ("base", xpos="far_left", ypos="base")
|
||||
|
@ -31,9 +31,9 @@ style meter_text:
|
||||
align (0.0, 0.5)
|
||||
xoffset 5
|
||||
|
||||
screen swear_bubble(type):
|
||||
screen swear_bubble(kind):
|
||||
tag bubble
|
||||
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")
|
||||
|
@ -146,7 +146,7 @@ label slytherin_match:
|
||||
with d3
|
||||
|
||||
call gen_chibi("stand", "door", "base")
|
||||
call teleport(position="genie", effect=False)
|
||||
call teleport(position_="genie", effect=False)
|
||||
pause .2
|
||||
|
||||
call ton_chibi("stand", "desk", "base", flip=True)
|
||||
|
@ -1,5 +1,3 @@
|
||||
|
||||
|
||||
### Hermione Blowjob ###
|
||||
|
||||
label start_hg_pf_blowjob:
|
||||
@ -823,10 +821,10 @@ label hg_pf_hidden_blowjob:
|
||||
jump hg_hidden_blowjob_luna
|
||||
|
||||
random:
|
||||
block if states.her.ev.suck_it.snape_encounter:
|
||||
block:
|
||||
jump hg_hidden_blowjob_snape
|
||||
|
||||
block if states.her.ev.suck_it.tonks_encounter:
|
||||
block:
|
||||
jump hg_hidden_blowjob_tonks
|
||||
|
||||
block if states.her.ev.suck_it.luna_encounter:
|
||||
|
@ -13,20 +13,20 @@ label tentacle_scene_intro:
|
||||
$ d_flag_03 = False
|
||||
label .spell:
|
||||
if d_flag_01 and d_flag_02 and d_flag_03:
|
||||
jump .after_spell
|
||||
jump .after_spell
|
||||
menu:
|
||||
"\"Open Sesame!\"" if not d_flag_01:
|
||||
$ d_flag_01 = True
|
||||
gen "...{w=0.8} Guess not..." ("base", xpos="far_left", ypos="head")
|
||||
jump .spell
|
||||
"\"Hocus Pocus!\"" if not d_flag_02:
|
||||
$ d_flag_02 = True
|
||||
gen "...{w=0.8} Damn..." ("base", xpos="far_left", ypos="head")
|
||||
jump .spell
|
||||
"\"Abracadabra!\"" if not d_flag_03:
|
||||
$ d_flag_03 = True
|
||||
gen "...{w=0.8} ..." ("base", xpos="far_left", ypos="head")
|
||||
jump .spell
|
||||
"\"Open Sesame!\"" if not d_flag_01:
|
||||
$ d_flag_01 = True
|
||||
gen "...{w=0.8} Guess not..." ("base", xpos="far_left", ypos="head")
|
||||
jump .spell
|
||||
"\"Hocus Pocus!\"" if not d_flag_02:
|
||||
$ d_flag_02 = True
|
||||
gen "...{w=0.8} Damn..." ("base", xpos="far_left", ypos="head")
|
||||
jump .spell
|
||||
"\"Abracadabra!\"" if not d_flag_03:
|
||||
$ d_flag_03 = True
|
||||
gen "...{w=0.8} ..." ("base", xpos="far_left", ypos="head")
|
||||
jump .spell
|
||||
|
||||
label .after_spell:
|
||||
gen "Work, you stupid scroll, or I'll throw you in the fire!" ("angry", xpos="far_left", ypos="head")
|
||||
|
@ -611,8 +611,8 @@ label snape_intro_E4:
|
||||
sna "......................." ("snape_01")
|
||||
sna "Yeah, right..." ("snape_01")
|
||||
"\"I don't have a brother, Severus.\"":
|
||||
sna "........................" ("snape_01")
|
||||
sna "You may not have one, but the real Albus Dumbledore does." ("snape_01")
|
||||
sna "........................" ("snape_01")
|
||||
sna "You may not have one, but the real Albus Dumbledore does." ("snape_01")
|
||||
"-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."
|
||||
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...\"":
|
||||
sna "*Hmm*.... A week, huh..." ("snape_01")
|
||||
"\"Could be months...\"":
|
||||
sna "That long?" ("snape_01")
|
||||
sna "Now isn't that just \"perfect\"?" ("snape_01")
|
||||
sna "That long?" ("snape_01")
|
||||
sna "Now isn't that just \"perfect\"?" ("snape_01")
|
||||
"\"I have no clue...\"":
|
||||
sna "....................." ("snape_01")
|
||||
sna "Splendid..." ("snape_31")
|
||||
|
@ -50,10 +50,10 @@ label ton_walk(xpos=None, ypos=None, speed=1.0, action=None, reduce=False, path=
|
||||
return
|
||||
|
||||
# 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
|
||||
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)
|
||||
|
||||
|
@ -81,13 +81,13 @@ init -1 python:
|
||||
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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:
|
||||
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.
|
||||
* 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.
|
||||
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.
|
||||
"""
|
||||
|
||||
|
@ -5,8 +5,8 @@ transform combine_transforms(one, two):
|
||||
one
|
||||
two
|
||||
|
||||
transform chibi_base(position, flip, scale):
|
||||
pos position
|
||||
transform chibi_base(pos, flip, scale):
|
||||
pos pos
|
||||
anchor (0.0, 1.0)
|
||||
xzoom (-1 if flip else 1)
|
||||
zoom (0.5 * scale)
|
||||
|
@ -211,9 +211,11 @@ init 5 python:
|
||||
|
||||
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:
|
||||
# https://www.renpy.org/doc/html/atl.html?#warpers
|
||||
warper = getattr(_warper, warper, _warper.linear)
|
||||
warper = eval(f"_warper.{warper}")
|
||||
|
||||
distances = []
|
||||
times = []
|
||||
|
@ -348,7 +348,7 @@ label ball_ending_E1:
|
||||
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
|
||||
{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}"
|
||||
|
||||
|
@ -103,34 +103,33 @@ label increase_house_points(house, points):
|
||||
return
|
||||
|
||||
#TODO Check and fix teleport/heal effect position (chibis are now anchored bottom-left)
|
||||
label teleport(position=None,effect=True,poof_label=None):
|
||||
python:
|
||||
if position == "genie":
|
||||
teleport_xpos = genie_chibi.pos[0]+75
|
||||
teleport_ypos = genie_chibi.pos[1]
|
||||
label teleport(position_=None, effect=True, poof_label=None):
|
||||
if position_ == "genie":
|
||||
dynamic:
|
||||
teleport_pos = (genie_chibi.pos[0]+75, genie_chibi.pos[1])
|
||||
teleport_zorder = 3
|
||||
elif position == "hermione":
|
||||
teleport_xpos = hermione_chibi.pos[0]+45
|
||||
teleport_ypos = hermione_chibi.pos[1]
|
||||
elif position_ == "hermione":
|
||||
dynamic:
|
||||
teleport_pos = (hermione_chibi.pos[0]+45, hermione_chibi.pos[1])
|
||||
teleport_zorder = 3
|
||||
elif position == "cho":
|
||||
teleport_xpos = cho_chibi.pos[0]+45
|
||||
teleport_ypos = cho_chibi.pos[1]
|
||||
elif position_ == "cho":
|
||||
dynamic:
|
||||
teleport_pos = (cho_chibi.pos[0]+45, cho_chibi.pos[1])
|
||||
teleport_zorder = 3
|
||||
elif position == "astoria":
|
||||
teleport_xpos = astoria_chibi.pos[0]+45
|
||||
teleport_ypos = astoria_chibi.pos[1]
|
||||
elif position_ == "astoria":
|
||||
dynamic:
|
||||
teleport_pos = (astoria_chibi.pos[0]+45, astoria_chibi.pos[1])
|
||||
teleport_zorder = 3
|
||||
elif position == "desk":
|
||||
teleport_xpos = 320
|
||||
teleport_ypos = 450
|
||||
elif position_ == "desk":
|
||||
dynamic:
|
||||
teleport_pos = (320, 450)
|
||||
teleport_zorder = 5
|
||||
else:
|
||||
teleport_xpos = position[0]
|
||||
teleport_ypos = position[1]
|
||||
else:
|
||||
dynamic:
|
||||
teleport_pos = position_
|
||||
teleport_zorder = 2
|
||||
|
||||
if effect == True:
|
||||
if effect:
|
||||
play sound "sounds/magic4.ogg"
|
||||
show screen whitefade
|
||||
with d1
|
||||
@ -162,7 +161,7 @@ label teleport(position=None,effect=True,poof_label=None):
|
||||
hide teleport_animation onlayer screens
|
||||
with d5
|
||||
|
||||
if effect == True:
|
||||
if effect:
|
||||
pause 1
|
||||
|
||||
return
|
||||
@ -172,4 +171,4 @@ default hermione_action = None
|
||||
|
||||
label set_her_action(action=None, update=None):
|
||||
$ hermione_action = action
|
||||
return
|
||||
return
|
||||
|
@ -156,8 +156,8 @@ init -1 python:
|
||||
|
||||
if config.developer:
|
||||
def __setattr__(self, attr, value):
|
||||
if hasattr(self, attr) and getattr(self, attr) != value:
|
||||
id = getattr(self, "id")
|
||||
if getattr(self, attr, value) != value:
|
||||
id = self.id
|
||||
rollback = f"{stdcol.UNDERLINE}(Rollback){stdcol.END} " if renpy.in_rollback() else ""
|
||||
caller_id = renpy.get_filename_line()
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user