2022-05-16 23:48:22 +00:00
|
|
|
define her_face = {
|
|
|
|
"mouth": {
|
|
|
|
"neutral": ["annoyed","base"],
|
|
|
|
"happy": ["smile","grin"],
|
|
|
|
"naughty": ["base","soft"],
|
|
|
|
"horny": ["base","grin","soft"],
|
|
|
|
"annoyed": ["annoyed"],
|
|
|
|
"disgusted": ["disgust","clench","annoyed"],
|
|
|
|
"angry": ["angry","clench","mad"]
|
|
|
|
},
|
|
|
|
|
|
|
|
"eyes": {
|
|
|
|
"neutral": ["base"],
|
|
|
|
"happy": ["base","base","happyCl"],
|
|
|
|
"naughty": ["narrow","base"],
|
|
|
|
"horny": ["narrow"],
|
|
|
|
"annoyed": ["narrow"],
|
|
|
|
"disgusted": ["narrow"],
|
|
|
|
"angry": ["narrow","base"]
|
|
|
|
},
|
|
|
|
|
|
|
|
"eyebrows": {
|
|
|
|
"neutral": ["base"],
|
|
|
|
"happy": ["base"],
|
|
|
|
"naughty": ["base"],
|
|
|
|
"horny": ["base"],
|
|
|
|
"annoyed": ["worried"],
|
|
|
|
"disgusted": ["base", "angry"],
|
|
|
|
"angry": ["angry"]
|
|
|
|
},
|
|
|
|
|
|
|
|
"pupils": {
|
|
|
|
"neutral": ["mid","L","R"],
|
|
|
|
"happy": ["mid_soft","L_soft","R_soft"],
|
|
|
|
"naughty": ["mid_soft"],
|
|
|
|
"horny": ["mid","L","R","down","up"],
|
|
|
|
"annoyed": ["mid","R"],
|
|
|
|
"disgusted": ["down"],
|
|
|
|
"angry": ["mid"]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
label update_hermione:
|
|
|
|
|
|
|
|
$ hermione_chibi.update()
|
|
|
|
$ hermione.xzoom = 1
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
label end_hermione_event:
|
|
|
|
call her_chibi("hide")
|
|
|
|
hide hermione_main
|
|
|
|
with d3
|
|
|
|
pause.5
|
|
|
|
|
|
|
|
call update_hermione
|
|
|
|
|
|
|
|
$ active_girl = None
|
|
|
|
$ hermione_busy = True
|
|
|
|
$ hermione.wear("all")
|
|
|
|
$ hermione.set_cum(None)
|
|
|
|
|
|
|
|
call music_block
|
|
|
|
jump main_room_menu
|
|
|
|
|
2023-03-01 22:14:00 +00:00
|
|
|
define character.hermione_say = Character("name_hermione_genie", show_icon="hermione", dynamic=True)
|
2022-05-16 23:48:22 +00:00
|
|
|
|
|
|
|
init python:
|
2023-03-04 20:59:39 +00:00
|
|
|
def her(what, mouth=None, eyes=None, eyebrows=None, pupils=None, cheeks=None, tears=None,
|
2022-05-16 23:48:22 +00:00
|
|
|
emote=None, face=None, xpos=None, ypos=None, pos=None, flip=None, trans=None, animation=False, **kwargs):
|
|
|
|
|
|
|
|
redraw = False
|
|
|
|
tag = hermione.tag
|
|
|
|
layer = hermione.layer
|
|
|
|
#showing = renpy.showing(name=tag, layer=layer)
|
|
|
|
|
|
|
|
if xpos != None or ypos != None:
|
|
|
|
xpos = hermione.pos[0] if xpos == None else sprite_pos.get("x").get(xpos, xpos)
|
|
|
|
ypos = hermione.pos[1] if ypos == None else sprite_pos.get("y").get(ypos, ypos)
|
|
|
|
hermione.pos = (xpos, ypos)
|
|
|
|
redraw = True
|
|
|
|
|
|
|
|
head_only = hermione.pos[1] == sprite_pos.get("y").get("head")
|
|
|
|
|
|
|
|
if any((mouth, eyes, eyebrows, pupils, cheeks, tears)):
|
|
|
|
hermione.set_face(mouth=mouth, eyes=eyes, eyebrows=eyebrows, pupils=pupils, cheeks=cheeks, tears=tears)
|
|
|
|
redraw = True
|
|
|
|
|
|
|
|
hermione.set_emote(emote)
|
|
|
|
|
|
|
|
if animation != False:
|
2022-06-24 17:32:41 +00:00
|
|
|
hermione.animation = animation
|
2022-05-16 23:48:22 +00:00
|
|
|
redraw = True
|
|
|
|
|
|
|
|
if flip != None:
|
|
|
|
hermione.xzoom = -1 if flip else 1
|
|
|
|
redraw = True
|
|
|
|
|
|
|
|
if redraw:
|
|
|
|
hermione.show()
|
|
|
|
|
|
|
|
if not renpy.in_rollback():
|
|
|
|
if trans:
|
|
|
|
renpy.with_statement(trans)
|
|
|
|
else:
|
|
|
|
renpy.with_statement(d2)
|
|
|
|
|
|
|
|
if what:
|
|
|
|
character.hermione_say(what, **kwargs)
|
|
|
|
|
|
|
|
if head_only:
|
|
|
|
hermione.hide()
|
|
|
|
|
|
|
|
label too_much:
|
|
|
|
stop music fadeout 2.0
|
2023-03-01 22:14:00 +00:00
|
|
|
her "[name_genie_hermione]??!" ("shock", "wide", "base", "stare",xpos="mid",trans=fade)
|
2022-05-16 23:48:22 +00:00
|
|
|
her "How could you ask for such a thing!?"
|
|
|
|
her "I think I better leave." ("angry", "happyCl", "worried", "mid",emote="sweat")
|
|
|
|
|
|
|
|
call her_walk(action="leave")
|
|
|
|
|
|
|
|
$ _responses = [
|
|
|
|
"(*Hmm*... I guess it was a little too soon for that.)",
|
|
|
|
"(Did I say something wrong...?)",
|
|
|
|
"(Welp, was worth a shot I guess.)",
|
2023-03-25 15:42:13 +00:00
|
|
|
"(Perhaps I should rethink my approach...)",
|
2022-05-16 23:48:22 +00:00
|
|
|
"(Judging by her reaction she's not yet ready for it...)"
|
|
|
|
]
|
|
|
|
|
|
|
|
$ renpy.say(m, renpy.random.choice(_responses))
|
|
|
|
|
|
|
|
$ her_mood += 6
|
|
|
|
|
|
|
|
jump end_hermione_event
|
|
|
|
|
|
|
|
label too_much_public:
|
|
|
|
stop music fadeout 2.0
|
2023-03-01 22:14:00 +00:00
|
|
|
her "[name_genie_hermione]??!" ("shock", "wide", "base", "stare",xpos="mid",trans=fade)
|
2022-05-16 23:48:22 +00:00
|
|
|
her "How could you ask for such a thing!?"
|
|
|
|
her "People would take me for a whore, I cannot let it happen!"
|
|
|
|
her "I think I better leave." ("angry", "happyCl", "worried", "mid",emote="sweat")
|
|
|
|
|
|
|
|
call her_walk(action="leave")
|
|
|
|
|
|
|
|
$ _responses = [
|
|
|
|
"(*Hmm*... Maybe I should start with some easier tasks to lower her reputation first.)",
|
|
|
|
"(I guess she still cares too much about her precious reputation.)",
|
|
|
|
"(Silly girl still doesn't understand that her *reputation* isn't as important as she thinks.)",
|
|
|
|
"(Did I ask too much of her...?)",
|
|
|
|
"(She doesn't seem to be ready for this just yet.)"
|
|
|
|
]
|
|
|
|
|
|
|
|
$ renpy.say(m, renpy.random.choice(_responses))
|
|
|
|
|
|
|
|
$ her_mood += 6
|
|
|
|
|
|
|
|
jump end_hermione_event
|