Skip to content

Commit

Permalink
Improve all allowed display
Browse files Browse the repository at this point in the history
  • Loading branch information
Glazelf committed Feb 17, 2025
1 parent faa5de4 commit e899914
Showing 1 changed file with 12 additions and 8 deletions.
20 changes: 12 additions & 8 deletions util/bloons/getBossEvent.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ export default async ({ elite = false, emojis }) => {
let allowedHeroesArray = [];
let allowedTowersArray = [];
let bannedArray = [];
let towersAllowedAppendix = false;
let allHeroesAllowed = bossEventMetadata._towers.find((hero) => hero.tower == "ChosenPrimaryHero").max == 99; // This seems to be how to check if all heroes are allowed? Even when this is 99, heroes inconsistently have either a max of 0 or 1, making it hard to tell otherwise
bossEventMetadata._towers.forEach(tower => {
let towerIcon = emojis.find(emoji => emoji.name == `BTD6Hero${tower.tower}`);
Expand All @@ -110,28 +111,31 @@ export default async ({ elite = false, emojis }) => {
return allowedHeroesArray.push(heroString);
} else {
let towerString = tower.tower;
if (tower.path1NumBlockedTiers > 0 || tower.path2NumBlockedTiers || tower.path3NumBlockedTiers) {
towerString += ` (${5 - tower.path1NumBlockedTiers}-${5 - tower.path2NumBlockedTiers}-${5 - tower.path3NumBlockedTiers})`;
// Sometimes allowed tier is -1 when they mean 0, leading to above calculation listing 6.
// We can filter like this because if not all tiers are allowed the paragon can never be made, making 6-6-6 impossible.
towerString = towerString.replace(/6/g, 0);
};
if (tower.max > 0) {
towerString += ` (max ${tower.max})`;
towersAllowedAppendix = true;
} else if (tower.max == 0) {
return bannedArray.push(towerString);
};
if (tower.path1NumBlockedTiers > 0 || tower.path2NumBlockedTiers || tower.path3NumBlockedTiers) {
// Sometimes allowed tier is -1 when they mean 0, leading to above calculation listing 6.
// We can filter like this because if not all tiers are allowed the paragon can never be made, making 6-6-6 impossible.
towerString += ` (${5 - tower.path1NumBlockedTiers}-${5 - tower.path2NumBlockedTiers}-${5 - tower.path3NumBlockedTiers})`.replace(/6/g, 0);
towersAllowedAppendix = true;
};
return allowedTowersArray.push(towerString);
};
});
allowedHeroesArray = sortTowersToIngame(allowedHeroesArray, "heroes");
allowedTowersArray = sortTowersToIngame(allowedTowersArray, "towers");
bannedArray = sortTowersToIngame(bannedArray, "all");
let allowedHeroesString = allowedHeroesArray.join("\n");
if (allowedHeroesArray.length == 0) allowedHeroesString = "None.";
if (allowedHeroesArray.length == 0) allowedHeroesString = "No heroes are allowed.";
if (JSON.stringify(allowedHeroesArray) == JSON.stringify(heroesOrdered)) allowedHeroesString = "All heroes are allowed.";
let allowedTowersString = allowedTowersArray.join("\n");
let bannedString = bannedArray.join("\n");
if (bannedString.length == 0) bannedString = "Nothing.";
if (bannedString.length == 0) bannedString = "Nothing is banned.";
if (JSON.stringify(allowedTowersArray) == JSON.stringify(towersOrdered) && !towersAllowedAppendix) allowedTowersString = "All towers are allowed (5-5-5).";

let bossEventEmbed = new EmbedBuilder()
.setColor(globalVars.embedColor)
Expand Down

0 comments on commit e899914

Please sign in to comment.