-
Notifications
You must be signed in to change notification settings - Fork 36
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
263 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
"Location","Phase","Cheese","Charm","Attraction Rate","Mouse","Sample Size" | ||
"School of Sorcery","Hallway","SB+/Gouda/Brie","-","100%","Hall Monitor",1 | ||
"School of Sorcery","Arcane Arts","SB+/Gouda/Brie","-","40.88%","Broomstick Bungler",4428 | ||
"School of Sorcery","Arcane Arts","SB+/Gouda/Brie","-","38.26%","Perpetual Detention",4428 | ||
"School of Sorcery","Arcane Arts","SB+/Gouda/Brie","-","20.87%","Misfortune Teller",4428 | ||
"School of Sorcery","Arcane Arts","Apprentice Ambert","-","43.60%","Invisible Fashionista",6802 | ||
"School of Sorcery","Arcane Arts","Apprentice Ambert","-","41.12%","Arcana Overachiever",6802 | ||
"School of Sorcery","Arcane Arts","Apprentice Ambert","-","15.27%","Enchanted Chess Club Champion",6802 | ||
"School of Sorcery","Arcane Arts","Master Mimolette","-","47.44%","Featherlight",1115 | ||
"School of Sorcery","Arcane Arts","Master Mimolette","-","37.76%","Illustrious Illusionist",1115 | ||
"School of Sorcery","Arcane Arts","Master Mimolette","-","14.80%","Constructively Critical Artist",1115 | ||
"School of Sorcery","Shadow Sciences","SB+/Gouda/Brie","-","40.88%","Uncoordinated Cauldron Carrier",4428 | ||
"School of Sorcery","Shadow Sciences","SB+/Gouda/Brie","-","38.26%","Mixing Mishap",4428 | ||
"School of Sorcery","Shadow Sciences","SB+/Gouda/Brie","-","20.87%","Bookworm",4428 | ||
"School of Sorcery","Shadow Sciences","Apprentice Ambert","-","41.12%","Classroom Keener",6802 | ||
"School of Sorcery","Shadow Sciences","Apprentice Ambert","-","43.60%","Audacious Alchemist",6802 | ||
"School of Sorcery","Shadow Sciences","Apprentice Ambert","-","15.27%","Prestigious Prestidigitator",6802 | ||
"School of Sorcery","Shadow Sciences","Master Mimolette","-","47.44%","Teleporting Truant",1115 | ||
"School of Sorcery","Shadow Sciences","Master Mimolette","-","37.76%","Classroom Disrupter",1115 | ||
"School of Sorcery","Shadow Sciences","Master Mimolette","-","14.80%","Magical Multitasker",1115 | ||
"School of Sorcery","Final Exam - Arcane","SB+/Gouda/Brie","-","28.24%","Perpetual Detention",101 | ||
"School of Sorcery","Final Exam - Arcane","SB+/Gouda/Brie","-","34.12%","Broomstick Bungler",101 | ||
"School of Sorcery","Final Exam - Arcane","SB+/Gouda/Brie","-","27.06%","Misfortune Teller",101 | ||
"School of Sorcery","Final Exam - Arcane","SB+/Gouda/Brie","-","10.59%","Sleep Starved Scholar",101 | ||
"School of Sorcery","Final Exam - Arcane","Apprentice Ambert","-","34.50%","Invisible Fashionista",342 | ||
"School of Sorcery","Final Exam - Arcane","Apprentice Ambert","-","31.87%","Arcana Overachiever",342 | ||
"School of Sorcery","Final Exam - Arcane","Apprentice Ambert","-","22.51%","Enchanted Chess Club Champion",342 | ||
"School of Sorcery","Final Exam - Arcane","Apprentice Ambert","-","11.11%","Class Clown",342 | ||
"School of Sorcery","Final Exam - Arcane","Master Mimolette","-","35.12%","Featherlight",951 | ||
"School of Sorcery","Final Exam - Arcane","Master Mimolette","-","30.81%","Illustrious Illusionist",951 | ||
"School of Sorcery","Final Exam - Arcane","Master Mimolette","-","23.66%","Constructively Critical Artist",951 | ||
"School of Sorcery","Final Exam - Arcane","Master Mimolette","-","10.41%","Tyrannical Thaumaturge",951 | ||
"School of Sorcery","Final Exam - Shadow","SB+/Gouda/Brie","-","34.12%","Uncoordinated Cauldron Carrier",101 | ||
"School of Sorcery","Final Exam - Shadow","SB+/Gouda/Brie","-","27.06%","Bookworm",101 | ||
"School of Sorcery","Final Exam - Shadow","SB+/Gouda/Brie","-","28.24%","Mixing Mishap",101 | ||
"School of Sorcery","Final Exam - Shadow","SB+/Gouda/Brie","-","10.59%","Cheat Sheet Conjurer",101 | ||
"School of Sorcery","Final Exam - Shadow","Apprentice Ambert","-","31.87%","Classroom Keener",342 | ||
"School of Sorcery","Final Exam - Shadow","Apprentice Ambert","-","34.50%","Audacious Alchemist",342 | ||
"School of Sorcery","Final Exam - Shadow","Apprentice Ambert","-","22.51%","Prestigious Prestidigitator",342 | ||
"School of Sorcery","Final Exam - Shadow","Apprentice Ambert","-","11.11%","Celestial Summoner",342 | ||
"School of Sorcery","Final Exam - Shadow","Master Mimolette","-","35.12%","Teleporting Truant",951 | ||
"School of Sorcery","Final Exam - Shadow","Master Mimolette","-","30.81%","Classroom Disrupter",951 | ||
"School of Sorcery","Final Exam - Shadow","Master Mimolette","-","23.66%","Magical Multitasker",951 | ||
"School of Sorcery","Final Exam - Shadow","Master Mimolette","-","10.41%","Data Devourer",951 | ||
"School of Sorcery","Arcane Arts - Boss","SB+/Gouda/Brie/Apprentice Ambert/Master Mimolette","-","100%","Arcane Master Sorcerer",1 | ||
"School of Sorcery","Shadow Sciences - Boss","SB+/Gouda/Brie/Apprentice Ambert/Master Mimolette","-","100%","Shadow Master Sorcerer",1 | ||
"School of Sorcery","Final Exam - Boss","SB+/Gouda/Brie/Apprentice Ambert/Master Mimolette","-","100%","Mythical Master Sorcerer",1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,200 @@ | ||
const utils = require("../_utils"); | ||
|
||
const stages = ["Arcane Arts", "Shadow Sciences", "Final Exam - Arcane", "Final Exam - Shadow"]; | ||
const cheeses = ["Standard", "Apprentice Ambert", "Master Mimolette"]; | ||
|
||
const miceByStageThenCheese = { | ||
"Arcane Arts": { | ||
"Standard": [ | ||
"Perpetual Detention", | ||
"Broomstick Bungler", | ||
"Misfortune Teller", | ||
], | ||
"Apprentice Ambert": [ | ||
"Arcana Overachiever", | ||
"Invisible Fashionista", | ||
"Enchanted Chess Club Champion", | ||
], | ||
"Master Mimolette": [ | ||
"Illustrious Illusionist", | ||
"Featherlight", | ||
"Constructively Critical Artist", | ||
] | ||
}, | ||
"Shadow Sciences": { | ||
"Standard": [ | ||
"Mixing Mishap", | ||
"Uncoordinated Cauldron Carrier", | ||
"Bookworm", | ||
], | ||
"Apprentice Ambert": [ | ||
"Classroom Keener", | ||
"Audacious Alchemist", | ||
"Prestigious Prestidigitator", | ||
], | ||
"Master Mimolette": [ | ||
"Classroom Disrupter", | ||
"Teleporting Truant", | ||
"Magical Multitasker", | ||
] | ||
} | ||
} | ||
|
||
// Instead of repeating a lot of line just use previous pools | ||
miceByStageThenCheese["Final Exam - Arcane"] = { | ||
"Standard": [ | ||
...miceByStageThenCheese["Arcane Arts"]["Standard"], | ||
"Sleep Starved Scholar", | ||
], | ||
"Apprentice Ambert": [ | ||
...miceByStageThenCheese["Arcane Arts"]["Apprentice Ambert"], | ||
"Class Clown", | ||
], | ||
"Master Mimolette": [ | ||
...miceByStageThenCheese["Arcane Arts"]["Master Mimolette"], | ||
"Tyrannical Thaumaturge", | ||
] | ||
}; | ||
|
||
miceByStageThenCheese["Final Exam - Shadow"] = { | ||
"Standard": [ | ||
...miceByStageThenCheese["Shadow Sciences"]["Standard"], | ||
"Cheat Sheet Conjurer", | ||
], | ||
"Apprentice Ambert": [ | ||
...miceByStageThenCheese["Shadow Sciences"]["Apprentice Ambert"], | ||
"Celestial Summoner", | ||
], | ||
"Master Mimolette": [ | ||
...miceByStageThenCheese["Shadow Sciences"]["Master Mimolette"], | ||
"Data Devourer", | ||
] | ||
} | ||
|
||
const standardCheeseVarItem = { | ||
vars: { | ||
cheese: { | ||
Brie: true, | ||
"Empowered Brie": true, | ||
Gouda: true, | ||
"SB+": true, | ||
"ESB+": true, | ||
} | ||
}, | ||
fields: { | ||
cheese: "SB+/Gouda/Brie" | ||
} | ||
} | ||
|
||
function genSeries() { | ||
const series = []; | ||
for (const stage of stages) { | ||
for (const cheese of cheeses) { | ||
const config = { | ||
stage: utils.genVarField("stage", stage), | ||
cheese: utils.genVarField("cheese", cheese), | ||
config: [ | ||
{ | ||
opts: { | ||
include: miceByStageThenCheese[stage][cheese] | ||
} | ||
} | ||
] | ||
}; | ||
|
||
// Replace the standard placeholder with actual multi cheese config (see above) | ||
if (cheese === "Standard") { | ||
config.cheese[0] = standardCheeseVarItem; | ||
} | ||
|
||
series.push(config); | ||
} | ||
} | ||
|
||
return series; | ||
} | ||
|
||
module.exports = { | ||
default: { | ||
location: utils.genVarField("location", "School of Sorcery"), | ||
}, | ||
series: genSeries(), | ||
/** | ||
* | ||
* @param {import('../_utils').AttractionData[]} data | ||
* @returns {import('../_utils').AttractionData[]} | ||
*/ | ||
postProcess: function(data) { | ||
|
||
// See comments in Zugwangz's Tower about how to combine pools of mice that exist on opposite sides but have same AR | ||
|
||
// To find the matching pair: https://docs.google.com/spreadsheets/d/1LhtH3yf0ImnUv4Z5rGqDskmGxfXvSglDfXqFfeXmFq8/edit?usp=sharing | ||
// Find Arcane Mouse and match its Mouse Power with the Shadow Side. Or look at the MinLuck table. It's the same thing. | ||
const arcaneToShadowMiceMap = { | ||
// Standard | ||
"Perpetual Detention": "Mixing Mishap", | ||
"Broomstick Bungler": "Uncoordinated Cauldron Carrier", | ||
"Misfortune Teller": "Bookworm", | ||
|
||
// AA | ||
"Arcana Overachiever": "Classroom Keener", | ||
"Invisible Fashionista": "Audacious Alchemist", | ||
"Enchanted Chess Club Champion": "Prestigious Prestidigitator", | ||
|
||
// MM | ||
"Illustrious Illusionist": "Classroom Disrupter", | ||
"Featherlight": "Teleporting Truant", | ||
"Constructively Critical Artist": "Magical Multitasker", | ||
|
||
// FE Standard | ||
"Sleep Starved Scholar": "Cheat Sheet Conjurer", | ||
|
||
// FE AA | ||
"Class Clown": "Celestial Summoner", | ||
|
||
// FE MM | ||
"Tyrannical Thaumaturge": "Data Devourer" | ||
} | ||
|
||
data.forEach((run, i) => { | ||
if (run.stage.indexOf('Arcane') > -1) { | ||
const oppStage = run.stage === 'Arcane Arts' ? 'Shadow Sciences' : 'Final Exam - Shadow'; | ||
const oppMouse = arcaneToShadowMiceMap[run.mouse]; | ||
|
||
data | ||
.forEach((other, j) => { | ||
if (other.cheese == run.cheese | ||
&& other.stage == oppStage | ||
&& other.mouse == oppMouse) { | ||
// Add seen to each other. Recalc AR. | ||
|
||
data[i].seen += data[j].seen; | ||
data[i].sample += data[j].sample; | ||
|
||
data[j].seen = data[i].seen; | ||
data[j].sample = data[i].sample; | ||
|
||
data[i].attraction = (data[i].seen / data[i].sample * 100).toFixed(2) + "%"; | ||
data[j].attraction = (data[j].seen / data[j].sample * 100).toFixed(2) + "%"; | ||
} | ||
}); | ||
} | ||
}); | ||
|
||
// Put this first | ||
data.unshift( | ||
// Hallway, why are you here! | ||
{location: "School of Sorcery", cheese: "SB+/Gouda/Brie", stage: "Hallway", mouse: "Hall Monitor", attraction: "100%", sample: 1}, | ||
); | ||
|
||
// These last | ||
data.push( | ||
// Manually add boss stages | ||
{location: "School of Sorcery", cheese: "SB+/Gouda/Brie/Apprentice Ambert/Master Mimolette", stage: "Arcane Arts - Boss", mouse: "Arcane Master Sorcerer", attraction: "100%", sample: 1}, | ||
{location: "School of Sorcery", cheese: "SB+/Gouda/Brie/Apprentice Ambert/Master Mimolette", stage: "Shadow Sciences - Boss", mouse: "Shadow Master Sorcerer", attraction: "100%", sample: 1}, | ||
{location: "School of Sorcery", cheese: "SB+/Gouda/Brie/Apprentice Ambert/Master Mimolette", stage: "Final Exam - Boss", mouse: "Mythical Master Sorcerer", attraction: "100%", sample: 1}, | ||
); | ||
|
||
return data; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters