Guest User

Untitled

a guest
Oct 3rd, 2024
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.60 KB | None | 0 0
  1. <html>
  2. <head>
  3. <title>FE3H Meal Planner</title>
  4. </head>
  5. <body>
  6. <h1>Fire Emblem Three Houses Meal Planner</h1>
  7. <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>
  8. <br />
  9. <label for="fc"> First character: </label><select id="fc"><option></option></select><br />
  10. <label for="sc"> Second character: </label><select id="sc"><option></option></select><br />
  11. <br />
  12. <h3>Liked meals:</h3>
  13.  
  14. <ul id="results"></ul>
  15.  
  16. <span>Total: <span id="total">-</span></span>
  17.  
  18. <script type="text/javascript">
  19. var map={};
  20. var characters = ["Edelgard", "Hubert", "Dorothea", "Ferdinand", "Bernadetta", "Caspar", "Petra", "Linhardt",
  21. "Dimitri", "Dedue", "Felix", "Mercedes", "Ashe", "Annette", "Sylvain", "Ingrid",
  22. "Claude", "Lorenz", "Hilda", "Raphael", "Lysithea", "Ignatz", "Marianne", "Leonie",
  23. "Manuela", "Hanneman", "Seteth", "Flayn", "Cyril", "Catherine", "Shamir", "Alois", "Gilbert",
  24. "Jeritza", "Anna", "Yuri", "Balthus", "Constance", "Hapi"];
  25.  
  26. function addToMap(meal, charactersWhoLikeMeal) {
  27. var splitCharacters = charactersWhoLikeMeal.split(",");
  28. for (var i = 0; i < splitCharacters.length; i++) {
  29. var character = splitCharacters[i].trim();
  30. if (!map[character]) { map[character] = []; }
  31. map[character].push(meal);
  32. }
  33. }
  34.  
  35. var firstList = document.getElementById("fc");
  36. var secondList = document.getElementById("sc");
  37. var resultsList = document.getElementById("results");
  38. var totalDisplay = document.getElementById("total");
  39.  
  40. function showResults() {
  41. // Clear list of meals
  42. while(resultsList.firstChild) {
  43. resultsList.removeChild(resultsList.firstChild);
  44. }
  45.  
  46. totalDisplay.innerText = "-";
  47.  
  48. // Populate list of meals
  49. var firstChoice = firstList.value;
  50. var secondChoice = secondList.value;
  51. if (firstChoice || secondChoice) {
  52. if (!firstChoice) {
  53. firstChoice = secondChoice;
  54. }
  55. else if (!secondChoice) {
  56. secondChoice = firstChoice;
  57. }
  58.  
  59. var count = 0;
  60. var firstChoiceMeals = map[firstChoice];
  61. var secondChoiceMeals = map[secondChoice];
  62. if (!firstChoiceMeals || !secondChoiceMeals) { return; }
  63. for(var k = 0; k < firstChoiceMeals.length; k++) {
  64. var mealName = firstChoiceMeals[k];
  65. if (secondChoiceMeals.indexOf(mealName) > -1) {
  66. count++;
  67. var li = document.createElement("li");
  68. var liText = document.createTextNode(mealName);
  69. li.appendChild(liText);
  70. resultsList.appendChild(li);
  71. }
  72. }
  73.  
  74. totalDisplay.innerText = count;
  75. }
  76. }
  77.  
  78. firstList.addEventListener("click", showResults);
  79. secondList.addEventListener("click", showResults);
  80.  
  81. addToMap("Sagbert and Cream", "Edelgard, Dimitri, Ferdinand, Linhardt, Bernadetta, Dorothea, Ashe, Mercedes, Annette, Lorenz, Ignatz, Lysithea, Marianne, Hilda, Flayn, Alois, Jeritza, Yuri, Constance");
  82. addToMap("Sweet Bun Trio", "Edelgard, Dimitri, Ferdinand, Linhardt, Caspar, Bernadetta, Ashe, Sylvain, Mercedes, Annette, Ingrid, Ignatz, Lysithea, Marianne, Hilda, Flayn, Alois, Jeritza, Yuri, Constance");
  83. 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");
  84. addToMap("Peach Sorbet", "Edelgard, Linhardt, Bernadetta, Dorothea, Ashe, Mercedes, Annette, Lysithea, Marianne, Hilda, Flayn, Hanneman, Alois, Shamir, Jeritza, Anna, Yuri, Constance");
  85. addToMap("Beast Meat Teppanyaki", "Claude, Caspar, Petra, Felix, Ingrid, Raphael, Leonie, Manuela, Gilbert, Catherine, Shamir, Cyril, Anna, Balthus, Hapi");
  86. addToMap("Pickled Rabbit Skewers", "Claude, Caspar, Petra, Felix, Ingrid, Raphael, Lysithea, Manuela, Gilbert, Catherine, Shamir, Cyril, Anna, Yuri, Balthus, Hapi");
  87. addToMap("Daphnel Stew", "Claude, Ferdinand, Linhardt, Caspar, Petra, Dedue, Felix, Ingrid, Lorenz, Raphael, Leonie, Seteth, Manuela, Shamir, Cyril, Yuri, Balthus, Hapi");
  88. addToMap("Gronder Meat Skewers", "Claude, Caspar, Petra, Felix, Ingrid, Raphael, Leonie, Manuela, Gilbert, Catherine, Shamir, Cyril, Jeritza, Balthus, Hapi");
  89. addToMap("Derdriu-Style Fried Pheasant", "Claude, Caspar, Bernadetta, Felix, Ingrid, Raphael, Lysithea, Hilda, Leonie, Seteth, Hanneman, Manuela, Gilbert, Catherine, Cyril, Anna, Balthus, Hapi");
  90. addToMap("Vegetable Pasta Salad", "Edelgard, Ferdinand, Caspar, Bernadetta, Dorothea, Ashe, Mercedes, Annette, Ingrid, Ignatz, Marianne, Seteth, Hanneman, Gilbert, Shamir, Cyril, Anna, Constance");
  91. addToMap("Onion Gratin Soup", "Edelgard, Dimitri, Claude, Ferdinand, Linhardt, Dorothea, Dedue, Mercedes, Annette, Lorenz, Marianne, Leonie, Flayn, Alois, Catherine, Jeritza, Yuri, Hapi");
  92. addToMap("Country-Style Red Turnip Plate", "Claude, Caspar, Bernadetta, Dorothea, Petra, Raphael, Hilda, Flayn, Gilbert, Catherine, Shamir, Yuri, Hapi");
  93. addToMap("Vegetable Stir-Fry", "Edelgard, Claude, Ferdinand, Caspar, Bernadetta, Dorothea, Petra, Dedue, Annette, Ignatz, Marianne, Leonie, Manuela, Gilbert, Shamir, Cyril, Yuri, Hapi");
  94. addToMap("Grilled Herring", "Ferdinand, Petra, Dedue, Mercedes, Annette, Ingrid, Leonie, Seteth, Flayn, Gilbert, Alois, Catherine, Jeritza, Yuri");
  95. 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");
  96. addToMap("Fruit and Herring Tart", "Ferdinand, Bernadetta, Dedue, Sylvain, Mercedes, Annette, Ingrid, Lorenz, Ignatz, Marianne, Leonie, Seteth, Flayn, Alois, Catherine, Constance");
  97. addToMap("Fisherman's Bounty", "Ferdinand, Petra, Dedue, Ingrid, Raphael, Ignatz, Marianne, Hilda, Leonie, Flayn, Manuela, Gilbert, Alois, Catherine, Jeritza, Yuri, Balthus, Hapi");
  98. addToMap("Fish Sandwich", "Edelgard, Ferdinand, Petra, Dedue, Ashe, Sylvain, Ingrid, Raphael, Leonie, Seteth, Flayn, Manuela, Gilbert, Alois, Catherine, Yuri, Hapi");
  99. 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");
  100. addToMap("Bourgeois Pike", "Claude, Ferdinand, Bernadetta, Dedue, Lorenz, Ignatz, Marianne, Leonie, Seteth, Flayn, Hanneman, Manuela, Alois, Catherine, Anna, Constance");
  101. addToMap("Sauteed Jerky", "Dimitri, Claude, Hubert, Caspar, Petra, Dedue, Felix, Raphael, Manuela, Shamir, Cyril, Anna, Yuri, Balthus, Hapi");
  102. addToMap("Spicy Fish and Turnip Stew", "Hubert, Petra, Dedue, Felix, Ashe, Sylvain, Annette, Ingrid, Leonie, Seteth, Manuela, Gilbert, Anna, Balthus, Hapi");
  103. addToMap("Sweet and Salty Whitefish Saute", "Hubert, Dedue, Felix, Ashe, Sylvain, Annette, Ingrid, Leonie, Seteth, Manuela, Gilbert, Anna, Balthus, Hapi");
  104. addToMap("Super-Spicy Fish Dango", "Hubert, Petra, Dedue, Felix, Sylvain, Ingrid, Ignatz, Marianne, Leonie, Seteth, Hanneman, Manuela, Gilbert, Catherine, Shamir, Balthus, Hapi");
  105. addToMap("Sauteed Pheasant and Eggs", "Edelgard, Claude, Hubert, Ferdinand, Caspar, Felix, Sylvain, Raphael, Ignatz, Marianne, Seteth, Manuela, Gilbert, Shamir, Cyril, Anna, Constance, Hapi");
  106. addToMap("Garreg Mach Meat Pie", "Claude, Hubert, Linhardt, Caspar, Dorothea, Felix, Sylvain, Lorenz, Raphael, Ignatz, Hanneman, Manuela, Gilbert, Catherine, Balthus");
  107. addToMap("Cheesy Verona Stew", "Dimitri, Claude, Hubert, Bernadetta, Petra, Sylvain, Raphael, Marianne, Hilda, Leonie, Seteth, Flayn, Hanneman, Gilbert, Catherine, Balthus");
  108. addToMap("Pickled Seafood and Vegetables", "Hubert, Petra, Dedue, Annette, Raphael, Leonie, Seteth, Flayn, Hanneman, Gilbert, Alois, Catherine, Anna, Hapi");
  109. addToMap("Gautier Cheese Gratin", "Dimitri, Claude, Hubert, Linhardt, Dorothea, Felix, Raphael, Hilda, Hanneman, Catherine, Balthus");
  110. addToMap("Cabbage and Herring Stew", "Claude, Hubert, Lorenz, Ignatz, Marianne, Leonie, Flayn, Hanneman, Manuela, Gilbert, Catherine, Jeritza, Balthus, Hapi");
  111. addToMap("Small Fish Skewers", "Jeritza, Hapi");
  112. addToMap("Fried Crayfish", "Jeritza, Anna, Hapi");
  113.  
  114. for(var j = 0; j < characters.length; j++) {
  115. var option = document.createElement("option");
  116. var optionText = document.createTextNode(characters[j]);
  117. option.appendChild(optionText);
  118. firstList.appendChild(option);
  119.  
  120. option = document.createElement("option");
  121. optionText = document.createTextNode(characters[j]);
  122. option.appendChild(optionText);
  123. secondList.appendChild(option);
  124. }
  125. </script>
  126.  
  127. </body>
  128. </html>
Add Comment
Please, Sign In to add comment