From 8e0b5e0fb238e12e03e7c47b72da2954f6607a93 Mon Sep 17 00:00:00 2001 From: Bastien Bonnefoy Date: Tue, 16 Jul 2019 15:58:50 +0200 Subject: [PATCH 1/4] Add support for Super Mario Maker 2 --- README.md | 2 +- index.html | 7 +++ scripts.js | 136 +++++++++++++++++++++++++++++++++++++++-------------- style.css | 16 +++++++ 4 files changed, 126 insertions(+), 35 deletions(-) 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..62368c1 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", "Lava Bubbles", "Bob-ombs", "Dry Bones", "Fish Bones", "Magikoopas", "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,12 @@ function toggleType() { } function generate() { + if (game == "SMM2") { + allStyles = style.concat(smm2OnlyStyles); + allEnvironments = environents.concat(smm2OnlyEnvironments); + } 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 { @@ -94,38 +116,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() { var output = ""; - output = output.concat(environents[getRandom(0, environents.length - 1)]); + if (game === "SMM2") { + 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 +186,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..8079110 100644 --- a/style.css +++ b/style.css @@ -37,6 +37,19 @@ div.buttonContainer { text-align: center; } +div.selectContainer { + text-align: center; + background-color: #FFFFFF; + border: 1px solid #CCCCCC; + border-radius: 10px; + margin: 30px 5%; + display: block; +} + +select { + font: 30px "Arial"; + font-weight: bold; +} .checkbox-custom { opacity: 0; position: absolute; @@ -140,6 +153,9 @@ p { margin-top: 50px; color: #555555; } + p.gameSelection { + font-size: 30px; + } h1 { font: 50px "Arial"; From 2e3226cee3c239c3c441228d7fa6c2d6ea52be66 Mon Sep 17 00:00:00 2001 From: Bastien Bonnefoy Date: Tue, 16 Jul 2019 16:15:58 +0200 Subject: [PATCH 2/4] Change design for the game selectbox --- style.css | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/style.css b/style.css index 8079110..6db0ca3 100644 --- a/style.css +++ b/style.css @@ -39,17 +39,20 @@ div.buttonContainer { div.selectContainer { text-align: center; - background-color: #FFFFFF; - border: 1px solid #CCCCCC; - border-radius: 10px; - margin: 30px 5%; 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; From c05529df370cc4b1f3931c1a42ea736135c21ee1 Mon Sep 17 00:00:00 2001 From: Bastien Bonnefoy Date: Tue, 16 Jul 2019 16:29:41 +0200 Subject: [PATCH 3/4] Remove day/night choice for Super Mario 3d World levels --- scripts.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts.js b/scripts.js index 62368c1..3b339e2 100644 --- a/scripts.js +++ b/scripts.js @@ -72,7 +72,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"; } @@ -121,9 +121,9 @@ function getStyle(styleId) { return output; } -function getEnvironment() { +function getEnvironment(styleId) { var output = ""; - if (game === "SMM2") { + if ((game === "SMM2") && (styleId !== 4)){ if (getRandom(1, 2) === 1) { output = output.concat("Day "); } else { From 99c306879e6df9a9b6cb8ea07ad674a7f176c90d Mon Sep 17 00:00:00 2001 From: Bastien Bonnefoy Date: Tue, 16 Jul 2019 16:41:11 +0200 Subject: [PATCH 4/4] Fix a bug where environments from SMM2 could appear in SMM1 selection --- scripts.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts.js b/scripts.js index 3b339e2..8ddebc3 100644 --- a/scripts.js +++ b/scripts.js @@ -25,7 +25,7 @@ var smm2OnlyObjects = ["10-Coins", "30-Coins", "50-Coins", "Dry Bones Shells", " 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", "Lava Bubbles", "Bob-ombs", "Dry Bones", "Fish Bones", "Magikoopas", "Meowser", "Boom Booms", "Pom Poms", "Charvaarghs", "Bullys", "Porcupffers", "Koopa Car", "Bill Blasters", "Banzai Bills", "Icicle", "Twisters", +"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"]; @@ -58,9 +58,12 @@ function toggleType() { } function generate() { - if (game == "SMM2") { + 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, allStyles.length - 1);