## Eye Functions In all functions `side` can be `left`, `right` or `both` unless stated otherwise. Eye types: `1`: normal; `2`: glass; `3`: cybernetic `0` is used as return value if there is no eye, but is never stored in the slave object. Vision: `0`: blind; `1`: nearsighted (or impaired/blurred); `2`: normal ### Read-only functions * `hasAnyEyes(slave)`: True if slave has at least one eye. * `hasAnyNaturalEyes(slave)`: True if slave has at least one eye that is natural. * `hasAnyProstheticEyes(slave)`: True if slave has at least one eye that is prosthetic (cybernetic or glass). * `hasAnyCyberneticEyes(slave)`: True if slave has at least one eye that is cybernetic. * `hasBothEyes(slave)`: True if slave has both eyes. * `hasBothNaturalEyes(slave)`: True if slave has both eyes and they are natural. * `hasBothProstheticEyes(slave)`: True if slave has both eyes and they are prosthetic (cybernetic or glass). * `hasBothCyberneticEyes(slave)`: True if slave has both eyes and they are cybernetic. * `hasLeftEye(slave)`: True if slave has left eye. * `hasRightEye(slave)`: True if slave has right eye. * `getLeftEyeType(slave)`: Returns type of the left eye. * `getRightEyeType(slave)`: Returns type of the right eye. * `getLeftEyeVision(slave)`: Returns vision of the left eye. * `getRightEyeVision(slave)`: Returns vision of the right eye. * `getBestVision(slave)`: Returns highest vision of both eyes. * `getWorstVision(slave)`: Returns lowest vision of both eyes. * `anyVisionEquals(slave, vision)`: True if one eye has the specified vision. * `getLeftEyeColor(slave)`: Returns color of the left eye. If there is no eye `empty` is returned. * `getRightEyeColor(slave)`: Returns color of the right eye. If there is no eye `empty` is returned. * `getLeftEyePupil(slave)`: Returns the shape of pupil of the left eye. If there is no eye `circular` is returned. * `getRightEyePupil(slave)`: Returns the shape of pupil of the right eye. If there is no eye `circular` is returned. * `hasVisibleHeterochromia(slave)`: True if left and right eye colors are different. Does NOT relate to the genetic quirk. * `getGeneticEyeColor(slave, side)`: Gives the genetic color of the specified eye. `both` is not allowed as value of `side`. * `getLenseCount(slave)`: Counts the number of eyes that are not the genetic color. ### Description * `App.Desc.eyesType(slave)`: Fits in a sentence like this: She has {return}. * `App.Desc.eyeTypeToString(type)`: Converts an eye type to a string. `1` -> `natural` `2` -> `glass` `3` -> `artificial` * `App.Desc.eyesColor(slave, adj = "", eye = "eye", eyes = "eyes")`: Fits in a sentence like this: She has {return}. `adj` is added in between color and eye like this: `brown wet eyes`. * `App.Desc.eyeColor(slave)`: Fits in a sentence like this: She has {return} eyes. Prefer App.Desc.eyesColor if possible as it works reliably with only one eye. Example where this is better: {return}-eyed gaze * `App.Desc.eyesVision(slave)`: Fits in a sentence like this: She has {return}. * `App.Desc.eyesToVision(slave)`: Converts an eye vision to a string. `0` -> `blind` `1` -> `nearsighted` `2` -> `normal` ### Modification * `eyeSurgery(slave, side, action)`: Modifies a slaves eyes. Allowed values for `action`: No Existing eyes required: `normal`, `glass`, `cybernetic` Existing eyes required: `remove`, `blind`, `blur`, `fix` * `setEyeColor(slave, color, side = "both")`: Changes the visible eye color. * `setEyeColorFull(slave, iris, pupil, sclera, side)`: Changes all visible parts of the eye. * `setGeneticEyeColor(slave, color, heterochromia = false)`: Changes the genetic eye color. WARNING: If `heterochromia` is `true`, the function will add the genetic quirk, even if the slave did not have it before. * `resetEyeColor(slave, side)`: Sets the eye color to the genetic color. Takes heterochromia and albinism into account.