Skip to content

🔥💧🍃 Pokémon types, including — their weaknesses, strengths and immunities.

License

Notifications You must be signed in to change notification settings

fbosch/poke-types

Folders and files

NameName
Last commit message
Last commit date
May 14, 2019
Feb 17, 2018
May 14, 2019
Feb 16, 2018
Aug 29, 2019
Feb 17, 2018
Feb 17, 2018
Feb 17, 2018
May 14, 2019
Feb 17, 2018
Feb 17, 2018
Feb 17, 2018
Oct 18, 2019

Repository files navigation

PokéTypes

Awesome Pokemon Downloads Downloads File Size Build Status JavaScript Style Guide Known Vulnerabilities


🔥 💧 🍃

A module that exposes all Pokémon types, including
— their weaknesses, strengths and immunities.

Install

yarn

$ yarn add poke-types

npm

$ npm install --save poke-types

Usage

import { getTypeWeaknesses } from 'poke-types'
import { noEffect, notVeryEffective, superEffective, ultraEffective } from 'poke-types/effectiveness'

const abilityEffectiveness = (targetType, abilityType) => {
  switch (getTypeWeaknesses(...targetType)[abilityType]) {
    case noEffect: return 'It has no effect...'
    case notVeryEffective: return 'It\'s not very effective...'
    case superEffective: case ultraEffective: return 'It\'s super effective!'
    default: return ''
  }
}

const attack = pokemon => target => ability => {
  return `
  ${pokemon.name} used ${ability.name}!
            💥
  ${abilityEffectiveness(target.type, ability.type)}
  `
}

const pikachu = {
  name: 'Pikachu',
  type: 'electric',
  abilities: {
    thunderbolt: {
      name: 'Thunderbolt',
      type: 'electric'
    }
  },
  attack: target => ability => attack(pikachu)(target)(pikachu.abilities[ability])
}

const gyarados = {
  name: 'Gyarados',
  type: ['water', 'flying']
}

console.log(pikachu.attack(gyarados)('thunderbolt'))
// ​​​​​ Pikachu used Thunderbolt!
// ​​​​​           💥
// ​​​​​ It's super effective!

API

.effectiveness: Object

noEffect weak notVeryEffective normal superEffective ultra
0 0.25 0.5 1 2 4

.types: string[]

normal fire water electric grass ice fighting poison ground
flying psychic bug rock ghost dragon dark steel fairy

.getTypeWeaknesses(type: string, ?secondType: string): Object

type

type name to get weaknesses for

secondType

the second type to get dual type weaknesses for

pokeTypes.getTypeWeaknesses('grass')
// { normal: 1, fire: 2, water: 0.5, ... }
pokeTypes.getTypeWeaknesses('fire', 'bug')
// { normal: 1, fire: 1, water: 2, ... }

.getTypeStrengths(type: string): Object

type:

type name to get type strengths for.

pokeTypes.getTypeStrengths('electric')
// { normal: 1, fire: 1, water: 2, ... }
pokeType.getTypeStrengths('fighting')
// { normal: 2, fire: 1, water: 1, ... }

License

MIT @ Frederik Bosch