window.Options = {}; Loader.addSounds([ { id:"ui_button1", src:"sounds/ui/button1.mp3" }, { id:"ui_button2", src:"sounds/ui/button2.mp3" } ]); (function(){ var optionsDOM = $("#options"); var text_speed_slider = $("#text_speed_slider"); var text_speed_preview = $("#text_speed_preview"); var volume_slider = $("#volume_slider"); text_speed_slider.oninput = function(){ updateText(); }; volume_slider.oninput = function(){ Howler.volume(parseFloat(volume_slider.value)); }; var text_automatic_toggle = $("#text_automatic_toggle"); text_automatic_toggle.onclick = function(){ if(!Game.CLICK_TO_ADVANCE){ HOW_MANY_PROMPTS = 1; } Game.CLICK_TO_ADVANCE = !Game.CLICK_TO_ADVANCE; text_automatic_toggle.innerHTML = Game.CLICK_TO_ADVANCE ? "по клику" : "авто"; // Sound sfx( Game.CLICK_TO_ADVANCE ? "ui_button2" : "ui_button1"); }; // Add sounds to slider var addSoundsToSlider = function(slider){ var _play1 = function(){ sfx("ui_button1"); }; var _play2 = function(){ sfx("ui_button2"); }; slider.addEventListener("mousedown", _play1); slider.addEventListener("touchstart", _play1); slider.addEventListener("change", _play2); //slider.addEventListener("touchend", _play2); }; addSoundsToSlider(text_speed_slider); addSoundsToSlider(volume_slider); /////////////////////////////////// // CLICK TO ADVANCE // /////////////////////////////////// var HOW_MANY_PROMPTS = 2; var ctaAlpha = 1; var click_to_advance = $("#click_to_advance"); var cta_text1 = $("#cta_text1"); var cta_text2 = $("#cta_text2"); click_to_advance.style.display = "none"; subscribe("set_how_many_prompts", function(n){ HOW_MANY_PROMPTS = n; }); subscribe("show_click_to_advance", function(){ cta_text1.style.display = (HOW_MANY_PROMPTS>0) ? "inline" : "none"; cta_text2.style.display = (HOW_MANY_PROMPTS>0) ? "none" : "inline"; HOW_MANY_PROMPTS--; click_to_advance.style.display = "block"; blinkCTA(); }); subscribe("hide_click_to_advance", function(){ click_to_advance.style.display = "none"; if(currentBlinkingInterval) clearInterval(currentBlinkingInterval); currentBlinkingInterval = null; }); subscribe("update_text_speed", function(){ updateText(); }); var currentBlinkingInterval; window.BLACK_CTA = false; var blinkCTA = function(){ $("#cta_text2 > div").setAttribute("pic", window.BLACK_CTA ? "next-black" : "next"); currentBlinkingInterval = setInterval(function(){ ctaAlpha = (ctaAlpha==1) ? 0 : 1; click_to_advance.style.opacity = ctaAlpha; }, 700); }; /////////////////////////////////// // For previewing the text speed // /////////////////////////////////// Options.update = function(){ // Timeout callbacks... for(var i=0; i<_timeoutCallbacks.length; i++){ var tc = _timeoutCallbacks[i]; tc.timeLeft -= 1000/60; if(tc.timeLeft<=0){ tc.callback(); _timeoutCallbacks.splice(i,1); // delete that one i -= 1; // set index back one } } }; var _timeoutCallbacks = []; var _setTimeout = function(callback, interval){ _timeoutCallbacks.push({ callback: callback, timeLeft: interval }); }; var _clearAllTimeouts = function(){ _timeoutCallbacks = []; }; var updateText = function(){ var div = text_speed_preview; // Calculate text speed... var t = parseFloat(text_speed_slider.value); t = (1-t); // whoops, flip around // Log slider, from 5 to 120, with 50 "in the middle" // f(0)=5, f(0.5)=50, f(1)=120 // a*e^(0.0*b) + c = 5 // a*e^(0.5*b) + c = 50 // a*e^(1.0*b) + c = 120 // constants gotten by Wolfram Alpha, thanks Wolfy. var speed = Math.round( 81*Math.exp(t*0.885) - 76 ); Game.TEXT_SPEED = speed; // Clear previous crap _clearAllTimeouts(); div.innerHTML = ""; // What's the dialogue? var dialogue = Game.TEXT_SPEED<80 ? "Побыстрее" : "Помедленнее"; // Put in the text var span, chr; for(var i=0; i