From f5e8d145ad4296c5c69ecb58989887888a6a09ab Mon Sep 17 00:00:00 2001 From: Azaaxin Date: Wed, 18 Mar 2020 10:20:31 +0100 Subject: [PATCH] Added skins to the gameboard --- assets/textures/iron_crate.png | Bin 0 -> 18819 bytes assets/textures/iron_crate_event.png | Bin 0 -> 21603 bytes assets/textures/portal.png | Bin 0 -> 5330 bytes assets/textures/slime-placeholder.png | Bin 0 -> 8066 bytes assets/textures/slime_crate.png | Bin 0 -> 2115 bytes assets/textures/space.png | Bin 0 -> 3507 bytes assets/textures/template.png | Bin 0 -> 1502 bytes cards.css | 64 ++++++++++++++++++++-- index.php | 23 +++++++- scripts/fittext.js | 43 +++++++++++++++ scripts/gameboard.js | 74 +++++++++++++++++++++++--- scripts/gameboard.min.js | 1 + scripts/options.js | 10 +++- 13 files changed, 199 insertions(+), 16 deletions(-) create mode 100644 assets/textures/iron_crate.png create mode 100644 assets/textures/iron_crate_event.png create mode 100644 assets/textures/portal.png create mode 100644 assets/textures/slime-placeholder.png create mode 100644 assets/textures/slime_crate.png create mode 100644 assets/textures/space.png create mode 100644 assets/textures/template.png create mode 100644 scripts/fittext.js create mode 100644 scripts/gameboard.min.js diff --git a/assets/textures/iron_crate.png b/assets/textures/iron_crate.png new file mode 100644 index 0000000000000000000000000000000000000000..9091a5ed28d83705227554d3e766a332f0537573 GIT binary patch literal 18819 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 literal 0 HcmV?d00001 diff --git a/assets/textures/portal.png b/assets/textures/portal.png new file mode 100644 index 0000000000000000000000000000000000000000..986576d98e77eea7ceabf336f83a684941bf438f GIT binary patch literal 5330 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 literal 0 HcmV?d00001 diff --git a/assets/textures/space.png b/assets/textures/space.png new file mode 100644 index 0000000000000000000000000000000000000000..ea384602b79e94edc10185d8fe86c34f2b858773 GIT binary patch literal 3507 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 literal 0 HcmV?d00001 diff --git a/assets/textures/template.png b/assets/textures/template.png new file mode 100644 index 0000000000000000000000000000000000000000..b21b60fdc00320380ad2385acfbb99cd6166df37 GIT binary patch literal 1502 zcmV<41tI#0P)EX>4Tx04UF$kj+ZNKoo_)wxS|R5ygeL$ii(w5W8~Y4+a;7+D0(CN|P3gnHZ9k z;v4i$^kKRX1fResP;l*;=)z4FI&e83mwV5d8K^sPX!3@S&W8xD4na4FwF|69g5r2BDJhy^Umv?h-YFaGD#$U z67NPPvTS#ICZ2>pp7u7Y!{oAW`>GvW&gsy_VZekjF$FDYqRuI84x}y_0T1Ma(wL!o zQ_U3IigG!*9E&`WZc~xBUFLO_GLXkuUN+$#BTt)${on7kkBf4%wlzy7XQ3RX~d0C6|G00009a7bBm000tn000tn0p4aG zcmMzZ0%A)?L;(MXkIcUS000McNlirueSad^gZEa<4bO1wg zWnpw>WFU8GbZ8()Nlj2!fese{00bIIL_t(oN5z;+FLXf=hHDu2`<;l5jhzHLe}hEC z!iunz2){uhHg>G+`3Ke#8+)0xxL@Obo6qx7?U-*6p~Fe!iWbpIcE;kv%>>S|X89o8#f(L6S@+!#nCx(4J1GB|Zko z%ga-L>N7JlY7>#^>1j1AEiGwagwDwB?yfpA5EIqb)~ZbV&CQM7-`}fVUth1m`3CU3 zySuZ3f`UMlMLD^`!a^Gu7%-n(L>3npt-QS41_uXic6L@oc6N63K}}7K2Ck~A3L5dj zPEJl#hsfF4nYFdGsg1r)5JL0?JQ;)W$H&KQd3jl5_4W0=YNWHXQy&ix59_0!#>&cy z=0k>thAc@VD!;zI4lC^M@3*U~E0s%1N`eMTOG{ODTwY%4N&8oT3v6$1TSZ01OUsif z`N5V9ik(4OS((ZRWhUb3Brqe=*w|?8?d{gw-25d0?nAy{5pmny-rlMa_+;56`aV}+ z68y@?5Rr?E3z5M*;PCL!_V)Jv6SlKIapqhFxDz9)>-Pz4Gq?F~fE|SuJoaeUuv2<_ zd*!U`psud257kaQ$Q3MhZEelw=H{%ry4p@pPixED;}Qr&fWIIhF;J#t68lI9ZcIuf=G)53N@)@;WJB-~wq|j0 zvC62+cSTgb3Km8vN7IbW0?~>C1$amh5j;40V6iLW1d~CAcoa1Uz(gPr!AHDPF0218 zf@z{ag>h@e;p4JsG=&m?e*M^Y^LSwUN#Hy9q9d5b^9F!p{kD06Mw|p7;mH=7di6yJ6t41=$A&VtOM@OGE;+d2Kvt&lfIK(5Z z13!5aM=%X!qR194zbhnJ??FUR4?89^*u)LUyoW#p)1WGV?V^$Prx5i+5eY#h;wOG0 z#|b}NvmwmPIp9%`$hx()rQCremu>eMm;^zadMKYejrk|feX zwj2{=#)GH;Ch$pce#Ue0gN<=hsg%k9a;~L7gwEs)fHa?NMMnmwOt$SAcP1c1o{O+* zZh@I(H#RnGeSJM_S2Puc0@~Enl=bxVsDW!B&I^H$Z2Da+EG#HDf%wSC$nymYc1+BT zYkq!S9jS9D@kF@SaQ(!g@pji1AseBNX;}p3zzk$#^hbDy*3lYaf@sQZ&moQQPXKpb zSRNc4=tDX)nA;apegUHo4v0X82_ZmVpBNM1XIxbPi*RBM4GnsSCLj~;zI3DkHQ}HR zK865 Blocks demo - + @@ -39,7 +39,9 @@ - +
+ +
@@ -80,6 +82,15 @@ Turn on card numbers
+
+
+ off + +
+
+ Turn on no fail +
+
@@ -91,6 +102,7 @@
+
@@ -101,9 +113,16 @@ + + + + + \ No newline at end of file diff --git a/scripts/fittext.js b/scripts/fittext.js new file mode 100644 index 0000000..143f6ab --- /dev/null +++ b/scripts/fittext.js @@ -0,0 +1,43 @@ +/*global jQuery */ +/*! +* FitText.js 1.2 +* +* Copyright 2011, Dave Rupert http://daverupert.com +* Released under the WTFPL license +* http://sam.zoy.org/wtfpl/ +* +* Date: Thu May 05 14:23:00 2011 -0600 +*/ + +(function( $ ){ + + $.fn.fitText = function( kompressor, options ) { + + // Setup options + var compressor = kompressor || 1, + settings = $.extend({ + 'minFontSize' : Number.NEGATIVE_INFINITY, + 'maxFontSize' : Number.POSITIVE_INFINITY + }, options); + + return this.each(function(){ + + // Store the object + var $this = $(this); + + // Resizer() resizes items based on the object width divided by the compressor * 10 + var resizer = function () { + $this.css('font-size', Math.max(Math.min($this.width() / (compressor*10), parseFloat(settings.maxFontSize)), parseFloat(settings.minFontSize))); + }; + + // Call once to set. + resizer(); + + // Call on resize. Opera debounces their resize by default. + $(window).on('resize.fittext orientationchange.fittext', resizer); + + }); + + }; + +})( jQuery ); \ No newline at end of file diff --git a/scripts/gameboard.js b/scripts/gameboard.js index 21c40f2..24b1c43 100644 --- a/scripts/gameboard.js +++ b/scripts/gameboard.js @@ -7,6 +7,7 @@ var level = newPlayground * newPlayground; var difficulty = 1; var showcontent = false; // show numbers inside the cards var allow_spin = true; +var nofail = false; // Game settings end var allow_click = 0; var play_array = []; @@ -18,6 +19,11 @@ var randoms = 0; var room_level; var no_fail_round = 0; var round_values = 0; +var translation = 1; // Spinning speed +// level transformations +var break_point_level_space = 10; +var break_point_level_slime = 20; +var blackhole_size = 10; function initiate() { // Call all the functions setInterval(setTime, 1000); @@ -40,9 +46,10 @@ function nextRound() { console.log(level); make_playground(); randomized(); + viewspeed_round_counter(); animation(); - console.log(difficulty); + level_skins(); } function prep() { // handles everythiing before the game starts @@ -53,10 +60,18 @@ function round_value() { round_values++; document.getElementById("round").innerHTML = round_values; } - +function viewspeed_round_counter(){ + if(viewspeed > 10){ + viewspeed = viewspeed - 20; + } +} function animation() { //Animations, shows what cards you click on. Works like a loop. SetTimout cant be used in normal loop setTimeout(function () { - $("#" + play_array[anim]).addClass('animations') + if(round_values > break_point_level_space){ + $("#" + play_array[anim]).addClass('space') + } else { + $("#" + play_array[anim]).addClass('animations') + } anim++; if (play_array.length > anim) { animation(); @@ -71,6 +86,7 @@ function animation() { //Animations, shows what cards you click on. Works like a function basic_timeout() { // small timeout before you can click and the shown cards disapear. setTimeout(function () { $(".card").removeClass('animations'); + $(".card").removeClass('space'); }, timeout) } @@ -98,18 +114,17 @@ function clear_values() { // Resets the values for next round. console.log("level=" + level + "\n difficulty=" + difficulty + "\n array=" + play_array + "\n clicked_id=" + clicked_id + "\n NewPLaygroud=" + newPlayground*newPlayground); // Console info calc_difficulty(); newPlayground = newPlayground + 0.1; + } function spin_round(){ if(allow_spin === true){ if(round_values >= 7 && 9>= round_values || round_values >= 12 && round_values % 3){ document.getElementById("wrapper").style.transform = 'rotate(180deg)'; - document.getElementById("wrapper").style.height = 'unset'; let x = document.getElementsByClassName("card"); let i; for (i = 0; i < x.length; i++) { - x[i].style.transform = 'rotate(180deg)'; - + x[i].style.transform = 'rotate(180deg)'; } }else{ document.getElementById("wrapper").style.transform = 'rotate(0deg)'; @@ -119,6 +134,18 @@ function spin_round(){ // x[i].style.transform = 'rotate(0deg)'; // } } + if(round_values >= 15 && 29 >= round_values){ + if(tranlsation != 0.3){ + translation = translation - 0.1; + } + document.getElementById("wrapper").style.transform = 'scale(-1)'; + document.getElementById("wrapper").style.transition = translation + 's'; + let x = document.getElementsByClassName("card"); + let i; + for (i = 0; i < x.length; i++) { + x[i].style.transform = 'rotate(180deg)'; + } + } } } function calc_difficulty() { @@ -129,6 +156,31 @@ function calc_difficulty() { difficulty = (20 / 100) * level % 3 + difficulty; //calc the difficulty to scale with the level difficulty = Math.round(difficulty) // Makes the difficulty value a integer } +function level_skins(){ + + if(round_values > break_point_level_space){ + blackhole_size = blackhole_size + 10; + document.getElementsByClassName("cos-portal")[0].style.display = "flex"; + document.getElementById("blackhole").style.width = blackhole_size + "%"; + let i; + let x = document.getElementsByClassName("card"); + for (i = 0; i < x.length; i++) { + document.getElementsByClassName("card")[i].style.backgroundImage = "url(assets/textures/iron_crate.png)"; + + } + document.getElementById("particles-js").style.backgroundImage = "url(assets/textures/space.png)"; + } + if(round_values > break_point_level_slime){ + let i; + document.getElementsByClassName("cos-portal")[0].style.display = "none"; + let x = document.getElementsByClassName("card"); + for (i = 0; i < x.length; i++) { + document.getElementsByClassName("card")[i].style.backgroundImage = "url(assets/textures/slime_crate.png)"; + + } + document.getElementById("particles-js").style.backgroundImage = "url(assets/textures/slime-placeholder.png)"; + } +} function make_playground() { //Loop out cards on the playground @@ -146,8 +198,14 @@ function make_playground() { div.setAttribute('id', card_ids); div.setAttribute('onClick', 'reply_click(this.id)'); // add an onClick event to the div that sends the id of it to the funcition reply_click() document.getElementById('card-row' + y).appendChild(div); + /*Content*/ if (showcontent == true) { - document.getElementById(card_ids).classList.add("printid"); + let content = document.createElement('div'); + content.appendChild(document.createTextNode(card_ids)); + content.setAttribute('class', 'card-numbers'); + document.getElementById(card_ids).appendChild(content); + + // document.getElementById(card_ids).classList.add("printid"); } } } @@ -209,7 +267,7 @@ function reply_click(clicked_id) { // Grabs the value from the id on the div/car list.removeChild(list.childNodes[0]); no_fail_round = 1; console.log("Liv: " + health); - if (health == 0) { + if (health == 0 && nofail === false) { allow_click = 0; document.getElementById("start-the-game-loose").style.display = "flex"; // alert("Game over!"); diff --git a/scripts/gameboard.min.js b/scripts/gameboard.min.js new file mode 100644 index 0000000..e35de3e --- /dev/null +++ b/scripts/gameboard.min.js @@ -0,0 +1 @@ +var room_level,viewspeed=500,timeout=500,health=5,newPlayground=3,level=newPlayground*newPlayground,difficulty=1,showcontent=!1,allow_spin=!0,allow_click=0,play_array=[],anim=0,y=1,correct_answers=0,avoid_repeat=[],randoms=0,no_fail_round=0,round_values=0;function initiate(){setInterval(setTime,1e3),round_value(),lifes(),prep(),calc_difficulty(),console.log(level),make_playground(),randomized(),animation(),console.log(difficulty)}function nextRound(){round_value(),clear_playground(),clear_values(),calc_difficulty(),console.log(level),make_playground(),randomized(),animation(),console.log(difficulty)}function prep(){document.getElementById("start-the-game").style.visibility="hidden"}function round_value(){round_values++,document.getElementById("round").innerHTML=round_values}function animation(){setTimeout(function(){$("#"+play_array[anim]).addClass("animations"),anim++,play_array.length>anim?animation():(basic_timeout(),allow_click=1,spin_round())},viewspeed)}function basic_timeout(){setTimeout(function(){$(".card").removeClass("animations")},timeout)}function lifes(){for(let e=0;e'}function clear_values(){no_fail_round=0,difficulty=1,level=Math.ceil(newPlayground*newPlayground),play_array=[],randoms=0,i=0,card_ids=0,y=0,anim=0,clicked_id=0,allow_click=0,avoid_repeat=[],correct_answers=0,console.log("level="+level+"\n difficulty="+difficulty+"\n array="+play_array+"\n clicked_id="+clicked_id+"\n NewPLaygroud="+newPlayground*newPlayground),calc_difficulty(),newPlayground+=.1}function spin_round(){if(!0===allow_spin)if(round_values>=7&&9>=round_values||round_values>=12&&round_values%3){document.getElementById("wrapper").style.transform="rotate(180deg)",document.getElementById("wrapper").style.height="unset";let e,t=document.getElementsByClassName("card");for(e=0;e