exports.run_camera_victory_rotation = function() { var camobj = m_scs.get_active_camera(); m_cons.remove(camobj); var pivot = m_trans.get_translation(_char_wrapper.target); var cam_params = {pivot: pivot}; m_cam.target_setup(camobj, cam_params); var elapsed_sensor = m_ctl.create_elapsed_sensor(); function cam_rotate_cb(obj, id, pulse) { var angles = m_cam.get_camera_angles(obj, _vec2_tmp); var dist = m_cam.target_get_distance(obj); var elapsed = m_ctl.get_sensor_value(obj, id, 0); var hor_angle = elapsed * 0.1; if (angles[1] < _level_conf.VICT_CAM_VERT_ANGLE) var vert_angle = elapsed * 0.05; else var vert_angle = 0; m_cam.target_rotate(obj, hor_angle, vert_angle); if (dist > _level_conf.VICT_CAM_DIST) { dist -= elapsed; m_cam.target_set_distance(obj, dist); } } m_ctl.create_sensor_manifold(camobj, "CAMERA_ROTATION", m_ctl.CT_CONTINUOUS, [m_ctl.create_elapsed_sensor()], null, cam_rotate_cb); }
function remove_gem() { var gem_empty = _char_wrapper.gem_slot.empty; m_cons.remove(gem_empty); m_trans.set_translation_v(gem_empty, m_conf.DEFAULT_POS); m_trans.set_scale(gem_empty, 1); _char_wrapper.gem_slot.state = m_conf.GM_SPARE; _char_wrapper.gem_slot = null; }
exports.reset = function() { for (var i = 0; i < _gem_wrappers.length; i++) { var gem_wrapper = _gem_wrappers[i]; var gem_empty = gem_wrapper.empty; m_cons.remove(gem_empty) m_trans.set_translation_v(gem_empty, m_conf.DEFAULT_POS); gem_wrapper.state = m_conf.GM_SPARE; } }
exports.run_victory = function() { _char_wrapper.state = m_conf.CH_VICTORY; disable_controls(); m_anim.apply(_char_wrapper.rig, m_conf.CHAR_VICTORY_ANIM); m_anim.set_behavior(_char_wrapper.rig, m_anim.AB_CYCLIC); m_anim.play(_char_wrapper.rig); m_sfx.play_def(_char_win_spk); var camobj = m_scs.get_active_camera(); m_cons.remove(camobj); var pivot = m_trans.get_translation(_char_wrapper.target); var cam_params = {pivot: pivot}; m_cam.target_setup(camobj, cam_params); var elapsed_sensor = m_ctl.create_elapsed_sensor(); function cam_rotate_cb(obj, id, pulse) { var angles = m_cam.get_camera_angles(obj, _vec2_tmp); var dist = m_cam.target_get_distance(obj); var elapsed = m_ctl.get_sensor_value(obj, id, 0); var hor_angle = elapsed * 0.1; if (angles[1] < _level_conf.VICT_CAM_VERT_ANGLE) var vert_angle = elapsed * 0.05; else var vert_angle = 0; m_cam.target_rotate(obj, hor_angle, vert_angle); if (dist > _level_conf.VICT_CAM_DIST) { dist -= elapsed; m_cam.target_set_distance(obj, dist); } } m_ctl.create_sensor_manifold(camobj, "CAMERA_ROTATION", m_ctl.CT_CONTINUOUS, [m_ctl.create_elapsed_sensor()], null, cam_rotate_cb); }