/* Object variables: * handedness * anim_cast_t * anim_cast_scale * charge_level * pitch * direction */ var offset_angle=ternary(handedness==Misc.right, 30, -30); var offset_z=44; var offset_distance=24; var _xrot=0; var _yrot=10+anim_cast_scale*dsin(anim_cast_t)-anim_cast_scale*min(5, sqrt(charge_level)); var _zrot=180+direction; var _xoffset=x+offset_distance*dcos(direction-offset_angle); var _yoffset=y-offset_distance*dsin(direction-offset_angle); var _zoffset=z-offset_z+EYE_LEVEL; var _zoffset2=0; var m0=matrix_build(0, 0, -_zoffset2, 0, pitch/2, 0, 1, 1, 1); var m1=matrix_build(0, 0, 0, _xrot, _yrot, _zrot, 1, 1, 1); var m2=matrix_build(_xoffset, _yoffset, _zoffset, 0, 0, 0, 1, 1, 1); matrix_set(matrix_world, matrix_multiply(matrix_multiply(m0, m1), m2));