2022-05-16 23:48:22 +00:00
|
|
|
|
|
|
|
# Genie chibi actions:
|
|
|
|
# stand, stand_alt, stand_shocked
|
|
|
|
# rummage, petting, grab_mid, grab_high
|
|
|
|
# sit_behind_desk
|
|
|
|
# jerk_off_behind_desk, cum_behind_desk, cum_behind_desk_done
|
|
|
|
# dick_out
|
|
|
|
# hold_dick, jerk_off, cum, cum_done, cum_close, cum_close_done
|
|
|
|
# read, read_done, read_near_fire, read_near_fire_done
|
|
|
|
|
|
|
|
# Note: The flip parameter defaults to True, because Genie is most often facing right
|
|
|
|
label gen_chibi(action=None, xpos=None, ypos=None, flip=True, pic=None):
|
|
|
|
|
|
|
|
$ genie_chibi.position(xpos, ypos, flip)
|
|
|
|
|
|
|
|
if action == "hide":
|
|
|
|
$ chair_left_OBJ.hidden = False
|
|
|
|
$ desk_OBJ.hidden = False
|
|
|
|
$ desk_OBJ.idle = "desk_empty"
|
|
|
|
$ genie_chibi.hide()
|
|
|
|
return
|
|
|
|
|
|
|
|
elif action == "leave":
|
|
|
|
hide screen genie_main
|
|
|
|
hide screen bld1
|
|
|
|
hide screen blktone
|
2023-03-11 22:01:39 +00:00
|
|
|
play sound "sounds/door.ogg"
|
2022-05-16 23:48:22 +00:00
|
|
|
|
|
|
|
$ chair_left_OBJ.hidden = False
|
|
|
|
$ desk_OBJ.hidden = False
|
|
|
|
$ desk_OBJ.idle = "desk_empty"
|
|
|
|
$ genie_chibi.hide()
|
|
|
|
with d3
|
|
|
|
pause .5
|
|
|
|
return
|
|
|
|
|
|
|
|
elif action == "sit_behind_desk":
|
|
|
|
$ chair_left_OBJ.hidden = True
|
|
|
|
$ desk_OBJ.hidden = False
|
|
|
|
$ desk_OBJ.idle = "ch_gen sit_behind_desk"
|
|
|
|
$ genie_chibi.hide()
|
|
|
|
return
|
|
|
|
|
|
|
|
elif action in ("jerk_off_behind_desk", "cum_behind_desk", "cum_behind_desk_done", "jerk_off_behind_desk_pause"):
|
|
|
|
$ chair_left_OBJ.hidden = True
|
|
|
|
$ desk_OBJ.hidden = True
|
|
|
|
$ genie_chibi.position(218, 205+262, False)
|
|
|
|
$ genie_chibi.do(action)
|
|
|
|
return
|
|
|
|
|
|
|
|
elif action in ("paperwork", "paperwork_idle"):
|
|
|
|
$ chair_left_OBJ.hidden = True
|
|
|
|
$ desk_OBJ.hidden = True
|
|
|
|
$ genie_chibi.position(224, 205+262, False)
|
|
|
|
$ genie_chibi.do(action)
|
|
|
|
return
|
|
|
|
|
|
|
|
elif action == "stand_by_desk":
|
|
|
|
$ chair_left_OBJ.hidden = False
|
|
|
|
$ desk_OBJ.hidden = True
|
|
|
|
$ genie_chibi.do(action)
|
|
|
|
return
|
|
|
|
|
|
|
|
elif action in ("read", "read_done", "read_near_fire", "read_near_fire_done"):
|
|
|
|
$ chair_left_OBJ.hidden = True
|
|
|
|
$ desk_OBJ.hidden = False
|
|
|
|
$ desk_OBJ.idle = "desk_empty"
|
|
|
|
$ genie_chibi.position(430, 205+340, False)
|
|
|
|
$ genie_chibi.do(action)
|
|
|
|
return
|
|
|
|
|
|
|
|
$ chair_left_OBJ.hidden = False
|
|
|
|
$ desk_OBJ.hidden = False
|
|
|
|
$ desk_OBJ.idle = "desk_empty"
|
|
|
|
$ genie_chibi.do(action)
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
label gen_walk(xpos=None, ypos=None, speed=1.0, action=None, reduce=False, path=None, flip=False):
|
|
|
|
call hide_characters
|
|
|
|
hide screen bld1
|
|
|
|
hide screen blktone
|
|
|
|
with d3
|
|
|
|
|
|
|
|
if action == "enter":
|
2023-03-11 22:01:39 +00:00
|
|
|
play sound "sounds/door.ogg"
|
2022-05-16 23:48:22 +00:00
|
|
|
call gen_chibi(None, "door", "base", flip)
|
|
|
|
with d3
|
|
|
|
|
|
|
|
if xpos or ypos:
|
|
|
|
$ genie_chibi.move((xpos, ypos), speed, reduce)
|
|
|
|
elif action == "leave":
|
|
|
|
$ genie_chibi.show()
|
|
|
|
$ genie_chibi.move(("door", "base"), speed, reduce)
|
2023-03-11 22:01:39 +00:00
|
|
|
play sound "sounds/door.ogg"
|
2022-05-16 23:48:22 +00:00
|
|
|
$ genie_chibi.hide()
|
|
|
|
with d3
|
|
|
|
pause .5
|
|
|
|
elif path:
|
|
|
|
$ genie_chibi.show()
|
|
|
|
$ genie_chibi.move(path, speed, reduce)
|
|
|
|
else:
|
|
|
|
$ genie_chibi.show()
|
|
|
|
$ genie_chibi.move((xpos, ypos), speed, reduce)
|
|
|
|
$ genie_chibi.do()
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
# Chibi definition
|
|
|
|
default genie_chibi = Chibi("genie", ["base"], update_genie_chibi)
|
|
|
|
|
|
|
|
init python:
|
|
|
|
def update_genie_chibi(chibi):
|
|
|
|
# Assume chibi action has a matching image definition
|
|
|
|
chibi_image = "ch_gen {}".format(chibi.action or "stand")
|
|
|
|
chibi["base"] = chibi_image
|