/** * callback executed when the scene is loaded */ function load_cb(data_id) { m_game_ui.close_load_screen(true); m_app.enable_controls(); m_app.enable_camera_controls(); //m_cfg.set("enable_outlining",true); // place your code here m_notifications.setupIcons(4); charPizza = m_scenes.get_object_by_name("Pizza_Arm"); charSue = m_scenes.get_object_by_name("Sue_Office"); charWater = m_scenes.get_object_by_name("water_rig"); m_animation.apply(charSue,"dmt_sue_idle_B4W_BAKED"); m_animation.set_behavior(charSue, m_animation.AB_CYCLIC); m_animation.play(charSue); m_scene_mouse.set_hover_cursor(m_scenes.get_object_by_name("Toaster"), "pointer"); m_scene_mouse.set_hover_cursor(m_scenes.get_object_by_name("Counter_Basin"), "pointer"); m_scene_mouse.set_hover_cursor(m_scenes.get_object_by_name("Pizza_Box"), "pointer"); m_scene_mouse.set_hover_cursor(m_scenes.get_object_by_name("Light_Switch"), "pointer"); var canvas = m_container.get_canvas(); canvas.addEventListener("mouseup", on_mouse_up); canvas.addEventListener("mousedown", on_mouse_down); m_line_speed.freeze(); if (qs["skip_intro"] == "1") end_cutscene(); else play_cutscene(true); }
function show_replay() { _replay_circle.addEventListener("click", return_to_begin); var replay_style = _replay.style; replay_style.opacity = 0; replay_style.display = "block"; var b4w_logo_style = _blend4web_logo.style; b4w_logo_style.opacity = 0; b4w_logo_style.display = "block"; var soc_but_style = _social_buttons.style; soc_but_style.opacity = 0; soc_but_style.display = "block"; m_app.css_animate(_replay, "opacity", 0, 1, REPLAY_FADE_IN, "", "", function() { m_app.css_animate(_blend4web_logo, "opacity", 0, 1, LOGO_FADE_IN); m_app.css_animate(_social_buttons, "opacity", 0, 1, SOCIAL_FADE_IN); }); m_anim.apply(_bm_13_Armature, "bm_13_Armature_rotate_-20_Action"); m_anim.set_behavior(_bm_13_Armature, m_anim.AB_FINISH_STOP); m_anim.set_first_frame(_bm_13_Armature); }
function anim_cb(obj, id, pulse) { if (_char_wrapper.state == m_conf.CH_ATTACK) return; var on_ground = m_ctl.get_sensor_value(obj, id, 0); var cur_anim = m_anim.get_current_anim_name(_char_wrapper.rig); var required_anim = m_conf.CHAR_IDLE_ANIM; if (_char_wrapper.state == m_conf.CH_JUMP) { var required_anim = m_conf.CHAR_JUMP_ANIM; } else if (move_state.forw_back == 1) { var required_anim = m_conf.CHAR_RUN_ANIM; } else if (move_state.forw_back == -1) { var required_anim = m_conf.CHAR_RUN_ANIM; m_anim.set_speed(_char_wrapper.rig, -1); } else if (move_state.left_right == 1) { var required_anim = m_conf.CHAR_STRAFE; m_anim.set_speed(_char_wrapper.rig, -1); } else if (move_state.left_right == -1) { var required_anim = m_conf.CHAR_STRAFE; } if (cur_anim != required_anim) { m_anim.apply(_char_wrapper.rig, required_anim); m_anim.play(_char_wrapper.rig); m_anim.set_behavior(_char_wrapper.rig, m_anim.AB_CYCLIC); } }
exports.typing_loop = function() { if (state == "typing_loop") return false; state = "typing_loop"; m_anim.apply(keani, "Keani_Chairpos_Type_Loop_B4W_BAKED"); pingpong(keani); }
function kill_character() { m_anim.apply(_character_rig, "character_death"); m_anim.play(_character_rig); m_anim.set_behavior(_character_rig, m_anim.AB_FINISH_STOP); m_phy.set_character_move_dir(_character, 0, 0); m_ctl.remove_sensor_manifolds(_character); }
/** * callback executed when the scene is loaded */ function load_cb(data_id) { m_game_ui.close_load_screen(true); m_app.enable_controls(); m_app.enable_camera_controls(); // place your code here m_notifications.setupIcons(3); charTom = m_scenes.get_object_by_name("Tom_Office"); m_animation.apply(charTom,"Tom_EnterX_B4W_BAKED"); m_animation.set_behavior(charTom, m_animation.AB_FINISH_STOP); m_animation.play(charTom, function(){ m_animation.apply(charTom,"Tom_idleXX_B4W_BAKED"); m_animation.set_behavior(charTom, m_animation.AB_CYCLIC); m_animation.play(charTom); }); m_scene_mouse.set_hover_cursor(m_scenes.get_object_by_name("Level_2"), "pointer"); m_scene_mouse.set_hover_cursor(m_scenes.get_object_by_name("Exit"), "pointer"); m_scene_mouse.set_hover_cursor(m_scenes.get_object_by_name("Plant"), "pointer"); var canvas = m_container.get_canvas(); canvas.addEventListener("mouseup", on_mouse_up); canvas.addEventListener("mousedown", on_mouse_down); if (m_main.is_paused()) m_main.resume(); m_game_ui.set_game_hidden(false); document.getElementById('mod_header').style.animationPlayState = 'running'; document.getElementById('quiz_wrapper').style.display = 'block'; start_quiz(); }
m_animation.play(charSue, function(){ m_animation.apply(charSue,"dmt_sue_idle_B4W_BAKED"); m_animation.set_behavior(charSue, m_animation.AB_CYCLIC); m_animation.play(charSue); submitted = false; // m_scene_mouse.enable_cursor_hover(); });
function return_to_begin() { _blend4web_logo.style.display = ""; _social_buttons.style.display = ""; _replay.style.display = ""; m_mat.set_nodemat_value(_control_box, ["control_box", "Value"], 0); m_anim.set_first_frame(_cam); _replay_circle.removeEventListener("click", return_to_begin); _rocket_num = 0; m_trans.set_tsr(_cam, _cam_tsr); m_trans.set_tsr(_light_point, _light_point_tsr); m_lights.set_light_params(_light_point, _light_params); m_anim.apply(_cam, _camera_action); m_anim.set_first_frame(_control_box); m_anim.set_first_frame(_control_box_button); m_sfx.play_def(_noise_spk); _camera_state = 1; open_rocket_box(); }
function kill(golem_wrapper) { var golem = golem_wrapper.empty; var golem_death_empty = m_scs.get_object_by_name(m_conf.GOLEMS_DEATH_EMPTY); var golem_death = m_scs.get_object_by_dupli_name(m_conf.GOLEMS_DEATH_EMPTY, m_conf.GOLEMS_DEATH_RIG); var golem_death_blow = m_scs.get_object_by_dupli_name(m_conf.GOLEMS_DEATH_EMPTY, m_conf.GOLEMS_DEATH_BLOW); var trans = _vec3_tmp; var quat = _quat4_tmp; m_trans.get_translation(golem, trans); m_trans.get_rotation(golem, quat); m_trans.set_translation_v(golem_death_empty, trans); m_trans.set_rotation_v(golem_death_empty, quat); m_anim.apply(golem_death, "golem_death"); m_anim.set_behavior(golem_death, m_anim.AB_FINISH_STOP); m_anim.play(golem_death); m_anim.play(golem_death_blow); m_sfx.stop(golem_wrapper.walk_speaker); m_trans.set_translation_v(golem, m_conf.DEFAULT_POS); m_gems.spawn(trans); golem_wrapper.island_id = -1; golem_wrapper.hp = 100; set_state(golem_wrapper, m_conf.GS_NONE) m_obelisks.change_gems_num(golem_wrapper.island_id, 0); }
exports.start_typing = function() { if (state == "start_typing") return false; state = "start_typing"; m_anim.apply(keani, "Keani_Chairpos_Type_Start_B4W_BAKED"); m_anim.set_behavior(keani, m_anim.AB_FINISH_STOP); m_anim.play(keani, exports.typing_loop); }
exports.stretch = function() { if (state == "stretch") return false; state = "stretch"; m_anim.apply(keani, "Keani_Chairpos_Stretch_B4W_BAKED"); m_anim.set_behavior(keani, m_anim.AB_FINISH_STOP); m_anim.play(keani); }
function set_camera_action() { if (window.innerWidth > window.innerHeight) _camera_action = "Camera_wide screen_Action"; else _camera_action = "Camera_narrow_screen_Action"; if (_cam && _camera_state == 1 && !m_anim.is_play(_cam)) m_anim.apply(_cam, _camera_action); }
function demo_link_click(e) { m_data.activate_media(); var letters_arm = m_scs.get_object_by_name('beads_armature'); var spk = m_scs.get_object_by_name("Speaker"); m_sfx.play_def(spk); m_anim.apply(letters_arm, "flying_letters"); m_anim.play(letters_arm, letters_obj_cb); }
exports.unreach = function() { if (state == "unreach") return false; state = "unreach"; m_anim.apply(keani, "Keani_Chairpos_Reach_B4W_BAKED"); m_anim.set_behavior(keani, m_anim.AB_FINISH_STOP); m_anim.set_last_frame(keani); m_anim.set_speed(keani, -1.0); m_anim.play(keani); }
function move_cb(obj, id, pulse) { if (pulse == 1) { switch(id) { case "WALK": m_anim.apply(_character_rig, "walk_001"); m_anim.set_behavior(_character_rig, m_anim.AB_CYCLIC) break; case "KICK": m_anim.apply(_character_rig, "kick_001"); m_anim.set_behavior(_character_rig, m_anim.AB_FINISH_STOP); break; } } else { m_anim.apply(_character_rig, "stand_001"); } m_anim.play(_character_rig); m_anim.set_behavior(_character_rig, m_anim.AB_CYCLIC); };
function move_cb(obj, id, pulse) { if (pulse == 1) { switch(id) { case "FORWARD": var move_dir = 1; m_anim.apply(_character_rig, "character_run"); break; case "BACKWARD": var move_dir = -1; m_anim.apply(_character_rig, "character_run"); break; } } else { var move_dir = 0; m_anim.apply(_character_rig, "character_idle_01"); } m_phy.set_character_move_dir(obj, move_dir, 0); m_anim.play(_character_rig); m_anim.set_behavior(_character_rig, m_anim.AB_CYCLIC); };
//============================================================================== // SETUP SHOOTING LOGIC //============================================================================== function shoot(time) { if (time - _last_shoot_time > SHOOT_LISER_DELAY) { m_ctl.set_custom_sensor(_burst_fire_sensor, 1); var laser_obj = _cockpit.laser_obj; if (laser_obj) { m_anim.apply(laser_obj, "laser_strike"); m_anim.play(laser_obj); m_anim.set_behavior(laser_obj, m_anim.AB_FINISH_STOP); } _last_shoot_time = time; _burst_time = time; var speaker_strike = _cockpit.speaker_strike; if (speaker_strike) m_sfx.play_def(speaker_strike); var lighting = _cockpit.lighting; if (lighting) { m_anim.apply(lighting, "laser_strike_lighting"); m_anim.play(lighting); } } }
function load_cb(data_id) { _character = m_scs.get_first_character(); _character_rig = m_scs.get_object_by_dupli_name("character", "character_rig"); setup_movement(); setup_rotation(); setup_jumping(); m_anim.apply(_character_rig, "character_idle_01"); m_anim.play(_character_rig); m_anim.set_behavior(_character_rig, m_anim.AB_CYCLIC); setup_camera(); }
function load_cb(root) { //m_app.enable_camera_controls(); _character_rig = m_scenes.get_object_by_name("character_armature"); setup_anime() m_anim.apply(_character_rig, "stand_001"); m_anim.play(_character_rig); m_anim.set_behavior(_character_rig, m_anim.AB_CYCLIC); m_main.append_loop_cb(main_loop_callback) }
function init_anims(node) { var obj = node.payload.anim_obj; var inst = node.instances[_gs.ro_sm_node_state.instance_id]; inst.anim = {}; for (var i = 0; i < node.payload.anim.length; i++) { var anim = node.payload.anim[i]; var slot_num = m_anim.get_slot_num_by_anim(obj, anim.name); if (slot_num < 0) { slot_num = anim.slot; inst.anim[anim.name] = slot_num; m_anim.apply(obj, anim.name, slot_num); } m_anim.set_behavior(obj, anim.flags, slot_num); } }
return function(callback) { if (ANIM_MODES.indexOf(mode) == -1) mode = m_anim.AB_FINISH_STOP; m_anim.apply(obj, anim_name); if (mode === exports.PINGPONG) { pingpong(obj, false, callback); } else { m_anim.set_behavior(obj, mode); if (speed < 0) m_anim.set_last_frame(obj); m_anim.set_speed(obj, speed); m_anim.play(obj, callback); } }
var jump_cb = function(obj, id, pulse) { if (pulse == 1 && _char_wrapper.state != m_conf.CH_ATTACK) { _char_wrapper.state = m_conf.CH_JUMP; m_phy.character_jump(obj); var id = Math.floor(_char_jump_spks.length * Math.random()); m_sfx.play_def(_char_jump_spks[id]); m_anim.apply(_char_wrapper.rig, m_conf.CHAR_JUMP_ANIM); m_anim.set_behavior(_char_wrapper.rig, m_anim.AB_FINISH_STOP); m_anim.play(_char_wrapper.rig); _char_wrapper.move_state.forw_back = 0; _char_wrapper.move_state.left_right = 0; } }
var attack_cb = function(obj, id, pulse) { if (pulse == 1 && _char_wrapper.state != m_conf.CH_ATTACK) { _char_wrapper.state = m_conf.CH_ATTACK; _char_wrapper.move_state.forw_back = 0; _char_wrapper.move_state.left_right = 0; var anim_id = Math.floor(_char_attack_anims.length * Math.random()); var attack_anim = _char_attack_anims[anim_id]; m_anim.apply(_char_wrapper.rig, attack_anim); m_anim.set_behavior(_char_wrapper.rig, m_anim.AB_FINISH_STOP); m_anim.play(_char_wrapper.rig, finish_attack_cb); m_phy.set_character_move_dir(_char_wrapper.phys_body, 0, 0); char_attack_done = false; process_attack_speakers(); } }
function setup_movement(up_arrow, down_arrow) { var key_w = m_ctl.create_keyboard_sensor(m_ctl.KEY_W); var key_s = m_ctl.create_keyboard_sensor(m_ctl.KEY_S); var key_up = m_ctl.create_keyboard_sensor(m_ctl.KEY_UP); var key_down = m_ctl.create_keyboard_sensor(m_ctl.KEY_DOWN); var move_array = [ key_w, key_up, up_arrow, key_s, key_down, down_arrow ]; var forward_logic = function(s){return (s[0] || s[1] || s[2])}; var backward_logic = function(s){return (s[3] || s[4] || s[5])}; function move_cb(obj, id, pulse) { if (pulse == 1) { switch(id) { case "FORWARD": var move_dir = 1; m_anim.apply(_character_rig, "character_run"); break; case "BACKWARD": var move_dir = -1; m_anim.apply(_character_rig, "character_run"); break; } } else { var move_dir = 0; m_anim.apply(_character_rig, "character_idle_01"); } m_phy.set_character_move_dir(obj, move_dir, 0); m_anim.play(_character_rig); m_anim.set_behavior(_character_rig, m_anim.AB_CYCLIC); }; m_ctl.create_sensor_manifold(_character, "FORWARD", m_ctl.CT_TRIGGER, move_array, forward_logic, move_cb); m_ctl.create_sensor_manifold(_character, "BACKWARD", m_ctl.CT_TRIGGER, move_array, backward_logic, move_cb); m_anim.apply(_character_rig, "character_idle_01"); m_anim.play(_character_rig); m_anim.set_behavior(_character_rig, m_anim.AB_CYCLIC); }
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); }
check: function() { var validationData = ValidateQuestion(); switch (validationData[1]){ case "Level_2": setTimeout(function() { s04q01_no.play(); }, 500); question_text.innerHTML = //============================================== "<strong>No Tom. Best we go outside.</strong>"; //============================================== $('.balance-text').balanceText(); m_notifications.setIcon(0,"cross",null,null); break; case "Plant": setTimeout(function() { s04q01_again.play(); }, 500); question_text.innerHTML = //============================================== "<strong>No Tom. Not a good time to admire the plant.</strong>"; //============================================== $('.balance-text').balanceText(); m_notifications.setIcon(1,"cross",null,null); break; case "Exit": setTimeout(function() { s04q01_answer.play(); }, 500); question_text.innerHTML = //============================================== "<strong>Yes, let's go.</strong>"; //============================================== $('.balance-text').balanceText(); m_animation.apply(charTom,"Tom_ExitX_B4W_BAKED"); m_animation.set_behavior(charTom, m_animation.AB_FINISH_STOP); m_animation.play(charTom); m_notifications.setIcon(2,"check",null,null); break; } return validationData[0]; }
function run_firework() { var hide_obj = m_scs.hide_object; hide_obj(_firework_1); hide_obj(_firework_2_1); hide_obj(_firework_2_2); m_anim.apply(_9_may_logo, "9may_atlas_Shader_NodetreeAction"); m_anim.set_first_frame(_9_may_logo); m_anim.set_behavior(_9_may_logo, m_anim.AB_FINISH_STOP); m_sfx.stop(_fireworks_spk); m_sfx.play_def(_fireworks_spk); _interval = 0; for (var i = 2; i <= _rocket_num + 1; i++) action_firework_item(i); }
function action_rails() { if (!_rocket_num) return; _canvas_elem.removeEventListener("mousedown", get_clicked_object); _canvas_elem.removeEventListener("touchstart", get_clicked_object); m_sfx.stop(_button_spk); m_sfx.play_def(_button_spk); m_anim.apply(_control_box_button, "press_button_Action"); m_anim.set_behavior(_control_box_button, m_anim.AB_FINISH_STOP); m_anim.play(_control_box_button); m_anim.set_speed(_rockets_box, -1); m_anim.play(_rockets_box, function() { m_anim.apply(_bm_13_Armature, "bm_13_Armature_rotate_-37_Action"); m_anim.set_first_frame(_bm_13_Armature); m_anim.set_behavior(_bm_13_Armature, m_anim.AB_FINISH_STOP); m_anim.play(_bm_13_Armature, action_camera); }); }
function kill() { disable_controls() if (_level_conf.MUSIC_SPEAKERS) { m_sfx.clear_playlist(); var intro_spk = m_scs.get_object_by_dupli_name_list( _level_conf.MUSIC_INTRO_SPEAKER); var end_spk = m_scs.get_object_by_dupli_name_list( _level_conf.MUSIC_END_SPEAKER); m_sfx.stop(intro_spk); m_sfx.play_def(end_spk); } var char_death_spk = m_scs.get_object_by_dupli_name(m_conf.CHAR_EMPTY, m_conf.CHAR_DEATH_SPEAKER); m_sfx.play_def(char_death_spk); var anim_id = Math.floor(_char_death_anims.length * Math.random()); var death_anim = _char_death_anims[anim_id]; m_anim.apply(_char_wrapper.rig, death_anim); m_anim.set_behavior(_char_wrapper.rig, m_anim.AB_FINISH_STOP); m_anim.play(_char_wrapper.rig); m_interface.show_replay_button(1); if (_char_wrapper.gem_slot) remove_gem(); if (m_bonuses.shield_time_left() > 0) remove_shield(); if (m_bonuses.lava_protect_time_left() > 0) remove_lava_protect(); m_obj.set_nodemat_value(_cam_indicator, ["camera_indicator", m_conf.CAM_INDICATOR_VAL], 1.0); }
function apply_animation(ev_track) { var obj = ev_track.rig; if (m_anim.is_play(obj)) return; var anim_to_play = null; switch (ev_track.state) { case MS_IDLE: anim_to_play = get_idle_animation(ev_track); break; case MS_MOVING: anim_to_play = get_move_animation(ev_track); break; } if (anim_to_play) { m_anim.apply(obj, anim_to_play); m_anim.cyclic(obj, false); m_anim.set_current_frame_float(obj, 0); m_anim.play(obj); } }