Jofthomas's picture
Jofthomas HF staff
Upload 4781 files
5c2ed06 verified
{
"version": 3,
"sources": ["../../../../data/mods/gen7letsgo/scripts.ts"],
"sourcesContent": ["function checkMegaForme(species: Species, forme: string, battle: Battle) {\n\tconst baseSpecies = battle.dex.species.get(species.baseSpecies);\n\tconst altForme = battle.dex.species.get(`${baseSpecies.name}-${forme}`);\n\tif (\n\t\taltForme.exists && !battle.ruleTable.isBannedSpecies(altForme) &&\n\t\t!battle.ruleTable.isBanned('pokemontag:mega')\n\t) {\n\t\treturn altForme.name;\n\t}\n\treturn null;\n}\n\nexport const Scripts: ModdedBattleScriptsData = {\n\tinherit: 'gen7',\n\tinit() {\n\t\tthis.modData('Abilities', 'noability').isNonstandard = null;\n\t\tfor (const i in this.data.Pokedex) {\n\t\t\tthis.modData('Pokedex', i).abilities = { 0: 'No Ability' };\n\t\t\tdelete this.modData('Pokedex', i).requiredItem;\n\t\t}\n\t},\n\tactions: {\n\t\tinherit: true,\n\t\tcanMegaEvo(pokemon) {\n\t\t\treturn checkMegaForme(pokemon.baseSpecies, 'Mega', this.battle);\n\t\t},\n\t\tcanMegaEvoX(pokemon) {\n\t\t\treturn checkMegaForme(pokemon.baseSpecies, 'Mega-X', this.battle);\n\t\t},\n\t\tcanMegaEvoY(pokemon) {\n\t\t\treturn checkMegaForme(pokemon.baseSpecies, 'Mega-Y', this.battle);\n\t\t},\n\t\trunMegaEvo(pokemon) {\n\t\t\tconst speciesid = pokemon.canMegaEvo || pokemon.canMegaEvoX || pokemon.canMegaEvoY;\n\t\t\tif (!speciesid) return false;\n\n\t\t\tpokemon.formeChange(speciesid, null, true);\n\t\t\tthis.battle.add('-mega', pokemon, this.dex.species.get(speciesid).baseSpecies);\n\n\t\t\t// Limit one mega evolution\n\t\t\tfor (const ally of pokemon.side.pokemon) {\n\t\t\t\tally.canMegaEvo = null;\n\t\t\t\tally.canMegaEvoX = null;\n\t\t\t\tally.canMegaEvoY = null;\n\t\t\t}\n\n\t\t\tthis.battle.runEvent('AfterMega', pokemon);\n\t\t\treturn true;\n\t\t},\n\t\trunMegaEvoX(pokemon) {\n\t\t\tif (!pokemon.canMegaEvoX) return false;\n\t\t\tpokemon.canMegaEvoY = null;\n\t\t\treturn this.runMegaEvo(pokemon);\n\t\t},\n\t\trunMegaEvoY(pokemon) {\n\t\t\tif (!pokemon.canMegaEvoY) return false;\n\t\t\tpokemon.canMegaEvoX = null;\n\t\t\treturn this.runMegaEvo(pokemon);\n\t\t},\n\t},\n\t/**\n\t * Given a table of base stats and a pokemon set, return the actual stats.\n\t */\n\tspreadModify(baseStats, set) {\n\t\tconst modStats: StatsTable = { hp: 10, atk: 10, def: 10, spa: 10, spd: 10, spe: 10 };\n\t\tlet statName: StatID;\n\t\tfor (statName in modStats) {\n\t\t\tconst stat = baseStats[statName];\n\t\t\tmodStats[statName] = Math.floor((Math.floor(2 * stat + set.ivs[statName]) * set.level / 100 + 5));\n\t\t}\n\t\tif ('hp' in baseStats) {\n\t\t\tconst stat = baseStats['hp'];\n\t\t\tmodStats['hp'] = Math.floor(Math.floor(2 * stat + set.ivs['hp'] + 100) * set.level / 100 + 10);\n\t\t}\n\t\treturn this.natureModify(modStats, set);\n\t},\n\n\t/**\n\t * @param {StatsTable} stats\n\t * @param {PokemonSet} set\n\t * @return {StatsTable}\n\t */\n\tnatureModify(stats, set) {\n\t\tconst nature = this.dex.natures.get(set.nature);\n\t\tif (nature.plus) stats[nature.plus] = Math.floor(stats[nature.plus] * 1.1);\n\t\tif (nature.minus) stats[nature.minus] = Math.floor(stats[nature.minus] * 0.9);\n\t\tset.happiness = 70;\n\t\tconst friendshipValue = Math.floor((set.happiness / 255 / 10 + 1) * 100);\n\t\tlet stat: StatID;\n\t\tfor (stat in stats) {\n\t\t\tif (stat !== 'hp') {\n\t\t\t\tstats[stat] = Math.floor(stats[stat] * friendshipValue / 100);\n\t\t\t}\n\t\t\tstats[stat] += set.evs[stat];\n\t\t}\n\t\treturn stats;\n\t},\n};\n"],
"mappings": "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",
"names": []
}