Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const NoteTypes = {
- info: 0,
- success: 1,
- warning: 2,
- danger: 3,
- primary: 4,
- secondary: 5,
- dark: 6,
- light: 7,
- }
- // helpers for logging to check toggle and do coloring
- const offLog = (m) => {if(cheatLogs.toggles) Notifier.notify({timeout: 60*1000,type: NoteTypes.danger, message: `${m} OFF`})};
- const onLog = (m) => {if(cheatLogs.toggles) Notifier.notify({timeout: 60*1000,type: NoteTypes.success, message: `${m} ON`})};
- const checkLog = (m) => {if(cheatLogs.checks) Notifier.notify({timeout: 1*1000,type: NoteTypes.warning, message: `${m} check...`})};
- const fireLog = (m) => {if(cheatLogs.fires) Notifier.notify({timeout: 5*1000,type: NoteTypes.info, message: m})};
- const cheatHelpers = {
- guessSteps: (pkmn, carbos, calcium, protein) => {
- const div = 300;
- const extraCycles = (calcium + protein) / 2;
- const steps = App.game.breeding.getSteps(pkmn.eggCycles + extraCycles);
- return steps <= div ? steps : Math.round((Math.pow((steps / div), (1 - carbos / 70))) * div);
- },
- guessBonus: (pkmn, carbos, calcium, protein) => {
- const attackBonusPercent = (GameConstants.BREEDING_ATTACK_BONUS + calcium) / 100;
- const proteinBoost = protein;
- return Math.floor((pkmn.baseAttack * attackBonusPercent) + proteinBoost);
- },
- getSizes: (pkmn) => {
- let max = {
- r: 0,
- carbos:0,
- calcium:0,
- protein:0,
- steps: 0,
- bonus: 0,
- cost: 0,
- };
- const regionBonus = BreedingController.calculateRegionalMultiplier(pkmn);
- const evbonus = pkmn.calculateEVAttackBonus();
- const carbosPrice = ItemList.Carbos.totalPrice(1);
- const calciumPrice = ItemList.Calcium.totalPrice(1);
- const proteinPrice = ItemList.Protein.totalPrice(1);
- for(let carbos = 0; carbos <= 40; carbos++){
- for(let calcium = 0; calcium <= 40 - carbos; calcium++){
- for(let protein = 0; protein <= 40 - carbos - calcium; protein++){
- const steps = cheatHelpers.guessSteps(pkmn, carbos, calcium, protein);
- const bonus = cheatHelpers.guessBonus(pkmn, carbos, calcium, protein)
- const cost = ItemList.Carbos.totalPrice(carbos) + ItemList.Calcium.totalPrice(calcium) + ItemList.Protein.totalPrice(protein);
- const r = (bonus * regionBonus * evbonus) / steps ;
- if(r > max.r || (r === max.r && cost < max.cost)){
- max = {r, carbos, calcium, protein, steps, bonus, cost};
- }
- }
- }
- }
- return max;
- },
- // uses the pokemon augmented by getSizes
- applyVitamins: (obj) => {
- const {pkmn, carbos, calcium, protein} = obj;
- if(player.itemList.Carbos() > 0 && carbos > 0) pkmn.useVitamin(GameConstants.VitaminType.Carbos, Math.min(player.itemList.Carbos(),carbos));
- if(player.itemList.Calcium() > 0 && calcium > 0) pkmn.useVitamin(GameConstants.VitaminType.Calcium, Math.min(player.itemList.Calcium(),calcium));
- if(player.itemList.Protein() > 0 && protein > 0) pkmn.useVitamin(GameConstants.VitaminType.Protein, Math.min(player.itemList.Protein(),protein));
- },
- applySpareVitamins: (obj) => {
- const {pkmn} = obj;
- if(pkmn.vitaminUsesRemaining() && player.itemList.Carbos() > 0) pkmn.useVitamin(GameConstants.VitaminType.Carbos, Infinity);
- if(pkmn.vitaminUsesRemaining() && player.itemList.Calcium() > 0) pkmn.useVitamin(GameConstants.VitaminType.Calcium, Infinity);
- if(pkmn.vitaminUsesRemaining() && player.itemList.Protein() > 0) pkmn.useVitamin(GameConstants.VitaminType.Protein, Infinity);
- }
- }
- const cheat = {
- setVitamins: () => {let pkmnList = PartyController.getvitaminSortedList().filter(p => !p.hideFromProteinList());
- pkmnList = pkmnList.map(pkmn => ({pkmn, ...(cheatHelpers.getSizes(pkmn))}))
- pkmnList.forEach(cheatHelpers.applyVitamins);
- Notifier.notify({timeout: 5*1000,type: NoteTypes.info, message: 'Vitamins applied as optimally as possible'});
- pkmnList.forEach(cheatHelpers.applySpareVitamins);
- Notifier.notify({timeout: 5*1000,type: NoteTypes.info, message: 'Used remaining vitamins'});
- },
- setOptimalVitamins: () => {let pkmnList = App.game.party.caughtPokemon;
- if(Settings.getSetting('vitaminHideShinyPokemon').observableValue()) {
- pkmnList = pkmnList.filter(pkmn => !pkmn.shiny)
- }
- pkmnList = pkmnList.map(pkmn => ({pkmn, ...(cheatHelpers.getSizes(pkmn))}))
- pkmnList = pkmnList.sort((a,b) => b.r - a.r);
- pkmnList.forEach(cheatHelpers.applyVitamins);
- Notifier.notify({timeout: 5*1000,type: NoteTypes.info, message: 'Vitamins applied as optimally as possible'});
- pkmnList.forEach(cheatHelpers.applySpareVitamins);
- Notifier.notify({timeout: 5*1000,type: NoteTypes.info, message: 'Used remaining vitamins'});
- },
- }
- document.getElementById('right-column-2').insertAdjacentHTML('beforeEnd', '<div id="cheatsContainer" class="card sortable border-secondary mb-3" draggable="false" style=""><div class="card-header p-0" data-toggle="collapse" href="#cheatsBody"><span style="text-align: center">Vitamins</span></div><div id="cheatsBody" class="card-body show p-0"><table class="table table-sm m-0"><tbody id="cheatsTable"></tbody></table></div></div>')
- document.getElementById('cheatsTable').insertAdjacentHTML('beforeEnd','<tr><td><button id="cheatSetVitamins" class="btn btn-danger btn-sm btn-block p-0" onClick="cheat.setVitamins()">Set Vitamins (Ordered)</button></td></tr>');
- document.getElementById('cheatsTable').insertAdjacentHTML('beforeEnd','<tr><td><button id="cheatSetOptimalVitamins" class="btn btn-danger btn-sm btn-block p-0" onClick="cheat.setOptimalVitamins()">Set Vitamins (Optimal)</button></td></tr>');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement