pokemon-showdown/mods/mixandmega/items.js
2016-09-04 04:41:12 +04:00

69 lines
2.6 KiB
JavaScript

'use strict';
exports.BattleItems = {
blueorb: {
inherit: true,
onSwitchIn: function (pokemon) {
if (pokemon.isActive && !pokemon.template.isPrimal) {
this.insertQueue({pokemon: pokemon, choice: 'runPrimal'});
}
},
onPrimal: function (pokemon) {
let template = this.getMixedTemplate(pokemon.originalSpecies, 'Kyogre-Primal');
pokemon.formeChange(template);
pokemon.baseTemplate = template;
if (pokemon.originalSpecies === 'Kyogre') {
pokemon.details = template.species + (pokemon.level === 100 ? '' : ', L' + pokemon.level) + (pokemon.set.shiny ? ', shiny' : '');
this.add('detailschange', pokemon, pokemon.details);
} else {
if (pokemon.illusion) pokemon.ability = '';
let oTemplate = this.getTemplate(pokemon.illusion || pokemon.originalSpecies);
this.add('-formechange', pokemon, oTemplate.species);
this.add('-start', pokemon, 'Blue Orb', '[silent]');
}
this.add('-primal', pokemon.illusion || pokemon);
pokemon.setAbility(template.abilities['0']);
pokemon.baseAbility = pokemon.ability;
},
onTakeItem: function (item) {
return false;
},
},
redorb: {
inherit: true,
onSwitchIn: function (pokemon) {
if (pokemon.isActive && !pokemon.template.isPrimal) {
this.insertQueue({pokemon: pokemon, choice: 'runPrimal'});
}
},
onPrimal: function (pokemon) {
let template = this.getMixedTemplate(pokemon.originalSpecies, 'Groudon-Primal');
pokemon.formeChange(template);
pokemon.baseTemplate = template;
if (pokemon.originalSpecies === 'Groudon') {
pokemon.details = template.species + (pokemon.level === 100 ? '' : ', L' + pokemon.level) + (pokemon.set.shiny ? ', shiny' : '');
this.add('detailschange', pokemon, pokemon.details);
} else {
let oTemplate = this.getTemplate(pokemon.illusion || pokemon.originalSpecies);
this.add('-formechange', pokemon, oTemplate.species);
this.add('-start', pokemon, 'Red Orb', '[silent]');
if (pokemon.illusion) {
pokemon.ability = '';
let types = pokemon.illusion.template.types;
if (types.length > 1 || types[types.length - 1] !== 'Fire') {
this.add('-start', pokemon, 'typechange', (types[0] !== 'Fire' ? types[0] + '/' : '') + 'Fire', '[silent]');
}
} else if (oTemplate.types.length !== pokemon.template.types.length || oTemplate.types[1] !== pokemon.template.types[1]) {
this.add('-start', pokemon, 'typechange', pokemon.template.types.join('/'), '[silent]');
}
}
this.add('-primal', pokemon.illusion || pokemon);
pokemon.setAbility(template.abilities['0']);
pokemon.baseAbility = pokemon.ability;
},
onTakeItem: function (item) {
return false;
},
},
};