Skip to content

Instantly share code, notes, and snippets.

@NoelDavies
Created May 8, 2021 00:41
Show Gist options
  • Save NoelDavies/bcd449e19ac97964b5ba74465a4b08bb to your computer and use it in GitHub Desktop.
Save NoelDavies/bcd449e19ac97964b5ba74465a4b08bb to your computer and use it in GitHub Desktop.
0.5.1-alpha.14
import * as features from './featureList'
const featureDescriptions = {
[features.AUTO_BADGE_TRACKING]: 'Automatic badge tracking',
[features.AUTO_PARTY_TRACKING]: 'Automatic tracking of Pokémon in your party',
[features.AUTO_PARTY_TRACKING_FIELD_SHINY]: 'Automatic party tracking - Shiny detection',
[features.AUTO_PARTY_TRACKING_FIELD_LEVEL_MET]: 'Automatic party tracking - Level at which the Pokémon was caught',
[features.AUTO_PARTY_TRACKING_FIELD_TYPES]: 'Automatic party tracking - Detecting the Pokémon types from the ROM instead of a generic Pokédex ',
[features.AUTO_PARTY_TRACKING_FIELD_FRIENDSHIP]: 'Automatic party tracking - Pokémon friendship',
[features.AUTO_PARTY_TRACKING_FIELD_ABILITY]: 'Automatic party tracking - Pokémon ability',
[features.AUTO_PARTY_TRACKING_FIELD_NATURE]: 'Automatic party tracking - Pokémon nature',
[features.AUTO_PARTY_TRACKING_FIELD_HIDDEN_POWER]: 'Automatic party tracking - Pokémon hidden power',
[features.AUTO_PARTY_TRACKING_FIELD_POKERUS]: 'Automatic party tracking - If a Poémon has Pokérus - the Pokémon virus',
[features.AUTO_PARTY_TRACKING_FIELD_NICKNAME_SPECIAL_CHARS]: 'Automatic party tracking - Non-standard (non-alphanumeric) characters in a Pokémon nickname',
[features.AUTO_PARTY_TRACKING_FIELD_MET_AS_EGG]: 'Automatic party tracking - Detecting what location a Pokémon was met, when hatched from an egg',
[features.AUTO_PARTY_TRACKING_FIELD_POKEBALL]: 'Automatic party tracking - The Pokéball used to catch a Pokémon',
[features.AUTO_PARTY_TRACKING_FIELD_IS_GIFT]: 'Automatic party tracking - Whether the Pokémon was a recieved as a gift',
[features.AUTO_PARTY_TRACKING_FIELD_EVS]: 'Automatic party tracking - Pokémon Effort Values',
[features.AUTO_PARTY_TRACKING_FIELD_IVS]: 'Automatic party tracking - Pokémon Individual Values',
[features.AUTO_PARTY_TRACKING_FIELD_EGG_CYCLES]: 'Automatic party tracking - Pokémon remaining egg cycles',
[features.AUTO_PARTY_ROUTE_TRACKING]: 'Automatic party tracking - Automatic Route tracking for Pokémon in the party',
[features.AUTO_BOX_ROUTE_TRACKING]: 'Automatic party tracking - Pokémon ',
[features.AUTO_PARTY_IN_BATTLE_UPDATES]: 'Automatic updates during battle',
[features.AUTO_BATTLE_TRACKING_FIELD_ACTIVE_IN_BATTLE]: 'Automatic updates during battle - Detecting what pokémon is currently in battle',
[features.AUTO_BATTLE_TRACKING_FIELD_STATUS_EFFECT]: 'Automatic updates during battle - Pokémon status effect',
[features.AUTO_BATTLE_TRACKING_FIELD_HP]: 'Automatic updates during battle - Pokémon HP',
[features.MANUAL_BADGE_TRACKING]: 'Manual tracking of badges using the badges screen within Pokélink',
[features.MANUAL_PARTY_TRACKING]: 'Manual updating of your party using the Party Pokémon screen within Pokélink'
}
export default featureDescriptions
import * as gameIds from '../../validation/GameIds'
import * as features from './featureList'
import descriptions from './featureListDescriptions'
const supportedFeatures = {
games: [
{
game: gameIds.POKEMON_BLUE,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.MANUAL_BADGE_TRACKING
],
knownIssues: [
],
notSupported: [
features.AUTO_PARTY_ROUTE_TRACKING,
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_RED,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.MANUAL_BADGE_TRACKING
],
knownIssues: [
],
notSupported: [
features.AUTO_PARTY_ROUTE_TRACKING,
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_YELLOW,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.MANUAL_BADGE_TRACKING
],
knownIssues: [
],
notSupported: [
features.AUTO_PARTY_ROUTE_TRACKING,
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_GOLD,
features: [
features.MANUAL_BADGE_TRACKING,
features.MANUAL_PARTY_TRACKING
],
knownIssues: [
],
notSupported: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_SILVER,
features: [
features.MANUAL_BADGE_TRACKING,
features.MANUAL_PARTY_TRACKING
],
knownIssues: [
],
notSupported: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_CRYSTAL,
features: [
features.MANUAL_BADGE_TRACKING,
features.MANUAL_PARTY_TRACKING
],
knownIssues: [
],
notSupported: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_RUBY,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.MANUAL_BADGE_TRACKING
],
knownIssues: [
],
notSupported: [
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_SAPPHIRE,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.MANUAL_BADGE_TRACKING
],
knownIssues: [
],
notSupported: [
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_FIRE_RED,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.AUTO_BATTLE_TRACKING_FIELD_ACTIVE_IN_BATTLE,
features.AUTO_PARTY_TRACKING_FIELD_FRIENDSHIP,
features.MANUAL_BADGE_TRACKING,
features.AUTO_PARTY_ROUTE_TRACKING
],
knownIssues: [
],
notSupported: [
features.AUTO_PARTY_TRACKING_FIELD_ABILITY,
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_LEAF_GREEN,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.AUTO_BATTLE_TRACKING_FIELD_ACTIVE_IN_BATTLE,
features.AUTO_PARTY_TRACKING_FIELD_FRIENDSHIP,
features.MANUAL_BADGE_TRACKING,
features.AUTO_PARTY_ROUTE_TRACKING
],
knownIssues: [
],
notSupported: [
features.AUTO_PARTY_TRACKING_FIELD_ABILITY,
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_EMERALD,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.AUTO_BATTLE_TRACKING_FIELD_ACTIVE_IN_BATTLE,
features.AUTO_PARTY_TRACKING_FIELD_FRIENDSHIP,
features.MANUAL_BADGE_TRACKING,
features.AUTO_PARTY_ROUTE_TRACKING
],
knownIssues: [
features.AUTO_PARTY_TRACKING_FIELD_MET_AS_EGG,
features.AUTO_PARTY_TRACKING_FIELD_FRIENDSHIP,
features.AUTO_PARTY_TRACKING_FIELD_ABILITY
],
notSupported: [
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_DIAMOND,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_TRACKING_FIELD_FRIENDSHIP,
features.MANUAL_BADGE_TRACKING
],
knownIssues: [
features.AUTO_PARTY_IN_BATTLE_UPDATES
],
notSupported: [
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_PEARL,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_TRACKING_FIELD_FRIENDSHIP,
features.MANUAL_BADGE_TRACKING
],
knownIssues: [
features.AUTO_PARTY_IN_BATTLE_UPDATES
],
notSupported: [
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_PLATINUM,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_TRACKING_FIELD_FRIENDSHIP,
features.MANUAL_BADGE_TRACKING
],
knownIssues: [
features.AUTO_PARTY_IN_BATTLE_UPDATES
],
notSupported: [
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_HEART_GOLD,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.AUTO_PARTY_TRACKING_FIELD_FRIENDSHIP,
features.MANUAL_BADGE_TRACKING,
features.AUTO_PARTY_ROUTE_TRACKING
],
knownIssues: [
],
notSupported: [
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_SOUL_SILVER,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.AUTO_PARTY_TRACKING_FIELD_FRIENDSHIP,
features.MANUAL_BADGE_TRACKING,
features.AUTO_PARTY_ROUTE_TRACKING
],
knownIssues: [
],
notSupported: [
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_BLACK,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_ROUTE_TRACKING,
features.MANUAL_BADGE_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.AUTO_PARTY_TRACKING_FIELD_SHINY,
features.AUTO_PARTY_TRACKING_FIELD_LEVEL_MET,
features.AUTO_PARTY_TRACKING_FIELD_ABILITY,
features.AUTO_PARTY_TRACKING_FIELD_NATURE,
features.AUTO_PARTY_TRACKING_FIELD_HIDDEN_POWER,
features.AUTO_PARTY_TRACKING_FIELD_POKERUS,
features.AUTO_PARTY_TRACKING_FIELD_FRIENDSHIP,
features.AUTO_PARTY_TRACKING_FIELD_POKEBALL,
features.AUTO_PARTY_TRACKING_FIELD_IS_GIFT,
features.AUTO_PARTY_TRACKING_FIELD_EVS,
features.AUTO_PARTY_TRACKING_FIELD_IVS,
features.AUTO_BATTLE_TRACKING_FIELD_HP
],
knownIssues: [
features.AUTO_PARTY_TRACKING_FIELD_NICKNAME_SPECIAL_CHARS
],
notSupported: [
features.AUTO_BATTLE_TRACKING_FIELD_ACTIVE_IN_BATTLE,
features.AUTO_BATTLE_TRACKING_FIELD_STATUS_EFFECT,
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_WHITE,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_ROUTE_TRACKING,
features.MANUAL_BADGE_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.AUTO_PARTY_TRACKING_FIELD_SHINY,
features.AUTO_PARTY_TRACKING_FIELD_LEVEL_MET,
features.AUTO_PARTY_TRACKING_FIELD_ABILITY,
features.AUTO_PARTY_TRACKING_FIELD_NATURE,
features.AUTO_PARTY_TRACKING_FIELD_HIDDEN_POWER,
features.AUTO_PARTY_TRACKING_FIELD_POKERUS,
features.AUTO_PARTY_TRACKING_FIELD_FRIENDSHIP,
features.AUTO_PARTY_TRACKING_FIELD_POKEBALL,
features.AUTO_PARTY_TRACKING_FIELD_IS_GIFT,
features.AUTO_PARTY_TRACKING_FIELD_EVS,
features.AUTO_PARTY_TRACKING_FIELD_IVS,
features.AUTO_BATTLE_TRACKING_FIELD_HP
],
knownIssues: [
features.AUTO_PARTY_TRACKING_FIELD_NICKNAME_SPECIAL_CHARS
],
notSupported: [
features.AUTO_BATTLE_TRACKING_FIELD_ACTIVE_IN_BATTLE,
features.AUTO_BATTLE_TRACKING_FIELD_STATUS_EFFECT,
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_BLACK_2,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_ROUTE_TRACKING,
features.MANUAL_BADGE_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.AUTO_PARTY_TRACKING_FIELD_SHINY,
features.AUTO_PARTY_TRACKING_FIELD_LEVEL_MET,
features.AUTO_PARTY_TRACKING_FIELD_ABILITY,
features.AUTO_PARTY_TRACKING_FIELD_NATURE,
features.AUTO_PARTY_TRACKING_FIELD_HIDDEN_POWER,
features.AUTO_PARTY_TRACKING_FIELD_POKERUS,
features.AUTO_PARTY_TRACKING_FIELD_FRIENDSHIP,
features.AUTO_PARTY_TRACKING_FIELD_POKEBALL,
features.AUTO_PARTY_TRACKING_FIELD_IS_GIFT,
features.AUTO_PARTY_TRACKING_FIELD_EVS,
features.AUTO_PARTY_TRACKING_FIELD_IVS,
features.AUTO_BATTLE_TRACKING_FIELD_HP
],
knownIssues: [
features.AUTO_PARTY_TRACKING_FIELD_NICKNAME_SPECIAL_CHARS
],
notSupported: [
features.AUTO_BATTLE_TRACKING_FIELD_ACTIVE_IN_BATTLE,
features.AUTO_BATTLE_TRACKING_FIELD_STATUS_EFFECT,
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_WHITE_2,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_ROUTE_TRACKING,
features.MANUAL_BADGE_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.AUTO_PARTY_TRACKING_FIELD_SHINY,
features.AUTO_PARTY_TRACKING_FIELD_LEVEL_MET,
features.AUTO_PARTY_TRACKING_FIELD_ABILITY,
features.AUTO_PARTY_TRACKING_FIELD_NATURE,
features.AUTO_PARTY_TRACKING_FIELD_HIDDEN_POWER,
features.AUTO_PARTY_TRACKING_FIELD_POKERUS,
features.AUTO_PARTY_TRACKING_FIELD_FRIENDSHIP,
features.AUTO_PARTY_TRACKING_FIELD_POKEBALL,
features.AUTO_PARTY_TRACKING_FIELD_IS_GIFT,
features.AUTO_PARTY_TRACKING_FIELD_EVS,
features.AUTO_PARTY_TRACKING_FIELD_IVS,
features.AUTO_BATTLE_TRACKING_FIELD_HP
],
knownIssues: [
features.AUTO_PARTY_TRACKING_FIELD_NICKNAME_SPECIAL_CHARS
],
notSupported: [
features.AUTO_BATTLE_TRACKING_FIELD_ACTIVE_IN_BATTLE,
features.AUTO_BATTLE_TRACKING_FIELD_STATUS_EFFECT,
features.AUTO_PARTY_TRACKING_FIELD_TYPES
]
},
{
game: gameIds.POKEMON_X,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.MANUAL_BADGE_TRACKING
],
knownIssues: [
],
notSupported: [
]
},
{
game: gameIds.POKEMON_Y,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.MANUAL_BADGE_TRACKING
],
knownIssues: [
],
notSupported: [
]
},
{
game: gameIds.POKEMON_OMEGA_RUBY,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.MANUAL_BADGE_TRACKING
],
knownIssues: [
],
notSupported: [
]
},
{
game: gameIds.POKEMON_ALPHA_SAPPHIRE,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.MANUAL_BADGE_TRACKING
],
knownIssues: [
],
notSupported: [
]
},
{
game: gameIds.POKEMON_SUN,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.MANUAL_BADGE_TRACKING
],
knownIssues: [
],
notSupported: [
]
},
{
game: gameIds.POKEMON_MOON,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.MANUAL_BADGE_TRACKING
],
knownIssues: [
],
notSupported: [
]
},
{
game: gameIds.POKEMON_ULTRA_SUN,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.MANUAL_BADGE_TRACKING
],
knownIssues: [
],
notSupported: [
]
},
{
game: gameIds.POKEMON_ULTRA_MOON,
features: [
features.AUTO_PARTY_TRACKING,
features.AUTO_PARTY_IN_BATTLE_UPDATES,
features.MANUAL_BADGE_TRACKING
],
knownIssues: [
],
notSupported: [
]
},
{
game: gameIds.POKEMON_LETS_GO_PIKACHU,
features: [
features.MANUAL_BADGE_TRACKING,
features.MANUAL_PARTY_TRACKING
],
knownIssues: [
],
notSupported: [
features.AUTO_BADGE_TRACKING,
features.AUTO_PARTY_TRACKING
]
},
{
game: gameIds.POKEMON_LETS_GO_EEVEE,
features: [
features.MANUAL_BADGE_TRACKING,
features.MANUAL_PARTY_TRACKING
],
knownIssues: [
],
notSupported: [
features.AUTO_BADGE_TRACKING,
features.AUTO_PARTY_TRACKING
]
},
{
game: gameIds.POKEMON_SWORD,
features: [
features.MANUAL_BADGE_TRACKING,
features.MANUAL_PARTY_TRACKING
],
knownIssues: [
],
notSupported: [
features.AUTO_BADGE_TRACKING,
features.AUTO_PARTY_TRACKING
]
},
{
game: gameIds.POKEMON_SHIELD,
features: [
features.MANUAL_BADGE_TRACKING,
features.MANUAL_PARTY_TRACKING
],
knownIssues: [
],
notSupported: [
features.AUTO_BADGE_TRACKING,
features.AUTO_PARTY_TRACKING
]
}
],
getUnsupportedFeatures (gameId) {
let game = this.games.find(gameFeatures => gameFeatures.game === gameId)
if (!game) return []
if (!game.notSupported) return []
return game.notSupported
},
getSupportedFeatures (gameId) {
let game = this.games.find(gameFeatures => gameFeatures.game === gameId)
if (!game) return []
if (!game.features) return []
return game.features
},
getKnownIssues (gameId) {
let game = this.games.find(gameFeatures => gameFeatures.game === gameId)
if (!game) return []
if (!game.knownIssues) return []
return game.knownIssues
},
gameSupportsFeature (gameId, feature) {
let game = this.games.find(gameFeatures => gameFeatures.game === gameId)
if (game.features.includes(feature)) return true
if (game.notSupported.includes(feature)) return false
return true
},
describe (featureId) {
return descriptions[featureId]
}
}
export default supportedFeatures
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment