diff --git a/README.md b/README.md index ca7cd7d..c1da472 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ # Super Mario Maker Idea Generator -This webapp generates level creation ideas for Super Mario Maker. +This webapp generates level creation ideas for Super Mario Maker or Super Mario Maker 2. To use it go to [zeknir.github.io/SMM-IdeaGenerator](http://zeknir.github.io/SMM-IdeaGenerator) \ No newline at end of file diff --git a/index.html b/index.html index f476497..397ee3e 100644 --- a/index.html +++ b/index.html @@ -11,6 +11,13 @@

Super Mario Maker Idea Generator

+

What game are you playing ?

+
+ +

How about:

diff --git a/scripts.js b/scripts.js index 89663e2..8ddebc3 100644 --- a/scripts.js +++ b/scripts.js @@ -1,7 +1,7 @@ var style = ["Super Mario Bros", "Super Mario Bros 3", "Super Mario World", "New Super Mario Bros U"]; var environents = ["Overworld", "Underground", "Water", "Ghost House", "Airship", "Castle"]; -var objects = ["Blocks", "Mushrooms", "Coins", "Springboards", "Goombas", "Koopas", "Piranha Plants", "Lakitus", "Clouds", "Spinys", "Moving platforms", +var objects = ["Blocks", "P Switches", "Mushrooms", "Coins", "Springboards", "Goombas", "Koopas", "Piranha Plants", "Lakitus", "Clouds", "Spinys", "Moving platforms", "Fireflowers", "Stars", "Bullet Bills", "Bill Blasters", "Bloopers", "Cheep-cheep", "Hammer Bros", "Buzzy Beetles", "Thwomps", "Podoboos", "Bowser", "Bowser Jr.", "Noteblocks", "Musicblocks", "Skull platforms", "Firebars", "Rocky Wrenches", "Monty Moles", "Bob-ombs", "Donut Blocks", "POW-Blocks", "Firethrowers", "Cannons", "Spike Tops", "Boos", "Dry Bones", "Kameks", "Hidden blocks", "Munchers", "Wigglers", "Clowncars", "Chain Chomps", "Spiny helmet", "Beetle helmet"]; @@ -9,7 +9,7 @@ var nsmbuOnlyObjects = ["Propeller Mushrooms"]; var smwOnlyObjects = ["Feathers"]; var smb3OnlyObjects = ["Tanookis"]; var smbOnlyObjects = []; - +var game = "SMM1"; var mechanics = ["Pipes", "Platforms", "Vines", "Doors", "Spikes", "Rails", "Conveyor belts", "Sawblades", "Ice blocks", "Oneway blocks"]; var nsmbuOnlyMechanics = ["Wall-jumping", "Ground-pounding", "Spin-jumping", "Yoshis"]; @@ -19,6 +19,18 @@ var smbOnlyMechanics = ["Costumes", "Kuribo's Shoe"]; var additionalMechanics = ["Scrolling", "Fast scrolling", "Slow scrolling", "Short time", "Sound effects", "Mazes", "Puzzles"]; +var smm2OnlyStyles = ["Super Mario 3D World"]; +var smm2OnlyEnvironments = ["Desert", "Snow", "Forest", "Sky"] +var smm2OnlyObjects = ["10-Coins", "30-Coins", "50-Coins", "Dry Bones Shells", "Boom Booms", "Banzai Bills", "Icicles", "Twisters", "Angry Sun"] +var smm2OnlyMechanics = ["ON-OFF Switches", "Snake Blocks", "Fast Snake Blocks"] +var sm3wObjects = ["Blocks", "Bullet Bills", "Fireflowers", "Stars", "Super Bells", "Super Hammer", "Mushrooms", "Coins", "Springboards", "Goombas", "Koopas", "Ant Troopers", "Horned Ant Troopers", "Spinys", "Bloopers", "Cheep Cheeps", +"Skipsqueaks", "Spiny Skipsqueak", "Stingby", "Piranha Plants", "Fire Piranha Plants", "Piranha Creepers", "Thwomps", "Hammer Bros", "Fire Bros", "Hop Chops", "Boos", +"Peepas", "Podoboos", "Bob-ombs", "Dry Bones", "Fish Bones", "Kameks", "Meowser", "Boom Booms", "Pom Poms", "Charvaarghs", "Bullys", "Porcupffers", "Koopa Car", "Bill Blasters", "Banzai Bills", "Icicle", "Twisters", +"POW-Blocks", "P Switches", "Cloud Lifts", "! Blocks"]; +var sm3wMechanics = ["ON-OFF Switches", "Snake Blocks", "Fast Snake Blocks", "Pipes", "Clear Pipes", "Spike Blocks", "Doors", "Trees", "Conveyors Belts", "Track Blocks", "Blinking Blocks", "Mushroom Trampolines", "Warp Boxes"]; +var smm2smbOnlyObjects = ["Superball Flowers"]; +var allStyles = style; +var allEnvironments = environents; function toggleStyle() { var styleElement = document.getElementById("ideaStyle").parentElement; var input = document.getElementById("checkboxStyle"); @@ -29,6 +41,12 @@ function toggleStyle() { } } +function toggleGame() { + var input=document.getElementById("gameSelector"); + game = input.options[input.selectedIndex].value; + generate(); +} + function toggleType() { var typeElement = document.getElementById("ideaType").parentElement; var input = document.getElementById("checkboxType"); @@ -40,8 +58,15 @@ function toggleType() { } function generate() { + if (game === "SMM2") { + allStyles = style.concat(smm2OnlyStyles); + allEnvironments = environents.concat(smm2OnlyEnvironments); + } else { + allStyles = style; + allEnvironments = environents; + } var outputStyleElement = document.getElementById("ideaStyle"); - var styleId = getRandom(0, style.length - 1); + var styleId = getRandom(0, allStyles.length - 1); if (document.getElementById("checkboxStyle").checked === true) { outputStyleElement.innerHTML = getStyle(styleId); } else { @@ -50,7 +75,7 @@ function generate() { var outputTypeElement = document.getElementById("ideaType"); if (document.getElementById("checkboxType").checked === true) { - outputTypeElement.innerHTML = getEnvironment(); + outputTypeElement.innerHTML = getEnvironment(styleId); } else { outputTypeElement.parentElement.className = "ideaDis"; } @@ -94,38 +119,63 @@ function generate() { function getStyle(styleId) { var output = ""; - output = output.concat(style[styleId]); + output = output.concat(allStyles[styleId]); output = output.concat(" style"); return output; } -function getEnvironment() { +function getEnvironment(styleId) { var output = ""; - output = output.concat(environents[getRandom(0, environents.length - 1)]); + if ((game === "SMM2") && (styleId !== 4)){ + if (getRandom(1, 2) === 1) { + output = output.concat("Day "); + } else { + output = output.concat("Night "); + } + } + output = output.concat(allEnvironments[getRandom(0, allEnvironments.length - 1)]); output = output.concat(" level"); return output; } function getObject(styleId) { var output = ""; - - if (styleId === 0) { - allObjects = objects.concat(smbOnlyObjects); - } - else if (styleId === 1) { - allObjects = objects.concat(smb3OnlyObjects); - } - else if (styleId === 2) { - allObjects = objects.concat(smwOnlyObjects); - } - else if (styleId === 3) { - allObjects = objects.concat(nsmbuOnlyObjects); + var allObjects; + if (game === "SMM2") { + allObjects = objects.concat(smm2OnlyObjects); + if (styleId === 0) { + allObjects = objects.concat(smbOnlyObjects).concat(smm2smbOnlyObjects); + } + else if (styleId === 1) { + allObjects = objects.concat(smb3OnlyObjects); + } + else if (styleId === 2) { + allObjects = objects.concat(smwOnlyObjects); + } + else if (styleId === 3) { + allObjects = objects.concat(nsmbuOnlyObjects); + } + else if (styleId === 4) { + allObjects = sm3wObjects; + } + } else { + if (styleId === 0) { + allObjects = objects.concat(smbOnlyObjects); + } + else if (styleId === 1) { + allObjects = objects.concat(smb3OnlyObjects); + } + else if (styleId === 2) { + allObjects = objects.concat(smwOnlyObjects); + } + else if (styleId === 3) { + allObjects = objects.concat(nsmbuOnlyObjects); + } } - output = output.concat(allObjects[getRandom(0, allObjects.length - 1)]); if (getRandom(1, 2) === 1) { - if (getRandom(1, 3) === 1) { + if ((styleId !== 4) && (getRandom(1, 3) === 1)) { output = output.concat(" on rails "); } else { output = " flying ".concat(output); @@ -139,22 +189,43 @@ function getMechanic(styleId) { var output = ""; var allMechanics; - if (styleId === 0) { - allMechanics = mechanics.concat(smbOnlyMechanics); - } - else if (styleId === 1) { - allMechanics = mechanics.concat(smb3OnlyMechanics); - } - else if (styleId === 2) { - allMechanics = mechanics.concat(smwOnlyMechanics); - } - else if (styleId === 3) { - allMechanics = mechanics.concat(nsmbuOnlyMechanics); - } - else { - allMechanics = mechanics; + if (game === "SMM2") { + allMechanics = mechanics.concat(smm2OnlyMechanics); + if (styleId === 0) { + allMechanics = mechanics.concat(smbOnlyMechanics); + } + else if (styleId === 1) { + allMechanics = mechanics.concat(smb3OnlyMechanics); + } + else if (styleId === 2) { + allMechanics = mechanics.concat(smwOnlyMechanics); + } + else if (styleId === 3) { + allMechanics = mechanics.concat(nsmbuOnlyMechanics); + } + else if (styleId === 4) { + allMechanics = sm3wMechanics; + } + else { + allMechanics = mechanics; + } + } else { + if (styleId === 0) { + allMechanics = mechanics.concat(smbOnlyMechanics); + } + else if (styleId === 1) { + allMechanics = mechanics.concat(smb3OnlyMechanics); + } + else if (styleId === 2) { + allMechanics = mechanics.concat(smwOnlyMechanics); + } + else if (styleId === 3) { + allMechanics = mechanics.concat(nsmbuOnlyMechanics); + } + else { + allMechanics = mechanics; + } } - output = allMechanics[getRandom(0, allMechanics.length - 1)]; return output; } diff --git a/style.css b/style.css index 1de720e..6db0ca3 100644 --- a/style.css +++ b/style.css @@ -37,6 +37,22 @@ div.buttonContainer { text-align: center; } +div.selectContainer { + text-align: center; + display: block; +} + +select { + font: 30px "Arial"; + font-weight: bold; + text-align: center; + border-radius: 10px; + background-color: #ff9233; + border: #777 1px solid; + box-shadow: 1px 1px 3px 1px #000000; + +} + .checkbox-custom { opacity: 0; position: absolute; @@ -140,6 +156,9 @@ p { margin-top: 50px; color: #555555; } + p.gameSelection { + font-size: 30px; + } h1 { font: 50px "Arial";