Use boost value function to simplify boost calculation code

This commit is contained in:
urkerab 2015-12-29 22:48:32 +00:00
parent e28316d48d
commit 7048d49db1

View File

@ -58,35 +58,11 @@ var BattleTooltips = (function () {
return 0;
};
BattleTooltips.prototype.boostBasePower = function (BattleRoom, move, pokemon, basePower, basePowerComment) {
var myPokemon = BattleRoom.myPokemon[pokemon.slot];
if (myPokemon.item && !BattleRoom.battle.hasPseudoWeather('Magic Room') && (!pokemon.volatiles || !pokemon.volatiles['embargo'])) {
var item = Tools.getItem(myPokemon.item);
var moveType = BattleRoom.getMoveType(move, pokemon);
var splitItemName = item.name.split(' ');
var moveName = move.name;
// Gems
if (splitItemName[1] == 'Gem' && moveType == splitItemName[0] && moveName != 'Struggle' && moveName != 'Water Pledge' && moveName != 'Grass Pledge' && moveName != 'Fire Pledge' && moveName != 'Fling') {
basePower *= BattleRoom.battle.gen >= 6 ? 1.3 : 1.5;
basePowerComment += ' (Boosted by ' + item.name + ')';
}
// Plates
if (splitItemName[1] == 'Plate' && item.onPlate && moveType == item.onPlate) {
basePower *= 1.2;
basePowerComment += ' (Boosted by ' + item.name + ')';
}
// Type-enhancing items
if (item.name == 'Black Belt' && moveType == 'Fighting' || item.name == 'Black Glasses' && moveType == 'Dark' || item.name == 'Charcoal' && moveType == 'Fire' || item.name == 'Dragon Fang' && moveType == 'Dragon' || item.name == 'Hard Stone' && moveType == 'Rock' || item.name == 'Magnet' && moveType == 'Electric' || item.name == 'Metal Coat' && moveType == 'Steel' || item.name == 'Miracle Seed' && moveType == 'Grass' || item.name == 'Mystic Water' && moveType == 'Water' || item.name == 'Never-Melt Ice' && moveType == 'Ice' || item.name == 'Poison Barb' && moveType == 'Poison' || item.name == 'Sharp Beak' && moveType == 'Flying' || item.name == 'Silk Scarf' && moveType == 'Normal' || item.name == 'SilverPowder' && moveType == 'Bug' || item.name == 'Soft Sand' && moveType == 'Ground' || item.name == 'Spell Tag' && moveType == 'Ghost' || item.name == 'TwistedSpoon' && moveType == 'Psychic') {
basePower *= BattleRoom.battle.gen >= 4 ? 1.2 : 1.1;
basePowerComment += ' (Boosted by ' + item.name + ')';
}
// Incenses
if ((item.name == 'Wave Incense' || item.name == 'Sea Incense') && moveType == 'Water' || item.name == 'Rose Incense' && moveType == 'Grass' || item.name == 'Rock Incense' && moveType == 'Rock' || item.name == 'Odd Incense' && moveType == 'Psychic') {
basePower *= 1.2;
basePowerComment += ' (Boosted by ' + item.name + ')';
}
basePower = Math.floor(basePower);
var itemBoost = this.getItemBoost(BattleRoom, move, pokemon);
if (itemBoost) {
basePower = Math.floor(basePower * itemBoost);
var myPokemon = BattleRoom.myPokemon[pokemon.slot];
basePowerComment += ' (Boosted by ' + Tools.getItem(myPokemon.item).name + ')';
}
return basePower + basePowerComment;
};
@ -97,32 +73,15 @@ var BattleTooltips = (function () {
if (min <= 60) min *= 1.5;
if (max <= 60) max *= 1.5;
}
var itemCheck = false;
if (myPokemon.item && !BattleRoom.battle.hasPseudoWeather('Magic Room') && (!pokemon.volatiles || !pokemon.volatiles['embargo'])) {
var item = Tools.getItem(myPokemon.item);
var moveType = BattleRoom.getMoveType(move, pokemon);
var splitItemName = item.name.split(' ');
var moveName = move.name;
if (splitItemName[1] == 'Gem' && moveType == splitItemName[0]) {
min *= BattleRoom.battle.gen >= 6 ? 1.3 : 1.5;
max *= BattleRoom.battle.gen >= 6 ? 1.3 : 1.5;
itemCheck = true;
}
if (splitItemName[1] == 'Plate' && item.onPlate && moveType == item.onPlate) {
min *= 1.2;
max *= 1.2;
itemCheck = true;
}
if (item.name == 'Magnet' && moveType == 'Electric' || item.name == 'Metal Coat' && moveType == 'Steel') {
min *= BattleRoom.battle.gen >= 4 ? 1.2 : 1.1;
max *= BattleRoom.battle.gen >= 4 ? 1.2 : 1.1;
itemCheck = true;
}
var itemBoost = this.getItemBoost(BattleRoom, move, pokemon);
if (itemBoost) {
min *= itemBoost;
max *= itemBoost;
}
var basePowerComment = min === max ? '' : Math.floor(min) + ' to ';
basePowerComment += Math.floor(max);
if (technician) basePowerComment += ' (Technician boosted)';
if (itemCheck) basePowerComment += ' (Boosted by ' + Tools.getItem(myPokemon.item).name + ')';
if (itemBoost) basePowerComment += ' (Boosted by ' + Tools.getItem(myPokemon.item).name + ')';
return basePowerComment;
};
return BattleTooltips;