diff --git a/index.html b/index.html index e8f74e9..b7c513d 100644 --- a/index.html +++ b/index.html @@ -17,16 +17,25 @@
- 👆click anywhere - ⚪️ + +
+ click anywhere +
+ +
+
@@ -39,13 +48,15 @@
-
loading...
- +
+
+
+
+
-
Augh games take so long to make! @@ -81,14 +92,14 @@
-
+
Help me keep making free games?
-
+
A share on an anxiety-app helps too!
@@ -104,7 +115,7 @@
-
+
Above all, thank you for playing! <3
@@ -135,11 +146,13 @@
on click
-
diff --git a/scenes/act1.md b/scenes/act1.md index 73ea81e..5bcc017 100644 --- a/scenes/act1.md +++ b/scenes/act1.md @@ -26,7 +26,7 @@ n: QUICK, WARN THEM! `Game.OVERRIDE_TEXT_SPEED = 1.25;` -n4: (LET _YOUR_ ANXIETY COME OUT TO PLAY! PICK WHAT _YOUR_ ANXIETY WOULD MOST LIKELY SAY TO YOU) +n4: (LET _YOUR_ ANXIETY COME OUT TO PLAY! PICK WHAT _YOUR_ FEAR WOULD MOST LIKELY SAY TO YOU) [You're eating alone for lunch! Again!](#act1a_alone) @@ -162,7 +162,7 @@ b: I am best protector! n: BUT YOU'RE NOT DONE SAVING YOUR HUMAN YET -n: GET YOUR HUMAN'S ENERGY BAR TO ZERO +n: GET YOUR HUMAN'S ENERGY BAR EMPTY n: TO PROTECT YOUR HUMAN'S PHYSICAL + SOCIAL + MORAL NEEDS, YOU CAN USE: @@ -341,7 +341,7 @@ h: I'll say no. `Game.OVERRIDE_TEXT_SPEED = 1.5;` {{if _.fifteencigs}} -b: All you ever do is cry in a corner and worry about how loneliness is as deadly as 15 cigarettes a day. +b: All you ever do is cry in a corner about how loneliness is as deadly as 15 cigarettes a day. {{/if}} {{if _.seppuku}} @@ -349,7 +349,7 @@ b: All you ever do at parties is worry about how you should be doing work instea {{/if}} {{if _.whitebread}} -b: All you ever do is just panic about the unhealthy food options and think about how every tiny bit is going to kill you. +b: All you ever do is worry about how the unhealthy food options are going to kill you. {{/if}} ``` @@ -405,7 +405,7 @@ h: What's new on Twitter? [Oh no, look at that horrible news story!](#act1d_news) -[Oh no, is that a subtweet of *you?*](#act1d_subtweet) +[Oh no, is that tweet secretly about *you?*](#act1d_subtweet) [hey, a GIF of a cat drinking milk](#act1d_milk) @@ -464,9 +464,13 @@ h: Screw it, let's look at Snapchat. # act1d_subtweet +`bb({eyes:"fear"});` + +b: It's a subtweet! A sneaky, sneaky subtweet! + `hong({eyes:"annoyed"});` -h: ...probably not? +h: It's probably not? `bb({eyes:"narrow", mouth:"small"});` @@ -825,20 +829,20 @@ h: Why are you like this?! # act1e_ignore_posture ``` -bb({eyes:"fear"}); +bb({eyes:"anger"}); Game.OVERRIDE_TEXT_SPEED = 1.5; ``` -b: Do you want to have a pretzel for a spine?! +b: Do you want to have a pretzel for a spine?! Stop hunching over your screen! ``` -bb({body:"fear"}); -Game.OVERRIDE_TEXT_SPEED = 1.5; +bb({body:"meta"}); ``` -b: Do you want your freak skeleton to end up in a cheap tourist trap museum?! +b: That means you too. ``` +bb({body:"normal", mouth:"normal"}); hong({mouth:"shock", eyes:"shock"}); attack("10p", "harm"); ``` @@ -1004,6 +1008,7 @@ b: You think other people's genitals are Pokémon for you to collect? bb({body:"sing", eyes:"pretty", mouth:"shut"}); music("pokemon"); Game.clearText(); +Game.FORCE_CANT_SKIP = true; ``` ``` @@ -1051,11 +1056,15 @@ b: ♫ with sweaty dick and balls!- (...1000) -`bb({eyes:"smile", mouth:"smile"})` +``` +bb({eyes:"smile", mouth:"smile"}); +Game.FORCE_TEXT_DURATION = 1000; +``` -b: ♫ PERVY-MON, GOTTA CA- +b: ♫ PERVY-MON! GOTTA CA- ``` +Game.FORCE_CANT_SKIP = false; Game.clearText(); music(false); bb({body:"normal", mouth:"normal", eyes:"normal"}); @@ -1254,14 +1263,14 @@ h: Now excuse me while I eat this delicious sandwich in goddamn peace. `hong({body:"2_sammich_eat"});` -(...600) +(...601) ``` sfx("sandwich"); hong({body:"2_sammich_eaten", eyes:"0_lookaway", mouth:"0_chew1"}) ``` -(...600) +(...601) ``` bb({body:"normal", eyes:"uncertain", mouth:"shut"}); @@ -1359,13 +1368,13 @@ n: CONGRATULATIONS (...500) -n: YOU HAVE SUCCESSFULLY PROTECTED YOUR HUMAN +n: YOU'VE SUCCESSFULLY PROTECTED YOUR HUMAN'S NEEDS FOR SAFETY, LOVE, AND GOODNESS -n: LOOK HOW GRATEFUL THEY ARE +n: WHY, LOOK HOW GRATEFUL THEY ARE! (...500) -n: NOW THAT THEIR ENERGY IS ZERO, YOU CAN DIRECTLY CONTROL THEIR ACTIONS! +n: NOW THAT THEIR ENERGY IS ZERO, YOU CAN DIRECTLY CONTROL THEIR ACTIONS `bb({mouth:"smile", eyes:"normal"});` diff --git a/scenes/act1-end.md b/scenes/act1_end.md similarity index 58% rename from scenes/act1-end.md rename to scenes/act1_end.md index c70b874..9a3c157 100644 --- a/scenes/act1-end.md +++ b/scenes/act1_end.md @@ -2,9 +2,13 @@ `SceneSetup.act1_end()` -(...2000) +(...1000) -n: TOTAL FEARS USED: +`sfx("dramatic");` + +(...1000) + +n: YOUR FEARS: n: #harm# *BEING HARMED:* {{_.attack_harm}} @@ -12,10 +16,17 @@ n: #alone# *BEING UNLOVED:* {{_.attack_alone}} n: #bad# *BEING A BAD PERSON:* {{_.attack_bad}} -(...4000) +(...3150) `Game.clearText()` (...2000) +``` +publish("TO_BE_CONTINUED"); +sfx("fart"); +``` + +(...2500) + `publish("END_OF_DEMO")` \ No newline at end of file diff --git a/scenes/intro.md b/scenes/intro.md index 62753ba..6536bd1 100644 --- a/scenes/intro.md +++ b/scenes/intro.md @@ -4,7 +4,9 @@ # intro-play-button -[👉 Play! 👈](#intro-start) `publish("intro-to-game-1"); Game.OVERRIDE_CHOICE_LINE=true;` +`Game.HACK_MAKE_THE_LINE_BIG=true;` + +[
PLAY!
](#intro-start) `publish("intro-to-game-1"); Game.OVERRIDE_CHOICE_LINE=true;` # intro-start @@ -20,7 +22,7 @@ n3: So before we start, how would *you* like to read? # intro-start-2 -n3: Great! Note: you can always change text/audio options with the ⚙️ icon below. +n3: Great! Note: you can always change text/audio options with the ⚙ icon below. n3: Now, let's begin our story... @@ -38,4 +40,6 @@ n2: THIS IS A HUMAN (...300) -`publish("intro-to-game-3")` \ No newline at end of file +(#act1_end) + +`/*publish("intro-to-game-3")*/` \ No newline at end of file diff --git a/scripts/act1/Act1_Beebee.js b/scripts/act1/Act1_Beebee.js index 749fd89..614468d 100644 --- a/scripts/act1/Act1_Beebee.js +++ b/scripts/act1/Act1_Beebee.js @@ -68,7 +68,9 @@ function Act1_Beebee(){ "eyes_pained1", "eyes_pained2", "mouth_shut", - "eyes_anger" + "eyes_anger", + + "body_meta*" ], x: 270-7.5, diff --git a/scripts/act1/Act1_SceneSetup.js b/scripts/act1/Act1_SceneSetup.js index 00fbed7..7d807b6 100644 --- a/scripts/act1/Act1_SceneSetup.js +++ b/scripts/act1/Act1_SceneSetup.js @@ -1,6 +1,9 @@ Loader.addSounds([ { id:"music_battle", src:"sounds/music/battle.mp3" }, - { id:"music_pokemon", src:"sounds/music/pokemon.mp3" } + { id:"music_pokemon", src:"sounds/music/pokemon.mp3" }, + + { id:"dramatic", src:"sounds/sfx/dramatic.mp3" }, + { id:"fart", src:"sounds/sfx/fart.mp3" } ]); SceneSetup.act1 = function(){ @@ -47,13 +50,16 @@ SceneSetup.act1_end = function(){ stopAllSounds(); // HACK + Game.TEXT_SPEED = 50; Game.FORCE_TEXT_Y = 52; + Game.FORCE_CANT_SKIP = true; $("#game_container").style.background = "#000"; $("#game_choices").style.display = "none"; // KILL Game.scene.kill = function(){ Game.FORCE_TEXT_Y = -1; + Game.FORCE_CANT_SKIP = false; $("#game_container").style.background = ""; $("#game_choices").style.display = ""; }; diff --git a/scripts/game/About.js b/scripts/game/About.js index 46b7e29..c415b1c 100644 --- a/scripts/game/About.js +++ b/scripts/game/About.js @@ -41,6 +41,12 @@ Loader.addSounds([ }; + // SHOW TBC + var tbc = $("#end_demo_tbc"); + subscribe("TO_BE_CONTINUED", function(){ + tbc.style.display = "block"; + }); + // SHOW END subscribe("END_OF_DEMO", function(){ @@ -51,16 +57,23 @@ Loader.addSounds([ // Cut in aboutDOM.removeAttribute("about"); aboutDOM.style.display = "none"; - aboutDOM.style.top = "0px"; + aboutDOM.style.display = "block"; setTimeout(function(){ - aboutDOM.style.display = "block"; + aboutDOM.style.top = "0px"; // slide in },10); + + // Sound + Howler.mute(false); + sfx("rustle"); + music('campus', {volume:0.5, fade:1}); + }); // Replay $("#replay").onclick = function(){ // UI/SCREAM SOUNDS + stopAllSounds(); sfx("yelp"); // Cut out @@ -69,6 +82,7 @@ Loader.addSounds([ setTimeout(function(){ aboutDOM.style.display = "block"; },100); + tbc.style.display = "none"; // Bye About.showing = false; diff --git a/scripts/game/Game.js b/scripts/game/Game.js index 2eac7d3..cfb6032 100644 --- a/scripts/game/Game.js +++ b/scripts/game/Game.js @@ -151,6 +151,9 @@ Game.setTimeout = function(callback, interval){ // SKIP TEXT WHEN CLICK ANYWHERE (but NOT capture in choice) Game.clearAllTimeouts = function(){ + // NOPE + if(Game.FORCE_CANT_SKIP) return; + // Is this DURING while someone is talking? var isInterrupting = (Game.WHO_IS_SPEAKING!=null); @@ -281,6 +284,7 @@ window.clearText = Game.clearText; // Execute text! Just add it to text DOM. Game.TEXT_SPEED = 50; Game.CLICK_TO_ADVANCE = true; +Game.FORCE_CANT_SKIP = false; Game.OVERRIDE_TEXT_SPEED = 1; Game.FORCE_TEXT_DURATION = -1; Game.WHO_IS_SPEAKING = null; // "h", "b", "n" etc... @@ -532,8 +536,10 @@ Game.executeText = function(line){ // Return promise var nextLineDelay = Game.TEXT_SPEED*7; // don't override this if(dialogue.slice(-1)=="-") nextLineDelay=0; // sudden interrupt! - if(Game.CLICK_TO_ADVANCE){ // IF IT'S CLICK-TO-ADVANCE, "INFINITE" TIMEOUT. - nextLineDelay = 1000*10000; // ten thousand seconds + if(!Game.FORCE_CANT_SKIP){ + if(Game.CLICK_TO_ADVANCE){ // IF IT'S CLICK-TO-ADVANCE, "INFINITE" TIMEOUT. + nextLineDelay = 1000*10000; // ten thousand seconds + } } // No one's speaking anymore. @@ -542,10 +548,12 @@ Game.executeText = function(line){ }, interval); // Show the clicky UI - if(Game.CLICK_TO_ADVANCE){ - Game.setTimeout(function(){ - publish("show_click_to_advance"); - }, interval+Game.TEXT_SPEED*2); + if(!Game.FORCE_CANT_SKIP){ + if(Game.CLICK_TO_ADVANCE){ + Game.setTimeout(function(){ + publish("show_click_to_advance"); + }, interval+Game.TEXT_SPEED*2); + } } // DONE WITH IT @@ -567,6 +575,7 @@ Loader.addSounds([ // Execute choice! Add it to choice DOM. Game.OVERRIDE_CHOICE_LINE = false; +Game.HACK_MAKE_THE_LINE_BIG = false; Game.executeChoice = function(line){ var choiceText = line.match(/\[([^\]]*)\]/)[1].trim(); @@ -621,23 +630,31 @@ Game.executeChoice = function(line){ setTimeout(function(){ div.style.top = "0px"; sfx("ui_show_choice", {volume:0.4}); - },0); + },10); - // If it's too big, shrink font size - setTimeout(function(){ - var choiceHeight = div.getBoundingClientRect().height; - if(choiceHeight>40) div.style.fontSize = "18px"; - // And if still too much??? + // Or... FORCE + if(Game.HACK_MAKE_THE_LINE_BIG){ + div.style.fontSize = "30px"; + }else{ + + // If it's too big, shrink font size setTimeout(function(){ var choiceHeight = div.getBoundingClientRect().height; - if(choiceHeight>40) div.style.fontSize = "16px"; + if(choiceHeight>40) div.style.fontSize = "18px"; // And if still too much??? setTimeout(function(){ var choiceHeight = div.getBoundingClientRect().height; - if(choiceHeight>40) div.style.fontSize = "14px"; - },0); - },0); - },0); + if(choiceHeight>40) div.style.fontSize = "16px"; + // And if still too much??? + setTimeout(function(){ + var choiceHeight = div.getBoundingClientRect().height; + if(choiceHeight>40) div.style.fontSize = "14px"; + },1); + },1); + },1); + + } + Game.HACK_MAKE_THE_LINE_BIG = false; // Wait a bit before adding new line return new RSVP.Promise(function(resolve){ @@ -668,8 +685,17 @@ Game.executeWait = function(line){ var waitTime = parseInt(line.match(/^\(\.\.\.(\d+)\)/)[1].trim()); // Unless it's click to advance, then IGNORE ALL WAITS - if(Game.CLICK_TO_ADVANCE && waitTime<=1000){ // hack: unless the wait is long. - waitTime = 0; // TODO: Tag anim-waits, do not ignore. + if(!Game.FORCE_CANT_SKIP){ + + // Specific wait-time, don't skip? + var waitTimeString = waitTime+""; + var lastDigit = waitTimeString[waitTimeString.length-1]; + var cantSkip = (lastDigit=="1"); // CAN'T SKIP. + + if(!cantSkip && Game.CLICK_TO_ADVANCE && waitTime<999){ // hack: unless the wait is long. + waitTime = 0; + } + } // Delayed promise @@ -735,7 +761,7 @@ Game.parseLine = function(line){ var condition = fullConditional.match(/\{\{if\s+([^\{\}]*)\}\}/)[1]; // Extract the inside text - var insideText = fullConditional.match(/\}\}([^\{\}]*)\{\{/)[1].trim(); + var insideText = fullConditional.match(/\}\}([^\{\}]*)\{\{/)[1].trim()+" "; // Eval condition! var conditionIsTrue = false; diff --git a/scripts/game/HP.js b/scripts/game/HP.js index 6411983..62e1802 100644 --- a/scripts/game/HP.js +++ b/scripts/game/HP.js @@ -144,14 +144,14 @@ function HitPoints(){ } } var sx=isRight ? 360 : 0, sy=200*1, sw=360, sh=200; - var offset = (1-self[side+"White"])*360;//self[side+"WhiteWidth"]; + var offset = (1-self[side+"White"])*295;//self[side+"WhiteWidth"]; offset *= isRight ? -1 : 1; ctx.globalCompositeOperation = "source-atop"; ctx.drawImage(self.image, sx,sy,sw,sh, (sx+offset)/2,0,sw/2,sh/2); // Red var sx=isRight ? 360 : 0, sy=200*2, sw=360, sh=200; - var offset = (1-self[side+"Red"])*360;//self[side+"WhiteWidth"]; + var offset = (1-self[side+"Red"])*295;//self[side+"WhiteWidth"]; offset *= isRight ? -1 : 1; ctx.globalCompositeOperation = "source-atop"; ctx.drawImage(self.image, sx,sy,sw,sh, (sx+offset)/2,0,sw/2,sh/2); diff --git a/scripts/game/Loader.js b/scripts/game/Loader.js index 006bb4d..ad9d72e 100644 --- a/scripts/game/Loader.js +++ b/scripts/game/Loader.js @@ -3,7 +3,16 @@ window.Library = { images: {}, sounds: {} }; -Loader.load = function(){ +Loader.load = function(progressCallback){ + + var totalAssets = Loader.sceneSources.length + Loader.imageConfigs.length + Loader.soundConfigs.length; + var assetsLoaded = 0; + subscribe("assetLoaded", function(){ + assetsLoaded++; + progressCallback(assetsLoaded/totalAssets); + }); + + // Gotta LOAD 'EM ALL return new RSVP.Promise(function(resolve){ var loadPromises = []; @@ -42,7 +51,10 @@ Loader.loadImage = function(imageConfig){ var img = new Image(); var id = imageConfig.id; Library.images[id] = img; // ADD TO LIBRARY - img.onload = resolve; + img.onload = function(){ + publish("assetLoaded"); + resolve(); + } img.src = imageConfig.src; }); }; @@ -62,6 +74,7 @@ Loader.loadScene = function(src){ xhr.onload = function() { if(xhr.status===200){ Game.parseSceneMarkdown(xhr.responseText); // PARSE INTO GAME + publish("assetLoaded"); resolve(); } }; @@ -85,6 +98,7 @@ Loader.loadSound = function(soundConfig){ var id = soundConfig.id; Library.sounds[id] = sound; // ADD TO LIBRARY sound.once("load",function(){ + publish("assetLoaded"); resolve(); }); }); diff --git a/scripts/game/Options.js b/scripts/game/Options.js index 4ee01fe..c60511d 100644 --- a/scripts/game/Options.js +++ b/scripts/game/Options.js @@ -69,14 +69,19 @@ Loader.addSounds([ }); subscribe("hide_click_to_advance", function(){ + click_to_advance.style.display = "none"; + + if(currentBlinkingInterval) clearInterval(currentBlinkingInterval); + currentBlinkingInterval = null; + }); + var currentBlinkingInterval; var blinkCTA = function(){ - if(click_to_advance.style.display=="block"){ + currentBlinkingInterval = setInterval(function(){ ctaAlpha = (ctaAlpha==1) ? 0 : 1; click_to_advance.style.opacity = ctaAlpha; - setTimeout(blinkCTA, 700); - } + }, 700); }; /////////////////////////////////// @@ -170,7 +175,13 @@ Loader.addSounds([ // Showing/hiding options ///////// /////////////////////////////////// + + var ALREADY_DID_INTRO = false; + subscribe("show_options_bottom", function(){ + + ALREADY_DID_INTRO = false; + optionsDOM.setAttribute("past_intro", ALREADY_DID_INTRO ? "yes" : "no"); optionsDOM.style.top = "447px"; _clearAllTimeouts(); @@ -184,7 +195,6 @@ Loader.addSounds([ }); - var ALREADY_DID_INTRO = false; $("#options_ok").onclick = function(){ if(!ALREADY_DID_INTRO){ @@ -214,7 +224,10 @@ Loader.addSounds([ }); subscribe("show_options", function(){ - $("#volume_options").style.display = "block"; + + ALREADY_DID_INTRO = true; + optionsDOM.setAttribute("past_intro", ALREADY_DID_INTRO ? "yes" : "no"); + optionsDOM.style.top = "200px"; Options.showing = true; Game.pause(); diff --git a/scripts/game/Sounds.js b/scripts/game/Sounds.js index 742f8f0..1affb98 100644 --- a/scripts/game/Sounds.js +++ b/scripts/game/Sounds.js @@ -54,7 +54,7 @@ window.music = function(song, options){ // Fade out or cut previous? if(options.fade==0){ if(window.CURRENT_MUSIC) window.CURRENT_MUSIC.stop(); - }else{ + }else if(window.CURRENT_MUSIC){ var currentVolume = window.CURRENT_MUSIC.volume(); window.CURRENT_MUSIC.fade(currentVolume, 0, options.fade*1000); } diff --git a/scripts/intro/Intro_BG.js b/scripts/intro/Intro_BG.js index fbed5ce..8b09efc 100644 --- a/scripts/intro/Intro_BG.js +++ b/scripts/intro/Intro_BG.js @@ -19,6 +19,9 @@ Loader.addSounds([ ]); function BG_Intro(){ + + var ticker = 18;//0; + var self = this; @@ -104,7 +107,6 @@ function BG_Intro(){ 20 ] - var ticker = 18;//0; var frameTicker = ticker; var parallaxTicker = 0; var SHOWN_PLAY_BUTTON = false; diff --git a/scripts/intro/Intro_SceneSetup.js b/scripts/intro/Intro_SceneSetup.js index 3cc77d2..5fe9e25 100644 --- a/scripts/intro/Intro_SceneSetup.js +++ b/scripts/intro/Intro_SceneSetup.js @@ -14,4 +14,8 @@ SceneSetup.intro = function(){ var bg = new BG_Intro(); Game.scene.children.push(bg); + // TOTAL HACK + $("#gear").style.display = "none"; + $("#about").style.display = "none"; + }; \ No newline at end of file diff --git a/scripts/main.js b/scripts/main.js index f4a42cf..c4d8113 100644 --- a/scripts/main.js +++ b/scripts/main.js @@ -2,13 +2,17 @@ Loader.addScenes([ "scenes/intro.md", "scenes/act1.md", - "scenes/act1-end.md" + "scenes/act1_end.md" ]); -Loader.load().then(function(){ +Loader.load(function(progress){ - $("#loading_progress").style.display = "none"; - $("#loading_done").style.display = "block"; + $("#loading_bar_bg").style.height = (progress*50)+"px"; + +}).then(function(){ + + $("#loading").setAttribute("loaded","yes"); $("#loading").onclick = function(){ + sfx("pop"); publish('START_GAME'); }; @@ -17,21 +21,27 @@ Loader.load().then(function(){ }); subscribe("START_GAME", function(){ - + $("#loading").style.display = "none"; Game.start(); - SceneSetup.act1(); + + /*SceneSetup.act1(); //music('battle', {volume:0.5}); hong({body:"phone1"}); publish("hp_show"); _.seppuku = true; _.hookuphole = true; - _.catmilk = true; + _.catmilk = true;*/ - Game.goto("act1i"); - //Game.goto("intro"); + /*_.attack_harm = 0; + _.attack_alone = 0; + _.attack_bad = 0; + Game.goto("act1_end"); + */ + + Game.goto("intro"); }); \ No newline at end of file diff --git a/sounds/sfx/dramatic.mp3 b/sounds/sfx/dramatic.mp3 new file mode 100644 index 0000000..ec1ad29 Binary files /dev/null and b/sounds/sfx/dramatic.mp3 differ diff --git a/sounds/sfx/fart.mp3 b/sounds/sfx/fart.mp3 new file mode 100644 index 0000000..278ba5a Binary files /dev/null and b/sounds/sfx/fart.mp3 differ diff --git a/sprites/act1/act1_beebee.png b/sprites/act1/act1_beebee.png index 0de5808..3bd9405 100644 Binary files a/sprites/act1/act1_beebee.png and b/sprites/act1/act1_beebee.png differ diff --git a/sprites/end_demo/patreon.png b/sprites/end_demo/patreon.png index acaadc8..bb5ccfa 100644 Binary files a/sprites/end_demo/patreon.png and b/sprites/end_demo/patreon.png differ diff --git a/sprites/end_demo/share.png b/sprites/end_demo/share.png index f31173b..cb2de19 100644 Binary files a/sprites/end_demo/share.png and b/sprites/end_demo/share.png differ diff --git a/sprites/ui/icons.png b/sprites/ui/icons.png new file mode 100644 index 0000000..36ddb81 Binary files /dev/null and b/sprites/ui/icons.png differ diff --git a/sprites/ui/preloader.png b/sprites/ui/preloader.png new file mode 100644 index 0000000..46d6838 Binary files /dev/null and b/sprites/ui/preloader.png differ diff --git a/styles/game.css b/styles/game.css index 3fdf52c..266c171 100644 --- a/styles/game.css +++ b/styles/game.css @@ -13,7 +13,7 @@ MAIN GAME ******************************************************************************************************/ -#game_words, #game_choices, #paused, #options, #loading, #gear, #about, #click_to_advance{ +div{ /*, #game_words, #game_choices, #paused, #options, #loading, #gear, #about, #click_to_advance{*/ -webkit-user-select: none; /* Safari 3.1+ */ -moz-user-select: none; /* Firefox 2+ */ -ms-user-select: none; /* IE 10+ */ @@ -113,7 +113,7 @@ PAUSED & LOADING font-weight: bold; text-align: center; } -#paused > div, #loading > div{ +#paused > div{ position: absolute; margin: auto; top: 0; @@ -138,17 +138,57 @@ PAUSED & LOADING display: none; } +#loading_bar{ + width: 150px; + height: 100px; + overflow: hidden; + + position: absolute; + margin: auto; + top: 0; + left: 0; + right: 0; + bottom: 0; +} +#loading_bar_bg{ + width: 140px; + height: 0px; + background: #ff4040; + position: absolute; + left:5px; + bottom: 42px; +} +#loading_pic{ + width: 100%; + height: 100%; + background: url(../sprites/ui/preloader.png); + position: absolute; + top: 0; + left: 0; + background-size: 100%; +} #loading{ display:block; - background: #333; + background:#282828; +} +#loading[loaded=yes]{ cursor: pointer; + background:#282828; } -#loading:hover{ - background: #444; +#loading[loaded=yes]:hover{ + background:#444; } -#loading > div{ - height: 50px; - font-size: 30px; +#loading[loaded=yes] #loading_bar_bg{ + display: none; +} +#loading[loaded=yes] #loading_pic{ + background-position: 0px -100%; +} +#loading[loaded=yes]:hover #loading_pic{ + background-position: 0px -200%; +} +#loading[loaded=yes]:active #loading_pic{ + background-position: 0px -300%; } @@ -187,6 +227,11 @@ ABOUT / END DEMO } #end_demo_tbc{ + + position: absolute; + top: 220px; + display: none; + background: url(../sprites/end_demo/tbc.png); background-size: 100%; width: 100%; @@ -263,7 +308,7 @@ ABOUT / END DEMO #patreon{ width: 160px; - height: 48px; + height: 56px; background: url(../sprites/end_demo/patreon.png); background-size: 100%; margin: 5px auto 10px auto; @@ -319,17 +364,21 @@ ABOUT / END DEMO background-position: -200px; } -#end_demo #end_demo_tbc{ display: block; } #end_demo #end_words1{ display: inline; } #end_demo #end_words2{ display: none; } #end_demo #replay{ display: block; } #end_demo #close_about{ display: none; } +#end_demo .about_padding{ + padding-top: 10px; +} +#end_demo #end_demo_words{ + padding-top: 50px; +} #end_demo[about=yes]{ padding-top: 25px; height: 490px; } -#end_demo[about=yes] #end_demo_tbc{ display: none; } #end_demo[about=yes] #end_words1{ display: none; } #end_demo[about=yes] #end_words2{ display: inline; } #end_demo[about=yes] #replay{ display: none; } @@ -339,6 +388,12 @@ ABOUT / END DEMO width: 50px; margin: 10px auto; } +#end_demo[about=yes] .about_padding{ + padding-top: 0px; +} +#end_demo[about=yes] #end_demo_words{ + padding-top: 0px; +} /****************************************************************************************************** @@ -372,6 +427,12 @@ OPTIONS transition-timing-function: cubic-bezier(0.350, 0.005, 0.370, 1.390); /* custom */ } +#options #volume_options{ + display: none; +} +#options[past_intro=yes] #volume_options{ + display: block; +} #text_speed_preview{ height: 1.3em; } @@ -495,6 +556,35 @@ DIALOGUEZ clear:both; } +.mini-icon{ + display: inline-block; + background: url(../sprites/ui/icons.png); + background-size: 700%; + width: 20px; height:20px; + position: relative; +} +.mini-icon[pic="gear"]{ + background-position: -0px 0px; +} +.mini-icon[pic="about"]{ + background-position: -100% 0px; +} +.mini-icon[pic="next"]{ + background-position: -200% 0px; +} +.mini-icon[pic="play1"]{ + background-position: -300% 0px; +} +.mini-icon[pic="play2"]{ + background-position: -400% 0px; +} +.mini-icon[pic="click"]{ + background-position: -500% 0px; +} +.mini-icon[pic="ok"]{ + background-position: -600% 0px; +} + .narrator-bubble, .narrator-bubble-2, .narrator-bubble-4{ position: relative; color: #FFFFFF;