Compare commits
10 Commits
78230893a8
...
8b6627f588
Author | SHA1 | Date | |
---|---|---|---|
8b6627f588 | |||
40ddb29185 | |||
aa95f701dc | |||
641893217e | |||
3a429070fc | |||
15e3e240fc | |||
9c274bee6f | |||
eeb68cb6c6 | |||
5460ec2572 | |||
2e17dd2582 |
BIN
game/characters/genie/outfits/robes_beard.webp
(Stored with Git LFS)
BIN
game/characters/genie/outfits/robes_beard.webp
(Stored with Git LFS)
Binary file not shown.
@ -1,4 +1,3 @@
|
||||
|
||||
init 5 python:
|
||||
def her_cg_doll(st, at):
|
||||
return hermione.image, None
|
||||
@ -25,35 +24,21 @@ image CG cho_doll = DynamicDisplayable(cho_cg_doll)
|
||||
image CG ast_doll = DynamicDisplayable(ast_cg_doll)
|
||||
image CG sus_doll = DynamicDisplayable(sus_cg_doll)
|
||||
|
||||
image CG luna = Fixed(
|
||||
"images/CG/common/bg.webp",
|
||||
AlphaMask(Composite((2160, 1200), (880, -180), Transform("CG lun_doll", zoom=1.2)), "images/CG/common/mask.webp"),
|
||||
)
|
||||
transform CG_masker(child):
|
||||
contains:
|
||||
"images/CG/common/bg.webp"
|
||||
contains:
|
||||
AlphaMask(
|
||||
Fixed(Transform(child, zoom=1.2, pos=(880, -180)), xfit=True, yfit=True),
|
||||
"images/CG/common/mask.webp",
|
||||
)
|
||||
|
||||
image CG hermione = Fixed(
|
||||
"images/CG/common/bg.webp",
|
||||
AlphaMask(Composite((2160, 1200), (880, -180), Transform("CG her_doll", zoom=1.2)), "images/CG/common/mask.webp"),
|
||||
)
|
||||
|
||||
image CG tonks = Fixed(
|
||||
"images/CG/common/bg.webp",
|
||||
AlphaMask(Composite((2160, 1200), (880, -180), Transform("CG ton_doll", zoom=1.2)), "images/CG/common/mask.webp"),
|
||||
)
|
||||
|
||||
image CG cho = Fixed(
|
||||
"images/CG/common/bg.webp",
|
||||
AlphaMask(Composite((2160, 1200), (880, -180), Transform("CG cho_doll", zoom=1.2)), "images/CG/common/mask.webp"),
|
||||
)
|
||||
|
||||
image CG astoria = Fixed(
|
||||
"images/CG/common/bg.webp",
|
||||
AlphaMask(Composite((2160, 1200), (880, -180), Transform("CG ast_doll", zoom=1.2)), "images/CG/common/mask.webp"),
|
||||
)
|
||||
|
||||
image CG susan = Fixed(
|
||||
"images/CG/common/bg.webp",
|
||||
AlphaMask(Composite((2160, 1200), (880, -180), Transform("CG sus_doll", zoom=1.2)), "images/CG/common/mask.webp"),
|
||||
)
|
||||
image CG luna = At("CG lun_doll", CG_masker)
|
||||
image CG hermione = At("CG her_doll", CG_masker)
|
||||
image CG tonks = At("CG ton_doll", CG_masker)
|
||||
image CG cho = At("CG cho_doll", CG_masker)
|
||||
image CG astoria = At("CG ast_doll", CG_masker)
|
||||
image CG susan = At("CG sus_doll", CG_masker)
|
||||
|
||||
# Snape CG
|
||||
screen snape_groping():
|
||||
|
@ -10,9 +10,9 @@ init python:
|
||||
layeredimage genie_stats:
|
||||
anchor (0.0, 1.0)
|
||||
|
||||
always "characters/genie/base.webp"
|
||||
always "characters/genie/outfits/robes.webp"
|
||||
always "characters/genie/outfits/robes_beard.webp"
|
||||
always "genie_bbase"
|
||||
always "genie_outfit_robes"
|
||||
always "genie_robes"
|
||||
|
||||
# TODO: Add outfit support; Low priority
|
||||
|
||||
@ -20,31 +20,28 @@ layeredimage genie:
|
||||
anchor (0.0, 1.0)
|
||||
|
||||
group outfit:
|
||||
attribute robes default null
|
||||
attribute nude "characters/genie/hair.webp"
|
||||
attribute nude
|
||||
|
||||
always "characters/genie/base.webp"
|
||||
attribute bbase default
|
||||
|
||||
group face:
|
||||
attribute base default null
|
||||
attribute grin "characters/genie/grin.webp"
|
||||
attribute angry "characters/genie/angry.webp"
|
||||
attribute smile "characters/genie/smile.webp"
|
||||
attribute open "characters/genie/open.webp"
|
||||
attribute grin
|
||||
attribute angry
|
||||
attribute smile
|
||||
attribute open
|
||||
|
||||
group outfit:
|
||||
attribute robes default "characters/genie/outfits/robes.webp"
|
||||
attribute nude null
|
||||
attribute santa "characters/genie/outfits/santa.webp"
|
||||
attribute robes default
|
||||
attribute santa
|
||||
|
||||
group face multiple:
|
||||
attribute robes default "characters/genie/outfits/robes_beard.webp" if_all ["robes"]
|
||||
attribute nude "characters/genie/beard.webp" if_all ["nude"]
|
||||
attribute base "characters/genie/outfits/santa_beard_base.webp" if_all ["santa", "base"]
|
||||
attribute grin "characters/genie/outfits/santa_beard_grin.webp" if_all ["santa", "grin"]
|
||||
attribute angry "characters/genie/outfits/santa_beard_angry.webp" if_all ["santa", "angry"]
|
||||
attribute smile "characters/genie/outfits/santa_beard_smile.webp" if_all ["santa", "smile"]
|
||||
attribute open "characters/genie/outfits/santa_beard_open.webp" if_all ["santa", "open"]
|
||||
attribute goatee default if_any ("robes", "nude")
|
||||
group _ multiple variant "santa_beard" if_any "santa":
|
||||
attribute base
|
||||
attribute grin
|
||||
attribute angry
|
||||
attribute smile
|
||||
attribute open
|
||||
|
||||
at Transform(function=genie_transform)
|
||||
|
||||
|
@ -536,6 +536,7 @@ label hg_sex_1:
|
||||
|
||||
show her_sex_personal lean_back as cg:
|
||||
transform_anchor True
|
||||
subpixel True
|
||||
anchor (0.0, 0.0)
|
||||
offset (0, 0)
|
||||
zoom 1.0
|
||||
@ -819,8 +820,8 @@ label hg_sex_1:
|
||||
gen "You need to be punished for being such a slut!"
|
||||
|
||||
show her_sex_personal bent_over grab as cg:
|
||||
offset (-65, -240)
|
||||
zoom 0.45
|
||||
offset (-65, -240)
|
||||
zoom 0.45
|
||||
rotate -4
|
||||
easein 1.0 offset (0, -480) rotate 0
|
||||
with vpunch
|
||||
@ -829,7 +830,7 @@ label hg_sex_1:
|
||||
|
||||
#Could add some sound effect here
|
||||
show her_sex_personal mouth_open eyebrows_base eyes_wide_r cheeks_blush as cg:
|
||||
offset (0, -480)
|
||||
offset (0, -480)
|
||||
rotate 0
|
||||
ease_quad 3.0 offset (-60, -620) zoom 0.55
|
||||
nar "You push Hermione down onto the desk and start fucking her fiercely!"
|
||||
@ -1953,7 +1954,7 @@ label hg_sex_3:
|
||||
rotate 1
|
||||
xoffset -70
|
||||
pause 1.0
|
||||
offset (-60, -620)
|
||||
offset (-60, -620)
|
||||
zoom 0.55
|
||||
ease_quad 1.0 offset (-60, -635)
|
||||
with hpunch
|
||||
|
@ -71,24 +71,21 @@ label luna_intro_E1:
|
||||
|
||||
$ luna.set_face(mouth="soft", eyes="closed", eyebrows="low", pupils="mid")
|
||||
show CG luna as cg zorder 17:
|
||||
align (0.5, 0.5)
|
||||
pos (-520, -300)
|
||||
xycenter (-520, -300)
|
||||
with fade
|
||||
|
||||
gen "Who is--"
|
||||
show CG luna as cg zorder 17:
|
||||
align (0.5, 0.5)
|
||||
pos (-520, -300)
|
||||
subpixel True
|
||||
easein_quad 5.0 pos (-520, 150)
|
||||
|
||||
gen "... A girl?"
|
||||
lun "*Mmh*"
|
||||
|
||||
show CG luna as cg zorder 17:
|
||||
subpixel True
|
||||
zoom 1.0
|
||||
align (0.5, 0.5)
|
||||
pos (-520, 150)
|
||||
easein_quad 3.0 align (0.0, 0.0) pos (0, 0) zoom 0.5
|
||||
easein_quad 3.0 align (.0, .0) pos (0, 0) zoom 0.5 # pos (0, 0) not necessary in next renpy version
|
||||
|
||||
gen "What are you doing in my office?"
|
||||
gen "Did Snape send you here? Surely--"
|
||||
|
@ -42,10 +42,10 @@ init python:
|
||||
|
||||
def use(self):
|
||||
if not self.usable:
|
||||
raise Exception("Item '{}' is not usable as it does not have any function or a label.".format(self.name))
|
||||
raise Exception("Item {!r} is not usable as it does not have any function or a label.".format(self.name))
|
||||
|
||||
if self.owned == 0:
|
||||
raise Exception("Item '{}' owned count is equal to zero.".format(self.name))
|
||||
raise Exception("Item {!r} owned count is equal to zero.".format(self.name))
|
||||
|
||||
if not self.type == "quest":
|
||||
# Quest items require manual triggers, it's more convenient.
|
||||
@ -62,10 +62,10 @@ init python:
|
||||
|
||||
def give(self, who):
|
||||
if not self.givable:
|
||||
raise Exception("Item '{}' is not marked as givable.".format(self.name))
|
||||
raise Exception("Item {!r} is not marked as givable.".format(self.name))
|
||||
|
||||
if self.owned == 0:
|
||||
raise Exception("Item '{}' owned count is equal to zero.".format(self.name))
|
||||
raise Exception("Item {!r} owned count is equal to zero.".format(self.name))
|
||||
|
||||
if not self.type == "quest":
|
||||
# Quest items require manual triggers, it's more convenient.
|
||||
@ -119,7 +119,7 @@ init python:
|
||||
|
||||
def use(self):
|
||||
if self.owned == 0:
|
||||
raise Exception("Decoration '{}' owned count is equal to zero.".format(self.name))
|
||||
raise Exception("Decoration {!r} owned count is equal to zero.".format(self.name))
|
||||
|
||||
achievements.unlock("decorator")
|
||||
|
||||
@ -155,7 +155,7 @@ init python:
|
||||
self.usable = bool( renpy.has_label("{}_use".format(self.label)) )
|
||||
|
||||
if self.recipe is None:
|
||||
raise Exception("Potion '{}' recipe is empty!".format(self.name))
|
||||
raise Exception("Potion {!r} recipe is empty!".format(self.name))
|
||||
|
||||
def has_ingredients(self):
|
||||
return all(x.owned > 0 for x in self.recipe)
|
||||
@ -163,7 +163,7 @@ init python:
|
||||
def set_active(self, who):
|
||||
"""Marks the event as 'in progress' and will trigger a return event in the morning/evening."""
|
||||
if not who in list(self.in_progress.keys()):
|
||||
raise Exception("Potion '{}' is not marked as usable on '{}'.".format(self.name, who))
|
||||
raise Exception("Potion {!r} is not marked as usable on {!r}.".format(self.name, who))
|
||||
|
||||
self.in_progress[who] = True
|
||||
|
||||
@ -195,13 +195,13 @@ init python:
|
||||
check_label = "{}_potion_check".format(who[:3])
|
||||
|
||||
if not renpy.has_label(give_label):
|
||||
raise Exception("Potion '{}' give label doesn't exist.".format(self.name))
|
||||
raise Exception("Potion {!r} give label doesn't exist.".format(self.name))
|
||||
|
||||
if not renpy.has_label(check_label):
|
||||
raise Exception("Potion '{}' check label doesn't exist for '{}'.".format(self.name, who))
|
||||
raise Exception("Potion {!r} check label doesn't exist for {!r}.".format(self.name, who))
|
||||
|
||||
if self.owned == 0:
|
||||
raise Exception("Potion '{}' owned count is equal to zero.".format(self.name))
|
||||
raise Exception("Potion {!r} owned count is equal to zero.".format(self.name))
|
||||
|
||||
if not self.check_progression(who):
|
||||
self.jump(check_label)
|
||||
@ -215,10 +215,10 @@ init python:
|
||||
label = "{}_use".format(self.label)
|
||||
|
||||
if not renpy.has_label(label):
|
||||
raise Exception("Potion '{}' has no use label.".format(self.name))
|
||||
raise Exception("Potion {!r} has no use label.".format(self.name))
|
||||
|
||||
if self.owned == 0:
|
||||
raise Exception("Potion '{}' owned count is equal to zero.".format(self.name))
|
||||
raise Exception("Potion {!r} owned count is equal to zero.".format(self.name))
|
||||
|
||||
self.owned -= 1
|
||||
self.jump(label)
|
||||
@ -227,12 +227,12 @@ init python:
|
||||
"""Play the return event for <girl>"""
|
||||
|
||||
if not self.in_progress[who]:
|
||||
raise Exception("Potion '{}' is not marked as in progress.".format(self.name))
|
||||
raise Exception("Potion {!r} is not marked as in progress.".format(self.name))
|
||||
|
||||
label = "{}_{}_return".format(who[:3], self.label)
|
||||
|
||||
if not renpy.has_label(label):
|
||||
raise Exception("Potion '{}' has no return label.".format(self.name))
|
||||
raise Exception("Potion {!r} has no return label.".format(self.name))
|
||||
|
||||
self.in_progress[who] = False
|
||||
self.jump(label)
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user