Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <html>
- <head>
- <title>FE3H Meal Planner</title>
- </head>
- <body>
- <h1>Fire Emblem Three Houses Meal Planner</h1>
- <div>Choose one character to see a list of all meals they like. Choose two characters to see which meals BOTH of them like.</div>
- <br />
- <label for="fc"> First character: </label><select id="fc"><option></option></select><br />
- <label for="sc"> Second character: </label><select id="sc"><option></option></select><br />
- <br />
- <h3>Liked meals:</h3>
- <ul id="results"></ul>
- <span>Total: <span id="total">-</span></span>
- <script type="text/javascript">
- var map={};
- var characters = ["Edelgard", "Hubert", "Dorothea", "Ferdinand", "Bernadetta", "Caspar", "Petra", "Linhardt",
- "Dimitri", "Dedue", "Felix", "Mercedes", "Ashe", "Annette", "Sylvain", "Ingrid",
- "Claude", "Lorenz", "Hilda", "Raphael", "Lysithea", "Ignatz", "Marianne", "Leonie",
- "Manuela", "Hanneman", "Seteth", "Flayn", "Cyril", "Catherine", "Shamir", "Alois", "Gilbert",
- "Jeritza", "Anna", "Yuri", "Balthus", "Constance", "Hapi"];
- function addToMap(meal, charactersWhoLikeMeal) {
- var splitCharacters = charactersWhoLikeMeal.split(",");
- for (var i = 0; i < splitCharacters.length; i++) {
- var character = splitCharacters[i].trim();
- if (!map[character]) { map[character] = []; }
- map[character].push(meal);
- }
- }
- var firstList = document.getElementById("fc");
- var secondList = document.getElementById("sc");
- var resultsList = document.getElementById("results");
- var totalDisplay = document.getElementById("total");
- function showResults() {
- // Clear list of meals
- while(resultsList.firstChild) {
- resultsList.removeChild(resultsList.firstChild);
- }
- totalDisplay.innerText = "-";
- // Populate list of meals
- var firstChoice = firstList.value;
- var secondChoice = secondList.value;
- if (firstChoice || secondChoice) {
- if (!firstChoice) {
- firstChoice = secondChoice;
- }
- else if (!secondChoice) {
- secondChoice = firstChoice;
- }
- var count = 0;
- var firstChoiceMeals = map[firstChoice];
- var secondChoiceMeals = map[secondChoice];
- if (!firstChoiceMeals || !secondChoiceMeals) { return; }
- for(var k = 0; k < firstChoiceMeals.length; k++) {
- var mealName = firstChoiceMeals[k];
- if (secondChoiceMeals.indexOf(mealName) > -1) {
- count++;
- var li = document.createElement("li");
- var liText = document.createTextNode(mealName);
- li.appendChild(liText);
- resultsList.appendChild(li);
- }
- }
- totalDisplay.innerText = count;
- }
- }
- firstList.addEventListener("click", showResults);
- secondList.addEventListener("click", showResults);
- addToMap("Sagbert and Cream", "Edelgard, Dimitri, Ferdinand, Linhardt, Bernadetta, Dorothea, Ashe, Mercedes, Annette, Lorenz, Ignatz, Lysithea, Marianne, Hilda, Flayn, Alois, Jeritza, Yuri, Constance");
- addToMap("Sweet Bun Trio", "Edelgard, Dimitri, Ferdinand, Linhardt, Caspar, Bernadetta, Ashe, Sylvain, Mercedes, Annette, Ingrid, Ignatz, Lysithea, Marianne, Hilda, Flayn, Alois, Jeritza, Yuri, Constance");
- addToMap("Pheasant Roast with Berry Sauce", "Claude, Ferdinand, Linhardt, Ashe, Sylvain, Mercedes, Annette, Ingrid, Raphael, Lysithea, Flayn, Alois, Shamir, Cyril, Jeritza, Anna, Yuri, Constance, Hapi");
- addToMap("Peach Sorbet", "Edelgard, Linhardt, Bernadetta, Dorothea, Ashe, Mercedes, Annette, Lysithea, Marianne, Hilda, Flayn, Hanneman, Alois, Shamir, Jeritza, Anna, Yuri, Constance");
- addToMap("Beast Meat Teppanyaki", "Claude, Caspar, Petra, Felix, Ingrid, Raphael, Leonie, Manuela, Gilbert, Catherine, Shamir, Cyril, Anna, Balthus, Hapi");
- addToMap("Pickled Rabbit Skewers", "Claude, Caspar, Petra, Felix, Ingrid, Raphael, Lysithea, Manuela, Gilbert, Catherine, Shamir, Cyril, Anna, Yuri, Balthus, Hapi");
- addToMap("Daphnel Stew", "Claude, Ferdinand, Linhardt, Caspar, Petra, Dedue, Felix, Ingrid, Lorenz, Raphael, Leonie, Seteth, Manuela, Shamir, Cyril, Yuri, Balthus, Hapi");
- addToMap("Gronder Meat Skewers", "Claude, Caspar, Petra, Felix, Ingrid, Raphael, Leonie, Manuela, Gilbert, Catherine, Shamir, Cyril, Jeritza, Balthus, Hapi");
- addToMap("Derdriu-Style Fried Pheasant", "Claude, Caspar, Bernadetta, Felix, Ingrid, Raphael, Lysithea, Hilda, Leonie, Seteth, Hanneman, Manuela, Gilbert, Catherine, Cyril, Anna, Balthus, Hapi");
- addToMap("Vegetable Pasta Salad", "Edelgard, Ferdinand, Caspar, Bernadetta, Dorothea, Ashe, Mercedes, Annette, Ingrid, Ignatz, Marianne, Seteth, Hanneman, Gilbert, Shamir, Cyril, Anna, Constance");
- addToMap("Onion Gratin Soup", "Edelgard, Dimitri, Claude, Ferdinand, Linhardt, Dorothea, Dedue, Mercedes, Annette, Lorenz, Marianne, Leonie, Flayn, Alois, Catherine, Jeritza, Yuri, Hapi");
- addToMap("Country-Style Red Turnip Plate", "Claude, Caspar, Bernadetta, Dorothea, Petra, Raphael, Hilda, Flayn, Gilbert, Catherine, Shamir, Yuri, Hapi");
- addToMap("Vegetable Stir-Fry", "Edelgard, Claude, Ferdinand, Caspar, Bernadetta, Dorothea, Petra, Dedue, Annette, Ignatz, Marianne, Leonie, Manuela, Gilbert, Shamir, Cyril, Yuri, Hapi");
- addToMap("Grilled Herring", "Ferdinand, Petra, Dedue, Mercedes, Annette, Ingrid, Leonie, Seteth, Flayn, Gilbert, Alois, Catherine, Jeritza, Yuri");
- addToMap("Fish and Bean Soup", "Edelgard, Linhardt, Dedue, Ashe, Sylvain, Mercedes, Annette, Lorenz, Raphael, Ignatz, Marianne, Hilda, Leonie, Flayn, Manuela, Alois, Cyril, Jeritza, Yuri, Hapi");
- addToMap("Fruit and Herring Tart", "Ferdinand, Bernadetta, Dedue, Sylvain, Mercedes, Annette, Ingrid, Lorenz, Ignatz, Marianne, Leonie, Seteth, Flayn, Alois, Catherine, Constance");
- addToMap("Fisherman's Bounty", "Ferdinand, Petra, Dedue, Ingrid, Raphael, Ignatz, Marianne, Hilda, Leonie, Flayn, Manuela, Gilbert, Alois, Catherine, Jeritza, Yuri, Balthus, Hapi");
- addToMap("Fish Sandwich", "Edelgard, Ferdinand, Petra, Dedue, Ashe, Sylvain, Ingrid, Raphael, Leonie, Seteth, Flayn, Manuela, Gilbert, Alois, Catherine, Yuri, Hapi");
- addToMap("Two-Fish Saute", "Hubert, Bernadetta, Dedue, Felix, Sylvain, Mercedes, Annette, Lorenz, Ignatz, Lysithea, Marianne, Hilda, Leonie, Flayn, Hanneman, Manuela, Alois, Catherine, Cyril, Jeritza, Yuri, Constance");
- addToMap("Bourgeois Pike", "Claude, Ferdinand, Bernadetta, Dedue, Lorenz, Ignatz, Marianne, Leonie, Seteth, Flayn, Hanneman, Manuela, Alois, Catherine, Anna, Constance");
- addToMap("Sauteed Jerky", "Dimitri, Claude, Hubert, Caspar, Petra, Dedue, Felix, Raphael, Manuela, Shamir, Cyril, Anna, Yuri, Balthus, Hapi");
- addToMap("Spicy Fish and Turnip Stew", "Hubert, Petra, Dedue, Felix, Ashe, Sylvain, Annette, Ingrid, Leonie, Seteth, Manuela, Gilbert, Anna, Balthus, Hapi");
- addToMap("Sweet and Salty Whitefish Saute", "Hubert, Dedue, Felix, Ashe, Sylvain, Annette, Ingrid, Leonie, Seteth, Manuela, Gilbert, Anna, Balthus, Hapi");
- addToMap("Super-Spicy Fish Dango", "Hubert, Petra, Dedue, Felix, Sylvain, Ingrid, Ignatz, Marianne, Leonie, Seteth, Hanneman, Manuela, Gilbert, Catherine, Shamir, Balthus, Hapi");
- addToMap("Sauteed Pheasant and Eggs", "Edelgard, Claude, Hubert, Ferdinand, Caspar, Felix, Sylvain, Raphael, Ignatz, Marianne, Seteth, Manuela, Gilbert, Shamir, Cyril, Anna, Constance, Hapi");
- addToMap("Garreg Mach Meat Pie", "Claude, Hubert, Linhardt, Caspar, Dorothea, Felix, Sylvain, Lorenz, Raphael, Ignatz, Hanneman, Manuela, Gilbert, Catherine, Balthus");
- addToMap("Cheesy Verona Stew", "Dimitri, Claude, Hubert, Bernadetta, Petra, Sylvain, Raphael, Marianne, Hilda, Leonie, Seteth, Flayn, Hanneman, Gilbert, Catherine, Balthus");
- addToMap("Pickled Seafood and Vegetables", "Hubert, Petra, Dedue, Annette, Raphael, Leonie, Seteth, Flayn, Hanneman, Gilbert, Alois, Catherine, Anna, Hapi");
- addToMap("Gautier Cheese Gratin", "Dimitri, Claude, Hubert, Linhardt, Dorothea, Felix, Raphael, Hilda, Hanneman, Catherine, Balthus");
- addToMap("Cabbage and Herring Stew", "Claude, Hubert, Lorenz, Ignatz, Marianne, Leonie, Flayn, Hanneman, Manuela, Gilbert, Catherine, Jeritza, Balthus, Hapi");
- addToMap("Small Fish Skewers", "Jeritza, Hapi");
- addToMap("Fried Crayfish", "Jeritza, Anna, Hapi");
- for(var j = 0; j < characters.length; j++) {
- var option = document.createElement("option");
- var optionText = document.createTextNode(characters[j]);
- option.appendChild(optionText);
- firstList.appendChild(option);
- option = document.createElement("option");
- optionText = document.createTextNode(characters[j]);
- option.appendChild(optionText);
- secondList.appendChild(option);
- }
- </script>
- </body>
- </html>
Add Comment
Please, Sign In to add comment