
define sus_face = {
    "mouth": {
        "neutral":      ["base"],
        "happy":        ["base","grin"],
        "naughty":      ["base"],
        "horny":        ["base"],
        "annoyed":      ["upset"],
        "disgusted":    ["open"],
        "angry":        ["upset"]
    },

    "eyes": {
        "neutral":      ["base", "closed"],
        "happy":        ["base", "eager"],
        "naughty":      ["base", "suspicious"],
        "horny":        ["suspicious"],
        "annoyed":      ["narrow","base", "suspicious"],
        "disgusted":    ["wide"],
        "angry":        ["suspicious"]
    },

    "eyebrows": {
        "neutral":      ["base"],
        "happy":        ["base"],
        "naughty":      ["base","worried"],
        "horny":        ["base","worried"],
        "annoyed":      ["angry"],
        "disgusted":    ["worried"],
        "angry":        ["angry"]
    },

    "pupils": {
        "neutral":      ["mid"],
        "happy":        ["mid","L","R"],
        "naughty":      ["L","R","down"],
        "horny":        ["L","R","down"],
        "annoyed":      ["R","down"],
        "disgusted":    ["R","wide"],
        "angry":        ["mid"]
    }
}

label end_susan_event:
    call sus_chibi("hide")
    hide susan_main
    with d3
    pause.5

    call update_susan

    $ active_girl = None
    $ susan_busy = True
    $ susan.wear("all")

    $ renpy.stop_predict(susan.get_image())
    $ renpy.stop_predict("characters/susan/face/*.webp")

    call music_block
    jump main_room_menu

label update_susan:
    # Chibi Update
    $ susan_chibi.update()
    $ susan_chibi.position(flip=False)
    $ susan.xzoom = 1
    hide screen susan_cloth_pile

    return

define character.susan_say = Character("susan_name", show_icon="susan", dynamic=True)

init python:
    def sus(what, mouth=False, eyes=False, eyebrows=False, pupils=False, cheeks=None, tears=None,
        emote=None, face=None, xpos=None, ypos=None, pos=None, flip=None, trans=None, animation=False, **kwargs):

        redraw = False
        tag = susan.tag
        layer = susan.layer
        #showing = renpy.showing(name=tag, layer=layer)

        if xpos != None or ypos != None:
            xpos = susan.pos[0] if xpos == None else sprite_pos.get("x").get(xpos, xpos)
            ypos = susan.pos[1] if ypos == None else sprite_pos.get("y").get(ypos, ypos)
            susan.pos = (xpos, ypos)
            redraw = True

        head_only = susan.pos[1] == sprite_pos.get("y").get("head")

        if any((mouth, eyes, eyebrows, pupils, cheeks, tears)):
            susan.set_face(mouth=mouth, eyes=eyes, eyebrows=eyebrows, pupils=pupils, cheeks=cheeks, tears=tears)
            redraw = True

        susan.set_emote(emote)

        if animation != False:
            susan.animation = animation
            redraw = True

        if flip != None:
            susan.xzoom = -1 if flip else 1
            redraw = True

        if redraw:
            susan.show()

            if not renpy.in_rollback():
                if trans:
                    renpy.with_statement(trans)
                else:
                    renpy.with_statement(d2)

        if what:
            character.susan_say(what, **kwargs)

        if head_only:
            susan.hide()
