diff --git a/CREDITS.md b/CREDITS.md new file mode 100644 index 0000000..b4451b7 --- /dev/null +++ b/CREDITS.md @@ -0,0 +1,21 @@ +Intro Scream: https://freesound.org/people/analogchill/sounds/35716/ (MaderaDelEste Films) +Dramatic Hit: https://freesound.org/people/qubodup/sounds/222517/ +Nature Ambience: https://freesound.org/people/michorvath/sounds/427601/ +Grass Footstep 1: https://freesound.org/people/morganpurkis/sounds/384651/ +Grass Footstep 2: https://freesound.org/people/morganpurkis/sounds/384643/ +Eating a Sandwich: https://freesound.org/people/dleverett/sounds/441906/ +Search a Bag: https://freesound.org/people/Tristan_Lohengrin/sounds/233441/ +Whoosh: https://freesound.org/people/crackles04/sounds/369698/ +Empty Room Ambience: https://freesound.org/people/kyles/sounds/451616/ +Ball Bounce: https://freesound.org/people/13GPanska_Lakota_Jan/sounds/378355/ +Faucet: https://freesound.org/people/calivintage/sounds/95709/ +Pop: https://freesound.org/people/onikage22/sounds/240566/ +Angry Scream: https://freesound.org/people/cdrk/sounds/21324/ +Explosion: https://freesound.org/people/Link-Boy/sounds/156615/ + +Various Assets from Kenney's packs: +Beebee's & Hong's voice from: https://kenney.nl/assets/digital-audio +Narrator's voice is from: https://kenney.nl/assets/rpg-audio + +Music: +http://freemusicarchive.org/music/Komiku/Captain_Glouglous_Incredible_Week_Soundtrack/pog \ No newline at end of file diff --git a/index.html b/index.html index 0e534e1..00b2e76 100644 --- a/index.html +++ b/index.html @@ -18,6 +18,10 @@
click anywhere to keep freaking out
+
+
+
play!
+
diff --git a/scenes/act1.md b/scenes/act1.md index da49297..4cfbc2b 100644 --- a/scenes/act1.md +++ b/scenes/act1.md @@ -193,7 +193,7 @@ n: GOOD LUCK # act1c -`music('battle', 0.5)` +`music('battle', {volume:0.5})` n: ROUND ONE: *FIGHT!* @@ -1256,7 +1256,7 @@ attack("100p", "bad"); ``` bb({mouth:"smile_lock", eyes:"smile"}); -music('battle', 0.5); +music('battle', {volume:0.5}); ``` n: CONGRATULATIONS @@ -1265,6 +1265,8 @@ n: YOU HAVE SUCCESSFULLY PROTECTED YOUR HUMAN n: LOOK HOW GRATEFUL THEY ARE +(...500) + n: NOW THAT THEIR ENERGY IS ZERO, YOU CAN DIRECTLY CONTROL THEIR ACTIONS! `bb({mouth:"smile", eyes:"normal"});` @@ -1275,7 +1277,7 @@ n: PICK YOUR ENDING MOVE n: *FINISH THEM* -[< FIGHT: Destroy your phone! >](#act1i_phone) `Game.OVERRIDE_CHOICE_LINE=true` +[< FIGHT: Punish your phone! >](#act1i_phone) `Game.OVERRIDE_CHOICE_LINE=true` [< FLIGHT: Curl up in a ball and cry! >](#act1i_cry) `Game.OVERRIDE_CHOICE_LINE=true` diff --git a/scenes/intro.md b/scenes/intro.md index a82c990..d8eb7fd 100644 --- a/scenes/intro.md +++ b/scenes/intro.md @@ -4,17 +4,15 @@ # intro-play-button -[Play!](#intro-start) - -[GAHHHH!](#meow) - -[GAHHHHHHH!](#meow) +[Play!](#intro-start) `publish("intro-to-game-1")` # intro-start -`publish("intro-to-game-1")` +(...300) -n: THIS IS A HUMAN +`clearText()` + +m: THIS IS A HUMAN (...600) diff --git a/scripts/act1/Act1_Outro_BG.js b/scripts/act1/Act1_Outro_BG.js index 95cda16..b680cad 100644 --- a/scripts/act1/Act1_Outro_BG.js +++ b/scripts/act1/Act1_Outro_BG.js @@ -2,6 +2,16 @@ Loader.addImages([ { id:"act1_end", src:"sprites/act1/act1_end.png" } ]); +Loader.addSounds([ + + { id:"pop", src:"sounds/sfx/pop.mp3" }, + { id:"bounce1", src:"sounds/sfx/bounce1.mp3" }, + { id:"bounce2", src:"sounds/sfx/bounce2.mp3" }, + { id:"bounce3", src:"sounds/sfx/bounce3.mp3" }, + { id:"faucet", src:"sounds/sfx/faucet.mp3" } + +]); + function BG_Act1_Outro(){ var self = this; @@ -101,6 +111,7 @@ function BG_Act1_Outro(){ var ticker = 0; var frameTicker = ticker; var parallaxTicker = 1; + var thePreviousFrame = -1; self.draw = function(ctx){ @@ -128,19 +139,30 @@ function BG_Act1_Outro(){ // Smoking crater & Hong frame frameTicker += 1/60; + var results; if(ANIM_TO_USE == "fight"){ - var frame = findFrameOnTicker(SMOKING_CRATER, frameTicker); - craterSprite.gotoFrame(frame); - var frame = findFrameOnTicker(HONG_FRAMES_FIGHT, frameTicker); - hongSprite.gotoFrame(frame); + results = findOnTicker(SMOKING_CRATER, frameTicker); + craterSprite.gotoFrame(results.frame); + + // Hong's frame + results = findOnTicker(HONG_FRAMES_FIGHT, frameTicker); }else{ - craterSprite.visible = false; - var frame = findFrameOnTicker(HONG_FRAMES_FLIGHT, frameTicker); - hongSprite.gotoFrame(frame); + // Hong's frame + results = findOnTicker(HONG_FRAMES_FLIGHT, frameTicker); + } + + // Is Hong on a new frame? + thePreviousFrame = hongSprite.currentFrame; + var isNewFrame = (thePreviousFrame!=results.frame); + hongSprite.gotoFrame(results.frame); + + // SFX if new frame + if(isNewFrame && results.sfx){ + sfx(results.sfx, {volume: results.sfxVolume} ); } // If pre frameTicker=90/30, Hong is shaking like Beebee! @@ -175,18 +197,38 @@ function BG_Act1_Outro(){ ////////////////////////////////////////////////////////////////////////////// // Find it! - var findFrameOnTicker = function(frameArray, ticker){ + /*var findFrameOnTicker = function(frameArray, ticker){ var lastFrame; for(var i=0; i=530/30){ SHOWN_LOGO = true; + sfx("intro_scream"); } if(GAME_TRANSITION==0 && SHOWN_LOGO){ self.logoSprite.draw(ctx); } // Show Play Button - if(!SHOWN_PLAY_BUTTON && ticker>=590/30){ + if(!SHOWN_PLAY_BUTTON && ticker>=645/30){ SHOWN_PLAY_BUTTON = true; Game.goto("intro-play-button"); } @@ -170,6 +192,13 @@ function BG_Intro(){ subscribe("intro-to-game-2", function(){ frameTicker = 600/30; GAME_TRANSITION = 2; // START PARALLAXING + + // WHOOSH + sfx("whoosh"); + + // Music + music("hum", {fade:2, volume:0.6}); + }) ); @@ -181,21 +210,21 @@ function BG_Intro(){ var HONG_FRAMES = [ "0-0", - "1-59", - "2-79", - "3-99", - "4-119", - "5-139", - "6-199", - "7-234", + "1-59-grass_step1-0.1", + "2-79-grass_step2-0.2", + "3-99-grass_step1-0.25", + "4-119-grass_step2-0.3", + "5-139-grass_step1-0.35", + "6-199-bag_short", + "7-234-bag_search", "8-244", "9-254", "8-264", "9-274", - "10-299", - "11-336", + "10-299-bag_short", + "11-336-bag_kick", "12-346", - "13-381", + "13-381-sandwich", "14-400", "15-410", "14-420", @@ -217,17 +246,25 @@ function BG_Intro(){ ]; HONG_FRAMES = HONG_FRAMES.map(function(frame){ var f = frame.split("-"); - return [parseInt(f[0]), parseInt(f[1])/30]; + var frame = parseInt(f[0]); + var ticker = parseInt(f[1])/30; + var sfx = f[2] ? f[2] : null; + var sfxVolume = f[3] ? f[3] : 1; + return [frame, ticker, sfx, sfxVolume]; }); - var findFrameOnTicker = function(ticker){ - var lastFrame; + var findOnTicker = function(ticker){ + var lastConfig; for(var i=0; i div{ +#paused > div, #loading > div{ position: absolute; margin: auto; top: 0; @@ -71,11 +71,24 @@ body{ margin: 15px auto; } +#loading{ + display:block; + background: #333; + cursor: pointer; +} +#loading:hover{ + background: #444; +} +#loading > div{ + height: 50px; + font-size: 30px; +} + .clear-both{ clear:both; } -.narrator-bubble{ +.narrator-bubble, .narrator-bubble-2{ position: relative; color: #FFFFFF; text-align: center; @@ -84,7 +97,7 @@ body{ margin: 25px 15px; font-weight: bold; } -.narrator-bubble:before{ +.narrator-bubble:before, .narrator-bubble-2:before{ content: ''; @@ -99,7 +112,7 @@ body{ height: calc(100% + 4px); } -.narrator-bubble:after{ +.narrator-bubble:after, .narrator-bubble-2:after{ content: ''; @@ -114,10 +127,16 @@ body{ height: calc(100% + 4px); } -.narrator-bubble i{ +.narrator-bubble i, .narrator-bubble-2 i{ font-style: normal; color: #ff4040; } +.narrator-bubble-2{ + color: #000; +} +.narrator-bubble-2:before, .narrator-bubble-2:after{ + border-color: #000; +} .hong-bubble { position: relative;