diff --git a/js/client-battle-tooltips.js b/js/client-battle-tooltips.js index aac19a389..74942fca9 100644 --- a/js/client-battle-tooltips.js +++ b/js/client-battle-tooltips.js @@ -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;