From 3ff4daeaa22fad2b2ac072b3fb1402deccb53b89 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Wed, 28 Mar 2018 21:22:24 +0100 Subject: [PATCH 001/365] Merge buyUpgrades & Manual Coords Merge FinishDailyZone Add things to on/off toggle --- AutoTrimps2.js | 2 +- SettingsGUI.js | 32 +++++++++++++++++++++----------- modules/portal.js | 4 ++-- modules/upgrades.js | 2 +- 4 files changed, 25 insertions(+), 15 deletions(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index b9706d344..057add7d5 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -192,7 +192,7 @@ function mainLoop() { //EXECUTE CORE LOGIC if (getPageSetting('ExitSpireCell') >0) exitSpireCell(); //"Exit Spire After Cell" (other.js) - if (getPageSetting('BuyUpgrades')) buyUpgrades(); //"Buy Upgrades" (upgrades.js) + if (getPageSetting('BuyUpgradesNew') != 0) buyUpgrades(); //"Buy Upgrades" (upgrades.js) var agu = getPageSetting('AutoGoldenUpgrades'); if (agu && agu!='Off') autoGoldenUpgradesAT(agu); //"Golden Upgrades" (other.js) if (getPageSetting('BuyBuildingsNew')===0); //"Buy Neither" (Buildings.js) diff --git a/SettingsGUI.js b/SettingsGUI.js index dc358f2e1..d5504b4a7 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -238,27 +238,28 @@ function initializeAllSettings() { //CORE: //Line1: createSetting('ManualGather2', ['Manual Gather/Build', 'Auto Gather/Build', 'Auto Gather/Build #2', 'Science Research OFF'], 'Controls what YOU do. Manual does nothing
The Decision between AutoGather 1 or 2 is up to you, and they should be similar. Auto Gathering of Food,Wood,Metal(w/turkimp) & Science. Auto speed-Builds your build queue.
You can disable science researching for the achievement: Reach Z120 without using manual research.', 'multitoggle', 1, null, "Core"); - createSetting('BuyUpgrades', 'Buy Upgrades', 'Autobuys non-equipment upgrades (those are controlled separately in the Gear tab).', 'boolean', true, null, "Core"); + createSettings('BuyUpgradesNew'), ['Manual Upgrades', 'Buy All upgrades', 'Upgrades no Coords'], 'Autobuys non-equipment upgrades (equipment is controlled in the Gear tab). The second option does NOT buy coordination (use this ONLY if you know what you\'re doing).', 'multitoggle', 1, null, "Core"); //createSetting('ManageBreedtimerNew', ['Manual Breed Timer', 'Auto Breed Timer', 'Auto No Patience'], 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges, and accounts for the patience mastery.
[ON](Yellow): The same as above, but ignores patience and will not set a breed timer longer than 30s.
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'multitoggle', 1, null, "Core"); //This replaces the two settings below, but do we really need an option to ignore patience?? createSetting('ManageBreedtimer', 'Auto Breed Timer', 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges (0, 3.5s, 10s, 30s).
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'boolean', true, null, "Core"); createSetting('GeneticistTimer', 'Geneticist Timer', 'Manages the breed timer by hiring/firing Geneticists for the purpose of setting the ideal anticpation stacks. Disable with -1 to disable the Hiring/Firing of geneticists.
Info: Potency and Nursery buying behavior is adjusted dynamically (and disabling no longer disables potency). The Automatic Genetecist Hiring Process can best be summarized by: Buy/Wait/Die,Repeat. (if you do not die, no action is taken). Also self-kills (trimpicide) aka force abandon when your anti-stacks aren\'t maxed out (conservatively).

Controlled automatically (locked) when Auto Breed Timer is on.', 'value', '30', null, "Core"); createSetting('SpireBreedTimer', 'Spire Breed Timer', 'Overrides the normal breed timer for the Spire (Affected by ignore spires until zone in Maps tab). Use -1 to disable this special setting.', 'value', -1, null, 'Core'); createSetting('BreedFire', 'Breed Fire', 'OPTIONAL. Fire Lumberjacks and Miners to speed up breeding when needed. Basically trades wood/metal to cut the wait between deaths down. Disclaimer: May heavily negatively impact wood-gathering. ', 'boolean', false, null, 'Core'); - createSetting('ManualCoords', 'Don\'t buy Coords', 'OPTIONAL. Enable this ONLY if you know what you\'re doing, disable it if you don\'t know what you\'re doing. For when manually handling coords means a lot on challenges like Trapper.', 'boolean', false, null, 'Core'); + createSetting('TrapTrimps', 'Trap Trimps', 'Automatically trap trimps when needed, including building traps. (when you turn this off, you may aswell turn off the in-game autotraps button, think of the starving trimps that could eat that food!)', 'boolean', true, null, "Core"); + document.getElementById('TrapTrimps').parentNode.insertAdjacentHTML('afterend','
'); //Line2 createSetting('AutoAllocatePerks', 'Auto Allocate Perks', 'Uses the AutoPerks ratio based preset system to automatically allocate your perks to spend whatever helium you have when you AutoPortal. ', 'boolean', false, null, 'Core'); createSetting('AutoStartDaily', 'Auto Start Daily', 'With this on, the Auto Portal options will portal you into and auto-start the daily whenever available. Starts from the oldest available, and works forwards. Falls back to selected challenge when there are no more dailies available.', 'boolean', false, null, 'Core'); - //createSetting('AutoFinishDailyZoneNew', 'Finish Daily Zone Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option!', 'valueNegative', 0, null, 'Core'); //This should make sense to replace the two below. - createSetting('AutoFinishDaily', 'Auto Finish Daily', 'With this on, the He/Hr Portal and Custom Auto Portal options will auto-finish the daily whenever they trigger and THEN portal you.', 'boolean', true, null, 'Core'); - createSetting('AutoFinishDailyZone', 'Finish Daily Zone Mod', 'Finish Daily by this # of zones earlier/later than your regular Custom AutoPortal zone or your Helium Dont Portal Before zone. When Auto Finish Daily is on. Tip: Tune your value of He/HrDontPortalBefore to suit the daily, and then tune this. Can accept negative numbers for earlier, ie: -7 means portal 7 zones earlier than normal. Can also use positive numbers to DELAY portaling for later. When used with He/Hr AutoPortal, the number of zones early does not FORCE end the daily at that zone, only ALLOW it to end that early: it will Always end when your HE/hr drops enough to trigger the portal. Use 0 to disable.', 'valueNegative', 0, null, 'Core'); + createSetting('AutoFinishDailyNew', 'Finish Daily Zone Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option or set this to 999!', 'valueNegative', 999, null, 'Core'); //This should make sense to replace the two below. + //OLD createSetting('AutoFinishDaily', 'Auto Finish Daily', 'With this on, the He/Hr Portal and Custom Auto Portal options will auto-finish the daily whenever they trigger and THEN portal you.', 'boolean', true, null, 'Core'); + //OLD createSetting('AutoFinishDailyZone', 'Finish Daily Zone Mod', 'Finish Daily by this # of zones earlier/later than your regular Custom AutoPortal zone or your Helium Dont Portal Before zone. When Auto Finish Daily is on. Tip: Tune your value of He/HrDontPortalBefore to suit the daily, and then tune this. Can accept negative numbers for earlier, ie: -7 means portal 7 zones earlier than normal. Can also use positive numbers to DELAY portaling for later. When used with He/Hr AutoPortal, the number of zones early does not FORCE end the daily at that zone, only ALLOW it to end that early: it will Always end when your HE/hr drops enough to trigger the portal. Use 0 to disable.', 'valueNegative', 0, null, 'Core'); createSetting('FinishC2', 'Finish Challenge2', 'Finish / Abandon Challenge2 (any) when this zone is reached, if you are running one. For manual use. Recommended: Zones ending with 0 for most Challenge2. Disable with -1. Does not affect Non-Challenge2 runs.', 'value', -1, null, 'Core'); if (game.worldUnlocks.easterEgg) createSetting('AutoEggs', 'AutoEggs', 'Click easter egg if it exists, upon entering a new zone. Warning: Quite overpowered. Please solemnly swear that you are up to no good.', 'boolean', false, null, 'Core'); //could really be removed?? createSetting('UsePatience', 'Enable Patience', 'Sets the default breed timer to 45 seconds if you have the Patience mastery.', 'boolean', true, null, 'Core'); - createSetting('TrapTrimps', 'Trap Trimps', 'Automatically trap trimps when needed, including building traps. (when you turn this off, you may aswell turn off the in-game autotraps button, think of the starving trimps that could eat that food!)', 'boolean', true, null, "Core"); + document.getElementById('UsePatience').parentNode.insertAdjacentHTML('afterend','
'); + //NewLine3 For Autoportal, it would be nice to add a 5s countdown, like with magma spending. - document.getElementById('TrapTrimps').parentNode.insertAdjacentHTML('afterend','
'); createSetting('AutoPortal', 'Auto Portal', 'Automatically portal. Will NOT auto-portal if you have a challenge active, the challenge setting dictates which challenge it will select for the next run. All challenge settings will portal right after the challenge ends, regardless. Helium Per Hour only portals at cell 1 of the first level where your He/Hr went down even slightly compared to the current runs Best He/Hr. Take note, there is a Buffer option, which is like a grace percentage of how low it can dip without triggering. Setting a buffer will portal mid-zone if you exceed 5x of the buffer. CAUTION: Selecting He/hr may immediately portal you if its lower-(use Pause AutoTrimps button to pause the script first to avoid this)', 'dropdown', 'Off', ['Off', 'Helium Per Hour', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted', 'Custom'], "Core"); //document.getElementById("AutoPortal").style="font-size: 1.0vw;"; //fit it on 1 line. createSetting('HeliumHourChallenge', 'Portal Challenge:', 'Automatically portal into this challenge when using helium per hour or custom autoportal. Custom portals after cell 100 of the zone specified. ', 'dropdown', 'None', ['None', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted'], "Core"); @@ -349,6 +350,9 @@ function initializeAllSettings() { createSetting('MaxMapBonusAfterZone', 'Max MapBonus After', 'Always gets Max Map Bonus from this zone on. (inclusive and after).
NOTE: Set -1 to disable entirely (default). Set 0 to use it always.
Advanced:User can set a lower number than the default 10 maps with the AT hidden console command: MODULES[\\"maps\\"].maxMapBonusAfterZ = 9;', 'value', '-1', null, 'Maps'); createSetting('DisableFarm', 'Disable Farming', 'Disables the extended farming algorithm of the AutoMaps part of the script. Always returns to the world after reaching 10 map stacks. Use at your own risk. (No need to refresh anymore)', 'boolean', false, null, 'Maps'); createSetting('LowerFarmingZone', 'Lower Farming Zone', 'Lowers the zone used during Farming mode. Uses the dynamic siphonology code, to Find the minimum map level you can successfully one-shot, and uses this level for any maps done after the first 10 map stacks. The difference being it goes LOWER than what Siphonology gives you map-bonus for, but after 10 stacks you dont need bonus, you just want to do maps that you can one-shot. Goes as low as 10 below current zone if your damage is that bad, but this is extreme and indicates you should probably portal.', 'boolean', true, null, 'Maps'); + createSetting('FarmWhenNomStacks7', 'Farm on >7 NOMstacks', 'Optional. If Improbability already has 5 NOMstacks, stack 30 Anticipation. If the Improbability has >7 NOMstacks on it, get +200% dmg from MapBonus. If we still cant kill it, enter Farming mode at 30 stacks, Even with DisableFarming On! (exits when we get under 10x). Farms if we hit 100 stacks in the world. If we ever hit (100) nomstacks in a map (likely a voidmap), farm, (exit the voidmap) and (prevent void from running, until situation is clear). Restarts any voidmaps if we hit 100 stacks. ', 'boolean', false, null, 'Maps'); + + //Line2 createSetting('MaxStacksForSpire', 'Max Map Bonus for Spire', 'Get max map bonus before running the Spire.', 'boolean', false, null, 'Maps'); //Does farm before spire not cover this fairly well anyway? grabbing +1 equips would make way more difference anyway createSetting('MinutestoFarmBeforeSpire', 'Farm Before Spire', 'Farm level 200/199(or BW) maps for X minutes before continuing onto attempting Spire.
NOTE: Set 0 to disable entirely (default).
Setting to -1/Infinite does not work here, set a very high number instead.', 'value', '0', null, 'Maps'); @@ -356,7 +360,8 @@ function initializeAllSettings() { createSetting('RunBionicBeforeSpire', 'Run Bionic Before Spire', 'CAUTION: Runs Bionic Wonderlands and repeatedly farms Bionic VI @ level 200 before attempting Spire, for the purpose of resource farming. Then it attempts the spire. The Minutes-Before-Spire timer runs concurrently to this, and needs to be set. If not set, it will exit without doing any Bionics... You can un-toggle it on the fly.
NOTE: Turning this on also mandates that Run Unique Maps be on.
WARNING: These 100 square maps take ~3x longer than normal maps.
WARNING: If you dont have Bionic Magnet mastery, this will run the 5 pre-requisites and take longer.
NOTE: In fact, it may not be what you want at all.', 'boolean', false, null, 'Maps'); //OUTDATED! createSetting('ExitSpireCell', 'Exit Spire After Cell', 'Optional/Rare. Exits the Spire early, after completing cell X. example: 40 for Row 4. (use 0 or -1 to disable)', 'value', '-1', null, 'Maps'); createSetting('CorruptionCalc', 'Corruption Farm Mode', 'Recommended. Enabling this will cause the Automaps routine to take amount of corruption in a zone into account, to decide whether it should do maps first for map bonus. ONLY in Zone 181+ (or Headstart 1,2,3 zone: 176,166,151) ', 'boolean', true, null, 'Maps'); - createSetting('FarmWhenNomStacks7', 'Farm on >7 NOMstacks', 'Optional. If Improbability already has 5 NOMstacks, stack 30 Anticipation. If the Improbability has >7 NOMstacks on it, get +200% dmg from MapBonus. If we still cant kill it, enter Farming mode at 30 stacks, Even with DisableFarming On! (exits when we get under 10x). Farms if we hit 100 stacks in the world. If we ever hit (100) nomstacks in a map (likely a voidmap), farm, (exit the voidmap) and (prevent void from running, until situation is clear). Restarts any voidmaps if we hit 100 stacks. ', 'boolean', false, null, 'Maps'); + createSetting('MaxTox', 'Max Toxicity Stacks', 'Get maximum toxicity stacks before killing the improbability in each zone 60 and above. Generally only recommended for 1 run to maximize bone portal value. This setting will revert to disabled after a successful Max-Tox run + Toxicity Autoportal.', 'boolean', false, null, 'Maps'); + //Line3 createSetting('VoidMaps', 'Void Maps', 'The zone at which you want all your void maps to be cleared (Cell 96). 0 is off', 'value', '0', null, "Maps"); //createSetting('RunNewVoidsUntilNew', 'Run New Voids Until', '-1 to disable. This allows you to run new Void Maps obtained after the set void map zone. Runs them at Cell 95 by default, unless you set a decimal value indicating the cell (example: 187.75). The number that you put in here will cap what zone new Void Maps will run at, inclusive of the zone you type. CAUTION: May severely slow you down by trying to do too-high level void maps. ', 'value', '-1', null, 'Maps'); //Should replace the two below @@ -364,7 +369,6 @@ function initializeAllSettings() { createSetting('RunNewVoidsUntil', 'New Voids Until', 'Run New Voids Until: Put a cap on what zone new voids will run at, until this zone, inclusive. ', 'value', '-1', null, 'Maps'); //createSetting('VoidsPerZone', 'Voids per Zone', 'Run a max of this many Voids per zone, if you have a lot of Voids saved up. Then moves onto the next zone and does more voids.', 'value', '-1', null, 'Maps'); createSetting('VoidCheck', 'Void Difficulty Check', 'How many hits to be able to take from a void map boss in X stance before we attempt the map. Higher values will get you stronger (by farming maps for health) before attempting. Disabling this with 0 or -1 translates into a default of surviving 2 hits. I recommend somewhere between 2 and 12 (default is now 6).', 'value', '6', null, 'Maps'); - createSetting('MaxTox', 'Max Toxicity Stacks', 'Get maximum toxicity stacks before killing the improbability in each zone 60 and above. Generally only recommended for 1 run to maximize bone portal value. This setting will revert to disabled after a successful Max-Tox run + Toxicity Autoportal.', 'boolean', false, null, 'Maps'); createSetting('TrimpleZ', 'Trimple Z', 'I don\'t really think doing this automatically is a good idea. You might want to farm for a bit before this, but I\'m not sure if it\'s meaningful at all to make a \'farm X minutes before trimple\' parameter to go along with it. Set it to the zone you want and it will run Trimple of Doom for Ancient Treasure AFTER farming and getting map stacks. If it is a negative number, this will be disabled after a successful run so you can set it differently next time.', 'valueNegative', 0, null, 'Maps'); //in reality this needs another setting to make it farm for a set number of minutes without spending anything. createSetting('AdvMapSpecialModifier', 'Map Special Modifier', 'EXPERIMENTAL. Attempt to select the BEST map special attacks mod. With this on, this will replace the normal behavior. If bugs, please report as this will become more default soon.', 'boolean', false, null, 'Maps'); @@ -812,7 +816,6 @@ function updateCustomButtons() { var doDaily = game.challenges.Daily.filter(); (doDaily) ? turnOn("AutoStartDaily") : turnOff("AutoStartDaily"); (doDaily) ? turnOn("AutoFinishDaily") : turnOff("AutoFinishDaily"); - (doDaily && getPageSetting('AutoFinishDaily')) ? turnOn("AutoFinishDailyZone") : turnOff("AutoFinishDailyZone"); //if custom auto portal is not selected, remove the custom value settingsbox (autoTrimpSettings.AutoPortal.selected == "Custom") ? turnOn("CustomAutoPortal") : turnOff("CustomAutoPortal"); //if HeHr is not selected, remove HeliumHourChallenge settingsbox @@ -828,7 +831,14 @@ function updateCustomButtons() { getPageSetting('AutoStance')==3 ? turnOn("WindStacking") : turnOff("WindStacking"); getPageSetting('AutoStance')!=3 ? turnOn("IgnoreCrits") : turnOff("IgnoreCrits"); //Show and Hide useless settings to reduce UI clutter - var turnonofflist = ["ManualGather2","BuyUpgrades","ManualCoords","UsePatience","TrapTrimps","GymWall","WarpstationWall3","TrainerCaptoTributes"]; + var turnonofflist = [ + "ManualGather2","BuyUpgradesNew","TrapTrimps","UsePatience", + "BuyBuildingsNew","WarpstationCap","WarpstationCoordBuy","MaxHut","MaxHouse","MaxMansion","MaxHotel","MaxResort","MaxGateway","MaxWormhole","MaxCollector","MaxGym","MaxTribute","GymWall","WarpstationWall3", + "Jobs", + "CapEquip2","ForcePresZ","DelayArmorWhenNeeded","BuyShieldblock", + "DynamicSiphonology","PreferMetal","LowerFarmingZone","FarmWhenNomStacks7","RunBionicBeforeSpire","CorruptionCalc","MaxTox","VoidCheck","TrimpleZ", + "DynamicGyms", + "SupplyWall","BuyOneTimeOC","MagmiteExplain"]; if (game.worldUnlocks.easterEgg) turnonofflist.push("AutoEggs"); for (var i in turnonofflist) diff --git a/modules/portal.js b/modules/portal.js index 446e7cf2e..49b44f56a 100644 --- a/modules/portal.js +++ b/modules/portal.js @@ -12,8 +12,8 @@ var zonePostpone = 0; //additional postponement of the zone above. //Decide When to Portal function autoPortal() { if(!game.global.portalActive) return; - var autoFinishDaily = (game.global.challengeActive == "Daily" && getPageSetting('AutoFinishDaily')); - var autoFinishDailyZone = getPageSetting('AutoFinishDailyZone'); + var autoFinishDaily = (game.global.challengeActive == "Daily" && getPageSetting('AutoFinishDailyNew') != 999); + var autoFinishDailyZone = getPageSetting('AutoFinishDailyNew'); if (!autoFinishDaily) autoFinishDailyZone = 0; //dont use stale disabled values switch (autoTrimpSettings.AutoPortal.selected) { diff --git a/modules/upgrades.js b/modules/upgrades.js index 6bc63509b..edd4a2238 100644 --- a/modules/upgrades.js +++ b/modules/upgrades.js @@ -7,7 +7,7 @@ function buyUpgrades() { upgrade = upgradeList[upgrade]; var gameUpgrade = game.upgrades[upgrade]; var available = (gameUpgrade.allowed > gameUpgrade.done && canAffordTwoLevel(gameUpgrade)); - if (upgrade == 'Coordination' && (getPageSetting('ManualCoords') || !canAffordCoordinationTrimps())) continue; + if (upgrade == 'Coordination' && (getPageSetting('BuyUpgradesNew') == 1 || !canAffordCoordinationTrimps())) continue; if (upgrade == 'Shieldblock' && !getPageSetting('BuyShieldblock')) continue; if (upgrade == 'Gigastation' && (game.global.lastWarp ? game.buildings.Warpstation.owned < (Math.floor(game.upgrades.Gigastation.done * getPageSetting('DeltaGigastation')) + getPageSetting('FirstGigastation')) : game.buildings.Warpstation.owned < getPageSetting('FirstGigastation'))) continue; //skip bloodlust during scientist challenges and while we have autofight enabled. From 85281cf15218fa68f453c66049404ce676a5d40e Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Wed, 28 Mar 2018 21:26:31 +0100 Subject: [PATCH 002/365] typo --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index d5504b4a7..79067a23b 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -238,7 +238,7 @@ function initializeAllSettings() { //CORE: //Line1: createSetting('ManualGather2', ['Manual Gather/Build', 'Auto Gather/Build', 'Auto Gather/Build #2', 'Science Research OFF'], 'Controls what YOU do. Manual does nothing
The Decision between AutoGather 1 or 2 is up to you, and they should be similar. Auto Gathering of Food,Wood,Metal(w/turkimp) & Science. Auto speed-Builds your build queue.
You can disable science researching for the achievement: Reach Z120 without using manual research.', 'multitoggle', 1, null, "Core"); - createSettings('BuyUpgradesNew'), ['Manual Upgrades', 'Buy All upgrades', 'Upgrades no Coords'], 'Autobuys non-equipment upgrades (equipment is controlled in the Gear tab). The second option does NOT buy coordination (use this ONLY if you know what you\'re doing).', 'multitoggle', 1, null, "Core"); + createSetting('BuyUpgradesNew'), ['Manual Upgrades', 'Buy All upgrades', 'Upgrades no Coords'], 'Autobuys non-equipment upgrades (equipment is controlled in the Gear tab). The second option does NOT buy coordination (use this ONLY if you know what you\'re doing).', 'multitoggle', 1, null, "Core"); //createSetting('ManageBreedtimerNew', ['Manual Breed Timer', 'Auto Breed Timer', 'Auto No Patience'], 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges, and accounts for the patience mastery.
[ON](Yellow): The same as above, but ignores patience and will not set a breed timer longer than 30s.
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'multitoggle', 1, null, "Core"); //This replaces the two settings below, but do we really need an option to ignore patience?? createSetting('ManageBreedtimer', 'Auto Breed Timer', 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges (0, 3.5s, 10s, 30s).
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'boolean', true, null, "Core"); createSetting('GeneticistTimer', 'Geneticist Timer', 'Manages the breed timer by hiring/firing Geneticists for the purpose of setting the ideal anticpation stacks. Disable with -1 to disable the Hiring/Firing of geneticists.
Info: Potency and Nursery buying behavior is adjusted dynamically (and disabling no longer disables potency). The Automatic Genetecist Hiring Process can best be summarized by: Buy/Wait/Die,Repeat. (if you do not die, no action is taken). Also self-kills (trimpicide) aka force abandon when your anti-stacks aren\'t maxed out (conservatively).

Controlled automatically (locked) when Auto Breed Timer is on.', 'value', '30', null, "Core"); From 5cfe39d8920e04155c8223e2a99ff3ef754f3c65 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Wed, 28 Mar 2018 21:29:31 +0100 Subject: [PATCH 003/365] typo #2 --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 79067a23b..02d898220 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -238,7 +238,7 @@ function initializeAllSettings() { //CORE: //Line1: createSetting('ManualGather2', ['Manual Gather/Build', 'Auto Gather/Build', 'Auto Gather/Build #2', 'Science Research OFF'], 'Controls what YOU do. Manual does nothing
The Decision between AutoGather 1 or 2 is up to you, and they should be similar. Auto Gathering of Food,Wood,Metal(w/turkimp) & Science. Auto speed-Builds your build queue.
You can disable science researching for the achievement: Reach Z120 without using manual research.', 'multitoggle', 1, null, "Core"); - createSetting('BuyUpgradesNew'), ['Manual Upgrades', 'Buy All upgrades', 'Upgrades no Coords'], 'Autobuys non-equipment upgrades (equipment is controlled in the Gear tab). The second option does NOT buy coordination (use this ONLY if you know what you\'re doing).', 'multitoggle', 1, null, "Core"); + createSetting('BuyUpgradesNew', ['Manual Upgrades', 'Buy All upgrades', 'Upgrades no Coords'], 'Autobuys non-equipment upgrades (equipment is controlled in the Gear tab). The second option does NOT buy coordination (use this ONLY if you know what you\'re doing).', 'multitoggle', 1, null, "Core"); //createSetting('ManageBreedtimerNew', ['Manual Breed Timer', 'Auto Breed Timer', 'Auto No Patience'], 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges, and accounts for the patience mastery.
[ON](Yellow): The same as above, but ignores patience and will not set a breed timer longer than 30s.
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'multitoggle', 1, null, "Core"); //This replaces the two settings below, but do we really need an option to ignore patience?? createSetting('ManageBreedtimer', 'Auto Breed Timer', 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges (0, 3.5s, 10s, 30s).
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'boolean', true, null, "Core"); createSetting('GeneticistTimer', 'Geneticist Timer', 'Manages the breed timer by hiring/firing Geneticists for the purpose of setting the ideal anticpation stacks. Disable with -1 to disable the Hiring/Firing of geneticists.
Info: Potency and Nursery buying behavior is adjusted dynamically (and disabling no longer disables potency). The Automatic Genetecist Hiring Process can best be summarized by: Buy/Wait/Die,Repeat. (if you do not die, no action is taken). Also self-kills (trimpicide) aka force abandon when your anti-stacks aren\'t maxed out (conservatively).

Controlled automatically (locked) when Auto Breed Timer is on.', 'value', '30', null, "Core"); From c2a7fcc57de9227abd8f90fc91e0bb872445739d Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Wed, 28 Mar 2018 21:31:34 +0100 Subject: [PATCH 004/365] Too ambitious last time.... --- SettingsGUI.js | 1 - 1 file changed, 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 02d898220..27d89e270 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -834,7 +834,6 @@ function updateCustomButtons() { var turnonofflist = [ "ManualGather2","BuyUpgradesNew","TrapTrimps","UsePatience", "BuyBuildingsNew","WarpstationCap","WarpstationCoordBuy","MaxHut","MaxHouse","MaxMansion","MaxHotel","MaxResort","MaxGateway","MaxWormhole","MaxCollector","MaxGym","MaxTribute","GymWall","WarpstationWall3", - "Jobs", "CapEquip2","ForcePresZ","DelayArmorWhenNeeded","BuyShieldblock", "DynamicSiphonology","PreferMetal","LowerFarmingZone","FarmWhenNomStacks7","RunBionicBeforeSpire","CorruptionCalc","MaxTox","VoidCheck","TrimpleZ", "DynamicGyms", From 396e7dc50ebd9c25cee58188d6bd3154d41c27df Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Wed, 28 Mar 2018 21:58:08 +0100 Subject: [PATCH 005/365] layout changes mostly --- SettingsGUI.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 27d89e270..ce2f4d5fb 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -245,10 +245,8 @@ function initializeAllSettings() { createSetting('SpireBreedTimer', 'Spire Breed Timer', 'Overrides the normal breed timer for the Spire (Affected by ignore spires until zone in Maps tab). Use -1 to disable this special setting.', 'value', -1, null, 'Core'); createSetting('BreedFire', 'Breed Fire', 'OPTIONAL. Fire Lumberjacks and Miners to speed up breeding when needed. Basically trades wood/metal to cut the wait between deaths down. Disclaimer: May heavily negatively impact wood-gathering. ', 'boolean', false, null, 'Core'); createSetting('TrapTrimps', 'Trap Trimps', 'Automatically trap trimps when needed, including building traps. (when you turn this off, you may aswell turn off the in-game autotraps button, think of the starving trimps that could eat that food!)', 'boolean', true, null, "Core"); - document.getElementById('TrapTrimps').parentNode.insertAdjacentHTML('afterend','
'); //Line2 - createSetting('AutoAllocatePerks', 'Auto Allocate Perks', 'Uses the AutoPerks ratio based preset system to automatically allocate your perks to spend whatever helium you have when you AutoPortal. ', 'boolean', false, null, 'Core'); createSetting('AutoStartDaily', 'Auto Start Daily', 'With this on, the Auto Portal options will portal you into and auto-start the daily whenever available. Starts from the oldest available, and works forwards. Falls back to selected challenge when there are no more dailies available.', 'boolean', false, null, 'Core'); createSetting('AutoFinishDailyNew', 'Finish Daily Zone Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option or set this to 999!', 'valueNegative', 999, null, 'Core'); //This should make sense to replace the two below. //OLD createSetting('AutoFinishDaily', 'Auto Finish Daily', 'With this on, the He/Hr Portal and Custom Auto Portal options will auto-finish the daily whenever they trigger and THEN portal you.', 'boolean', true, null, 'Core'); @@ -267,6 +265,7 @@ function initializeAllSettings() { createSetting('CustomAutoPortal', 'Custom Portal', 'Automatically portal AFTER clearing this level.(ie: setting to 200 would portal when you first reach level 201)', 'value', '999', null, "Core"); createSetting('HeHrDontPortalBefore', 'Don\'t Portal Before', 'Do NOT allow Helium per Hour AutoPortal setting to portal BEFORE this level is reached. It is an additional check that prevents drops in helium/hr from triggering autoportal. Set to 0 or -1 to completely disable this check. (only shows up with Helium per Hour set)', 'value', '999', null, "Core"); createSetting('HeliumHrBuffer', 'He/Hr Portal Buffer %', 'IMPORTANT SETTING. When using the He/Hr Autoportal, it will portal if your He/Hr drops by this amount of % lower than your best for current run, default is 0% (ie: set to 5 to portal at 95% of your best). Now with stuck protection - Allows portaling midzone if we exceed set buffer amount by 5x. (ie a normal 2% buffer setting would now portal mid-zone you fall below 10% buffer).', 'value', '0', null, 'Core'); + createSetting('AutoAllocatePerks', 'Auto Allocate Perks', 'Uses the AutoPerks ratio based preset system to automatically allocate your perks to spend whatever helium you have when you AutoPortal. ', 'boolean', false, null, 'Core'); createSetting('PauseScript', 'Pause AutoTrimps', 'Pause AutoTrimps Script (not including the graphs module)', 'boolean', null, null, 'Core'); //code to locate the pause button at lower right var $pauseScript = document.getElementById('PauseScript'); @@ -352,7 +351,6 @@ function initializeAllSettings() { createSetting('LowerFarmingZone', 'Lower Farming Zone', 'Lowers the zone used during Farming mode. Uses the dynamic siphonology code, to Find the minimum map level you can successfully one-shot, and uses this level for any maps done after the first 10 map stacks. The difference being it goes LOWER than what Siphonology gives you map-bonus for, but after 10 stacks you dont need bonus, you just want to do maps that you can one-shot. Goes as low as 10 below current zone if your damage is that bad, but this is extreme and indicates you should probably portal.', 'boolean', true, null, 'Maps'); createSetting('FarmWhenNomStacks7', 'Farm on >7 NOMstacks', 'Optional. If Improbability already has 5 NOMstacks, stack 30 Anticipation. If the Improbability has >7 NOMstacks on it, get +200% dmg from MapBonus. If we still cant kill it, enter Farming mode at 30 stacks, Even with DisableFarming On! (exits when we get under 10x). Farms if we hit 100 stacks in the world. If we ever hit (100) nomstacks in a map (likely a voidmap), farm, (exit the voidmap) and (prevent void from running, until situation is clear). Restarts any voidmaps if we hit 100 stacks. ', 'boolean', false, null, 'Maps'); - //Line2 createSetting('MaxStacksForSpire', 'Max Map Bonus for Spire', 'Get max map bonus before running the Spire.', 'boolean', false, null, 'Maps'); //Does farm before spire not cover this fairly well anyway? grabbing +1 equips would make way more difference anyway createSetting('MinutestoFarmBeforeSpire', 'Farm Before Spire', 'Farm level 200/199(or BW) maps for X minutes before continuing onto attempting Spire.
NOTE: Set 0 to disable entirely (default).
Setting to -1/Infinite does not work here, set a very high number instead.', 'value', '0', null, 'Maps'); @@ -453,7 +451,7 @@ function initializeAllSettings() { document.getElementById('battleSideTitle').setAttribute('onclick','MODULES["performance"].EnableAFKMode()'); document.getElementById('battleSideTitle').setAttribute('onmouseover', "getZoneStats(event);this.style.cursor='pointer'"); createSetting('ChangeLog', 'Show Changelog', '(Action Button). Shows the changelog popup message that AT loads on startup again, in case you missed it. The blue color means this is not a settable setting, just a button.', 'action', 'printChangelog()', null, 'Display'); - createSetting('ShowSettings', 'Show Extra Settings', 'Show/Hide settings that are rarely useful', 'boolean', true, null, 'Display') + createSetting('ShowSettings', 'Show Extra Settings', 'Show/Hide settings that in my personal opinion, are rarely useful (HZE 470)', 'boolean', true, null, 'Display') document.getElementById('Display').lastChild.insertAdjacentHTML('afterend','
'); //SPAM settings: @@ -833,11 +831,13 @@ function updateCustomButtons() { //Show and Hide useless settings to reduce UI clutter var turnonofflist = [ "ManualGather2","BuyUpgradesNew","TrapTrimps","UsePatience", - "BuyBuildingsNew","WarpstationCap","WarpstationCoordBuy","MaxHut","MaxHouse","MaxMansion","MaxHotel","MaxResort","MaxGateway","MaxWormhole","MaxCollector","MaxGym","MaxTribute","GymWall","WarpstationWall3", - "CapEquip2","ForcePresZ","DelayArmorWhenNeeded","BuyShieldblock", + "BuyBuildingsNew","WarpstationCap","WarpstationCoordBuy","MaxHut","MaxHouse","MaxMansion","MaxHotel","MaxResort","MaxGateway","MaxWormhole","MaxCollector","MaxGym","MaxTribute","GymWall","FirstGigastation","DeltaGigastation""WarpstationWall3", + "CapEquip2","DelayArmorWhenNeeded","BuyShieldblock", "DynamicSiphonology","PreferMetal","LowerFarmingZone","FarmWhenNomStacks7","RunBionicBeforeSpire","CorruptionCalc","MaxTox","VoidCheck","TrimpleZ", "DynamicGyms", - "SupplyWall","BuyOneTimeOC","MagmiteExplain"]; + "SupplyWall","BuyOneTimeOC","MagmiteExplain", + "SpamGeneral","SpamUpgrades","SpamEquipment","SpamMaps","SpamOther","SpamBuilding","SpamJobs","SpamGraphs","SpamMagmite","SpamPerks", + ]; if (game.worldUnlocks.easterEgg) turnonofflist.push("AutoEggs"); for (var i in turnonofflist) From d3306280cf0e802e0ceca6d4c92ade09fb591e2d Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Wed, 28 Mar 2018 22:00:15 +0100 Subject: [PATCH 006/365] typo again --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index ce2f4d5fb..26390fce4 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -831,7 +831,7 @@ function updateCustomButtons() { //Show and Hide useless settings to reduce UI clutter var turnonofflist = [ "ManualGather2","BuyUpgradesNew","TrapTrimps","UsePatience", - "BuyBuildingsNew","WarpstationCap","WarpstationCoordBuy","MaxHut","MaxHouse","MaxMansion","MaxHotel","MaxResort","MaxGateway","MaxWormhole","MaxCollector","MaxGym","MaxTribute","GymWall","FirstGigastation","DeltaGigastation""WarpstationWall3", + "BuyBuildingsNew","WarpstationCap","WarpstationCoordBuy","MaxHut","MaxHouse","MaxMansion","MaxHotel","MaxResort","MaxGateway","MaxWormhole","MaxCollector","MaxGym","MaxTribute","GymWall","FirstGigastation","DeltaGigastation","WarpstationWall3", "CapEquip2","DelayArmorWhenNeeded","BuyShieldblock", "DynamicSiphonology","PreferMetal","LowerFarmingZone","FarmWhenNomStacks7","RunBionicBeforeSpire","CorruptionCalc","MaxTox","VoidCheck","TrimpleZ", "DynamicGyms", From e536392ccace9b255bb75d8ec4afdafb3553963c Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Wed, 28 Mar 2018 22:30:21 +0100 Subject: [PATCH 007/365] little bugfix and layout fix --- SettingsGUI.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 26390fce4..774bd7ca7 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -248,7 +248,7 @@ function initializeAllSettings() { //Line2 createSetting('AutoStartDaily', 'Auto Start Daily', 'With this on, the Auto Portal options will portal you into and auto-start the daily whenever available. Starts from the oldest available, and works forwards. Falls back to selected challenge when there are no more dailies available.', 'boolean', false, null, 'Core'); - createSetting('AutoFinishDailyNew', 'Finish Daily Zone Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option or set this to 999!', 'valueNegative', 999, null, 'Core'); //This should make sense to replace the two below. + createSetting('AutoFinishDailyNew', 'Daily Z Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option or set this to 999!', 'valueNegative', 999, null, 'Core'); //This should make sense to replace the two below. //OLD createSetting('AutoFinishDaily', 'Auto Finish Daily', 'With this on, the He/Hr Portal and Custom Auto Portal options will auto-finish the daily whenever they trigger and THEN portal you.', 'boolean', true, null, 'Core'); //OLD createSetting('AutoFinishDailyZone', 'Finish Daily Zone Mod', 'Finish Daily by this # of zones earlier/later than your regular Custom AutoPortal zone or your Helium Dont Portal Before zone. When Auto Finish Daily is on. Tip: Tune your value of He/HrDontPortalBefore to suit the daily, and then tune this. Can accept negative numbers for earlier, ie: -7 means portal 7 zones earlier than normal. Can also use positive numbers to DELAY portaling for later. When used with He/Hr AutoPortal, the number of zones early does not FORCE end the daily at that zone, only ALLOW it to end that early: it will Always end when your HE/hr drops enough to trigger the portal. Use 0 to disable.', 'valueNegative', 0, null, 'Core'); createSetting('FinishC2', 'Finish Challenge2', 'Finish / Abandon Challenge2 (any) when this zone is reached, if you are running one. For manual use. Recommended: Zones ending with 0 for most Challenge2. Disable with -1. Does not affect Non-Challenge2 runs.', 'value', -1, null, 'Core'); @@ -259,7 +259,7 @@ function initializeAllSettings() { //NewLine3 For Autoportal, it would be nice to add a 5s countdown, like with magma spending. createSetting('AutoPortal', 'Auto Portal', 'Automatically portal. Will NOT auto-portal if you have a challenge active, the challenge setting dictates which challenge it will select for the next run. All challenge settings will portal right after the challenge ends, regardless. Helium Per Hour only portals at cell 1 of the first level where your He/Hr went down even slightly compared to the current runs Best He/Hr. Take note, there is a Buffer option, which is like a grace percentage of how low it can dip without triggering. Setting a buffer will portal mid-zone if you exceed 5x of the buffer. CAUTION: Selecting He/hr may immediately portal you if its lower-(use Pause AutoTrimps button to pause the script first to avoid this)', 'dropdown', 'Off', ['Off', 'Helium Per Hour', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted', 'Custom'], "Core"); - //document.getElementById("AutoPortal").style="font-size: 1.0vw;"; //fit it on 1 line. + document.getElementById("AutoPortal").style="font-size: 1.0vw;"; //fit it on 1 line. createSetting('HeliumHourChallenge', 'Portal Challenge:', 'Automatically portal into this challenge when using helium per hour or custom autoportal. Custom portals after cell 100 of the zone specified. ', 'dropdown', 'None', ['None', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted'], "Core"); document.getElementById("HeliumHourChallengeLabel").innerHTML = "Portal Challenge:"; //fit it on 1 line. createSetting('CustomAutoPortal', 'Custom Portal', 'Automatically portal AFTER clearing this level.(ie: setting to 200 would portal when you first reach level 201)', 'value', '999', null, "Core"); From 923f94be3bd2f885d564b6c58ae813923f376e9a Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Wed, 28 Mar 2018 22:49:12 +0100 Subject: [PATCH 008/365] fix buy upgrades --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 774bd7ca7..a560c31b9 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -248,7 +248,7 @@ function initializeAllSettings() { //Line2 createSetting('AutoStartDaily', 'Auto Start Daily', 'With this on, the Auto Portal options will portal you into and auto-start the daily whenever available. Starts from the oldest available, and works forwards. Falls back to selected challenge when there are no more dailies available.', 'boolean', false, null, 'Core'); - createSetting('AutoFinishDailyNew', 'Daily Z Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option or set this to 999!', 'valueNegative', 999, null, 'Core'); //This should make sense to replace the two below. + createSetting('AutoFinishDailyNew', 'Finish Daily Z Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option or set this to 999!', 'valueNegative', 999, null, 'Core'); //This should make sense to replace the two below. //OLD createSetting('AutoFinishDaily', 'Auto Finish Daily', 'With this on, the He/Hr Portal and Custom Auto Portal options will auto-finish the daily whenever they trigger and THEN portal you.', 'boolean', true, null, 'Core'); //OLD createSetting('AutoFinishDailyZone', 'Finish Daily Zone Mod', 'Finish Daily by this # of zones earlier/later than your regular Custom AutoPortal zone or your Helium Dont Portal Before zone. When Auto Finish Daily is on. Tip: Tune your value of He/HrDontPortalBefore to suit the daily, and then tune this. Can accept negative numbers for earlier, ie: -7 means portal 7 zones earlier than normal. Can also use positive numbers to DELAY portaling for later. When used with He/Hr AutoPortal, the number of zones early does not FORCE end the daily at that zone, only ALLOW it to end that early: it will Always end when your HE/hr drops enough to trigger the portal. Use 0 to disable.', 'valueNegative', 0, null, 'Core'); createSetting('FinishC2', 'Finish Challenge2', 'Finish / Abandon Challenge2 (any) when this zone is reached, if you are running one. For manual use. Recommended: Zones ending with 0 for most Challenge2. Disable with -1. Does not affect Non-Challenge2 runs.', 'value', -1, null, 'Core'); From 922d5553e95df9f2eafebcfcd3fd3cb836f4fe49 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Wed, 28 Mar 2018 22:55:31 +0100 Subject: [PATCH 009/365] bugfix --- modules/breedtimer.js | 2 +- modules/upgrades.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/breedtimer.js b/modules/breedtimer.js index 25ebb0dc8..40de941fa 100644 --- a/modules/breedtimer.js +++ b/modules/breedtimer.js @@ -125,7 +125,7 @@ function autoBreedTimer() { var fireobj = fire1 ? time : timeLeft; //if we need to speed up our breeding //if we have potency upgrades available, buy them. If geneticists are unlocked, or we aren't managing the breed timer, just buy them - if ((targetBreed < time || !game.jobs.Geneticist.locked || !getPageSetting('ManageBreedtimer') || game.global.challengeActive == 'Watch') && game.upgrades.Potency.allowed > game.upgrades.Potency.done && canAffordTwoLevel('Potency') && getPageSetting('BuyUpgrades')) { + if ((targetBreed < time || !game.jobs.Geneticist.locked || !getPageSetting('ManageBreedtimer') || game.global.challengeActive == 'Watch') && game.upgrades.Potency.allowed > game.upgrades.Potency.done && canAffordTwoLevel('Potency') && getPageSetting('BuyUpgradesNew')) { buyUpgrade('Potency'); } //otherwise, if we have too many geneticists, (total time) - start firing them #1 diff --git a/modules/upgrades.js b/modules/upgrades.js index edd4a2238..84c5baae1 100644 --- a/modules/upgrades.js +++ b/modules/upgrades.js @@ -7,7 +7,7 @@ function buyUpgrades() { upgrade = upgradeList[upgrade]; var gameUpgrade = game.upgrades[upgrade]; var available = (gameUpgrade.allowed > gameUpgrade.done && canAffordTwoLevel(gameUpgrade)); - if (upgrade == 'Coordination' && (getPageSetting('BuyUpgradesNew') == 1 || !canAffordCoordinationTrimps())) continue; + if (upgrade == 'Coordination' && (getPageSetting('BuyUpgradesNew') != 1 || !canAffordCoordinationTrimps())) continue; if (upgrade == 'Shieldblock' && !getPageSetting('BuyShieldblock')) continue; if (upgrade == 'Gigastation' && (game.global.lastWarp ? game.buildings.Warpstation.owned < (Math.floor(game.upgrades.Gigastation.done * getPageSetting('DeltaGigastation')) + getPageSetting('FirstGigastation')) : game.buildings.Warpstation.owned < getPageSetting('FirstGigastation'))) continue; //skip bloodlust during scientist challenges and while we have autofight enabled. From e4b1ee9e1b23c41695512111198a61b575cb9a79 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Wed, 28 Mar 2018 23:26:22 +0100 Subject: [PATCH 010/365] potential merge for NewVoids --- SettingsGUI.js | 12 ++++++------ modules/maps.js | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index a560c31b9..177dc814b 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -258,9 +258,9 @@ function initializeAllSettings() { document.getElementById('UsePatience').parentNode.insertAdjacentHTML('afterend','
'); //NewLine3 For Autoportal, it would be nice to add a 5s countdown, like with magma spending. - createSetting('AutoPortal', 'Auto Portal', 'Automatically portal. Will NOT auto-portal if you have a challenge active, the challenge setting dictates which challenge it will select for the next run. All challenge settings will portal right after the challenge ends, regardless. Helium Per Hour only portals at cell 1 of the first level where your He/Hr went down even slightly compared to the current runs Best He/Hr. Take note, there is a Buffer option, which is like a grace percentage of how low it can dip without triggering. Setting a buffer will portal mid-zone if you exceed 5x of the buffer. CAUTION: Selecting He/hr may immediately portal you if its lower-(use Pause AutoTrimps button to pause the script first to avoid this)', 'dropdown', 'Off', ['Off', 'Helium Per Hour', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted', 'Custom'], "Core"); - document.getElementById("AutoPortal").style="font-size: 1.0vw;"; //fit it on 1 line. - createSetting('HeliumHourChallenge', 'Portal Challenge:', 'Automatically portal into this challenge when using helium per hour or custom autoportal. Custom portals after cell 100 of the zone specified. ', 'dropdown', 'None', ['None', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted'], "Core"); + createSetting('AutoPortal', 'Auto Portal Settings:', 'Automatically portal. Will NOT auto-portal if you have a challenge active, the challenge setting dictates which challenge it will select for the next run. All challenge settings will portal right after the challenge ends, regardless. Helium Per Hour only portals at cell 1 of the first level where your He/Hr went down even slightly compared to the current runs Best He/Hr. Take note, there is a Buffer option, which is like a grace percentage of how low it can dip without triggering. Setting a buffer will portal mid-zone if you exceed 5x of the buffer. CAUTION: Selecting He/hr may immediately portal you if its lower-(use Pause AutoTrimps button to pause the script first to avoid this)', 'dropdown', 'Off', ['Off', 'Helium Per Hour', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted', 'Custom'], "Core"); + //document.getElementById("AutoPortal").style="font-size: 1.0vw;"; //fit it on 1 line. + createSetting('HeliumHourChallenge', 'Challenge on Portal:', 'Automatically portal into this challenge when using helium per hour or custom autoportal. Custom portals after cell 100 of the zone specified. ', 'dropdown', 'None', ['None', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted'], "Core"); document.getElementById("HeliumHourChallengeLabel").innerHTML = "Portal Challenge:"; //fit it on 1 line. createSetting('CustomAutoPortal', 'Custom Portal', 'Automatically portal AFTER clearing this level.(ie: setting to 200 would portal when you first reach level 201)', 'value', '999', null, "Core"); createSetting('HeHrDontPortalBefore', 'Don\'t Portal Before', 'Do NOT allow Helium per Hour AutoPortal setting to portal BEFORE this level is reached. It is an additional check that prevents drops in helium/hr from triggering autoportal. Set to 0 or -1 to completely disable this check. (only shows up with Helium per Hour set)', 'value', '999', null, "Core"); @@ -362,9 +362,9 @@ function initializeAllSettings() { //Line3 createSetting('VoidMaps', 'Void Maps', 'The zone at which you want all your void maps to be cleared (Cell 96). 0 is off', 'value', '0', null, "Maps"); - //createSetting('RunNewVoidsUntilNew', 'Run New Voids Until', '-1 to disable. This allows you to run new Void Maps obtained after the set void map zone. Runs them at Cell 95 by default, unless you set a decimal value indicating the cell (example: 187.75). The number that you put in here will cap what zone new Void Maps will run at, inclusive of the zone you type. CAUTION: May severely slow you down by trying to do too-high level void maps. ', 'value', '-1', null, 'Maps'); //Should replace the two below - createSetting('RunNewVoids', 'Run New Voids', 'Run new void maps acquired after the set void map zone. Runs them at Cell 95 by default, unless you set a decimal value indicating the cell, like: 187.75 CAUTION: May severely slow you down by trying to do too-high level voidmaps. Use the adjacent RunNewVoidsUntil setting to limit this.', 'boolean', false, null, 'Maps'); - createSetting('RunNewVoidsUntil', 'New Voids Until', 'Run New Voids Until: Put a cap on what zone new voids will run at, until this zone, inclusive. ', 'value', '-1', null, 'Maps'); + createSetting('RunNewVoidsUntilNew', 'Run New Voids Until', '0 to disable. -1 for no cap. This allows you to run new Void Maps obtained after the set void map zone. Runs them at Cell 95 by default, unless you set a decimal value indicating the cell (example: 187.75). The number that you put in here will cap what zone new Void Maps will run at, inclusive of the zone you type. CAUTION: May severely slow you down by trying to do too-high level void maps. ', 'value', '-1', null, 'Maps'); //Should replace the two below + //createSetting('RunNewVoids', 'Run New Voids', 'Run new void maps acquired after the set void map zone. Runs them at Cell 95 by default, unless you set a decimal value indicating the cell, like: 187.75 CAUTION: May severely slow you down by trying to do too-high level voidmaps. Use the adjacent RunNewVoidsUntil setting to limit this.', 'boolean', false, null, 'Maps'); + //createSetting('RunNewVoidsUntil', 'New Voids Until', 'Run New Voids Until: Put a cap on what zone new voids will run at, until this zone, inclusive. ', 'value', '-1', null, 'Maps'); //createSetting('VoidsPerZone', 'Voids per Zone', 'Run a max of this many Voids per zone, if you have a lot of Voids saved up. Then moves onto the next zone and does more voids.', 'value', '-1', null, 'Maps'); createSetting('VoidCheck', 'Void Difficulty Check', 'How many hits to be able to take from a void map boss in X stance before we attempt the map. Higher values will get you stronger (by farming maps for health) before attempting. Disabling this with 0 or -1 translates into a default of surviving 2 hits. I recommend somewhere between 2 and 12 (default is now 6).', 'value', '6', null, 'Maps'); createSetting('TrimpleZ', 'Trimple Z', 'I don\'t really think doing this automatically is a good idea. You might want to farm for a bit before this, but I\'m not sure if it\'s meaningful at all to make a \'farm X minutes before trimple\' parameter to go along with it. Set it to the zone you want and it will run Trimple of Doom for Ancient Treasure AFTER farming and getting map stacks. If it is a negative number, this will be disabled after a successful run so you can set it differently next time.', 'valueNegative', 0, null, 'Maps'); //in reality this needs another setting to make it farm for a set number of minutes without spending anything. diff --git a/modules/maps.js b/modules/maps.js index 387fec346..66c06add1 100644 --- a/modules/maps.js +++ b/modules/maps.js @@ -82,10 +82,10 @@ function autoMap() { if (voidMapLevelSettingMap === undefined || game.global.challengeActive == 'Lead') voidMapLevelSettingMap = 93; if (voidMapLevelSettingMap.length == 1) voidMapLevelSettingMap += "0"; //entering 187.70 becomes 187.7, this will bring it back to 187.70 - var voidsuntil = getPageSetting('RunNewVoidsUntil'); + var voidsuntil = getPageSetting('RunNewVoidsUntilNew'); needToVoid = voidMapLevelSetting > 0 && game.global.totalVoidMaps > 0 && game.global.lastClearedCell + 1 >= voidMapLevelSettingMap && (game.global.world == voidMapLevelSettingZone || - (game.global.world >= voidMapLevelSettingZone && getPageSetting('RunNewVoids') && (voidsuntil == -1 || game.global.world <= voidsuntil))); + (game.global.world >= voidMapLevelSettingZone && getPageSetting('RunNewVoidsUntilNew') != 0 && (voidsuntil == -1 || game.global.world <= voidsuntil))); if(game.global.totalVoidMaps == 0 || !needToVoid) doVoids = false; // if force prestige, check if we are behind any first From a2b7972d4641e19982a8db6f9b4985eca6519669 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 00:00:01 +0100 Subject: [PATCH 011/365] Merge the two new void map buttons. Change it to a mod rather than an absolute zone. As such the relevant change is: game.global.world <= (voidsuntil + voidMapLevelSettingZone) Also clarify that the cell selection for void map running is in first option not second. --- modules/maps.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/maps.js b/modules/maps.js index 66c06add1..103773575 100644 --- a/modules/maps.js +++ b/modules/maps.js @@ -85,7 +85,7 @@ function autoMap() { var voidsuntil = getPageSetting('RunNewVoidsUntilNew'); needToVoid = voidMapLevelSetting > 0 && game.global.totalVoidMaps > 0 && game.global.lastClearedCell + 1 >= voidMapLevelSettingMap && (game.global.world == voidMapLevelSettingZone || - (game.global.world >= voidMapLevelSettingZone && getPageSetting('RunNewVoidsUntilNew') != 0 && (voidsuntil == -1 || game.global.world <= voidsuntil))); + (game.global.world >= voidMapLevelSettingZone && getPageSetting('RunNewVoidsUntilNew') != 0 && (voidsuntil == -1 || game.global.world <= (voidsuntil + voidMapLevelSettingZone))); if(game.global.totalVoidMaps == 0 || !needToVoid) doVoids = false; // if force prestige, check if we are behind any first From 5483ad6c2d3f5190519c3aa8a436fcf2118a61c3 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 00:02:49 +0100 Subject: [PATCH 012/365] whoops ) --- modules/maps.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/maps.js b/modules/maps.js index 103773575..facee6f64 100644 --- a/modules/maps.js +++ b/modules/maps.js @@ -85,7 +85,7 @@ function autoMap() { var voidsuntil = getPageSetting('RunNewVoidsUntilNew'); needToVoid = voidMapLevelSetting > 0 && game.global.totalVoidMaps > 0 && game.global.lastClearedCell + 1 >= voidMapLevelSettingMap && (game.global.world == voidMapLevelSettingZone || - (game.global.world >= voidMapLevelSettingZone && getPageSetting('RunNewVoidsUntilNew') != 0 && (voidsuntil == -1 || game.global.world <= (voidsuntil + voidMapLevelSettingZone))); + (game.global.world >= voidMapLevelSettingZone && getPageSetting('RunNewVoidsUntilNew') != 0 && (voidsuntil == -1 || game.global.world <= (voidsuntil + voidMapLevelSettingZone)))); if(game.global.totalVoidMaps == 0 || !needToVoid) doVoids = false; // if force prestige, check if we are behind any first From ee1238f804e40af1b549107e2be8aaaecc9bcf46 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 00:07:10 +0100 Subject: [PATCH 013/365] tooltip update --- SettingsGUI.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 177dc814b..e817fc391 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -361,8 +361,8 @@ function initializeAllSettings() { createSetting('MaxTox', 'Max Toxicity Stacks', 'Get maximum toxicity stacks before killing the improbability in each zone 60 and above. Generally only recommended for 1 run to maximize bone portal value. This setting will revert to disabled after a successful Max-Tox run + Toxicity Autoportal.', 'boolean', false, null, 'Maps'); //Line3 - createSetting('VoidMaps', 'Void Maps', 'The zone at which you want all your void maps to be cleared (Cell 96). 0 is off', 'value', '0', null, "Maps"); - createSetting('RunNewVoidsUntilNew', 'Run New Voids Until', '0 to disable. -1 for no cap. This allows you to run new Void Maps obtained after the set void map zone. Runs them at Cell 95 by default, unless you set a decimal value indicating the cell (example: 187.75). The number that you put in here will cap what zone new Void Maps will run at, inclusive of the zone you type. CAUTION: May severely slow you down by trying to do too-high level void maps. ', 'value', '-1', null, 'Maps'); //Should replace the two below + createSetting('VoidMaps', 'Void Maps', '0 to disable The zone at which you want all your void maps to be cleared inclusive of the zone you type. Runs them at Cell 93 by default, unless you set a decimal value indicating the cell (example: 187.75).', 'value', '0', null, "Maps"); + createSetting('RunNewVoidsUntilNew', 'New Voids Mod', '0 to disable. Positive numbers are added to your Void Map zone. -1 for no cap. This allows you to run new Void Maps obtained after your Void Map zone. The number you put in here will cap what zone new Void Maps will run at, inclusive of the zone you type. The number that you put in here will cap what zone new Void Maps will run at, inclusive of the zone you type. CAUTION: May severely slow you down by trying to do too-high level void maps. Default 0.', 'value', '0', null, 'Maps'); //Should replace the two below //createSetting('RunNewVoids', 'Run New Voids', 'Run new void maps acquired after the set void map zone. Runs them at Cell 95 by default, unless you set a decimal value indicating the cell, like: 187.75 CAUTION: May severely slow you down by trying to do too-high level voidmaps. Use the adjacent RunNewVoidsUntil setting to limit this.', 'boolean', false, null, 'Maps'); //createSetting('RunNewVoidsUntil', 'New Voids Until', 'Run New Voids Until: Put a cap on what zone new voids will run at, until this zone, inclusive. ', 'value', '-1', null, 'Maps'); //createSetting('VoidsPerZone', 'Voids per Zone', 'Run a max of this many Voids per zone, if you have a lot of Voids saved up. Then moves onto the next zone and does more voids.', 'value', '-1', null, 'Maps'); From 1c8504fec3455ff06b7a31a3a54932c0863355d1 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 00:14:06 +0100 Subject: [PATCH 014/365] Edit default VM zone. Edit tooltip for clarity --- SettingsGUI.js | 4 +--- modules/maps.js | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index e817fc391..4aca96db6 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -362,9 +362,7 @@ function initializeAllSettings() { //Line3 createSetting('VoidMaps', 'Void Maps', '0 to disable The zone at which you want all your void maps to be cleared inclusive of the zone you type. Runs them at Cell 93 by default, unless you set a decimal value indicating the cell (example: 187.75).', 'value', '0', null, "Maps"); - createSetting('RunNewVoidsUntilNew', 'New Voids Mod', '0 to disable. Positive numbers are added to your Void Map zone. -1 for no cap. This allows you to run new Void Maps obtained after your Void Map zone. The number you put in here will cap what zone new Void Maps will run at, inclusive of the zone you type. The number that you put in here will cap what zone new Void Maps will run at, inclusive of the zone you type. CAUTION: May severely slow you down by trying to do too-high level void maps. Default 0.', 'value', '0', null, 'Maps'); //Should replace the two below - //createSetting('RunNewVoids', 'Run New Voids', 'Run new void maps acquired after the set void map zone. Runs them at Cell 95 by default, unless you set a decimal value indicating the cell, like: 187.75 CAUTION: May severely slow you down by trying to do too-high level voidmaps. Use the adjacent RunNewVoidsUntil setting to limit this.', 'boolean', false, null, 'Maps'); - //createSetting('RunNewVoidsUntil', 'New Voids Until', 'Run New Voids Until: Put a cap on what zone new voids will run at, until this zone, inclusive. ', 'value', '-1', null, 'Maps'); + createSetting('RunNewVoidsUntilNew', 'New Voids Mod', '0 to disable. Positive numbers are added to your Void Map zone. -1 for no cap. This allows you to run new Void Maps obtained after your Void Map zone by adding this number to your Void Map zone.
Example Void map zone=185.75 and This setting=10. New Voids run until 197.75).
This means that any new void maps gained until Z197, cell 75 will be run. CAUTION: May severely slow you down by trying to do too-high level void maps. Default 0 (OFF).', 'value', '0', null, 'Maps'); //Should replace the two below //createSetting('VoidsPerZone', 'Voids per Zone', 'Run a max of this many Voids per zone, if you have a lot of Voids saved up. Then moves onto the next zone and does more voids.', 'value', '-1', null, 'Maps'); createSetting('VoidCheck', 'Void Difficulty Check', 'How many hits to be able to take from a void map boss in X stance before we attempt the map. Higher values will get you stronger (by farming maps for health) before attempting. Disabling this with 0 or -1 translates into a default of surviving 2 hits. I recommend somewhere between 2 and 12 (default is now 6).', 'value', '6', null, 'Maps'); createSetting('TrimpleZ', 'Trimple Z', 'I don\'t really think doing this automatically is a good idea. You might want to farm for a bit before this, but I\'m not sure if it\'s meaningful at all to make a \'farm X minutes before trimple\' parameter to go along with it. Set it to the zone you want and it will run Trimple of Doom for Ancient Treasure AFTER farming and getting map stacks. If it is a negative number, this will be disabled after a successful run so you can set it differently next time.', 'valueNegative', 0, null, 'Maps'); //in reality this needs another setting to make it farm for a set number of minutes without spending anything. diff --git a/modules/maps.js b/modules/maps.js index facee6f64..4967c3b8d 100644 --- a/modules/maps.js +++ b/modules/maps.js @@ -80,7 +80,7 @@ function autoMap() { var voidMapLevelSettingZone = (voidMapLevelSetting+"").split(".")[0]; var voidMapLevelSettingMap = (voidMapLevelSetting+"").split(".")[1]; if (voidMapLevelSettingMap === undefined || game.global.challengeActive == 'Lead') - voidMapLevelSettingMap = 93; + voidMapLevelSettingMap = 90; if (voidMapLevelSettingMap.length == 1) voidMapLevelSettingMap += "0"; //entering 187.70 becomes 187.7, this will bring it back to 187.70 var voidsuntil = getPageSetting('RunNewVoidsUntilNew'); needToVoid = voidMapLevelSetting > 0 && game.global.totalVoidMaps > 0 && game.global.lastClearedCell + 1 >= voidMapLevelSettingMap && From ca7d6cbbc9b6fa718e320e64d803714330cc1864 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 00:15:41 +0100 Subject: [PATCH 015/365] edit tooltip --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 4aca96db6..6a9dd7f0f 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -361,7 +361,7 @@ function initializeAllSettings() { createSetting('MaxTox', 'Max Toxicity Stacks', 'Get maximum toxicity stacks before killing the improbability in each zone 60 and above. Generally only recommended for 1 run to maximize bone portal value. This setting will revert to disabled after a successful Max-Tox run + Toxicity Autoportal.', 'boolean', false, null, 'Maps'); //Line3 - createSetting('VoidMaps', 'Void Maps', '0 to disable The zone at which you want all your void maps to be cleared inclusive of the zone you type. Runs them at Cell 93 by default, unless you set a decimal value indicating the cell (example: 187.75).', 'value', '0', null, "Maps"); + createSetting('VoidMaps', 'Void Maps', '0 to disable The zone at which you want all your void maps to be cleared inclusive of the zone you type. Runs them at Cell 93 by default, unless you set a decimal value indicating the cell (example: 187.75). Use odd zones on Lead.', 'value', '0', null, "Maps"); createSetting('RunNewVoidsUntilNew', 'New Voids Mod', '0 to disable. Positive numbers are added to your Void Map zone. -1 for no cap. This allows you to run new Void Maps obtained after your Void Map zone by adding this number to your Void Map zone.
Example Void map zone=185.75 and This setting=10. New Voids run until 197.75).
This means that any new void maps gained until Z197, cell 75 will be run. CAUTION: May severely slow you down by trying to do too-high level void maps. Default 0 (OFF).', 'value', '0', null, 'Maps'); //Should replace the two below //createSetting('VoidsPerZone', 'Voids per Zone', 'Run a max of this many Voids per zone, if you have a lot of Voids saved up. Then moves onto the next zone and does more voids.', 'value', '-1', null, 'Maps'); createSetting('VoidCheck', 'Void Difficulty Check', 'How many hits to be able to take from a void map boss in X stance before we attempt the map. Higher values will get you stronger (by farming maps for health) before attempting. Disabling this with 0 or -1 translates into a default of surviving 2 hits. I recommend somewhere between 2 and 12 (default is now 6).', 'value', '6', null, 'Maps'); From 9c6e4490356d3c442a35978700647c30216a9c4f Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 00:33:12 +0100 Subject: [PATCH 016/365] Updates to windstacking (Add zone input) Extra comment on trimplez setting. --- SettingsGUI.js | 4 ++-- modules/stance.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 6a9dd7f0f..2c26e3b9d 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -365,7 +365,7 @@ function initializeAllSettings() { createSetting('RunNewVoidsUntilNew', 'New Voids Mod', '0 to disable. Positive numbers are added to your Void Map zone. -1 for no cap. This allows you to run new Void Maps obtained after your Void Map zone by adding this number to your Void Map zone.
Example Void map zone=185.75 and This setting=10. New Voids run until 197.75).
This means that any new void maps gained until Z197, cell 75 will be run. CAUTION: May severely slow you down by trying to do too-high level void maps. Default 0 (OFF).', 'value', '0', null, 'Maps'); //Should replace the two below //createSetting('VoidsPerZone', 'Voids per Zone', 'Run a max of this many Voids per zone, if you have a lot of Voids saved up. Then moves onto the next zone and does more voids.', 'value', '-1', null, 'Maps'); createSetting('VoidCheck', 'Void Difficulty Check', 'How many hits to be able to take from a void map boss in X stance before we attempt the map. Higher values will get you stronger (by farming maps for health) before attempting. Disabling this with 0 or -1 translates into a default of surviving 2 hits. I recommend somewhere between 2 and 12 (default is now 6).', 'value', '6', null, 'Maps'); - createSetting('TrimpleZ', 'Trimple Z', 'I don\'t really think doing this automatically is a good idea. You might want to farm for a bit before this, but I\'m not sure if it\'s meaningful at all to make a \'farm X minutes before trimple\' parameter to go along with it. Set it to the zone you want and it will run Trimple of Doom for Ancient Treasure AFTER farming and getting map stacks. If it is a negative number, this will be disabled after a successful run so you can set it differently next time.', 'valueNegative', 0, null, 'Maps'); //in reality this needs another setting to make it farm for a set number of minutes without spending anything. + createSetting('TrimpleZ', 'Trimple Z', 'I don\'t really think doing this automatically is a good idea. You might want to farm for a bit before this, but I\'m not sure if it\'s meaningful at all to make a \'farm X minutes before trimple\' parameter to go along with it. Set it to the zone you want and it will run Trimple of Doom for Ancient Treasure AFTER farming and getting map stacks. If it is a negative number, this will be disabled after a successful run so you can set it differently next time.', 'valueNegative', 0, null, 'Maps'); //in reality this needs another setting to make it farm for a set number of minutes without spending anything. And I cba cause its a meh setting anyway. Advancing 2 zones more than doubles your income. Only useful for spire I, and IMO you may aswell actually play the game manually at SOME point. createSetting('AdvMapSpecialModifier', 'Map Special Modifier', 'EXPERIMENTAL. Attempt to select the BEST map special attacks mod. With this on, this will replace the normal behavior. If bugs, please report as this will become more default soon.', 'boolean', false, null, 'Maps'); @@ -375,7 +375,7 @@ function initializeAllSettings() { //Subsection1Line1 createSetting('BetterAutoFight', ['Better AutoFight OFF', 'Better Auto Fight 1', 'Better Auto Fight 2',], '3-Way Button, Recommended. Will automatically handle fighting. The decision between BetterAutoFight 1 or 2 is up to your own discretion. The new BAF#2 does: A)Click fight anyway if we are dead and stuck in a loop due to Dimensional Generator and we can get away with adding time to it.(RemainingTime + ArmyAdd.Time < GeneTimer) and B) Clicks fight anyway if we are dead and have >=31 NextGroupTimer and deal with the consequences by firing genetecists afterwards. WARNING: If you autoportal with BetterAutoFight disabled, the game sits there doing nothing until you click FIGHT. (not good for afk) ', 'multitoggle', 1, null, "Combat"); createSetting('AutoStance', ['Auto Stance OFF', 'Auto Stance 1', 'Auto Stance 2', 'Auto Stance 3'], 'Automatically swap stances to avoid death. The decision between AutoStance 1 or 2 is up to your own discretion and they should be similar. Better Autofight 3 is new and experimental for use after nature (z230), and will keep you in D stance unless you are windstacking (only useful if transfer is maxed out and wind empowerment is high. This feature is currently only a tweak added on request.', 'multitoggle', 1, null, "Combat"); - createSetting('WindStacking', 'Stack Wind Zones', 'For use with AutoStance 3, enables windstacking (Get 200 windstacks then change to D, kill bad guy, then repeat)', 'boolean', false, null, 'Combat'); + createSetting('WindStacking', 'Windstack Min Zone', '-1 = off, 0 = Always On
For use with AutoStance 3, enables windstacking in zones above and inclusive of the zone set. (Get 200 windstacks then change to D, kill bad guy, then repeat)', 'value', '0', null, 'Combat'); createSetting('IgnoreCrits', ['Safety First', 'Ignore Void Strength', 'Ignore All Crits'], 'No longer switches to B against corrupted precision and/or void strength. Basically we now treat \'crit things\' as regular in both autoStance and autoStance2. In fact it no longer takes precision / strength into account and will manage like a normal enemy, thus retaining X / D depending on your needs. If you\'re certain your block is high enough regardless if you\'re fighting a crit guy in a crit daily, use this! Alternatively, manage the stances yourself.', 'multitoggle', 0, null, 'Combat'); createSetting('PowerSaving', ['Don\'t care', 'Power Saving', 'Only Rush Voids'], 'Avoid killing your army impatiently. Don\'t force abandon trimps when prestiging. Will still Die To Use Z and aggressively autostance to aid progression and anything else. Made for Empower daily, you might find it helpful if you\'re doing Workplace Safety feat. Then again with that I strongly recommend doing it fully manually. Anyway, don\'t blame me whatever happens. Only Rush Voids will allow considering abandoning, not force one. Note: AT will no longer be able to fix when your scryer gets stuck!', 'multitoggle', 0, null, 'Combat'); createSetting('ForceAbandon', 'Auto Force-Abandon', '(Trimpicide). If a new fight group is available and anticipation stacks arent maxed, force abandon and grab a new group. Located in the geneticist management script.', 'boolean', true, null, 'Combat'); diff --git a/modules/stance.js b/modules/stance.js index b157ad7e8..69a2e98a1 100644 --- a/modules/stance.js +++ b/modules/stance.js @@ -567,7 +567,7 @@ function autoStance3() { if( getEmpowerment() != "Wind" || game.global.mapsActive || game.empowerments.Wind.currentDebuffPower==200) { setFormation(2); } - else if (getPageSetting('WindStacking')) { + else if (getPageSetting('WindStacking') != -1 || getPageSetting('WindStacking') ==0 || (game.global.world >= getPageSetting('Windstacking'))) { setFormation(4); } } From 9430404036bb399815213a4f737edec46cbeaf01 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 03:16:38 +0100 Subject: [PATCH 017/365] BIG changes to scryer Summarised as: Force is now actually an option on all scryer settings and overrides OverKill Never actually means what it says. it is a definite NO. Maybe allows normal use through MIN/MAX input, and also overriding of that through use of Overkill. Tooltips have been updated to be accurate and actually make sense. --- SettingsGUI.js | 32 ++++++++++-------- modules/scryer.js | 83 +++++++++++++++++++++++++++++++++++++---------- 2 files changed, 83 insertions(+), 32 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 2c26e3b9d..7ca00222f 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -375,7 +375,7 @@ function initializeAllSettings() { //Subsection1Line1 createSetting('BetterAutoFight', ['Better AutoFight OFF', 'Better Auto Fight 1', 'Better Auto Fight 2',], '3-Way Button, Recommended. Will automatically handle fighting. The decision between BetterAutoFight 1 or 2 is up to your own discretion. The new BAF#2 does: A)Click fight anyway if we are dead and stuck in a loop due to Dimensional Generator and we can get away with adding time to it.(RemainingTime + ArmyAdd.Time < GeneTimer) and B) Clicks fight anyway if we are dead and have >=31 NextGroupTimer and deal with the consequences by firing genetecists afterwards. WARNING: If you autoportal with BetterAutoFight disabled, the game sits there doing nothing until you click FIGHT. (not good for afk) ', 'multitoggle', 1, null, "Combat"); createSetting('AutoStance', ['Auto Stance OFF', 'Auto Stance 1', 'Auto Stance 2', 'Auto Stance 3'], 'Automatically swap stances to avoid death. The decision between AutoStance 1 or 2 is up to your own discretion and they should be similar. Better Autofight 3 is new and experimental for use after nature (z230), and will keep you in D stance unless you are windstacking (only useful if transfer is maxed out and wind empowerment is high. This feature is currently only a tweak added on request.', 'multitoggle', 1, null, "Combat"); - createSetting('WindStacking', 'Windstack Min Zone', '-1 = off, 0 = Always On
For use with AutoStance 3, enables windstacking in zones above and inclusive of the zone set. (Get 200 windstacks then change to D, kill bad guy, then repeat)', 'value', '0', null, 'Combat'); + createSetting('WindStacking', 'Windstack Min Zone', '-1 = off, 0 = Always On
For use with AutoStance 3, enables windstacking in zones above and inclusive of the zone set. (Get 200 windstacks then change to D, kill bad guy, then repeat)', 'value', '-1', null, 'Combat'); createSetting('IgnoreCrits', ['Safety First', 'Ignore Void Strength', 'Ignore All Crits'], 'No longer switches to B against corrupted precision and/or void strength. Basically we now treat \'crit things\' as regular in both autoStance and autoStance2. In fact it no longer takes precision / strength into account and will manage like a normal enemy, thus retaining X / D depending on your needs. If you\'re certain your block is high enough regardless if you\'re fighting a crit guy in a crit daily, use this! Alternatively, manage the stances yourself.', 'multitoggle', 0, null, 'Combat'); createSetting('PowerSaving', ['Don\'t care', 'Power Saving', 'Only Rush Voids'], 'Avoid killing your army impatiently. Don\'t force abandon trimps when prestiging. Will still Die To Use Z and aggressively autostance to aid progression and anything else. Made for Empower daily, you might find it helpful if you\'re doing Workplace Safety feat. Then again with that I strongly recommend doing it fully manually. Anyway, don\'t blame me whatever happens. Only Rush Voids will allow considering abandoning, not force one. Note: AT will no longer be able to fix when your scryer gets stuck!', 'multitoggle', 0, null, 'Combat'); createSetting('ForceAbandon', 'Auto Force-Abandon', '(Trimpicide). If a new fight group is available and anticipation stacks arent maxed, force abandon and grab a new group. Located in the geneticist management script.', 'boolean', true, null, 'Combat'); @@ -386,19 +386,20 @@ function initializeAllSettings() { //Scryer - createSetting('UseScryerStance', 'Use Scryer Stance', 'MASTER BUTTON Stay in Scryer stance in z181 and above (Overrides Autostance). Falls back to regular Autostance when not in use (so leave that on). Get 2x resources or Dark Essence. All other buttons have no effect if this one is off (INCLUDING OVERKILL).', 'boolean', true, null, 'Scryer'); - createSetting('ScryerUseWhenOverkill', 'Use When Overkill', 'Use when we can Overkill in S stance, for double loot with no speed penalty. Recommend this be on. NOTE: This being on, and being able to overkill in S will override ALL other settings (Except never use in spire). This is a boolean logic shortcut that disregards all the other settings including Min and Max Zone. If you ONLY want to use S during Overkill, as a workaround: turn this on and Min zone: to 9999 and everything else off(red). ', 'boolean', true, null, 'Scryer'); - createSetting('ScryerMinZone', 'Min Zone', 'Minimum zone to start using scryer in.(inclusive) Recommend:(60 or 181). This needs to be On & Valid for options other than Overkill to work. Tip: Use 9999 to disable all other Non-Overkill scryer usage.', 'value', '181', null, 'Scryer'); - createSetting('ScryerMaxZone', 'Max Zone', 'Zone to STOP using scryer at.(not inclusive) Recommend: Leave off (0 or -1 to disable: doesnt prevent options other than Overkill from working.) Positive numbers DO disable it past that zone. ', 'value', '230', null, 'Scryer'); - createSetting('ScryerUseinMaps2', ['Maybe Use in Maps', 'Force Use in Maps'], 'Maybe/Force Use in Maps. Overkill overrides this setting. Does not have to be on for Overkill Button to use S in maps. (Obeys zone settings)', 'multitoggle', 0, null, 'Scryer'); - createSetting('ScryerUseinVoidMaps2', ['Maybe Use in VoidMaps', 'Force Use in VoidMaps', 'Never Use in VoidMaps'], 'Maybe/Force/Never Use in Void Maps. Never WILL override the Overkill setting, and never use S in Void Maps. Maybe means default - treat Void Maps like any other cell (something else has to be ON to trigger Scryer). Force = Always use S.', 'multitoggle', 0, null, 'Scryer'); - createSetting('ScryerUseinSpire2', ['Maybe Use in Spire', 'Force Use in Spire', 'Never Use in Spire'], 'Maybe/Force/Never Use in Spire. Never WILL override the Overkill setting, and never use S in Spire. Maybe means default - treat Spire like any other cell (something else has to be ON to trigger Scryer). Force = Always use S.', 'multitoggle', 0, null, 'Scryer'); + createSetting('UseScryerStance', 'Use Scryer Stance', 'MASTER BUTTON Activates all other scrying settings, and overrides AutoStance when scryer conditions are met. Leave regular Autostance on while this is active. Scryer gives 2x Resources (Non-Helium/Nullifium) and a chance for Dark Essence. Once this is on, priority for Scryer decisions goes as such:
NEVER USE, FORCE USE, OVERKILL, MIN/MAX ZONE
NO OTHER BUTTONS WILL DO ANYTHING IF THIS IS OFF.', 'boolean', true, null, 'Scryer'); + createSetting('ScryerUseWhenOverkill', 'Use When Overkill', 'Overrides the Min/Max zones. Does not override any NEVER settings. Toggles stance when we can Overkill in S, giving us double loot with no speed penalty! NOTE: This being on, and being able to overkill in S will override ALL other settings (Except never use in spire). This is a boolean logic shortcut that disregards all the other settings including Min and Max Zone. If you ONLY want to use S during Overkill, as a workaround: turn this on and Min zone: to 9999 and everything else off(red).

This has not been optimised for double overkill, and does not always produce the intended results, if you have problems, it may be worth turning off until it can be adjusted.', 'boolean', true, null, 'Scryer'); + createSetting('ScryerMinZone', 'Min Zone', 'Minimum zone to start using scryer in.(inclusive) Recommend:(60 or 181). Overkill ignores this. This needs to be On & Valid for the MAYBE option on all other Scryer settings to do anything if Overkill is off. Tip: Use 9999 to disable all Non-Overkill, Non-Force, scryer usage.', 'value', '181', null, 'Scryer'); + createSetting('ScryerMaxZone', 'Max Zone', '0 or -1 to disable (Recommended)
Overkill ignores this. Zone to STOP using scryer at (not inclusive). Turning this ON with a positive number stops MAYBE use of all other Scryer settings.', 'value', '230', null, 'Scryer'); + createSetting('ScryerUseinMaps2', ['Maps: NEVER','Maps: FORCE', 'Maps: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate in Void Maps
MAYBE means that Overkill and Min/Max use are allowed.

Recommend MAYBE.', 'multitoggle', 2, null, 'Scryer'); + createSetting('ScryerUseinVoidMaps2', ['VoidMaps: NEVER','VoidMaps: FORCE', 'VoidMaps: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate in Void Maps
MAYBE means that Overkill and Min/Max use are allowed.

Recommend NEVER.', 'multitoggle', 0, null, 'Scryer'); + createSetting('ScryerUseinSpire2', ['Spire: NEVER','Spire: FORCE','Spire: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate in the Spire
MAYBE means that Overkill and Min/Max use are allowed.

Recommend NEVER.', 'multitoggle', 0, null, 'Scryer'); //Line2 - createSetting('ScryerSkipBoss2', ['Default on Cell 100', 'Never Use on Cell 100 above VoidLevel', 'Never Use on Cell 100 (ALL Levels)'], 'On cell 100: Default/Never Use(above VoidLevel)/Never Use(ALL Levels). Overkill overrides this setting. Doesnt use Scrying stance for world Improbabilities/Bosses (cell 100) if you are past the level you have your VoidMaps set to run at. (or all levels, if set.) Default treats cell 100 like any other cell.', 'multitoggle', 0, null, 'Scryer'); - createSetting('ScryerSkipCorrupteds2', ['Maybe Use S on Corrupteds', 'Dont Use S on Corrupteds'], 'Overkill overrides this setting, even on Dont Use. Turning this Green doesnt use S stance for corrupted cells UNLESS you can overkill them. Red/Maybe just means default (corrupteds are treated like normal cells), so something else has to be ON to trigger Scryer to be used. Magma maps and Corrupted Voidmaps are classified under this box as corrupted and Green-DontUse here will override the ForceMaps/ForceVoidmaps (for now)', 'multitoggle', 0, null, 'Scryer'); - createSetting('ScryerDieZ', 'Die To Use S','-1 to disable. Turning this on will switch you back to S even when doing so would kill you. Happens in scenarios where you used Skip Corrupteds that took you into regular Autostance X/H stance, killed the corrupted and reached a non-corrupted enemy that you wish to use S on, but you havent bred yet and you are too low on health to just switch back to S. So you\'d rather die, wait to breed, then use S for the full non-corrupted enemy, to maximize DE. This feature was added for 1 person, use at your own risk.
Use this input to set the minimum zone that scryer activates in (You can use decimal values to specify what cell this setting starts from)' , 'value', 230.60, null, 'Scryer'); - //createSetting('ScryUseinPoison', ' Scry in Poison', ['Never Use in Poison', 'Force Use in Poison', 'Maybe Use in Poison']'Maybe/Force/Never Use in Poison. Never WILL override the Overkill setting Maybe means default - treat Poison like any other cell (something else has to be ON to trigger Scryer). Force = Always use S.', 'multitoggle', 1, null, 'Scryer'); //should it override Overkill??? Copy this for Wind/Ice - + createSetting('ScryerSkipBoss2', ['Boss: NEVER (All Levels)','Boss: NEVER (Above VoidLevel)','Boss: MAYBE'], 'NEVER (All Levels) will NEVER use S in cell 100 of the world!!!
NEVER (Above VoidLevel) will NEVER use S in cell 100 of the world ABOVE the zone that your void maps are set to run at (Maps).
MAYBE treats the cell no differently to any other, Overkill and Min/Max Scryer is allowed.

Recommend NEVER (There is little benefit to double NON-HELIUM resources and a small chance of DE).', 'multitoggle', 0, null, 'Scryer'); + createSetting('ScryerSkipCorrupteds2', ['Corrupted: NEVER', 'Corrupted: FORCE','Corrupted: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate against Corrupted enemies
MAYBE means that Overkill and Min/Max use are allowed.
Magma maps and Corrupted Voidmaps are currently classified as corrupted and Green-DontUse here will override the Force Maps/Force Voidmaps use of Scryer

Recommend MAYBE.', 'multitoggle', 2, null, 'Scryer'); + createSetting('ScryerDieZ', 'Die To Use S','-1 to disable.
Turning this on will switch you back to S even when doing so would kill you. Happens in scenarios where you used Skip Corrupteds that took you into regular Autostance X/H stance, killed the corrupted and reached a non-corrupted enemy that you wish to use S on, but you havent bred yet and you are too low on health to just switch back to S. So you\'d rather die, wait to breed, then use S for the full non-corrupted enemy, to maximize DE. This feature was added for 1 person, use at your own risk.
Use this input to set the minimum zone that scryer activates in (You can use decimal values to specify what cell this setting starts from)' , 'value', 230.60, null, 'Scryer'); + createSetting('ScryUseinPoison', 'Scry in Poison','-1 to disable
, any other number sets a minimum zone to use S in Poison', 'value', -1, null, 'Scryer'); //should it override Overkill??? Copy this for Wind/Ice + createSetting('ScryUseinWind', 'Scry in Wind','-1 to disable
, any other number sets a minimum zone to use S in Wind', 'value', -1, null, 'Scryer'); + createSetting('ScryUseinIce', 'Scry in Ice','-1 to disable
, any other number sets a minimum zone to use S in Ice', 'value', -1, null, 'Scryer'); @@ -824,7 +825,10 @@ function updateCustomButtons() { //if ShieldBlock is for sure, remove ShieldBlock from settingsbox (achievement=12 means z100). //(game.achievements.zones.finished < 12) ? turnOn("BuyShieldblock") : function(){turnOff("BuyShieldblock");setPageSetting("BuyShieldblock",false);}(); //if AS3 is not selected, remove Windstack settingsbox - getPageSetting('AutoStance')==3 ? turnOn("WindStacking") : turnOff("WindStacking"); + getPageSetting('AutoStance')==3 ? turnOn("WindStacking"): turnOff("WindStacking"); + getPageSetting('AutoStance')==3 ? turnOn("ScryUseinPoison"): turnOff("ScryUseinPoison"); + getPageSetting('AutoStance')==3 ? turnOn("ScryUseinWind"): turnOff("ScryUseinWind"); + getPageSetting('AutoStance')==3 ? turnOn("ScryUseinIce"): turnOff("ScryUseinIce"); getPageSetting('AutoStance')!=3 ? turnOn("IgnoreCrits") : turnOff("IgnoreCrits"); //Show and Hide useless settings to reduce UI clutter var turnonofflist = [ diff --git a/modules/scryer.js b/modules/scryer.js index b999492ad..b5b09fe13 100644 --- a/modules/scryer.js +++ b/modules/scryer.js @@ -3,46 +3,93 @@ var wantToScry = false; //use S stance function useScryerStance() { - var AutoStance = getPageSetting('AutoStance'); + var AutoStance = getPageSetting('AutoStance'); function autostancefunction() { if (AutoStance<=1) autoStance(); //"Auto Stance" - else if (AutoStance==2) autoStance2(); //"Auto Stance #2" + else if (AutoStance==2) autoStance2(); + else if (AutoStance==3) autoStance3(); //"Auto Stance #3" }; - //check preconditions (exit quick, if impossible to use) + + //check NEVER & Prerequisites (This overrides overkill settings) var use_auto = game.global.preMapsActive || game.global.gridArray.length === 0 || game.global.highestLevelCleared < 180; + //check scryer is unlocked use_auto = use_auto || game.global.world <= 60; - use_auto = use_auto || game.global.mapsActive && getCurrentMapObject().location == "Void" && getPageSetting('ScryerUseinVoidMaps2') == 2; - if (use_auto) { + //check map NEVER + use_auto = use_auto || game.global.mapsActive && getPageSetting('ScryerUseinMaps2') == 0; + //check void map NEVER + use_auto = use_auto || game.global.mapsActive && getCurrentMapObject().location == "Void" && getPageSetting('ScryerUseinVoidMaps2') == 0; + //check spire NEVER + use_auto = use_auto || !game.global.mapsActive && isActiveSpireAT() && getPageSetting('ScryerUseinSpire2') == 0; + //check Boss NEVERs + use_auto = use_auto || (getPageSetting('ScryerSkipBoss2') == 1 && game.global.world > getPageSetting('VoidMaps') && game.global.lastClearedCell == 98) || (getPageSetting('ScryerSkipBoss2') == 2 && game.global.lastClearedCell == 98); + //Check Nature Min Zone + use_auto = use_auto || ((getEmpowerment() == "Poison" && (game.global.world < getPageSetting('ScryUseinPoison'))) + || (getEmpowerment() == "Wind" && (game.global.world < getPageSetting('ScryUseinWind'))) + || (getEmpowerment() == "Ice" &&(game.global.world < getPageSetting('ScryUseinIce')))); + //check Corrupted Never + var iscorrupt = getCurrentEnemy(1).mutation == "Corruption"; + iscorrupt = iscorrupt || (mutations.Magma.active() && game.global.mapsActive); + iscorrupt = iscorrupt || (game.global.mapsActive && getCurrentMapObject().location == "Void" && game.global.world >= mutations.Corruption.start()); + if ((iscorrupt && getPageSetting('ScryerSkipCorrupteds2') == 0 || (use_auto))) { autostancefunction(); wantToScry = false; return; } + //check Force (This overrides overkill settings) + //check map Force + var use_scryer = use_scryer || game.global.mapsActive && getPageSetting('ScryerUseinMaps2') == 1; + //check void map Force + use_scryer = use_scryer || game.global.mapsActive && getCurrentMapObject().location == "Void" && getPageSetting('ScryerUseinVoidMaps2') == 1; + //check spire Force + use_scryer = use_scryer || !game.global.mapsActive && isActiveSpireAT() && getPageSetting('ScryerUseinSpire2') == 1; + //Check Nature Min Zone + use_scryer = use_scryer || ((getEmpowerment() == "Poison" && (game.global.world >= getPageSetting('ScryUseinPoison'))) + || (getEmpowerment() == "Wind" && (game.global.world >= getPageSetting('ScryUseinWind'))) + || (getEmpowerment() == "Ice" &&(game.global.world >= getPageSetting('ScryUseinIce')))); + //check Corrupted Force + if ((iscorrupt && getPageSetting('ScryerSkipCorrupteds2') == 1 || (use_scryer))) { + setFormation(4); + wantToScry = true; + return; + } + + +//If neither NEVER or FORCE, move on to assessing whether to MAYBE +//First, calculate damage if (AutoStance<=1) calcBaseDamageinX(); //calculate internal script variables normally processed by autostance. - else if (AutoStance==2) + else if (AutoStance>=2) calcBaseDamageinX2(); //calculate method #2 +//Decide whether it is oktoswitch (Suicide) var missingHealth = game.global.soldierHealthMax - game.global.soldierHealth; var newSquadRdy = game.resources.trimps.realMax() <= game.resources.trimps.owned + 1; var form = game.global.formation; var oktoswitch = true; - //var die = getPageSetting('ScryerDieToUseS'); - var die = true; + var die = (getPageSetting('ScryerDieZ') != -1 && getPageSetting('ScryerDieZ') <= game.global.world) ; const willSuicide = getPageSetting('ScryerDieZ'); - if (die && willSuicide > -1) { + if (die && willSuicide >= 0) { var [dieZ, dieC] = willSuicide.toString().split("."); if (dieC && dieC.length == 1) dieC = dieC + "0"; die = game.global.world >= dieZ && (!dieC || (game.global.lastClearedCell + 1 >= dieC)); } if (form == 0 || form == 1) - oktoswitch = die || newSquadRdy || (missingHealth < (baseHealth / 2)); + oktoswitch = die || newSquadRdy || (missingHealth < (baseHealth / 2)); //switch if DieToUse / a new squad is ready / or trimp\'s missing health is less than half of base health +//Decide whether Overkill is possible var useoverkill = getPageSetting('ScryerUseWhenOverkill'); + //If Overkill isn't unlocked, toggle overkill use off! if (useoverkill && game.portal.Overkill.level == 0) setPageSetting('ScryerUseWhenOverkill', false); - if (useoverkill && !game.global.mapsActive && isActiveSpireAT() && getPageSetting('ScryerUseinSpire2')==2) - useoverkill = false; - //Overkill button being on and being able to overkill in S will override any other setting, regardless. + //If Spire is set to never and is active, don't use overkill setting. //redundant now?? + if (useoverkill && !game.global.mapsActive && isActiveSpireAT() && getPageSetting('ScryerUseinSpire2')==0) + useoverkill = false; + //If lower than nature zone, do not use overkill //redundant now?? + if (useoverkill && ((getEmpowerment() != "Poison" && (game.global.world <= getPageSetting('ScryUseinPoison'))) + || (getEmpowerment() != "Wind" && (game.global.world <= getPageSetting('ScryUseinWind'))) + || (getEmpowerment() != "Ice" &&(game.global.world <= getPageSetting('ScryUseinIce'))))) + useoverkill = false; + //Overkill button being on and being able to overkill in S will override any setting other than never spire & nature zone, regardless. if (useoverkill && game.portal.Overkill.level > 0) { var avgDamage = (baseDamage * (1-getPlayerCritChance()) + (baseDamage * getPlayerCritChance() * getPlayerCritDamageMult())); var Sstance = 0.5; @@ -55,9 +102,9 @@ function useScryerStance() { return; } } - -//Any of these being true will indicate scryer should not be used, and cause the function to dump back to regular autoStance(): - //check for spire +/* +//If you cannot overkill, these situations will cause a return to autostance. + //check for spire not being Forced use_auto = use_auto || !game.global.mapsActive && isActiveSpireAT() && getPageSetting('ScryerUseinSpire2')!=1; //check for voids use_auto = use_auto || game.global.mapsActive && getCurrentMapObject().location == "Void" && !getPageSetting('ScryerUseinVoidMaps2'); @@ -82,8 +129,8 @@ function useScryerStance() { wantToScry = false; return; } - - //Default. +*/ + //Default. (All Never and Always are accounted for, Overkill has decided whether to run, leaving solely what zones you want to run S in even when you can't overkill) var min_zone = getPageSetting('ScryerMinZone'); var max_zone = getPageSetting('ScryerMaxZone'); var valid_min = game.global.world >= min_zone; From a12436d30c182e283941a152c41b986f3a6c8668 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 03:21:42 +0100 Subject: [PATCH 018/365] rename use S stance --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 7ca00222f..396d4bcd3 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -386,7 +386,7 @@ function initializeAllSettings() { //Scryer - createSetting('UseScryerStance', 'Use Scryer Stance', 'MASTER BUTTON Activates all other scrying settings, and overrides AutoStance when scryer conditions are met. Leave regular Autostance on while this is active. Scryer gives 2x Resources (Non-Helium/Nullifium) and a chance for Dark Essence. Once this is on, priority for Scryer decisions goes as such:
NEVER USE, FORCE USE, OVERKILL, MIN/MAX ZONE
NO OTHER BUTTONS WILL DO ANYTHING IF THIS IS OFF.', 'boolean', true, null, 'Scryer'); + createSetting('UseScryerStance', 'Enable Scryer Stance', 'MASTER BUTTON Activates all other scrying settings, and overrides AutoStance when scryer conditions are met. Leave regular Autostance on while this is active. Scryer gives 2x Resources (Non-Helium/Nullifium) and a chance for Dark Essence. Once this is on, priority for Scryer decisions goes as such:
NEVER USE, FORCE USE, OVERKILL, MIN/MAX ZONE
NO OTHER BUTTONS WILL DO ANYTHING IF THIS IS OFF.', 'boolean', true, null, 'Scryer'); createSetting('ScryerUseWhenOverkill', 'Use When Overkill', 'Overrides the Min/Max zones. Does not override any NEVER settings. Toggles stance when we can Overkill in S, giving us double loot with no speed penalty! NOTE: This being on, and being able to overkill in S will override ALL other settings (Except never use in spire). This is a boolean logic shortcut that disregards all the other settings including Min and Max Zone. If you ONLY want to use S during Overkill, as a workaround: turn this on and Min zone: to 9999 and everything else off(red).

This has not been optimised for double overkill, and does not always produce the intended results, if you have problems, it may be worth turning off until it can be adjusted.', 'boolean', true, null, 'Scryer'); createSetting('ScryerMinZone', 'Min Zone', 'Minimum zone to start using scryer in.(inclusive) Recommend:(60 or 181). Overkill ignores this. This needs to be On & Valid for the MAYBE option on all other Scryer settings to do anything if Overkill is off. Tip: Use 9999 to disable all Non-Overkill, Non-Force, scryer usage.', 'value', '181', null, 'Scryer'); createSetting('ScryerMaxZone', 'Max Zone', '0 or -1 to disable (Recommended)
Overkill ignores this. Zone to STOP using scryer at (not inclusive). Turning this ON with a positive number stops MAYBE use of all other Scryer settings.', 'value', '230', null, 'Scryer'); From 3fd0b5bd56c27f2a2a5d2b38a9cb589203ce7390 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 03:27:28 +0100 Subject: [PATCH 019/365] add check for use in nature being -1 --- modules/scryer.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/scryer.js b/modules/scryer.js index b5b09fe13..1d6e6b2ea 100644 --- a/modules/scryer.js +++ b/modules/scryer.js @@ -44,9 +44,9 @@ function useScryerStance() { //check spire Force use_scryer = use_scryer || !game.global.mapsActive && isActiveSpireAT() && getPageSetting('ScryerUseinSpire2') == 1; //Check Nature Min Zone - use_scryer = use_scryer || ((getEmpowerment() == "Poison" && (game.global.world >= getPageSetting('ScryUseinPoison'))) - || (getEmpowerment() == "Wind" && (game.global.world >= getPageSetting('ScryUseinWind'))) - || (getEmpowerment() == "Ice" &&(game.global.world >= getPageSetting('ScryUseinIce')))); + use_scryer = use_scryer || ((getEmpowerment() == "Poison" && 0 <= getPageSetting('ScryUseinPoison') <= (game.global.world >= getPageSetting('ScryUseinPoison'))) + || (getEmpowerment() == "Wind" && 0 <= getPageSetting('ScryUseinWind') && (game.global.world >= getPageSetting('ScryUseinWind'))) + || (getEmpowerment() == "Ice" && 0 <= getPageSetting('ScryUseinIce') && (game.global.world >= getPageSetting('ScryUseinIce')))); //check Corrupted Force if ((iscorrupt && getPageSetting('ScryerSkipCorrupteds2') == 1 || (use_scryer))) { setFormation(4); @@ -85,9 +85,9 @@ function useScryerStance() { if (useoverkill && !game.global.mapsActive && isActiveSpireAT() && getPageSetting('ScryerUseinSpire2')==0) useoverkill = false; //If lower than nature zone, do not use overkill //redundant now?? - if (useoverkill && ((getEmpowerment() != "Poison" && (game.global.world <= getPageSetting('ScryUseinPoison'))) - || (getEmpowerment() != "Wind" && (game.global.world <= getPageSetting('ScryUseinWind'))) - || (getEmpowerment() != "Ice" &&(game.global.world <= getPageSetting('ScryUseinIce'))))) + if (useoverkill && ((getEmpowerment() = "Poison" && (game.global.world <= getPageSetting('ScryUseinPoison'))) + || (getEmpowerment() = "Wind" && (game.global.world <= getPageSetting('ScryUseinWind'))) + || (getEmpowerment() = "Ice" &&(game.global.world <= getPageSetting('ScryUseinIce'))))) useoverkill = false; //Overkill button being on and being able to overkill in S will override any setting other than never spire & nature zone, regardless. if (useoverkill && game.portal.Overkill.level > 0) { From fcf372ee254d4bdf6484524623344ff22809b29b Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 03:29:32 +0100 Subject: [PATCH 020/365] OR should have been AND --- modules/stance.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/stance.js b/modules/stance.js index 69a2e98a1..b0089f51a 100644 --- a/modules/stance.js +++ b/modules/stance.js @@ -567,7 +567,7 @@ function autoStance3() { if( getEmpowerment() != "Wind" || game.global.mapsActive || game.empowerments.Wind.currentDebuffPower==200) { setFormation(2); } - else if (getPageSetting('WindStacking') != -1 || getPageSetting('WindStacking') ==0 || (game.global.world >= getPageSetting('Windstacking'))) { + else if (getPageSetting('WindStacking') != -1 && (getPageSetting('WindStacking') ==0 || (game.global.world >= getPageSetting('Windstacking'))) { setFormation(4); } } From ce2116cef3f3e60c73d4dbf4acad6fea499ac037 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 03:33:12 +0100 Subject: [PATCH 021/365] fix missing ) --- modules/stance.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/stance.js b/modules/stance.js index b0089f51a..39778885e 100644 --- a/modules/stance.js +++ b/modules/stance.js @@ -567,7 +567,7 @@ function autoStance3() { if( getEmpowerment() != "Wind" || game.global.mapsActive || game.empowerments.Wind.currentDebuffPower==200) { setFormation(2); } - else if (getPageSetting('WindStacking') != -1 && (getPageSetting('WindStacking') ==0 || (game.global.world >= getPageSetting('Windstacking'))) { + else if (getPageSetting('WindStacking') != -1 && (getPageSetting('WindStacking') ==0 || (game.global.world >= getPageSetting('Windstacking')))) { setFormation(4); } } From ad914c8196c13a07138ac690efc69481137d491b Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 03:43:23 +0100 Subject: [PATCH 022/365] fixes --- modules/scryer.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/scryer.js b/modules/scryer.js index 1d6e6b2ea..d2dc33fdc 100644 --- a/modules/scryer.js +++ b/modules/scryer.js @@ -38,17 +38,17 @@ function useScryerStance() { //check Force (This overrides overkill settings) //check map Force - var use_scryer = use_scryer || game.global.mapsActive && getPageSetting('ScryerUseinMaps2') == 1; + var use_scryer = use_scryer || (game.global.mapsActive && getPageSetting('ScryerUseinMaps2') == 1); //check void map Force - use_scryer = use_scryer || game.global.mapsActive && getCurrentMapObject().location == "Void" && getPageSetting('ScryerUseinVoidMaps2') == 1; + use_scryer = use_scryer || (game.global.mapsActive && getCurrentMapObject().location == "Void" && getPageSetting('ScryerUseinVoidMaps2') == 1); //check spire Force - use_scryer = use_scryer || !game.global.mapsActive && isActiveSpireAT() && getPageSetting('ScryerUseinSpire2') == 1; + use_scryer = use_scryer || (!game.global.mapsActive && isActiveSpireAT() && getPageSetting('ScryerUseinSpire2') == 1); //Check Nature Min Zone - use_scryer = use_scryer || ((getEmpowerment() == "Poison" && 0 <= getPageSetting('ScryUseinPoison') <= (game.global.world >= getPageSetting('ScryUseinPoison'))) + use_scryer = use_scryer || ((getEmpowerment() == "Poison" && 0 <= getPageSetting('ScryUseinPoison') && (game.global.world >= getPageSetting('ScryUseinPoison'))) || (getEmpowerment() == "Wind" && 0 <= getPageSetting('ScryUseinWind') && (game.global.world >= getPageSetting('ScryUseinWind'))) || (getEmpowerment() == "Ice" && 0 <= getPageSetting('ScryUseinIce') && (game.global.world >= getPageSetting('ScryUseinIce')))); //check Corrupted Force - if ((iscorrupt && getPageSetting('ScryerSkipCorrupteds2') == 1 || (use_scryer))) { + if ((iscorrupt && getPageSetting('ScryerSkipCorrupteds2') == 1) || (use_scryer)) { setFormation(4); wantToScry = true; return; From 80c26917aa3fc1f01510788c4c2876c19e983832 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 03:48:46 +0100 Subject: [PATCH 023/365] add check for -1 --- modules/scryer.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/scryer.js b/modules/scryer.js index d2dc33fdc..4df015e64 100644 --- a/modules/scryer.js +++ b/modules/scryer.js @@ -23,9 +23,9 @@ function useScryerStance() { //check Boss NEVERs use_auto = use_auto || (getPageSetting('ScryerSkipBoss2') == 1 && game.global.world > getPageSetting('VoidMaps') && game.global.lastClearedCell == 98) || (getPageSetting('ScryerSkipBoss2') == 2 && game.global.lastClearedCell == 98); //Check Nature Min Zone - use_auto = use_auto || ((getEmpowerment() == "Poison" && (game.global.world < getPageSetting('ScryUseinPoison'))) - || (getEmpowerment() == "Wind" && (game.global.world < getPageSetting('ScryUseinWind'))) - || (getEmpowerment() == "Ice" &&(game.global.world < getPageSetting('ScryUseinIce')))); + use_auto = use_auto || ((getEmpowerment() == "Poison" && 0 <= getPageSetting('ScryUseinPoison') && (game.global.world < getPageSetting('ScryUseinPoison'))) + || (getEmpowerment() == "Wind" && 0 <= getPageSetting('ScryUseinWind') && (game.global.world < getPageSetting('ScryUseinWind'))) + || (getEmpowerment() == "Ice" && 0 <= getPageSetting('ScryUseinIce') && (game.global.world < getPageSetting('ScryUseinIce')))); //check Corrupted Never var iscorrupt = getCurrentEnemy(1).mutation == "Corruption"; iscorrupt = iscorrupt || (mutations.Magma.active() && game.global.mapsActive); From 68ef26fe178abe517097d60176b6ad5c71fc11db Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 03:55:59 +0100 Subject: [PATCH 024/365] Final edit for the night. In summary: huge changes to scryer module Changes to scryer in SettingsGUI Edit to windstacking in stance Addition of nature-specific scryer settings. --- SettingsGUI.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 396d4bcd3..a7f7f5b22 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -397,9 +397,9 @@ function initializeAllSettings() { createSetting('ScryerSkipBoss2', ['Boss: NEVER (All Levels)','Boss: NEVER (Above VoidLevel)','Boss: MAYBE'], 'NEVER (All Levels) will NEVER use S in cell 100 of the world!!!
NEVER (Above VoidLevel) will NEVER use S in cell 100 of the world ABOVE the zone that your void maps are set to run at (Maps).
MAYBE treats the cell no differently to any other, Overkill and Min/Max Scryer is allowed.

Recommend NEVER (There is little benefit to double NON-HELIUM resources and a small chance of DE).', 'multitoggle', 0, null, 'Scryer'); createSetting('ScryerSkipCorrupteds2', ['Corrupted: NEVER', 'Corrupted: FORCE','Corrupted: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate against Corrupted enemies
MAYBE means that Overkill and Min/Max use are allowed.
Magma maps and Corrupted Voidmaps are currently classified as corrupted and Green-DontUse here will override the Force Maps/Force Voidmaps use of Scryer

Recommend MAYBE.', 'multitoggle', 2, null, 'Scryer'); createSetting('ScryerDieZ', 'Die To Use S','-1 to disable.
Turning this on will switch you back to S even when doing so would kill you. Happens in scenarios where you used Skip Corrupteds that took you into regular Autostance X/H stance, killed the corrupted and reached a non-corrupted enemy that you wish to use S on, but you havent bred yet and you are too low on health to just switch back to S. So you\'d rather die, wait to breed, then use S for the full non-corrupted enemy, to maximize DE. This feature was added for 1 person, use at your own risk.
Use this input to set the minimum zone that scryer activates in (You can use decimal values to specify what cell this setting starts from)' , 'value', 230.60, null, 'Scryer'); - createSetting('ScryUseinPoison', 'Scry in Poison','-1 to disable
, any other number sets a minimum zone to use S in Poison', 'value', -1, null, 'Scryer'); //should it override Overkill??? Copy this for Wind/Ice - createSetting('ScryUseinWind', 'Scry in Wind','-1 to disable
, any other number sets a minimum zone to use S in Wind', 'value', -1, null, 'Scryer'); - createSetting('ScryUseinIce', 'Scry in Ice','-1 to disable
, any other number sets a minimum zone to use S in Ice', 'value', -1, null, 'Scryer'); + createSetting('ScryUseinPoison', 'Scry in Poison','-1 to disable, any other number sets a minimum zone to use S in Poison', 'value', -1, null, 'Scryer'); //should it override Overkill??? Copy this for Wind/Ice + createSetting('ScryUseinWind', 'Scry in Wind','-1 to disable, any other number sets a minimum zone to use S in Wind', 'value', -1, null, 'Scryer'); + createSetting('ScryUseinIce', 'Scry in Ice','-1 to disable, any other number sets a minimum zone to use S in Ice', 'value', -1, null, 'Scryer'); From 9a2c069d4ac999ba2ff3bb14af8ec445bfb247af Mon Sep 17 00:00:00 2001 From: gen BTC Date: Thu, 29 Mar 2018 01:32:03 -0400 Subject: [PATCH 025/365] Settings fork commited --- AutoTrimps2.js | 22 +++++--- SettingsGUI.js | 130 +++++++++++++++++++++++-------------------- modules/equipment.js | 19 ++++--- modules/gather.js | 14 ++--- modules/magmite.js | 6 +- modules/maps.js | 4 +- modules/portal.js | 5 +- modules/scryer.js | 5 +- 8 files changed, 116 insertions(+), 89 deletions(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index 0a7e231cb..47a8d6af4 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -206,15 +206,22 @@ function mainLoop() { //EXECUTE CORE LOGIC if (getPageSetting('ExitSpireCell') >0) exitSpireCell(); //"Exit Spire After Cell" (other.js) - if (getPageSetting('WorkerRatios')) workerRatios(); //"Auto Worker Ratios" (jobs.js) if (getPageSetting('BuyUpgrades')) buyUpgrades(); //"Buy Upgrades" (upgrades.js) var agu = getPageSetting('AutoGoldenUpgrades'); if (agu && agu!='Off') autoGoldenUpgradesAT(agu); //"Golden Upgrades" (other.js) - if (getPageSetting('BuyStorage')) buyStorage(); //"Buy Storage" (buildings.js) - if (getPageSetting('BuyBuildings')) buyBuildings(); //"Buy Buildings" (buildings.js) - if (getPageSetting('BuyJobs')) buyJobs(); //"Buy Jobs" (jobs.js) - if (getPageSetting('ManualGather2')<=2) manualLabor(); //"Auto Gather/Build" (gather.js) - else if (getPageSetting('ManualGather2')==3) manualLabor2(); //"Auto Gather/Build #2" (") + if (getPageSetting('BuyBuildingsNew')===0); //"Buy Neither" (Buildings.js) + else if (getPageSetting('BuyBuildingsNew')==1) { buyBuildings(); buyStorage(); } //"Buy Buildings & Storage" (") + else if (getPageSetting('BuyBuildingsNew')==2) buyBuildings(); //"Buy Buildings" (") + else if (getPageSetting('BuyBuildingsNew')==3) buyStorage(); //"Buy Storage" (") + //if (getPageSetting('BuyStorage')) buyStorage(); //"Buy Storage" (buildings.js) (Can be removed now) + //if (getPageSetting('BuyBuildings')) buyBuildings(); //"Buy Buildings" (buildings.js) (Can be removed now) + if (getPageSetting('BuyJobsNew')===0); //"Don't Buy Jobs" (Jobs.js) + else if (getPageSetting('BuyJobsNew')==1) { workerRatios(); buyJobs(); } //"Auto Worker Ratios" (") + else if (getPageSetting('BuyJobsNew')==2) buyJobs(); //"Manual Worker Ratios" (") + //if (getPageSetting('BuyJobs')) buyJobs(); //"Buy Jobs" (jobs.js) (Can be removed now) + //if (getPageSetting('WorkerRatios')) workerRatios(); //"Auto Worker Ratios" (jobs.js) (Can be removed now) + if (getPageSetting('ManualGather2')<=1) manualLabor(); //"Auto Gather/Build" (gather.js) + else if (getPageSetting('ManualGather2')==2) manualLabor2(); //"Auto Gather/Build #2" (") getPageSetting('AutoMaps') > 0 ? autoMap() : updateAutoMapsStatus(); //"Auto Maps" (automaps.js) if (getPageSetting('GeneticistTimer') >= 0) autoBreedTimer(); //"Geneticist Timer" / "Auto Breed Timer" (autobreedtimer.js) if (autoTrimpSettings.AutoPortal.selected != "Off") autoPortal(); //"Auto Portal" (hidden until level 40) (portal.js) @@ -223,8 +230,9 @@ function mainLoop() { if (aWholeNewWorld && getPageSetting('FinishC2')>0 && game.global.runningChallengeSquared) finishChallengeSquared(); // "Finish Challenge2" (other.js) autoLevelEquipment(); //"Buy Armor", "Buy Armor Upgrades", "Buy Weapons", "Buy Weapons Upgrades" (equipment.js) if (getPageSetting('UseScryerStance')) useScryerStance(); //"Use Scryer Stance" (scryer.js) - else if (getPageSetting('AutoStance')<=1) autoStance(); //"Auto Stance" (autostance.js) + else if (getPageSetting('AutoStance')<=1) autoStance(); //"Auto Stance" (stance.js) else if (getPageSetting('AutoStance')==2) autoStance2(); //"Auto Stance #2" (") + else if (getPageSetting('AutoStance')==3) autoStance3(); //"Auto Stance #3" (") if (getPageSetting('UseAutoGen')) autoGenerator(); //"Auto Generator ON" (magmite.js) ATselectAutoFight(); // pick the right version of Fight/AutoFight/BetterAutoFight/BAF2 (fight.js) var forcePrecZ = (getPageSetting('ForcePresZ')<0) || (game.global.worldThe Decision between AutoGather 1 or 2 is up to you, and they should be similar. Auto Gathering of Food,Wood,Metal(w/turkimp) & Science. Auto speed-Builds your build queue.
You can disable science researching for the achievement: Reach Z120 without using manual research.', 'multitoggle', 1, null, "Core"); + createSetting('BuyUpgrades', 'Buy Upgrades', 'Autobuys non-equipment upgrades (those are controlled separately in the Gear tab).', 'boolean', true, null, "Core"); + //createSetting('ManageBreedtimerNew', ['Manual Breed Timer', 'Auto Breed Timer', 'Auto No Patience'], 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges, and accounts for the patience mastery.
[ON](Yellow): The same as above, but ignores patience and will not set a breed timer longer than 30s.
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'multitoggle', 1, null, "Core"); //This replaces the two settings below, but do we really need an option to ignore patience?? createSetting('ManageBreedtimer', 'Auto Breed Timer', 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges (0, 3.5s, 10s, 30s).
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'boolean', true, null, "Core"); - createSetting('UsePatience', 'Enable Patience', 'Sets the default breed timer to 45 seconds if you have the Patience mastery.', 'boolean', true, null, 'Core'); - createSetting('GeneticistTimer', 'Geneticist Timer', 'Manages the breed timer by hiring/firing Geneticists for the purpose of setting the ideal anticpation stacks. Disable with -1 to disable the Hiring/Firing of geneticists.
Info: Potency and Nursery buying behavior is adjusted dynamically (and disabling no longer disables potency). The Automatic Genetecist Hiring Process can best be summarized by: Buy/Wait/Die,Repeat. (if you do not die, no action is taken). Also self-kills (trimpicide) aka force abandon when your anti-stacks arent maxed out (conservatively).

Controlled automatically (locked) when Auto Breed Timer is on.', 'value', '30', null, "Core"); - createSetting('SpireBreedTimer', 'Spire Breed Timer', 'Set a different breed timer target for the Spire. Use -1 to disable this special setting.', 'value', -1, null, 'Core'); + createSetting('GeneticistTimer', 'Geneticist Timer', 'Manages the breed timer by hiring/firing Geneticists for the purpose of setting the ideal anticpation stacks. Disable with -1 to disable the Hiring/Firing of geneticists.
Info: Potency and Nursery buying behavior is adjusted dynamically (and disabling no longer disables potency). The Automatic Genetecist Hiring Process can best be summarized by: Buy/Wait/Die,Repeat. (if you do not die, no action is taken). Also self-kills (trimpicide) aka force abandon when your anti-stacks aren\'t maxed out (conservatively).

Controlled automatically (locked) when Auto Breed Timer is on.', 'value', '30', null, "Core"); + createSetting('SpireBreedTimer', 'Spire Breed Timer', 'Overrides the normal breed timer for the Spire (Affected by ignore spires until zone in Maps tab). Use -1 to disable this special setting.', 'value', -1, null, 'Core'); + createSetting('BreedFire', 'Breed Fire', 'OPTIONAL. Fire Lumberjacks and Miners to speed up breeding when needed. Basically trades wood/metal to cut the wait between deaths down. Disclaimer: May heavily negatively impact wood-gathering. ', 'boolean', false, null, 'Core'); + createSetting('ManualCoords', 'Don\'t buy Coords', 'OPTIONAL. Enable this ONLY if you know what you\'re doing, disable it if you don\'t know what you\'re doing. For when manually handling coords means a lot on challenges like Trapper.', 'boolean', false, null, 'Core'); + //Line2 createSetting('AutoAllocatePerks', 'Auto Allocate Perks', 'Uses the AutoPerks ratio based preset system to automatically allocate your perks to spend whatever helium you have when you AutoPortal. ', 'boolean', false, null, 'Core'); - createSetting('AutoStartDaily', 'Auto Start Daily', 'With this on, the Auto Portal options will portal you into and auto-start the daily whenever available. Does Yesterday first, followed by Today. Falls back to selected challenge when both are complete.', 'boolean', false, null, 'Core'); + createSetting('AutoStartDaily', 'Auto Start Daily', 'With this on, the Auto Portal options will portal you into and auto-start the daily whenever available. Starts from the oldest available, and works forwards. Falls back to selected challenge when there are no more dailies available.', 'boolean', false, null, 'Core'); + //createSetting('AutoFinishDailyZoneNew', 'Finish Daily Zone Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option!', 'valueNegative', 0, null, 'Core'); //This should make sense to replace the two below. createSetting('AutoFinishDaily', 'Auto Finish Daily', 'With this on, the He/Hr Portal and Custom Auto Portal options will auto-finish the daily whenever they trigger and THEN portal you.', 'boolean', true, null, 'Core'); createSetting('AutoFinishDailyZone', 'Finish Daily Zone Mod', 'Finish Daily by this # of zones earlier/later than your regular Custom AutoPortal zone or your Helium Dont Portal Before zone. When Auto Finish Daily is on. Tip: Tune your value of He/HrDontPortalBefore to suit the daily, and then tune this. Can accept negative numbers for earlier, ie: -7 means portal 7 zones earlier than normal. Can also use positive numbers to DELAY portaling for later. When used with He/Hr AutoPortal, the number of zones early does not FORCE end the daily at that zone, only ALLOW it to end that early: it will Always end when your HE/hr drops enough to trigger the portal. Use 0 to disable.', 'valueNegative', 0, null, 'Core'); - createSetting('FinishC2', 'Finish Challenge2', 'Finish / Abandon Challenge2 (any) when this zone is reached, if you are running one. For manual use. Recommended: Zones ending with 0 for most challenges. Disable with -1.', 'value', -1, null, 'Core'); + createSetting('FinishC2', 'Finish Challenge2', 'Finish / Abandon Challenge2 (any) when this zone is reached, if you are running one. For manual use. Recommended: Zones ending with 0 for most Challenge2. Disable with -1. Does not affect Non-Challenge2 runs.', 'value', -1, null, 'Core'); if (game.worldUnlocks.easterEgg) - createSetting('AutoEggs', 'AutoEggs', 'Click easter egg if it exists, upon entering a new zone. Warning: Quite overpowered. Please solemnly swear that you are up to no good.', 'boolean', false, null, 'Core'); - createSetting('ManualCoords', 'Don\'t buy Coords', 'Enable it if you know what you\'re doing, disable it if you don\'t know what you\'re doing. For when manually handling coords means a lot on challenges like Trapper.', 'boolean', false, null, 'Core'); - //NewLine3 - document.getElementById('ManualCoords').parentNode.insertAdjacentHTML('afterend','
'); + createSetting('AutoEggs', 'AutoEggs', 'Click easter egg if it exists, upon entering a new zone. Warning: Quite overpowered. Please solemnly swear that you are up to no good.', 'boolean', false, null, 'Core'); //could really be removed?? + createSetting('UsePatience', 'Enable Patience', 'Sets the default breed timer to 45 seconds if you have the Patience mastery.', 'boolean', true, null, 'Core'); + createSetting('TrapTrimps', 'Trap Trimps', 'Automatically trap trimps when needed, including building traps. (when you turn this off, you may aswell turn off the in-game autotraps button, think of the starving trimps that could eat that food!)', 'boolean', true, null, "Core"); + //NewLine3 For Autoportal, it would be nice to add a 5s countdown, like with magma spending. + document.getElementById('TrapTrimps').parentNode.insertAdjacentHTML('afterend','
'); createSetting('AutoPortal', 'Auto Portal', 'Automatically portal. Will NOT auto-portal if you have a challenge active, the challenge setting dictates which challenge it will select for the next run. All challenge settings will portal right after the challenge ends, regardless. Helium Per Hour only portals at cell 1 of the first level where your He/Hr went down even slightly compared to the current runs Best He/Hr. Take note, there is a Buffer option, which is like a grace percentage of how low it can dip without triggering. Setting a buffer will portal mid-zone if you exceed 5x of the buffer. CAUTION: Selecting He/hr may immediately portal you if its lower-(use Pause AutoTrimps button to pause the script first to avoid this)', 'dropdown', 'Off', ['Off', 'Helium Per Hour', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted', 'Custom'], "Core"); //document.getElementById("AutoPortal").style="font-size: 1.0vw;"; //fit it on 1 line. createSetting('HeliumHourChallenge', 'Portal Challenge:', 'Automatically portal into this challenge when using helium per hour or custom autoportal. Custom portals after cell 100 of the zone specified. ', 'dropdown', 'None', ['None', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted'], "Core"); @@ -274,10 +278,9 @@ function initializeAllSettings() { //Buildings - createSetting('BuyStorage', 'Buy Storage', 'Will buy storage when resource is almost full. (like AutoStorage, even anticipates Jestimp)', 'boolean', true, null, "Buildings"); - createSetting('BuyBuildings', 'Buy Buildings', 'Will buy non storage buildings as soon as they are available', 'boolean', true, null, "Buildings"); + createSetting('BuyBuildingsNew', ['Buy Neither','Buy Buildings & Storage', 'Buy Buildings', 'Buy Storage'], 'AutoBuys Storage when it is almost full (it even anticipates Jestimp) and Non-Storage Buildings (As soon as they are available). Takes cost efficiency into account before buying Non-Storage Buildings.', 'multitoggle', 1, null, "Buildings"); //This should replace the two below createSetting('WarpstationCap', 'Warpstation Cap', 'Do not level Warpstations past Basewarp+DeltaGiga **. Without this, if a Giga wasnt available, it would level infinitely (wastes metal better spent on prestiges instead.) **The script bypasses this cap each time a new giga is bought, when it insta-buys as many as it can afford (since AT keeps available metal/gems to a low, overbuying beyond the cap to what is affordable at that first moment is not a bad thing). ', 'boolean', true, null, 'Buildings'); - createSetting('WarpstationCoordBuy', 'Buy Warp to Hit Coord', 'If we are very close to hitting the next coordination, and we can afford the warpstations it takes to do it, Do it! (even if we are over the Cap/Wall). Recommended with WarpCap/WarpWall. (has no point otherwise) ', 'boolean', true, null, 'Buildings'); + createSetting('WarpstationCoordBuy', 'Buy Warp to Hit Coord', 'If we are very close to hitting the next coordination, and we can afford the warpstations it takes to do it, Do it! (even if we are over the Cap/Wall). Recommended with WarpCap/WarpWall. (has no point otherwise) ', 'boolean', true, null, 'Buildings'); //Can this just be removed? if it happens, its a good thing. createSetting('MaxHut', 'Max Huts', 'Huts', 'value', '100', null, "Buildings"); createSetting('MaxHouse', 'Max Houses', 'Houses', 'value', '100', null, "Buildings"); createSetting('MaxMansion', 'Max Mansions', 'Mansions', 'value', '100', null, "Buildings"); @@ -287,9 +290,9 @@ function initializeAllSettings() { createSetting('MaxGateway', 'Max Gateways', 'WARNING: Not recommended to raise above 25', 'value', '25', null, "Buildings"); createSetting('MaxWormhole', 'Max Wormholes', 'WARNING: Wormholes cost helium! Values below 0 do nothing.', 'value', '0', null, "Buildings"); createSetting('MaxCollector', 'Max Collectors', 'recommend: -1', 'value', '-1', null, "Buildings"); - createSetting('MaxGym', 'Max Gyms', 'Advanced. recommend: -1', 'value', '-1', null, "Buildings"); - createSetting('MaxTribute', 'Max Tributes', 'Advanced. recommend: -1 ', 'value', '-1', null, "Buildings"); - createSetting('GymWall', 'Gym Wall', 'Conserves Wood. Only buys 1 Gym when you can afford X gyms wood cost (at the first one\'s price, simple math). -1 or 0 to disable. In other words, only allows gyms that cost less than 1/nth your currently owned wood. (to save wood for nurseries for new z230+ Magma nursery strategy). Takes decimal numbers. (Identical to the Warpstation wall setting which is why its called that). Setting to 1 does nothing besides stopping gyms from being bought 2 at a time due to the mastery.', 'value', -1, null, 'Buildings'); + createSetting('MaxGym', 'Max Gyms', 'Advanced. recommend: -1', 'value', '-1', null, "Buildings"); //Remove? + createSetting('MaxTribute', 'Max Tributes', 'Advanced. recommend: -1 ', 'value', '-1', null, "Buildings"); //Remove? (More gems is never a bad thing...) + createSetting('GymWall', 'Gym Wall', 'Conserves Wood. Only buys 1 Gym when you can afford X gyms wood cost (at the first one\'s price, simple math). -1 or 0 to disable. In other words, only allows gyms that cost less than 1/nth your currently owned wood. (to save wood for nurseries for new z230+ Magma nursery strategy). Takes decimal numbers. (Identical to the Warpstation wall setting which is why its called that). Setting to 1 does nothing besides stopping gyms from being bought 2 at a time due to the mastery.', 'value', -1, null, 'Buildings'); //remove? //Line3 createSetting('FirstGigastation', 'First Gigastation', 'How many warpstations to buy before your first gigastation', 'value', '20', null, "Buildings"); createSetting('DeltaGigastation', 'Delta Gigastation', 'How many extra warpstations to buy for each gigastation. Supports decimal values. For example 2.5 will buy +2/+3/+2/+3...', 'value', '2', null, "Buildings"); @@ -302,27 +305,24 @@ function initializeAllSettings() { //Jobs - createSetting('BuyJobs', 'Buy Jobs', 'Buys jobs based on ratios configured below. CAUTION: you cannot manually assign jobs with this. Toggle if you need to.', 'boolean', true, null, "Jobs"); - createSetting('WorkerRatios', 'Auto Worker Ratios', 'Automatically changes worker ratios based on current progress. WARNING: overrides worker ratio settings. Settings: 1/1/1 up to 300k trimps, 3/3/5 up to 3mil trimps, then 3/1/4 above 3 mil trimps, then 1/1/10 above 1000 tributes, then 1/2/22 above 1500 tributes, then 1/12/12 above 3000 tributes.', 'boolean', true, null, "Jobs"); + createSetting('BuyJobsNew', ['Don\'t Buy Jobs','Auto Worker Ratios', 'Manual Worker Ratios'], 'Manual Worker Ratios buys jobs for your trimps according to the ratios below. Auto Worker ratios automatically changes these ratios based on current progress, overriding your ratio settings.
AutoRatios: 1/1/1 up to 300k trimps, 3/3/5 up to 3mil trimps, then 3/1/4 above 3 mil trimps, then 1/1/10 above 1000 tributes, then 1/2/22 above 1500 tributes, then 1/12/12 above 3000 tributes.
CAUTION: You cannot manually assign jobs with this, turn it off if you have to', 'multitoggle', 1, null, "Jobs"); createSetting('AutoMagmamancers', 'Auto Magmamancers', 'Auto Magmamancer Management. Hires Magmamancers when the Current Zone time goes over 10 minutes. Does a one-time spend of at most 10% of your gem resources. Every increment of 10 minutes after that repeats the 10% hiring process. Magmamancery mastery is accounted for, with that it hires them at 5 minutes instead of 10. Disclaimer: May negatively impact Gem count.', 'boolean', true, null, 'Jobs'); - createSetting('FarmerRatio', 'Farmer Ratio', '', 'value', '1', null, "Jobs"); + createSetting('FarmerRatio', 'Farmer Ratio', '', 'value', '1', null, "Jobs"); //realistically gems are not that useful by the time you have magmamancers... maybe just set it to only spend 50% of your gems at a time and leave it at that? 10% is kinda low anyway createSetting('LumberjackRatio', 'Lumberjack Ratio', '', 'value', '1', null, "Jobs"); createSetting('MinerRatio', 'Miner Ratio', '', 'value', '1', null, "Jobs"); - createSetting('MaxScientists', 'Max Scientists', 'Enable or disable hiring of scientists or Cap your scientists. (This is NOT a ratio, it is an absolute number). Recommend: -1 (infinite cap, hiring controls itself). 0 means Dont Hire Scientists at all. Any other number sets the population cap, not the ratio. Scientist ratio can be controlled by internal variable: MODULES[\\"jobs\\"].scientistRatio = 25; Example Math Behind It: ScientistRatio=(FarmerRatio+LumberjackRatio+MinerRatio)/25.', 'value', '-1', null, "Jobs"); + //createSetting('ScientistRatio', 'Scientist Ratio', 'Advanced. This will allow you to cap your scientist to worker ratio, as well as disable the hiring of scientists.
-1 Allows the ratio to be set automatically (Recommended)
0 Turns off Scientist hiring
\>0 Set a custom ratio.', 'value', '-1', null, "Jobs"); + createSetting('MaxScientists', 'Max Scientists', 'Advanced. Cap your scientists (This is a ratio not an absolute number). recommend: -1 (infinite still controls itself)', 'value', '-1', null, "Jobs"); //Line2 - createSetting('MaxExplorers', 'Max Explorers', 'Advanced. Cap your explorers. recommend: -1', 'value', '-1', null, "Jobs"); - createSetting('MaxTrainers', 'Max Trainers', 'Advanced. Cap your trainers. recommend: -1', 'value', '-1', null, "Jobs"); - createSetting('TrainerCaptoTributes', 'Cap Trainers %', 'Only Buy a Trainer when its cost is LESS than X% of cost of a tribute. This setting can work in combination with the other one, or set the other one to -1 and this will take full control. Default: -1 (Disabled). 50% is close to the point where the cap does nothing. You can go as low as you want but recommended is 10% to 1%. (example: Trainer cost of 5001, Tribute cost of 100000, @ 5%, it would NOT buy the trainer.)', 'value', '-1', null, 'Jobs'); - createSetting('BreedFire', 'Breed Fire', 'OPTIONAL. Fire Lumberjacks and Miners to speed up breeding when needed. Basically trades wood/metal to cut the wait between deaths down. Disclaimer: May heavily negatively impact wood-gathering. ', 'boolean', false, null, 'Jobs'); + createSetting('MaxExplorers', 'Max Explorers', 'Advanced. Cap your explorers (This is a ratio not an absolute number). recommend: -1', 'value', '-1', null, "Jobs"); //Explorers are important now! outdated setting tbh + createSetting('MaxTrainers', 'Max Trainers', 'Advanced. Cap your trainers (This is a ratio not an absolute number). recommend: -1', 'value', '-1', null, "Jobs"); //by the time that you stop needing block, food is abundant + createSetting('TrainerCaptoTributes', 'Cap Trainers %', 'Only Buy a Trainer when its cost is LESS than X% of cost of a tribute. This setting can work in combination with the other one, or set the other one to -1 and this will take full control. Default: -1 (Disabled). 50% is close to the point where the cap does nothing. You can go as low as you want but recommended is 10% to 1%. (example: Trainer cost of 5001, Tribute cost of 100000, @ 5%, it would NOT buy the trainer.)', 'value', '-1', null, 'Jobs'); //this is a bit unnecessary, resource management by the script is already sufficient. //GEAR: - createSetting('BuyArmor', 'Buy Armor Levels', 'Auto-Buy/Level-Up the most cost efficient armor available. ', 'boolean', true, null, "Gear"); - createSetting('BuyArmorUpgrades', 'Buy Armor Prestiges', '(Prestiges) & Gymystic. Will buy the most efficient armor upgrade available. ', 'boolean', true, null, "Gear"); - createSetting('BuyWeapons', 'Buy Weapon Levels', 'Auto-Buy/Level-Up the most cost efficient weapon available. ', 'boolean', true, null, "Gear"); - createSetting('BuyWeaponUpgrades', 'Buy Weapon Prestiges', '(Prestiges) Will buy the most efficient weapon upgrade available. ', 'boolean', true, null, "Gear"); + createSetting('BuyArmorNew', ['Armor: Buy Neither','Armor: Buy Both', 'Armor: Prestiges', 'Armor: Levels'], 'AutoBuys Prestiges and Levels up the most cost efficient Armor available. Gymystic buying is controlled under this setting\'s prestige option', 'multitoggle', 1, null, "Gear"); //This should replace the two below + createSetting('BuyWeaponsNew', ['Weapons: Buy Neither','Weapons: Buy Both', 'Weapons: Prestiges', 'Weapons: Levels'], 'AutoBuys Prestiges and Levels up the most cost efficient Weapon available.', 'multitoggle', 1, null, "Gear"); //This should replace the two below createSetting('CapEquip2', 'Cap Equip to', 'Do not level equipment past this number. Helps stop wasting metal when the script levels-up equip High, only to prestige right after. Recommended value: earlygame 10, lategame: 100. Disable with -1 or 0. NEW: Also sub-caps to 10% of your number during liquified or overkilled(under 25sec) zones. This does not mean the script always hits the cap. Your Equip will now always be leveled to at least 2 since its the most effective level. It will only be leveled however if you dont have enoughHealth or enoughDamage. But During Spire, everything will be leveled up to the cap.
Hidden var: MODULES[\\"equipment\\"].capDivisor = 10; //number to divide your normal cap by.', 'value', 10, null, 'Gear'); createSetting('DynamicPrestige2', 'Dynamic Prestige z', 'Dynamic Prestige: Set Target Zone number: Z #. (disable with 0 or -1)
Skip getting prestiges at first, and Gradually work up to the desired Prestige setting you have set (set the Prestige dropdown to the highest weapon you want to end up on at the target zone you set here). Runs with Dagger to save a significant amount of time until we need better gear, then starts increasing the prestige setting near the end of the run. Examines which prestiges you have, how many missing ones youd need to achieve the desired target and starts running maps every zone (more maps for higher settings), Until the target prestige is reached. ', 'value', -1, null, 'Gear'); createSetting('Prestige', 'Prestige', 'Acquire prestiges through the selected item (inclusive) as soon as they are available in maps. Forces equip first mode. Automap must be enabled. THIS IS AN IMPORTANT SETTING related to speed climbing and should probably always be on something. If you find the script getting stuck somewhere, particularly where you should easily be able to kill stuff, setting this to an option lower down in the list will help ensure you are more powerful at all times, but will spend more time acquiring the prestiges in maps.', 'dropdown', 'Polierarm', ['Off', 'Supershield', 'Dagadder', 'Bootboost', 'Megamace', 'Hellishmet', 'Polierarm', 'Pantastic', 'Axeidic', 'Smoldershoulder', 'Greatersword', 'Bestplate', 'Harmbalest', 'GambesOP'], "Gear"); @@ -335,8 +335,7 @@ function initializeAllSettings() { }; //Line2: createSetting('ForcePresZ', 'Force Prestige Z', 'On and after this zone is reached, always try to prestige for everything immediately, ignoring Dynamic Prestige settings and overriding that of Linear Prestige. Prestige Skip mode will exit this. Disable with -1.', 'value', -1, null, 'Gear'); - createSetting('PrestigeSkipMode', 'Prestige Skip Mode', 'If there are more than 2 Unbought Prestiges (besides Shield), ie: sitting in your upgrades window but you cant afford them, AutoMaps will not enter Prestige Mode, and/or will exit from it. The amount of unboughts can be configured with this variable MODULES[\\"maps\\"].SkipNumUnboughtPrestiges = 2;', 'boolean', false, null, "Gear"); - createSetting('PrestigeSkip2', 'Prestige Skip 2', 'If there are 2 or fewer Unobtained Weapon Prestiges in maps, ie: there are less than 2 types to run for, AutoMaps will not enter Prestige Mode, and/or will exit from it. For users who tends to not need the last few prestiges due to resource gain not keeping up. The amount of unboughts can be configured with MODULES.maps.UnearnedPrestigesRequired. If PrestigeSkipMode is enabled, both conditions need to be reached before exiting.', 'boolean', false, null, 'Gear'); + createSetting('PrestigeSkip1_2', ['Prestige Skip Off','Prestige Skip 1 & 2', 'Prestige Skip 1', 'Prestige Skip 2'], 'Prestige Skip 1: If there are more than 2 Unbought Prestiges (besides Shield), ie: sitting in your upgrades window but you cant afford them, AutoMaps will not enter Prestige Mode, and/or will exit from it. The amount of unboughts can be configured with this variable MODULES[\\"maps\\"].SkipNumUnboughtPrestiges = 2;
Prestige Skip 2: If there are 2 or fewer Unobtained Weapon Prestiges in maps, ie: there are less than 2 types to run for, AutoMaps will not enter Prestige Mode, and/or will exit from it. For users who tends to not need the last few prestiges due to resource gain not keeping up. The amount of unboughts can be configured with MODULES.maps.UnearnedPrestigesRequired. If PrestigeSkipMode is enabled, both conditions need to be reached before exiting.', 'multitoggle', 0, null, "Gear"); createSetting('DelayArmorWhenNeeded', 'Delay Armor Prestige', 'Delays buying armor prestige-upgrades during Want More Damage or Farming automap-modes, Although if you need health AND damage, it WILL buy armor prestiges tho. NOTE: Applies to Prestiges only', 'boolean', false, null, 'Gear'); createSetting('BuyShieldblock', 'Buy Shield Block', 'Will buy the shield block upgrade. CAUTION: If you are progressing past zone 60, you probably don\'t want this :)', 'boolean', false, null, "Gear"); @@ -346,27 +345,28 @@ function initializeAllSettings() { //AutoMaps + VoidMaps settings: //Could combine automaps and run unique maps into one 3 way toggle: Automaps on, Non-unique maps only, Automaps off. createSetting('AutoMaps', ["Auto Maps Off","Auto Maps","Auto Maps No Unique"], 'Recommended. Automatically run maps to progress. Very Important. Has multiple modes: Prestige, Voids, Want more Damage, Want more Health, Want Health & Damage, and Farming.Prestige takes precedence and does equal level maps until it gets what is needed as per Autotrimps Prestige dropdown setting. Voids is self explanatory: use the Void Difficulty Check setting to control the amount of farming. If \'want more damage\', it will only do 10 maps for 200% mapbonus damage bonus. If \'Farming\', it does maps beyond 10 if the displayed number is over >16x. \'Want more health[or and damage]\' is basically just a status message telling you need more health, theres not much that can be done besides tell AutoLevelEquipment to keep buying stuff. If you \'want health\' but your damage is OK to continue, invest in more HP perks.


Unique Maps are run automatically unless disabled.
Uniques Required to auto-run The Wall and Dimension of Anger. Also Required for challenges: Electricity, Mapocalypse, Meditate, and Crushed (etc) to complete their AutoPortal.

Maps/Levels:
The Block - 12
The Wall - 16
Dimension of Anger - 21
Trimple Of Doom - 34
The Prison - 82
Bionic Wonderland (only during Crushed) @ 127
NOTE: This should generally be on.
NOTE: Run Bionic Before Spire prevents the setting of Unique.
NOTICE: This does NOT auto-run all your Bionics according to your lack of Robotrimp status or whether you pass a certain level (yet).', 'multitoggle', 1, null, "Maps"); - createSetting('DynamicSiphonology', 'Dynamic Siphonology', 'Recommended Always ON. Use the right level of siphonology based on your damage output. IE: Only uses siphonology if you are weak. With this OFF it means it ALWAYS uses the lowest siphonology map you can create. Siphonology is a perk you get at level 115-125ish, and means you receive map bonus stacks for running maps below your current zone - Up to 3 zones below (1 per perk level).', 'boolean', true, null, 'Maps'); - createSetting('PreferMetal', 'Prefer Metal Maps', 'ADVANCED: Always prefer metal maps, intended for manual use, such as pre-spire farming. Remember to turn it back off after you\'re done farming! Usually helps for pre-spire. Use on x90-x99 zones.', 'boolean', false, null, 'Maps'); + createSetting('DynamicSiphonology', 'Dynamic Siphonology', 'Recommended Always ON. Use the right level of siphonology based on your damage output. IE: Only uses siphonology if you are weak. With this OFF it means it ALWAYS uses the lowest siphonology map you can create. Siphonology is a perk you get at level 115-125ish, and means you receive map bonus stacks for running maps below your current zone - Up to 3 zones below (1 per perk level).', 'boolean', true, null, 'Maps'); //Should always be on? + createSetting('PreferMetal', 'Prefer Metal Maps', 'Always prefer metal maps, intended for manual use, such as pre-spire farming. Remember to turn it back off after you\'re done farming!', 'boolean', false, null, 'Maps'); //rarely better tbh createSetting('MaxMapBonusAfterZone', 'Max MapBonus After', 'Always gets Max Map Bonus from this zone on. (inclusive and after).
NOTE: Set -1 to disable entirely (default). Set 0 to use it always.
Advanced:User can set a lower number than the default 10 maps with the AT hidden console command: MODULES[\\"maps\\"].maxMapBonusAfterZ = 9;', 'value', '-1', null, 'Maps'); createSetting('DisableFarm', 'Disable Farming', 'Disables the extended farming algorithm of the AutoMaps part of the script. Always returns to the world after reaching 10 map stacks. Use at your own risk. (No need to refresh anymore)', 'boolean', false, null, 'Maps'); createSetting('LowerFarmingZone', 'Lower Farming Zone', 'Lowers the zone used during Farming mode. Uses the dynamic siphonology code, to Find the minimum map level you can successfully one-shot, and uses this level for any maps done after the first 10 map stacks. The difference being it goes LOWER than what Siphonology gives you map-bonus for, but after 10 stacks you dont need bonus, you just want to do maps that you can one-shot. Goes as low as 10 below current zone if your damage is that bad, but this is extreme and indicates you should probably portal.', 'boolean', true, null, 'Maps'); //Line2 - createSetting('MaxStacksForSpire', 'Max Map Bonus for Spire', 'Get max map bonus before running the Spire.', 'boolean', false, null, 'Maps'); + createSetting('MaxStacksForSpire', 'Max Map Bonus for Spire', 'Get max map bonus before running the Spire.', 'boolean', false, null, 'Maps'); //Does farm before spire not cover this fairly well anyway? grabbing +1 equips would make way more difference anyway createSetting('MinutestoFarmBeforeSpire', 'Farm Before Spire', 'Farm level 200/199(or BW) maps for X minutes before continuing onto attempting Spire.
NOTE: Set 0 to disable entirely (default).
Setting to -1/Infinite does not work here, set a very high number instead.', 'value', '0', null, 'Maps'); createSetting('IgnoreSpiresUntil', 'Ignore Spires Until', 'Spire specific settings like end-at-cell are ignored until at least this zone is reached (0 to disable).
Does not work with Run Bionic Before Spire.', 'value', '200', null, 'Maps'); - createSetting('RunBionicBeforeSpire', 'Run Bionic Before Spire', 'CAUTION: Runs Bionic Wonderlands and repeatedly farms Bionic VI @ level 200 before attempting Spire, for the purpose of resource farming. Then it attempts the spire. The Minutes-Before-Spire timer runs concurrently to this, and needs to be set. If not set, it will exit without doing any Bionics... You can un-toggle it on the fly.
NOTE: Turning this on also mandates that AutoMaps + Unique Maps be on.
WARNING: These 100 square maps take ~3x longer than normal maps.
WARNING: If you dont have Bionic Magnet mastery, this will run the 5 pre-requisites and take longer.
NOTE: In fact, it may not be what you want at all.', 'boolean', false, null, 'Maps'); + createSetting('RunBionicBeforeSpire', 'Run Bionic Before Spire', 'CAUTION: Runs Bionic Wonderlands and repeatedly farms Bionic VI @ level 200 before attempting Spire, for the purpose of resource farming. Then it attempts the spire. The Minutes-Before-Spire timer runs concurrently to this, and needs to be set. If not set, it will exit without doing any Bionics... You can un-toggle it on the fly.
NOTE: Turning this on also mandates that Run Unique Maps be on.
WARNING: These 100 square maps take ~3x longer than normal maps.
WARNING: If you dont have Bionic Magnet mastery, this will run the 5 pre-requisites and take longer.
NOTE: In fact, it may not be what you want at all.', 'boolean', false, null, 'Maps'); //OUTDATED! createSetting('ExitSpireCell', 'Exit Spire After Cell', 'Optional/Rare. Exits the Spire early, after completing cell X. example: 40 for Row 4. (use 0 or -1 to disable)', 'value', '-1', null, 'Maps'); createSetting('CorruptionCalc', 'Corruption Farm Mode', 'Recommended. Enabling this will cause the Automaps routine to take amount of corruption in a zone into account, to decide whether it should do maps first for map bonus. ONLY in Zone 181+ (or Headstart 1,2,3 zone: 176,166,151) ', 'boolean', true, null, 'Maps'); createSetting('FarmWhenNomStacks7', 'Farm on >7 NOMstacks', 'Optional. If Improbability already has 5 NOMstacks, stack 30 Anticipation. If the Improbability has >7 NOMstacks on it, get +200% dmg from MapBonus. If we still cant kill it, enter Farming mode at 30 stacks, Even with DisableFarming On! (exits when we get under 10x). Farms if we hit 100 stacks in the world. If we ever hit (100) nomstacks in a map (likely a voidmap), farm, (exit the voidmap) and (prevent void from running, until situation is clear). Restarts any voidmaps if we hit 100 stacks. ', 'boolean', false, null, 'Maps'); //Line3 createSetting('VoidMaps', 'Void Maps', 'The zone at which you want all your void maps to be cleared (Cell 96). 0 is off', 'value', '0', null, "Maps"); + //createSetting('RunNewVoidsUntilNew', 'Run New Voids Until', '-1 to disable. This allows you to run new Void Maps obtained after the set void map zone. Runs them at Cell 95 by default, unless you set a decimal value indicating the cell (example: 187.75). The number that you put in here will cap what zone new Void Maps will run at, inclusive of the zone you type. CAUTION: May severely slow you down by trying to do too-high level void maps. ', 'value', '-1', null, 'Maps'); //Should replace the two below createSetting('RunNewVoids', 'Run New Voids', 'Run new void maps acquired after the set void map zone. Runs them at Cell 95 by default, unless you set a decimal value indicating the cell, like: 187.75 CAUTION: May severely slow you down by trying to do too-high level voidmaps. Use the adjacent RunNewVoidsUntil setting to limit this.', 'boolean', false, null, 'Maps'); createSetting('RunNewVoidsUntil', 'New Voids Until', 'Run New Voids Until: Put a cap on what zone new voids will run at, until this zone, inclusive. ', 'value', '-1', null, 'Maps'); //createSetting('VoidsPerZone', 'Voids per Zone', 'Run a max of this many Voids per zone, if you have a lot of Voids saved up. Then moves onto the next zone and does more voids.', 'value', '-1', null, 'Maps'); createSetting('VoidCheck', 'Void Difficulty Check', 'How many hits to be able to take from a void map boss in X stance before we attempt the map. Higher values will get you stronger (by farming maps for health) before attempting. Disabling this with 0 or -1 translates into a default of surviving 2 hits. I recommend somewhere between 2 and 12 (default is now 6).', 'value', '6', null, 'Maps'); createSetting('MaxTox', 'Max Toxicity Stacks', 'Get maximum toxicity stacks before killing the improbability in each zone 60 and above. Generally only recommended for 1 run to maximize bone portal value. This setting will revert to disabled after a successful Max-Tox run + Toxicity Autoportal.', 'boolean', false, null, 'Maps'); - createSetting('TrimpleZ', 'Trimple Z', 'I don\'t really think doing this automatically is a good idea. You might want to farm for a bit before this, but I\'m not sure if it\'s meaningful at all to make a \'farm X minutes before trimple\' parameter to go along with it. Set it to the zone you want and it will run Trimple of Doom for Ancient Treasure AFTER farming and getting map stacks. If it is a negative number, this will be disabled after a successful run so you can set it differently next time.', 'valueNegative', 0, null, 'Maps'); + createSetting('TrimpleZ', 'Trimple Z', 'I don\'t really think doing this automatically is a good idea. You might want to farm for a bit before this, but I\'m not sure if it\'s meaningful at all to make a \'farm X minutes before trimple\' parameter to go along with it. Set it to the zone you want and it will run Trimple of Doom for Ancient Treasure AFTER farming and getting map stacks. If it is a negative number, this will be disabled after a successful run so you can set it differently next time.', 'valueNegative', 0, null, 'Maps'); //in reality this needs another setting to make it farm for a set number of minutes without spending anything. createSetting('AdvMapSpecialModifier', 'Map Special Modifier', 'EXPERIMENTAL. Attempt to select the BEST map special attacks mod. With this on, this will replace the normal behavior. If bugs, please report as this will become more default soon.', 'boolean', false, null, 'Maps'); @@ -374,19 +374,20 @@ function initializeAllSettings() { //Combat //Subsection1Line1 - createSetting('BetterAutoFight', ['Better AutoFight OFF', 'Better Auto Fight 1', 'Better Auto Fight 2'], '3-Way Button, Recommended. Will automatically handle fighting. The decision between BetterAutoFight 1 or 2 is up to your own discretion. The new BAF#2 does: A)Click fight anyway if we are dead and stuck in a loop due to Dimensional Generator and we can get away with adding time to it.(RemainingTime + ArmyAdd.Time < GeneTimer) and B) Clicks fight anyway if we are dead and have >=31 NextGroupTimer and deal with the consequences by firing genetecists afterwards. WARNING: If you autoportal with BetterAutoFight disabled, the game sits there doing nothing until you click FIGHT. (not good for afk) ', 'multitoggle', 1, null, "Combat"); - createSetting('AutoStance', ['Auto Stance OFF', 'Auto Stance 1', 'Auto Stance 2'], 'Automatically swap stances to avoid death. The decision between AutoStance 1 or 2 is up to your own discretion and they should be similar. ', 'multitoggle', 1, null, "Combat"); + createSetting('BetterAutoFight', ['Better AutoFight OFF', 'Better Auto Fight 1', 'Better Auto Fight 2',], '3-Way Button, Recommended. Will automatically handle fighting. The decision between BetterAutoFight 1 or 2 is up to your own discretion. The new BAF#2 does: A)Click fight anyway if we are dead and stuck in a loop due to Dimensional Generator and we can get away with adding time to it.(RemainingTime + ArmyAdd.Time < GeneTimer) and B) Clicks fight anyway if we are dead and have >=31 NextGroupTimer and deal with the consequences by firing genetecists afterwards. WARNING: If you autoportal with BetterAutoFight disabled, the game sits there doing nothing until you click FIGHT. (not good for afk) ', 'multitoggle', 1, null, "Combat"); + createSetting('AutoStance', ['Auto Stance OFF', 'Auto Stance 1', 'Auto Stance 2', 'Auto Stance 3'], 'Automatically swap stances to avoid death. The decision between AutoStance 1 or 2 is up to your own discretion and they should be similar. Better Autofight 3 is new and experimental for use after nature (z230), and will keep you in D stance unless you are windstacking (only useful if transfer is maxed out and wind empowerment is high. This feature is currently only a tweak added on request.', 'multitoggle', 1, null, "Combat"); + createSetting('WindStacking', 'Stack Wind Zones', 'For use with AutoStance 3, enables windstacking (Get 200 windstacks then change to D, kill bad guy, then repeat)', 'boolean', false, null, 'Combat'); createSetting('IgnoreCrits', ['Safety First', 'Ignore Void Strength', 'Ignore All Crits'], 'No longer switches to B against corrupted precision and/or void strength. Basically we now treat \'crit things\' as regular in both autoStance and autoStance2. In fact it no longer takes precision / strength into account and will manage like a normal enemy, thus retaining X / D depending on your needs. If you\'re certain your block is high enough regardless if you\'re fighting a crit guy in a crit daily, use this! Alternatively, manage the stances yourself.', 'multitoggle', 0, null, 'Combat'); createSetting('PowerSaving', ['Don\'t care', 'Power Saving', 'Only Rush Voids'], 'Avoid killing your army impatiently. Don\'t force abandon trimps when prestiging. Will still Die To Use Z and aggressively autostance to aid progression and anything else. Made for Empower daily, you might find it helpful if you\'re doing Workplace Safety feat. Then again with that I strongly recommend doing it fully manually. Anyway, don\'t blame me whatever happens. Only Rush Voids will allow considering abandoning, not force one. Note: AT will no longer be able to fix when your scryer gets stuck!', 'multitoggle', 0, null, 'Combat'); createSetting('ForceAbandon', 'Auto Force-Abandon', '(Trimpicide). If a new fight group is available and anticipation stacks arent maxed, force abandon and grab a new group. Located in the geneticist management script.', 'boolean', true, null, 'Combat'); - createSetting('DynamicGyms', 'Dynamic Gyms', 'Designed to limit your block to slightly more than however much the enemy attack is. If MaxGyms is capped or GymWall is set, those will still work, and this will NOT override those (works concurrently), but it will further limit them. In the future it may override, but the calculation is not easy to get right so I dont want it undo-ing other things yet. ', 'boolean', false, null, 'Combat'); + createSetting('DynamicGyms', 'Dynamic Gyms', 'Designed to limit your block to slightly more than however much the enemy attack is. If MaxGyms is capped or GymWall is set, those will still work, and this will NOT override those (works concurrently), but it will further limit them. In the future it may override, but the calculation is not easy to get right so I dont want it undo-ing other things yet. ', 'boolean', false, null, 'Combat'); //Does anybody actually use this? createSetting('AutoRoboTrimp', 'AutoRoboTrimp', 'Use RoboTrimps ability starting at this level, and every 5 levels thereafter. (set to 0 to disable. default 60.) 60 is a good choice for mostly everybody.', 'value', '60', null, 'Combat'); //Scryer - createSetting('UseScryerStance', 'Use Scryer Stance', 'MASTER BUTTON Stay in Scryer stance in z181 and above (Overrides Autostance). Falls back to regular Autostance when not in use (so leave that on). Get 2x resources or Dark Essence. All other buttons have no effect if this one is off.', 'boolean', true, null, 'Scryer'); + createSetting('UseScryerStance', 'Use Scryer Stance', 'MASTER BUTTON Stay in Scryer stance in z181 and above (Overrides Autostance). Falls back to regular Autostance when not in use (so leave that on). Get 2x resources or Dark Essence. All other buttons have no effect if this one is off (INCLUDING OVERKILL).', 'boolean', true, null, 'Scryer'); createSetting('ScryerUseWhenOverkill', 'Use When Overkill', 'Use when we can Overkill in S stance, for double loot with no speed penalty. Recommend this be on. NOTE: This being on, and being able to overkill in S will override ALL other settings (Except never use in spire). This is a boolean logic shortcut that disregards all the other settings including Min and Max Zone. If you ONLY want to use S during Overkill, as a workaround: turn this on and Min zone: to 9999 and everything else off(red). ', 'boolean', true, null, 'Scryer'); createSetting('ScryerMinZone', 'Min Zone', 'Minimum zone to start using scryer in.(inclusive) Recommend:(60 or 181). This needs to be On & Valid for options other than Overkill to work. Tip: Use 9999 to disable all other Non-Overkill scryer usage.', 'value', '181', null, 'Scryer'); createSetting('ScryerMaxZone', 'Max Zone', 'Zone to STOP using scryer at.(not inclusive) Recommend: Leave off (0 or -1 to disable: doesnt prevent options other than Overkill from working.) Positive numbers DO disable it past that zone. ', 'value', '230', null, 'Scryer'); @@ -396,9 +397,8 @@ function initializeAllSettings() { //Line2 createSetting('ScryerSkipBoss2', ['Default on Cell 100', 'Never Use on Cell 100 above VoidLevel', 'Never Use on Cell 100 (ALL Levels)'], 'On cell 100: Default/Never Use(above VoidLevel)/Never Use(ALL Levels). Overkill overrides this setting. Doesnt use Scrying stance for world Improbabilities/Bosses (cell 100) if you are past the level you have your VoidMaps set to run at. (or all levels, if set.) Default treats cell 100 like any other cell.', 'multitoggle', 0, null, 'Scryer'); createSetting('ScryerSkipCorrupteds2', ['Maybe Use S on Corrupteds', 'Dont Use S on Corrupteds'], 'Overkill overrides this setting, even on Dont Use. Turning this Green doesnt use S stance for corrupted cells UNLESS you can overkill them. Red/Maybe just means default (corrupteds are treated like normal cells), so something else has to be ON to trigger Scryer to be used. Magma maps and Corrupted Voidmaps are classified under this box as corrupted and Green-DontUse here will override the ForceMaps/ForceVoidmaps (for now)', 'multitoggle', 0, null, 'Scryer'); - createSetting('ScryerDieToUseS', 'Die To Use S', 'Turning this on will switch you back to S even when doing so would kill you. Happens in scenarios where you used Skip Corrupteds that took you into regular Autostance X/H stance, killed the corrupted and reached a non-corrupted enemy that you wish to use S on, but you havent bred yet and you are too low on health to just switch back to S. So youd rather die, wait to breed, then use S for the full non-corrupted enemy, to maximize DE. This feature was added for 1 person, use at your own risk.', 'boolean', false, null, 'Scryer'); - createSetting('ScryerDieZ', 'Scryer Suicide Z', 'You know, Die To Use S is helpful and all, but sometimes it doesn\'t matter in early zones. Don\'t you think so? That was a rhetorical question, don\'t answer it. Like Void Maps config, you can put a decimal value for cell, like 230.60 for after zone 230 for >= 60th cell.', 'value', 230.60, null, 'Scryer'); - //createSetting('ScryUseinPoison', ' Scry in Poison', ['Maybe Use in Poison', 'Force Use in Poison', 'Never Use in Poison'] + createSetting('ScryerDieZ', 'Die To Use S','-1 to disable. Turning this on will switch you back to S even when doing so would kill you. Happens in scenarios where you used Skip Corrupteds that took you into regular Autostance X/H stance, killed the corrupted and reached a non-corrupted enemy that you wish to use S on, but you havent bred yet and you are too low on health to just switch back to S. So you\'d rather die, wait to breed, then use S for the full non-corrupted enemy, to maximize DE. This feature was added for 1 person, use at your own risk.
Use this input to set the minimum zone that scryer activates in (You can use decimal values to specify what cell this setting starts from)' , 'value', 230.60, null, 'Scryer'); + //createSetting('ScryUseinPoison', ' Scry in Poison', ['Never Use in Poison', 'Force Use in Poison', 'Maybe Use in Poison']'Maybe/Force/Never Use in Poison. Never WILL override the Overkill setting Maybe means default - treat Poison like any other cell (something else has to be ON to trigger Scryer). Force = Always use S.', 'multitoggle', 1, null, 'Scryer'); //should it override Overkill??? Copy this for Wind/Ice @@ -414,16 +414,14 @@ function initializeAllSettings() { createSetting('AutoGen2Override', ['Override Final Only', 'Strong Override'], 'Overrides apply to the final mode (always use early mode), or also to early mode (will stop microtick etc). Normal will not change anything.', 'multitoggle', 1, null, 'Magma'); createSetting('AutoMagmiteSpender2', ['Spend Magmite OFF', 'Spend Magmite (Portal)', 'Spend Magmite Always'], 'Auto Spends any unspent Magmite immediately before portaling. (Or Always, if toggled). Part 1 buys any permanent one-and-done upgrades in order from most expensive to least. Part 2 then analyzes Efficiency vs Capacity for cost/benefit, and buys Efficiency if its BETTER than Capacity. If not, if the PRICE of Capacity is less than the price of Supply, it buys Capacity. If not, it buys Supply. And then it repeats itself until you run out of Magmite and cant buy anymore. For Magma z230+ purposes.', 'multitoggle', 1, null, 'Magma'); createSetting('SupplyWall', 'Throttle Supply (or Capacity)', 'Positive number NOT 1 e.g. 2.5: Consider Supply when its cost * 2.5 is < Capacity, instead of immediately when < Cap. Effectively throttles supply for when you don\'t need too many.

Negative number (-1 is ok) e.g. -2.5: Consider Supply if it costs < Capacity * 2.5, buy more supplys! Effectively throttling capacity instead.

Set to 1: DISABLE SUPPLY only spend magmite on Efficiency, Capacity and Overclocker. (For some end game players, supply is worth probably figuratively nothing.)
Set to 0: IGNORE SETTING and use old behaviour (will still try to buy overclocker)
', 'valueNegative', 2, null, 'Magma'); - createSetting('OneTimeOnly', 'One Time / Overclock Only', 'Makes the magmite spending sequence only buy one time upgrades and overclock, ignoring Efficiency, Capacity and Supply. Intended for manual use. Does not disable itself.', 'boolean', false, null, 'Magma'); - createSetting('BuyOvclock', 'Buy Overclock', 'Turn this off to not buy anymore overclocks. Will still buy the first level if you don\'t already own it.', 'boolean', true, null, 'Magma'); + createSetting('BuyOneTimeOC', ['Buy OneTime Only (No OC)', 'Maybe Buy OneTime & OC', 'Maybe Buy OneTime (No OC)', 'Buy OneTime & OC Only'], 'Buy OneTime Only (No OC) = ONLY BUYS ONE TIME UPGRADES, NOTHING ELSE.
Maybe Buy OneTime & OC = Normal spending, will consider Overclocker and One Time Upgrades
Maybe Buy OneTime (No OC) = Normal Spending, but will NOT Buy Overclocker (Will still buy the first level if you don\'t have it).
Buy OneTime & OC Only = Will Force spend magmite on these two only, ignoring Efficiency, Capacity and Supply.
Recommend Default (Maybe Buy OneTime & OC)', 'multitoggle', 1, null, 'Magma'); createSetting('MagmiteExplain', 'Magmite spending behaviour', '1. Buy one-and-done upgrades, expensive first, then consider 1st level of Overclocker;
2. Buy Overclocker IF AND ONLY IF we can afford it;
2.5. Exit if OneTimeOnly
3. Buy Efficiency if it is better than capacity;
4. Buy Capacity or Supply depending on which is cheaper, or based on SupplyWall', 'infoclick', 'MagmiteExplain', null, 'Magma'); //Heirloom Settings - createSetting('AutoHeirlooms', 'Auto Heirlooms', 'Automatically evaluate and carry the best heirlooms, and recommend upgrades for equipped items. AutoHeirlooms will only change carried items when the heirlooms window is not open. Carried items will be compared and swapped with the types that are already carried. If a carry spot is empty, it will be filled with the best shield (if available). Evaluation is based ONLY on the following mods (listed in order of priority, high to low): Void Map Drop Chance/Trimp Attack, Crit Chance/Crit Damage, Miner Efficiency/Metal Drop, Gem Drop/Dragimp Efficiency, Farmer/Lumberjack Efficiency. For the purposes of carrying, rarity trumps all of the stat evaluations. Empty mod slots are valued at the average value of the best missing mod.', 'boolean', false, null, "Heirlooms"); - createSetting('AutoHeirlooms2', 'Auto Heirlooms2', 'IMPORTANT SETTING. New algorithm for Heirlooms. While enabled, the old AutoHeirlooms algorithm will be disabled (the button will stay lit or you can turn that one off). CAUTION: Turning this on will immediately re-sort your heirlooms according to the new algorithm, and turning it off again DOES revert to the original algorithm even though it may NOT have a visible result on your heirlooms. (fyi: This lack of action highlights one of the problems with the old one.) ', 'boolean', false, null, 'Heirlooms'); + createSetting('AutoHeirloomsNew', ['AutoHeirlooms Off', 'AutoHeirlooms 1', 'AutoHeirlooms 2'], 'AutoHeirlooms 1 = Automatically evaluate and carry the best heirlooms, and recommend upgrades for equipped items. AutoHeirlooms will only change carried items when the heirlooms window is not open. Carried items will be compared and swapped with the types that are already carried. If a carry spot is empty, it will be filled with the best shield (if available). Evaluation is based ONLY on the following mods (listed in order of priority, high to low): Void Map Drop Chance/Trimp Attack, Crit Chance/Crit Damage, Miner Efficiency/Metal Drop, Gem Drop/Dragimp Efficiency, Farmer/Lumberjack Efficiency. For the purposes of carrying, rarity trumps all of the stat evaluations. Empty mod slots are valued at the average value of the best missing mod.
AutoHeirlooms 2 = New algorithm for Heirlooms. CAUTION: Turning this on will immediately re-sort your heirlooms according to the new algorithm, and turning it off again DOES revert to the original algorithm even though it may NOT have a visible result on your heirlooms. (fyi: This lack of action highlights one of the problems with the old one.', 'multitoggle', 0, null, 'Heirlooms'); createSetting('AutoUpgradeHeirlooms', 'Auto Upgrade Heirlooms', 'Automatically buys the upgrades the script advises for the Equipped shield and staff, until we are out of nullifium.', 'boolean', false, null, 'Heirlooms'); @@ -433,7 +431,7 @@ function initializeAllSettings() { createSetting('goldStrat', 'Auto Golden Strategy', 'VOID ONLY: After max Void golden upgrades, alternate between buying helium and battle upgrades. Or Choose a Zone to switch over completely at (zones lower than X will buy only battle, and zones higher than X only helium). Battle can be disabled completely with the goldNoBattle button. MAX THEN HELIUM setting so you can get the perfect 60% Voids then Helium', 'dropdown', 'Max then Helium', ["Off", "Alternating", "Zone", "Max then Helium"], 'Golden'); createSetting('goldAlternating', 'GU VOID: Alternating', 'Buy a helium upgrade after X-1 battle upgrades have been purchased', 'value', '2', null, 'Golden'); createSetting('goldZone', 'GU VOID: Zone', 'Buy a helium upgrade until zone X, then buy battle upgrades.', 'value', '200', null, 'Golden'); - createSetting('goldNoBattle', 'GU VOID: No Battle', 'Dont ever buy battle upgrades.', 'boolean', true, null, 'Golden'); + createSetting('goldNoBattle', 'GU VOID: No Battle', 'Green = Do NOT buy Battle Upgrades
Red = Buy Battle Upgrades.', 'boolean', true, null, 'Golden'); @@ -452,9 +450,10 @@ function initializeAllSettings() { document.getElementById('battleSideTitle').setAttribute('onclick','MODULES["performance"].EnableAFKMode()'); document.getElementById('battleSideTitle').setAttribute('onmouseover', "getZoneStats(event);this.style.cursor='pointer'"); createSetting('ChangeLog', 'Show Changelog', '(Action Button). Shows the changelog popup message that AT loads on startup again, in case you missed it. The blue color means this is not a settable setting, just a button.', 'action', 'printChangelog()', null, 'Display'); + createSetting('ShowSettings', 'Show Extra Settings', 'Show/Hide settings that are rarely useful', 'boolean', true, null, 'Display') document.getElementById('Display').lastChild.insertAdjacentHTML('afterend','
'); -//SPAM settings: +//SPAM settings: //Subsection2Line1 createSetting('SpamGeneral', 'General Spam', 'General Spam = Notification Messages, Auto He/Hr', 'boolean', true, null, 'Display'); createSetting('SpamUpgrades', 'Upgrades Spam', 'Upgrades Spam', 'boolean', true, null, 'Display'); @@ -469,7 +468,7 @@ function initializeAllSettings() { createSetting('SpamPerks', 'AutoPerks Spam', 'Everything in related to AutoPerks', 'boolean', true, null, 'Display'); - + // Export/Import/Default settings createSetting('ImportAutoTrimps', 'Import AutoTrimps', 'Import your AutoTrimps Settings. Asks you to name it as a profile afterwards.', 'infoclick', 'ImportAutoTrimps', null, 'Import Export'); createSetting('ExportAutoTrimps', 'Export AutoTrimps', 'Export your AutoTrimps Settings as a output string text formatted in JSON.', 'infoclick', 'ExportAutoTrimps', null, 'Import Export'); @@ -786,15 +785,19 @@ function autoPlusSettingsMenu() { function updateCustomButtons() { //console.log("GUI: CustomButtons Updated"); - //Check for Theme Changed, and swap theme: + if (lastTheme && game.options.menu.darkTheme.enabled != lastTheme) { if (typeof MODULES["graphs"] !== 'undefined') MODULES["graphs"].themeChanged(); + debug("Theme change - AutoTrimps styles updated."); + } + lastTheme = game.options.menu.darkTheme.enabled; function toggleElem(elem, showHide) { + var $item = document.getElementById(elem); + if ($item == null) return; var state = showHide ? '' : 'none'; var stateParent = showHide ? 'inline-block' : 'none'; - var item = document.getElementById(elem); - item.style.display = state; - item.parentNode.style.display = stateParent; + $item.style.display = state; + $item.parentNode.style.display = stateParent; } function turnOff(elem) { toggleElem(elem, false); @@ -821,7 +824,16 @@ function updateCustomButtons() { //if HeHr is not selected, remove HeHr buffer settingsbox (heHr) ? turnOn("HeliumHrBuffer") : turnOff("HeliumHrBuffer"); //if ShieldBlock is for sure, remove ShieldBlock from settingsbox (achievement=12 means z100). - (game.achievements.zones.finished < 12) ? turnOn("BuyShieldblock") : function(){turnOff("BuyShieldblock");setPageSetting("BuyShieldblock",false);}(); + //(game.achievements.zones.finished < 12) ? turnOn("BuyShieldblock") : function(){turnOff("BuyShieldblock");setPageSetting("BuyShieldblock",false);}(); + //if AS3 is not selected, remove Windstack settingsbox + getPageSetting('AutoStance')==3 ? turnOn("WindStacking") : turnOff("WindStacking"); + getPageSetting('AutoStance')!=3 ? turnOn("IgnoreCrits") : turnOff("IgnoreCrits"); + //Show and Hide useless settings to reduce UI clutter + var turnonofflist = ["ManualGather2","BuyUpgrades","ManualCoords","UsePatience","TrapTrimps","GymWall","WarpstationWall3","TrainerCaptoTributes"]; + if (game.worldUnlocks.easterEgg) + turnonofflist.push("AutoEggs"); + for (var i in turnonofflist) + getPageSetting('ShowSettings') ? turnOn(turnonofflist[i]) : turnOff(turnonofflist[i]); //DROPDOWNS: updates dropdown selections. (ALL DROPDOWNS REQUIRE THIS BIT TO BE UPDATEY) //todo check why this isnt possible to set automatically in the dropdown code. @@ -910,10 +922,10 @@ function getDailyHeHrStats() { function settingsProfileMakeGUI(){}; //blank on purpose, will be overwritten if necessary. //controls the button skips 2 of the tri-state automaps button -function toggleAutoMaps(){ +function toggleAutoMaps(){ if (getPageSetting('AutoMaps')) setPageSetting('AutoMaps',0); else setPageSetting('AutoMaps',1); document.getElementById("autoMapBtn").setAttribute("class", "noselect settingsBtn settingBtn" + autoTrimpSettings.AutoMaps.value); -} \ No newline at end of file +} diff --git a/modules/equipment.js b/modules/equipment.js index 8c54bb83d..12c50e4fa 100644 --- a/modules/equipment.js +++ b/modules/equipment.js @@ -145,6 +145,8 @@ function evaluateEquipmentEfficiency(equipName) { var StatusBorder = 'white'; var Wall = false; + var BuyWeaponUpgrades = ((getPageSetting('BuyWeaponsNew')==1) || (getPageSetting('BuyWeaponsNew')==2)); + var BuyArmorUpgrades = ((getPageSetting('BuyArmorNew')==1) || (getPageSetting('BuyArmorNew')==2)); if (!game.upgrades[equip.Upgrade].locked) { //Evaluating upgrade! var CanAfford = canAffordTwoLevel(game.upgrades[equip.Upgrade]); @@ -152,7 +154,7 @@ function evaluateEquipmentEfficiency(equipName) { var NextEffect = PrestigeValue(equip.Upgrade); //Scientist 3 and 4 challenge: set metalcost to Infinity so it can buy equipment levels without waiting for prestige. (fake the impossible science cost) //also Fake set the next cost to infinity so it doesn't wait for prestiges if you have both options disabled. - if ((game.global.challengeActive == "Scientist" && getScientistLevel() > 2) || ((!getPageSetting('BuyArmorUpgrades') && !getPageSetting('BuyWeaponUpgrades')))) + if ((game.global.challengeActive == "Scientist" && getScientistLevel() > 2) || (!BuyWeaponUpgrades && !BuyArmorUpgrades)) var NextCost = Infinity; else var NextCost = Math.ceil(getNextPrestigeCost(equip.Upgrade) * Math.pow(1 - game.portal.Artisanistry.modifier, game.portal.Artisanistry.level)); @@ -348,8 +350,8 @@ function autoLevelEquipment() { //Code is Spaced This Way So You Can Read It: if (evaluation.StatusBorder == 'red' && !(game.global.world < 60 && game.global.world >= 58 && MODULES["equipment"].waitTill60)) { - var BuyWeaponUpgrades = getPageSetting('BuyWeaponUpgrades'); - var BuyArmorUpgrades = getPageSetting('BuyArmorUpgrades'); + var BuyWeaponUpgrades = ((getPageSetting('BuyWeaponsNew')==1) || (getPageSetting('BuyWeaponsNew')==2)); + var BuyArmorUpgrades = ((getPageSetting('BuyArmorNew')==1) || (getPageSetting('BuyArmorNew')==2)); var DelayArmorWhenNeeded = getPageSetting('DelayArmorWhenNeeded'); if ( @@ -391,6 +393,8 @@ function autoLevelEquipment() { //LEVELING EQUIPMENT SECTION: preBuy(); game.global.buyAmt = 1; //needed for buyEquipment() + var BuyWeaponLevels = ((getPageSetting('BuyWeaponsNew')==1) || (getPageSetting('BuyWeaponsNew')==3)); + var BuyArmorLevels = ((getPageSetting('BuyArmorNew')==1) || (getPageSetting('BuyArmorNew')==3)); for (var stat in Best) { var eqName = Best[stat].Name; var $eqName = document.getElementById(eqName); @@ -407,21 +411,22 @@ function autoLevelEquipment() { //If we are doing the MaxMapBonusAfterZone stuff, equipment should be upgraded to its cap. var maxmap = getPageSetting('MaxMapBonusAfterZone') && doMaxMapBonus; //If we're considering an attack item, we want to buy weapons if we don't have enough damage, or if we don't need health (so we default to buying some damage) - if (getPageSetting('BuyWeapons') && DaThing.Stat == 'attack' && (!enoughDamageE || enoughHealthE || maxmap || spirecheck)) { + if (BuyWeaponLevels && DaThing.Stat == 'attack' && (!enoughDamageE || enoughHealthE || maxmap || spirecheck)) { if (DaThing.Equip && !Best[stat].Wall && canAffordBuilding(eqName, null, null, true)) { debug('Leveling equipment ' + eqName, "equips", '*upload3'); buyEquipment(eqName, null, true); } } //If we're considering a health item, buy it if we don't have enough health, otherwise we default to buying damage - if (getPageSetting('BuyArmor') && (DaThing.Stat == 'health' || DaThing.Stat == 'block') && (!enoughHealthE || maxmap || spirecheck)) { + if (BuyArmorLevels && (DaThing.Stat == 'health' || DaThing.Stat == 'block') && (!enoughHealthE || maxmap || spirecheck)) { if (DaThing.Equip && !Best[stat].Wall && canAffordBuilding(eqName, null, null, true)) { debug('Leveling equipment ' + eqName, "equips", '*upload3'); buyEquipment(eqName, null, true); } } - var aalvl2 = MODULES["equipment"].alwaysLvl2; //getPageSetting('AlwaysArmorLvl2'); - if (getPageSetting('BuyArmor') && (DaThing.Stat == 'health') && aalvl2 && game.equipment[eqName].level < 2){ + //Always LVL 2: + var aalvl2 = MODULES["equipment"].alwaysLvl2; //was getPageSetting('AlwaysArmorLvl2'); + if (BuyArmorLevels && (DaThing.Stat == 'health') && aalvl2 && game.equipment[eqName].level < 2){ if (DaThing.Equip && !Best[stat].Wall && canAffordBuilding(eqName, null, null, true)) { debug('Leveling equipment ' + eqName + " (AlwaysLvl2)", "equips", '*upload3'); buyEquipment(eqName, null, true); diff --git a/modules/gather.js b/modules/gather.js index 54299d885..850c00553 100644 --- a/modules/gather.js +++ b/modules/gather.js @@ -37,7 +37,7 @@ function manualLabor() { if (trapperTrapUntilFull && (game.global.buildingsQueue.length == 0 || game.buildings.Trap.owned == 1) && !game.global.trapBuildAllowed && canAffordBuilding('Trap')) safeBuyBuilding('Trap'); //get ahead on trap building since it is always needed for Trapper } - else if (getPageSetting('ManualGather2') != 2 && game.resources.science.owned < MODULES["gather"].minScienceAmount && document.getElementById('scienceCollectBtn').style.display != 'none' && document.getElementById('science').style.visibility != 'hidden') + else if (getPageSetting('ManualGather2') != 3 && game.resources.science.owned < MODULES["gather"].minScienceAmount && document.getElementById('scienceCollectBtn').style.display != 'none' && document.getElementById('science').style.visibility != 'hidden') setGather('science'); //if we have more than 2 buildings in queue, or (our modifier is real fast and trapstorm is off), build else if (!game.talents.foreman.purchased && (game.global.buildingsQueue.length ? (game.global.buildingsQueue.length > 1 || game.global.autoCraftModifier == 0 || (getPlayerModifier() > 1000 && game.global.buildingsQueue[0] != 'Trap.1')) : false)) { @@ -50,11 +50,11 @@ function manualLabor() { //if we have some upgrades sitting around which we don't have enough science for, gather science else if (game.resources.science.owned < scienceNeeded && document.getElementById('scienceCollectBtn').style.display != 'none' && document.getElementById('science').style.visibility != 'hidden') { // debug('Science needed ' + scienceNeeded); - if ((getPlayerModifier() < getPerSecBeforeManual('Scientist') && hasTurkimp)||getPageSetting('ManualGather2') == 2){ + if ((getPlayerModifier() < getPerSecBeforeManual('Scientist') && hasTurkimp)||getPageSetting('ManualGather2') == 3){ //if manual is less than science production, switch on turkimp setGather('metal'); } - else if (getPageSetting('ManualGather2') != 2){ + else if (getPageSetting('ManualGather2') != 3){ setGather('science'); } } @@ -106,7 +106,7 @@ function manualLabor() { else setGather(lowestResource);//gather the lowest resource //This stuff seems to be repeated from above. Should be refactored and fixed so this is not confusing. - } else if (getPageSetting('ManualGather2') != 2 && document.getElementById('scienceCollectBtn').style.display != 'none' && document.getElementById('science').style.visibility != 'hidden') { + } else if (getPageSetting('ManualGather2') != 3 && document.getElementById('scienceCollectBtn').style.display != 'none' && document.getElementById('science').style.visibility != 'hidden') { if (game.resources.science.owned < getPsString('science', true) * MODULES["gather"].minScienceSeconds && game.global.turkimpTimer < 1 && haveWorkers) setGather('science'); else if (hasTurkimp) @@ -183,15 +183,15 @@ function manualLabor2() { //if we have less than (100) science or less than a minute of science if (game.resources.science.owned < MODULES["gather"].minScienceAmount || (game.resources.science.owned < getPsString('science', true) * MODULES["gather"].minScienceSeconds && game.global.turkimpTimer < 1)) - if (getPageSetting('ManualGather2') != 2) { + if (getPageSetting('ManualGather2') != 3) { setGather('science'); return; } if (game.resources.science.owned < scienceNeeded) { //if manual is less than science production and turkimp, metal. (or science is set as disallowed) - if ((getPlayerModifier() < getPerSecBeforeManual('Scientist') && hasTurkimp) || getPageSetting('ManualGather2') == 2) + if ((getPlayerModifier() < getPerSecBeforeManual('Scientist') && hasTurkimp) || getPageSetting('ManualGather2') == 3) setGather('metal'); - else if (getPageSetting('ManualGather2') != 2) { + else if (getPageSetting('ManualGather2') != 3) { setGather('science'); return; } diff --git a/modules/magmite.js b/modules/magmite.js index 5ac9684ca..179f3c896 100644 --- a/modules/magmite.js +++ b/modules/magmite.js @@ -29,13 +29,13 @@ function autoMagmiteSpender() { // then consider overclocker if we can afford it var hasOv = game.permanentGeneratorUpgrades.Hybridization.owned && game.permanentGeneratorUpgrades.Storage.owned; var ovclock = game.generatorUpgrades.Overclocker; - if (hasOv && (getPageSetting('BuyOvclock') || !ovclock.upgrades) && (game.global.magmite >= ovclock.cost())) { + if (hasOv && ((getPageSetting('BuyOneTimeOC')==1 || getPageSetting('BuyOneTimeOC')==3) || !ovclock.upgrades) && (game.global.magmite >= ovclock.cost())) { debug("Auto Spending " + ovclock.cost() + " Magmite on: Overclocker" + (ovclock.upgrades ? " #" + (ovclock.upgrades + 1) : ""), "magmite"); buyGeneratorUpgrade('Overclocker'); } - + //Part #2 - var repeat = !getPageSetting('OneTimeOnly'); + var repeat = (getPageSetting('BuyOneTimeOC')==1 || getPageSetting('BuyOneTimeOC')==2); while (repeat) { if (MODULES["magmite"].algorithm == 2) { //Method 2: diff --git a/modules/maps.js b/modules/maps.js index ece2439a8..daa504e55 100644 --- a/modules/maps.js +++ b/modules/maps.js @@ -97,7 +97,7 @@ function autoMap() { needPrestige = prestige != "Off" && game.mapUnlocks[prestige] && game.mapUnlocks[prestige].last <= (game.global.world+extraMapLevels) - 5 && game.global.challengeActive != "Frugal"; //dont need prestige if we are caught up, and have (2) unbought prestiges: skippedPrestige = false; - if (needPrestige && getPageSetting('PrestigeSkipMode')) { + if (needPrestige && (getPageSetting('PrestigeSkip1_2')==1 || getPageSetting('PrestigeSkip1_2')==2)) { var prestigeList = ['Dagadder','Megamace','Polierarm','Axeidic','Greatersword','Harmbalest','Bootboost','Hellishmet','Pantastic','Smoldershoulder','Bestplate','GambesOP']; var numUnbought = 0; for (var i in prestigeList) { @@ -111,7 +111,7 @@ function autoMap() { } } // Don't need prestige if there aren't many weapon prestiges left - if ((needPrestige || skippedPrestige) && getPageSetting('PrestigeSkip2')) { + if ((needPrestige || skippedPrestige) && (getPageSetting('PrestigeSkip1_2')==1 || getPageSetting('PrestigeSkip1_2')==3)) { const prestigeList = ['Dagadder','Megamace','Polierarm','Axeidic','Greatersword','Harmbalest']; const numLeft = prestigeList.filter(pres => game.mapUnlocks[pres].last <= (game.global.world+extraMapLevels) - 5); const shouldSkip = numLeft <= customVars.UnearnedPrestigesRequired; diff --git a/modules/portal.js b/modules/portal.js index dfa883f8d..446e7cf2e 100644 --- a/modules/portal.js +++ b/modules/portal.js @@ -106,8 +106,9 @@ function doPortal(challenge) { if(!game.global.portalActive) return; if (getPageSetting('AutoMagmiteSpender2')==1) autoMagmiteSpender(); // From mainLoop - if (getPageSetting('AutoHeirlooms2')) autoHeirlooms2(); //"Auto Heirlooms 2" (heirlooms.js) - else if (getPageSetting('AutoHeirlooms')) autoHeirlooms();//"Auto Heirlooms" (") + if (getPageSetting('AutoHeirloomsNew')==0); //"AutoHeirlooms OFF" (Heirlooms.js) + else if (getPageSetting('AutoHeirloomsNew')==1) autoHeirlooms(); //"AH1" (") + else if (getPageSetting('AutoHeirloomsNew')==2) autoHeirlooms2(); //"AH2" (") if (getPageSetting('AutoUpgradeHeirlooms') && !heirloomsShown) autoNull(); //"Auto Upgrade Heirlooms" (heirlooms.js) //Go into portal screen portalClicked(); diff --git a/modules/scryer.js b/modules/scryer.js index c7a71e5db..b999492ad 100644 --- a/modules/scryer.js +++ b/modules/scryer.js @@ -26,9 +26,10 @@ function useScryerStance() { var newSquadRdy = game.resources.trimps.realMax() <= game.resources.trimps.owned + 1; var form = game.global.formation; var oktoswitch = true; - var die = getPageSetting('ScryerDieToUseS'); + //var die = getPageSetting('ScryerDieToUseS'); + var die = true; const willSuicide = getPageSetting('ScryerDieZ'); - if (die && willSuicide >= 0) { + if (die && willSuicide > -1) { var [dieZ, dieC] = willSuicide.toString().split("."); if (dieC && dieC.length == 1) dieC = dieC + "0"; die = game.global.world >= dieZ && (!dieC || (game.global.lastClearedCell + 1 >= dieC)); From 54d63d69cd0e7496262706e4e523e2fb6b769d0f Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 13:56:19 +0100 Subject: [PATCH 026/365] scryer issue is with Autostance3 not with Scryer settings --- modules/stance.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/stance.js b/modules/stance.js index 39778885e..b95d728e9 100644 --- a/modules/stance.js +++ b/modules/stance.js @@ -567,8 +567,8 @@ function autoStance3() { if( getEmpowerment() != "Wind" || game.global.mapsActive || game.empowerments.Wind.currentDebuffPower==200) { setFormation(2); } - else if (getPageSetting('WindStacking') != -1 && (getPageSetting('WindStacking') ==0 || (game.global.world >= getPageSetting('Windstacking')))) { + else if ((getPageSetting('WindStacking') != -1) && (game.global.world >= getPageSetting('Windstacking'))) { setFormation(4); - } + return;} } } From 504048329608c65d30c39d16e627d51659ccfa8e Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 14:10:13 +0100 Subject: [PATCH 027/365] Trying to find error --- SettingsGUI.js | 4 ++-- modules/stance.js | 16 +++++++++------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index a7f7f5b22..d6e8f0edf 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -375,7 +375,7 @@ function initializeAllSettings() { //Subsection1Line1 createSetting('BetterAutoFight', ['Better AutoFight OFF', 'Better Auto Fight 1', 'Better Auto Fight 2',], '3-Way Button, Recommended. Will automatically handle fighting. The decision between BetterAutoFight 1 or 2 is up to your own discretion. The new BAF#2 does: A)Click fight anyway if we are dead and stuck in a loop due to Dimensional Generator and we can get away with adding time to it.(RemainingTime + ArmyAdd.Time < GeneTimer) and B) Clicks fight anyway if we are dead and have >=31 NextGroupTimer and deal with the consequences by firing genetecists afterwards. WARNING: If you autoportal with BetterAutoFight disabled, the game sits there doing nothing until you click FIGHT. (not good for afk) ', 'multitoggle', 1, null, "Combat"); createSetting('AutoStance', ['Auto Stance OFF', 'Auto Stance 1', 'Auto Stance 2', 'Auto Stance 3'], 'Automatically swap stances to avoid death. The decision between AutoStance 1 or 2 is up to your own discretion and they should be similar. Better Autofight 3 is new and experimental for use after nature (z230), and will keep you in D stance unless you are windstacking (only useful if transfer is maxed out and wind empowerment is high. This feature is currently only a tweak added on request.', 'multitoggle', 1, null, "Combat"); - createSetting('WindStacking', 'Windstack Min Zone', '-1 = off, 0 = Always On
For use with AutoStance 3, enables windstacking in zones above and inclusive of the zone set. (Get 200 windstacks then change to D, kill bad guy, then repeat)', 'value', '-1', null, 'Combat'); + createSetting('WindStackingMin', 'Windstack Min Zone', '-1 = off, 0 = Always On
For use with AutoStance 3, enables windstacking in zones above and inclusive of the zone set. (Get 200 windstacks then change to D, kill bad guy, then repeat)', 'value', '-1', null, 'Combat'); createSetting('IgnoreCrits', ['Safety First', 'Ignore Void Strength', 'Ignore All Crits'], 'No longer switches to B against corrupted precision and/or void strength. Basically we now treat \'crit things\' as regular in both autoStance and autoStance2. In fact it no longer takes precision / strength into account and will manage like a normal enemy, thus retaining X / D depending on your needs. If you\'re certain your block is high enough regardless if you\'re fighting a crit guy in a crit daily, use this! Alternatively, manage the stances yourself.', 'multitoggle', 0, null, 'Combat'); createSetting('PowerSaving', ['Don\'t care', 'Power Saving', 'Only Rush Voids'], 'Avoid killing your army impatiently. Don\'t force abandon trimps when prestiging. Will still Die To Use Z and aggressively autostance to aid progression and anything else. Made for Empower daily, you might find it helpful if you\'re doing Workplace Safety feat. Then again with that I strongly recommend doing it fully manually. Anyway, don\'t blame me whatever happens. Only Rush Voids will allow considering abandoning, not force one. Note: AT will no longer be able to fix when your scryer gets stuck!', 'multitoggle', 0, null, 'Combat'); createSetting('ForceAbandon', 'Auto Force-Abandon', '(Trimpicide). If a new fight group is available and anticipation stacks arent maxed, force abandon and grab a new group. Located in the geneticist management script.', 'boolean', true, null, 'Combat'); @@ -825,7 +825,7 @@ function updateCustomButtons() { //if ShieldBlock is for sure, remove ShieldBlock from settingsbox (achievement=12 means z100). //(game.achievements.zones.finished < 12) ? turnOn("BuyShieldblock") : function(){turnOff("BuyShieldblock");setPageSetting("BuyShieldblock",false);}(); //if AS3 is not selected, remove Windstack settingsbox - getPageSetting('AutoStance')==3 ? turnOn("WindStacking"): turnOff("WindStacking"); + getPageSetting('AutoStance')==3 ? turnOn("WindStackingMin"): turnOff("WindStackingMin"); getPageSetting('AutoStance')==3 ? turnOn("ScryUseinPoison"): turnOff("ScryUseinPoison"); getPageSetting('AutoStance')==3 ? turnOn("ScryUseinWind"): turnOff("ScryUseinWind"); getPageSetting('AutoStance')==3 ? turnOn("ScryUseinIce"): turnOff("ScryUseinIce"); diff --git a/modules/stance.js b/modules/stance.js index b95d728e9..55488b3a1 100644 --- a/modules/stance.js +++ b/modules/stance.js @@ -560,15 +560,17 @@ function autoStance3() { //no need to continue if (game.global.gridArray.length === 0) return; if (game.global.soldierHealth <= 0) return; //dont calculate stances when dead, cause the "current" numbers are not updated when dead. - if (!getPageSetting('AutoStance')) return; + if (getPageSetting('AutoStance') == 0) return; if (!game.upgrades.Formations.done) return; if(game.global.world>=80) { - if( getEmpowerment() != "Wind" || game.global.mapsActive || game.empowerments.Wind.currentDebuffPower==200) { - setFormation(2); - } - else if ((getPageSetting('WindStacking') != -1) && (game.global.world >= getPageSetting('Windstacking'))) { - setFormation(4); - return;} + if( getEmpowerment() != "Wind" || game.global.mapsActive || game.empowerments.Wind.currentDebuffPower==200) { + setFormation(2); + return; + } + else if ((getPageSetting('WindStackingMin') != -1) && (game.global.world >= getPageSetting('WindstackingMin'))) { + setFormation(4); + return; + } } } From 16a8a4e6511d32414359a046a50bb30c279c15c7 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 14:17:51 +0100 Subject: [PATCH 028/365] attempt to fix AS3 #2 --- modules/stance.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/stance.js b/modules/stance.js index 55488b3a1..e0767a9cf 100644 --- a/modules/stance.js +++ b/modules/stance.js @@ -564,11 +564,11 @@ function autoStance3() { if (!game.upgrades.Formations.done) return; if(game.global.world>=80) { - if( getEmpowerment() != "Wind" || game.global.mapsActive || game.empowerments.Wind.currentDebuffPower==200) { + if( getEmpowerment() != "Wind" || game.global.mapsActive || game.empowerments.Wind.currentDebuffPower==200 || (getPageSetting('WindStackingMin') < 0)) { setFormation(2); return; } - else if ((getPageSetting('WindStackingMin') != -1) && (game.global.world >= getPageSetting('WindstackingMin'))) { + else if (game.global.world >= getPageSetting('WindstackingMin')) { setFormation(4); return; } From def63b9bc1ddd57c39261b0f7c8c13239c0a937c Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 14:30:55 +0100 Subject: [PATCH 029/365] attempt #3 --- modules/stance.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/stance.js b/modules/stance.js index e0767a9cf..d2883ff2e 100644 --- a/modules/stance.js +++ b/modules/stance.js @@ -563,12 +563,18 @@ function autoStance3() { if (getPageSetting('AutoStance') == 0) return; if (!game.upgrades.Formations.done) return; + var windstackzone = getPageSetting('WindStackingMin') + if(game.global.world>=80) { - if( getEmpowerment() != "Wind" || game.global.mapsActive || game.empowerments.Wind.currentDebuffPower==200 || (getPageSetting('WindStackingMin') < 0)) { + if( getEmpowerment() != "Wind" + || game.global.mapsActive + || game.empowerments.Wind.currentDebuffPower==200 + || (windstackzone < 0) + || (windstackzone >= game.global.world)) { setFormation(2); return; } - else if (game.global.world >= getPageSetting('WindstackingMin')) { + else if (game.global.world >= windstackzone) { setFormation(4); return; } From b394c0829ce69b2a2afa781b6275c89c2197eee8 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 16:52:13 +0100 Subject: [PATCH 030/365] Edits to user friendliness of Scryer settings --- SettingsGUI.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/SettingsGUI.js b/SettingsGUI.js index d6e8f0edf..c04b121c8 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -830,6 +830,9 @@ function updateCustomButtons() { getPageSetting('AutoStance')==3 ? turnOn("ScryUseinWind"): turnOff("ScryUseinWind"); getPageSetting('AutoStance')==3 ? turnOn("ScryUseinIce"): turnOff("ScryUseinIce"); getPageSetting('AutoStance')!=3 ? turnOn("IgnoreCrits") : turnOff("IgnoreCrits"); + //Make Scryer settings a little more user friendly + if (getPageSetting('ScryerUseinVoidMaps2') !=1) { setPageSetting("ScryerUseinMaps2", "2"); } + if (getPageSetting('ScryerUseinSpire2') !=1 && isActiveSpireAT()) { setPageSetting("ScryerSkipCorrupteds2", "2"); } //Show and Hide useless settings to reduce UI clutter var turnonofflist = [ "ManualGather2","BuyUpgradesNew","TrapTrimps","UsePatience", From b0e7f06848736d0b11015a874906d2430b9520ee Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 16:59:09 +0100 Subject: [PATCH 031/365] comment that shit out, it didn't work. --- SettingsGUI.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index c04b121c8..9252683fd 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -830,9 +830,9 @@ function updateCustomButtons() { getPageSetting('AutoStance')==3 ? turnOn("ScryUseinWind"): turnOff("ScryUseinWind"); getPageSetting('AutoStance')==3 ? turnOn("ScryUseinIce"): turnOff("ScryUseinIce"); getPageSetting('AutoStance')!=3 ? turnOn("IgnoreCrits") : turnOff("IgnoreCrits"); - //Make Scryer settings a little more user friendly - if (getPageSetting('ScryerUseinVoidMaps2') !=1) { setPageSetting("ScryerUseinMaps2", "2"); } - if (getPageSetting('ScryerUseinSpire2') !=1 && isActiveSpireAT()) { setPageSetting("ScryerSkipCorrupteds2", "2"); } + /*//Make Scryer settings a little more user friendly + if (getPageSetting('ScryerUseinVoidMaps2') !=0) { setPageSetting("ScryerUseinMaps2", "2"); } + if (getPageSetting('ScryerUseinSpire2') !=1 && isActiveSpireAT()) { setPageSetting("ScryerSkipCorrupteds2", "2"); } */ //Show and Hide useless settings to reduce UI clutter var turnonofflist = [ "ManualGather2","BuyUpgradesNew","TrapTrimps","UsePatience", From bfe5a1064c5bfbed0520dababad63ae374bb84fd Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 17:07:16 +0100 Subject: [PATCH 032/365] Tooltips --- SettingsGUI.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 9252683fd..cc34ff92b 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -375,7 +375,7 @@ function initializeAllSettings() { //Subsection1Line1 createSetting('BetterAutoFight', ['Better AutoFight OFF', 'Better Auto Fight 1', 'Better Auto Fight 2',], '3-Way Button, Recommended. Will automatically handle fighting. The decision between BetterAutoFight 1 or 2 is up to your own discretion. The new BAF#2 does: A)Click fight anyway if we are dead and stuck in a loop due to Dimensional Generator and we can get away with adding time to it.(RemainingTime + ArmyAdd.Time < GeneTimer) and B) Clicks fight anyway if we are dead and have >=31 NextGroupTimer and deal with the consequences by firing genetecists afterwards. WARNING: If you autoportal with BetterAutoFight disabled, the game sits there doing nothing until you click FIGHT. (not good for afk) ', 'multitoggle', 1, null, "Combat"); createSetting('AutoStance', ['Auto Stance OFF', 'Auto Stance 1', 'Auto Stance 2', 'Auto Stance 3'], 'Automatically swap stances to avoid death. The decision between AutoStance 1 or 2 is up to your own discretion and they should be similar. Better Autofight 3 is new and experimental for use after nature (z230), and will keep you in D stance unless you are windstacking (only useful if transfer is maxed out and wind empowerment is high. This feature is currently only a tweak added on request.', 'multitoggle', 1, null, "Combat"); - createSetting('WindStackingMin', 'Windstack Min Zone', '-1 = off, 0 = Always On
For use with AutoStance 3, enables windstacking in zones above and inclusive of the zone set. (Get 200 windstacks then change to D, kill bad guy, then repeat)', 'value', '-1', null, 'Combat'); + createSetting('WindStackingMin', 'Windstack Min Zone', '-1 = Off
0 = Always On

For use with AutoStance 3, enables windstacking in zones above and inclusive of the zone set. (Get 200 windstacks then change to D, kill bad guy, then repeat). This is designed to force S use until you have 200 stacks in wind zones, overriding scryer settings.', 'value', '-1', null, 'Combat'); createSetting('IgnoreCrits', ['Safety First', 'Ignore Void Strength', 'Ignore All Crits'], 'No longer switches to B against corrupted precision and/or void strength. Basically we now treat \'crit things\' as regular in both autoStance and autoStance2. In fact it no longer takes precision / strength into account and will manage like a normal enemy, thus retaining X / D depending on your needs. If you\'re certain your block is high enough regardless if you\'re fighting a crit guy in a crit daily, use this! Alternatively, manage the stances yourself.', 'multitoggle', 0, null, 'Combat'); createSetting('PowerSaving', ['Don\'t care', 'Power Saving', 'Only Rush Voids'], 'Avoid killing your army impatiently. Don\'t force abandon trimps when prestiging. Will still Die To Use Z and aggressively autostance to aid progression and anything else. Made for Empower daily, you might find it helpful if you\'re doing Workplace Safety feat. Then again with that I strongly recommend doing it fully manually. Anyway, don\'t blame me whatever happens. Only Rush Voids will allow considering abandoning, not force one. Note: AT will no longer be able to fix when your scryer gets stuck!', 'multitoggle', 0, null, 'Combat'); createSetting('ForceAbandon', 'Auto Force-Abandon', '(Trimpicide). If a new fight group is available and anticipation stacks arent maxed, force abandon and grab a new group. Located in the geneticist management script.', 'boolean', true, null, 'Combat'); @@ -390,16 +390,16 @@ function initializeAllSettings() { createSetting('ScryerUseWhenOverkill', 'Use When Overkill', 'Overrides the Min/Max zones. Does not override any NEVER settings. Toggles stance when we can Overkill in S, giving us double loot with no speed penalty! NOTE: This being on, and being able to overkill in S will override ALL other settings (Except never use in spire). This is a boolean logic shortcut that disregards all the other settings including Min and Max Zone. If you ONLY want to use S during Overkill, as a workaround: turn this on and Min zone: to 9999 and everything else off(red).

This has not been optimised for double overkill, and does not always produce the intended results, if you have problems, it may be worth turning off until it can be adjusted.', 'boolean', true, null, 'Scryer'); createSetting('ScryerMinZone', 'Min Zone', 'Minimum zone to start using scryer in.(inclusive) Recommend:(60 or 181). Overkill ignores this. This needs to be On & Valid for the MAYBE option on all other Scryer settings to do anything if Overkill is off. Tip: Use 9999 to disable all Non-Overkill, Non-Force, scryer usage.', 'value', '181', null, 'Scryer'); createSetting('ScryerMaxZone', 'Max Zone', '0 or -1 to disable (Recommended)
Overkill ignores this. Zone to STOP using scryer at (not inclusive). Turning this ON with a positive number stops MAYBE use of all other Scryer settings.', 'value', '230', null, 'Scryer'); - createSetting('ScryerUseinMaps2', ['Maps: NEVER','Maps: FORCE', 'Maps: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate in Void Maps
MAYBE means that Overkill and Min/Max use are allowed.

Recommend MAYBE.', 'multitoggle', 2, null, 'Scryer'); - createSetting('ScryerUseinVoidMaps2', ['VoidMaps: NEVER','VoidMaps: FORCE', 'VoidMaps: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate in Void Maps
MAYBE means that Overkill and Min/Max use are allowed.

Recommend NEVER.', 'multitoggle', 0, null, 'Scryer'); - createSetting('ScryerUseinSpire2', ['Spire: NEVER','Spire: FORCE','Spire: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate in the Spire
MAYBE means that Overkill and Min/Max use are allowed.

Recommend NEVER.', 'multitoggle', 0, null, 'Scryer'); + createSetting('ScryerUseinMaps2', ['Maps: NEVER','Maps: FORCE', 'Maps: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate in Void Maps
MAYBE means that Overkill and Min/Max use are allowed.This setting requires use on Corrupteds to be on after corruption/magma.

Recommend MAYBE.', 'multitoggle', 2, null, 'Scryer'); + createSetting('ScryerUseinVoidMaps2', ['VoidMaps: NEVER','VoidMaps: FORCE', 'VoidMaps: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate in Void Maps
MAYBE means that Overkill and Min/Max use are allowed.
This setting requires use in Maps to be on, as well as use on Corrupteds (if above corruption/magma) to activate.

Recommend NEVER.', 'multitoggle', 0, null, 'Scryer'); + createSetting('ScryerUseinSpire2', ['Spire: NEVER','Spire: FORCE','Spire: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate in the Spire
MAYBE means that Overkill and Min/Max use are allowed.
This requires use on Corrupteds to be on for corrupted enemies.

Recommend NEVER.', 'multitoggle', 0, null, 'Scryer'); //Line2 createSetting('ScryerSkipBoss2', ['Boss: NEVER (All Levels)','Boss: NEVER (Above VoidLevel)','Boss: MAYBE'], 'NEVER (All Levels) will NEVER use S in cell 100 of the world!!!
NEVER (Above VoidLevel) will NEVER use S in cell 100 of the world ABOVE the zone that your void maps are set to run at (Maps).
MAYBE treats the cell no differently to any other, Overkill and Min/Max Scryer is allowed.

Recommend NEVER (There is little benefit to double NON-HELIUM resources and a small chance of DE).', 'multitoggle', 0, null, 'Scryer'); - createSetting('ScryerSkipCorrupteds2', ['Corrupted: NEVER', 'Corrupted: FORCE','Corrupted: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate against Corrupted enemies
MAYBE means that Overkill and Min/Max use are allowed.
Magma maps and Corrupted Voidmaps are currently classified as corrupted and Green-DontUse here will override the Force Maps/Force Voidmaps use of Scryer

Recommend MAYBE.', 'multitoggle', 2, null, 'Scryer'); + createSetting('ScryerSkipCorrupteds2', ['Corrupted: NEVER', 'Corrupted: FORCE','Corrupted: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate against Corrupted enemies
MAYBE means that Overkill and Min/Max use are allowed.
Magma maps and Corrupted Voidmaps are currently classified as corrupted and NEVER here will override Maps and Voidmaps use of Scryer

Recommend MAYBE.', 'multitoggle', 2, null, 'Scryer'); createSetting('ScryerDieZ', 'Die To Use S','-1 to disable.
Turning this on will switch you back to S even when doing so would kill you. Happens in scenarios where you used Skip Corrupteds that took you into regular Autostance X/H stance, killed the corrupted and reached a non-corrupted enemy that you wish to use S on, but you havent bred yet and you are too low on health to just switch back to S. So you\'d rather die, wait to breed, then use S for the full non-corrupted enemy, to maximize DE. This feature was added for 1 person, use at your own risk.
Use this input to set the minimum zone that scryer activates in (You can use decimal values to specify what cell this setting starts from)' , 'value', 230.60, null, 'Scryer'); - createSetting('ScryUseinPoison', 'Scry in Poison','-1 to disable, any other number sets a minimum zone to use S in Poison', 'value', -1, null, 'Scryer'); //should it override Overkill??? Copy this for Wind/Ice - createSetting('ScryUseinWind', 'Scry in Wind','-1 to disable, any other number sets a minimum zone to use S in Wind', 'value', -1, null, 'Scryer'); - createSetting('ScryUseinIce', 'Scry in Ice','-1 to disable, any other number sets a minimum zone to use S in Ice', 'value', -1, null, 'Scryer'); + createSetting('ScryUseinPoison', 'Scry in Poison','-1 to disable, any other number (including 0) sets a minimum zone to use S in Poison', 'value', -1, null, 'Scryer'); + createSetting('ScryUseinWind', 'Scry in Wind','-1 to disable, any other number (including 0) sets a minimum zone to use S in Wind', 'value', -1, null, 'Scryer'); + createSetting('ScryUseinIce', 'Scry in Ice','-1 to disable, any other number (including 0) sets a minimum zone to use S in Ice', 'value', -1, null, 'Scryer'); From e4b7bd6cce89e7fe1289ebbd3d6afb19a0d3d051 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 17:10:43 +0100 Subject: [PATCH 033/365] more tooltips --- SettingsGUI.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index cc34ff92b..6af07cdc2 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -386,13 +386,13 @@ function initializeAllSettings() { //Scryer - createSetting('UseScryerStance', 'Enable Scryer Stance', 'MASTER BUTTON Activates all other scrying settings, and overrides AutoStance when scryer conditions are met. Leave regular Autostance on while this is active. Scryer gives 2x Resources (Non-Helium/Nullifium) and a chance for Dark Essence. Once this is on, priority for Scryer decisions goes as such:
NEVER USE, FORCE USE, OVERKILL, MIN/MAX ZONE
NO OTHER BUTTONS WILL DO ANYTHING IF THIS IS OFF.', 'boolean', true, null, 'Scryer'); + createSetting('UseScryerStance', 'Enable Scryer Stance', 'MASTER BUTTON Activates all other scrying settings, and overrides AutoStance when scryer conditions are met. Leave regular Autostance on while this is active. Scryer gives 2x Resources (Non-Helium/Nullifium) and a chance for Dark Essence. Once this is on, priority for Scryer decisions goes as such:
NEVER USE, FORCE USE, OVERKILL, MIN/MAX ZONE

NO OTHER BUTTONS WILL DO ANYTHING IF THIS IS OFF.', 'boolean', true, null, 'Scryer'); createSetting('ScryerUseWhenOverkill', 'Use When Overkill', 'Overrides the Min/Max zones. Does not override any NEVER settings. Toggles stance when we can Overkill in S, giving us double loot with no speed penalty! NOTE: This being on, and being able to overkill in S will override ALL other settings (Except never use in spire). This is a boolean logic shortcut that disregards all the other settings including Min and Max Zone. If you ONLY want to use S during Overkill, as a workaround: turn this on and Min zone: to 9999 and everything else off(red).

This has not been optimised for double overkill, and does not always produce the intended results, if you have problems, it may be worth turning off until it can be adjusted.', 'boolean', true, null, 'Scryer'); createSetting('ScryerMinZone', 'Min Zone', 'Minimum zone to start using scryer in.(inclusive) Recommend:(60 or 181). Overkill ignores this. This needs to be On & Valid for the MAYBE option on all other Scryer settings to do anything if Overkill is off. Tip: Use 9999 to disable all Non-Overkill, Non-Force, scryer usage.', 'value', '181', null, 'Scryer'); createSetting('ScryerMaxZone', 'Max Zone', '0 or -1 to disable (Recommended)
Overkill ignores this. Zone to STOP using scryer at (not inclusive). Turning this ON with a positive number stops MAYBE use of all other Scryer settings.', 'value', '230', null, 'Scryer'); - createSetting('ScryerUseinMaps2', ['Maps: NEVER','Maps: FORCE', 'Maps: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate in Void Maps
MAYBE means that Overkill and Min/Max use are allowed.This setting requires use on Corrupteds to be on after corruption/magma.

Recommend MAYBE.', 'multitoggle', 2, null, 'Scryer'); + createSetting('ScryerUseinMaps2', ['Maps: NEVER','Maps: FORCE', 'Maps: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate in Void Maps
MAYBE means that Overkill and Min/Max use are allowed.
This setting requires use on Corrupteds to be on after corruption/magma.

Recommend MAYBE.', 'multitoggle', 2, null, 'Scryer'); createSetting('ScryerUseinVoidMaps2', ['VoidMaps: NEVER','VoidMaps: FORCE', 'VoidMaps: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate in Void Maps
MAYBE means that Overkill and Min/Max use are allowed.
This setting requires use in Maps to be on, as well as use on Corrupteds (if above corruption/magma) to activate.

Recommend NEVER.', 'multitoggle', 0, null, 'Scryer'); - createSetting('ScryerUseinSpire2', ['Spire: NEVER','Spire: FORCE','Spire: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate in the Spire
MAYBE means that Overkill and Min/Max use are allowed.
This requires use on Corrupteds to be on for corrupted enemies.

Recommend NEVER.', 'multitoggle', 0, null, 'Scryer'); + createSetting('ScryerUseinSpire2', ['Spire: NEVER','Spire: FORCE','Spire: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate in the Spire
MAYBE means that Overkill and Min/Max use are allowed.
This setting requires use on Corrupteds to be on for corrupted enemies.

Recommend NEVER.', 'multitoggle', 0, null, 'Scryer'); //Line2 createSetting('ScryerSkipBoss2', ['Boss: NEVER (All Levels)','Boss: NEVER (Above VoidLevel)','Boss: MAYBE'], 'NEVER (All Levels) will NEVER use S in cell 100 of the world!!!
NEVER (Above VoidLevel) will NEVER use S in cell 100 of the world ABOVE the zone that your void maps are set to run at (Maps).
MAYBE treats the cell no differently to any other, Overkill and Min/Max Scryer is allowed.

Recommend NEVER (There is little benefit to double NON-HELIUM resources and a small chance of DE).', 'multitoggle', 0, null, 'Scryer'); createSetting('ScryerSkipCorrupteds2', ['Corrupted: NEVER', 'Corrupted: FORCE','Corrupted: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate against Corrupted enemies
MAYBE means that Overkill and Min/Max use are allowed.
Magma maps and Corrupted Voidmaps are currently classified as corrupted and NEVER here will override Maps and Voidmaps use of Scryer

Recommend MAYBE.', 'multitoggle', 2, null, 'Scryer'); From 0e824e6604d8e757e995b539e0edfcc335bccc01 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 29 Mar 2018 23:24:56 +0100 Subject: [PATCH 034/365] Change textShadow for overlay to make it more prominent --- modules/fight-info.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 8923b769b..45d71dd15 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -101,7 +101,7 @@ $cell.title = cell.name; //$cell.style.color = M["fightinfo"].colors.bone; //(This changes the colour of the glyph - bad bc it overrides trimps and looks bad against corruption etc) - $cell.style.textShadow = '0px 0px 10px #ffffff'; + $cell.style.textShadow = '0px 0px 15px #ffffff'; } else if(M["fightinfo"].exotics.indexOf(cell.name) > -1) // Exotic cell @@ -111,7 +111,7 @@ $cell.title = cell.name; //$cell.style.color = M["fightinfo"].colors.exotic; //(This changes the colour of the glyph - bad bc it overrides trimps and looks bad against corruption etc) - $cell.style.textShadow = '0px 0px 10px #fb753f'; + $cell.style.textShadow = '0px 0px 15px #fb753f'; } else if(M["fightinfo"].powerful.indexOf(cell.name) > -1) // Powerful imp @@ -121,7 +121,7 @@ $cell.title = cell.name; //$cell.style.color = M["fightinfo"].colors.powerful; //(This changes the colour of the glyph - bad bc it overrides trimps and looks bad against corruption etc) - $cell.style.textShadow = '0px 0px 10px #8c0000'; + $cell.style.textShadow = '0px 0px 15px #8c0000'; } //This shit doesn't work and I don't know why (What is the celltitle??? is it the name of the nature? Imps are labelled Toxic/Gusty/Frozen but that didin't work either) From 001dfe49e1940f5904871d6720b1ed190cbdafe0 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Fri, 30 Mar 2018 15:04:56 +0100 Subject: [PATCH 035/365] fix scryer crash on healthy enemy --- modules/scryer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/scryer.js b/modules/scryer.js index 4df015e64..183632935 100644 --- a/modules/scryer.js +++ b/modules/scryer.js @@ -27,7 +27,7 @@ function useScryerStance() { || (getEmpowerment() == "Wind" && 0 <= getPageSetting('ScryUseinWind') && (game.global.world < getPageSetting('ScryUseinWind'))) || (getEmpowerment() == "Ice" && 0 <= getPageSetting('ScryUseinIce') && (game.global.world < getPageSetting('ScryUseinIce')))); //check Corrupted Never - var iscorrupt = getCurrentEnemy(1).mutation == "Corruption"; + var iscorrupt = getCurrentEnemy(1).mutation == ("Corruption" || "Healthy"); iscorrupt = iscorrupt || (mutations.Magma.active() && game.global.mapsActive); iscorrupt = iscorrupt || (game.global.mapsActive && getCurrentMapObject().location == "Void" && game.global.world >= mutations.Corruption.start()); if ((iscorrupt && getPageSetting('ScryerSkipCorrupteds2') == 0 || (use_auto))) { From 866ca9fe37b69c64069fd500d16fec5270a6d8f9 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Tue, 3 Apr 2018 00:09:16 +0100 Subject: [PATCH 036/365] tooltip --- SettingsGUI.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 6af07cdc2..634c8e27f 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -377,8 +377,8 @@ function initializeAllSettings() { createSetting('AutoStance', ['Auto Stance OFF', 'Auto Stance 1', 'Auto Stance 2', 'Auto Stance 3'], 'Automatically swap stances to avoid death. The decision between AutoStance 1 or 2 is up to your own discretion and they should be similar. Better Autofight 3 is new and experimental for use after nature (z230), and will keep you in D stance unless you are windstacking (only useful if transfer is maxed out and wind empowerment is high. This feature is currently only a tweak added on request.', 'multitoggle', 1, null, "Combat"); createSetting('WindStackingMin', 'Windstack Min Zone', '-1 = Off
0 = Always On

For use with AutoStance 3, enables windstacking in zones above and inclusive of the zone set. (Get 200 windstacks then change to D, kill bad guy, then repeat). This is designed to force S use until you have 200 stacks in wind zones, overriding scryer settings.', 'value', '-1', null, 'Combat'); createSetting('IgnoreCrits', ['Safety First', 'Ignore Void Strength', 'Ignore All Crits'], 'No longer switches to B against corrupted precision and/or void strength. Basically we now treat \'crit things\' as regular in both autoStance and autoStance2. In fact it no longer takes precision / strength into account and will manage like a normal enemy, thus retaining X / D depending on your needs. If you\'re certain your block is high enough regardless if you\'re fighting a crit guy in a crit daily, use this! Alternatively, manage the stances yourself.', 'multitoggle', 0, null, 'Combat'); - createSetting('PowerSaving', ['Don\'t care', 'Power Saving', 'Only Rush Voids'], 'Avoid killing your army impatiently. Don\'t force abandon trimps when prestiging. Will still Die To Use Z and aggressively autostance to aid progression and anything else. Made for Empower daily, you might find it helpful if you\'re doing Workplace Safety feat. Then again with that I strongly recommend doing it fully manually. Anyway, don\'t blame me whatever happens. Only Rush Voids will allow considering abandoning, not force one. Note: AT will no longer be able to fix when your scryer gets stuck!', 'multitoggle', 0, null, 'Combat'); - createSetting('ForceAbandon', 'Auto Force-Abandon', '(Trimpicide). If a new fight group is available and anticipation stacks arent maxed, force abandon and grab a new group. Located in the geneticist management script.', 'boolean', true, null, 'Combat'); + createSetting('PowerSaving', ['AutoAbandon', 'Don\'t Abandon', 'Only Rush Voids'], 'Autoabandon: Considers abandoning trimps for void maps/prestiges.
Don\'t Abandon: Will not abandon troops, but will still agressively autostance even if it will kill you (WILL NOT ABANDON TRIMPS TO DO VOIDS).
Only Rush Voids: Considers abandoning trimps for void maps, but not prestiges, still autostances aggressively.
Made for Empower daily, and you might find this helpful if you\'re doing Workplace Safety feat. Then again with that I strongly recommend doing it fully manually. Anyway, don\'t blame me whatever happens.
Note: AT will no longer be able to fix when your scryer gets stuck!', 'multitoggle', 0, null, 'Combat'); + createSetting('ForceAbandon', 'Auto Force-Abandon', '(Trimpicide). If a new fight group is available and anticipation stacks aren\'t maxed, force abandon and grab a new group. Located in the geneticist management script.', 'boolean', true, null, 'Combat'); createSetting('DynamicGyms', 'Dynamic Gyms', 'Designed to limit your block to slightly more than however much the enemy attack is. If MaxGyms is capped or GymWall is set, those will still work, and this will NOT override those (works concurrently), but it will further limit them. In the future it may override, but the calculation is not easy to get right so I dont want it undo-ing other things yet. ', 'boolean', false, null, 'Combat'); //Does anybody actually use this? createSetting('AutoRoboTrimp', 'AutoRoboTrimp', 'Use RoboTrimps ability starting at this level, and every 5 levels thereafter. (set to 0 to disable. default 60.) 60 is a good choice for mostly everybody.', 'value', '60', null, 'Combat'); From 771c74afb949dbbf96ba566c048288edb601e1f1 Mon Sep 17 00:00:00 2001 From: gen BTC Date: Mon, 2 Apr 2018 19:23:09 -0400 Subject: [PATCH 037/365] Fix left hand assignment error. --- modules/scryer.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/scryer.js b/modules/scryer.js index 183632935..1406e6584 100644 --- a/modules/scryer.js +++ b/modules/scryer.js @@ -85,9 +85,9 @@ function useScryerStance() { if (useoverkill && !game.global.mapsActive && isActiveSpireAT() && getPageSetting('ScryerUseinSpire2')==0) useoverkill = false; //If lower than nature zone, do not use overkill //redundant now?? - if (useoverkill && ((getEmpowerment() = "Poison" && (game.global.world <= getPageSetting('ScryUseinPoison'))) - || (getEmpowerment() = "Wind" && (game.global.world <= getPageSetting('ScryUseinWind'))) - || (getEmpowerment() = "Ice" &&(game.global.world <= getPageSetting('ScryUseinIce'))))) + if (useoverkill && ((getEmpowerment() == "Poison" && (game.global.world <= getPageSetting('ScryUseinPoison'))) + || (getEmpowerment() == "Wind" && (game.global.world <= getPageSetting('ScryUseinWind'))) + || (getEmpowerment() == "Ice" &&(game.global.world <= getPageSetting('ScryUseinIce'))))) useoverkill = false; //Overkill button being on and being able to overkill in S will override any setting other than never spire & nature zone, regardless. if (useoverkill && game.portal.Overkill.level > 0) { From 6d0ac5dd06dfcef86ab4833544449fae0fe21d14 Mon Sep 17 00:00:00 2001 From: gen BTC Date: Mon, 2 Apr 2018 19:39:00 -0400 Subject: [PATCH 038/365] fix upgrades manual coords. --- modules/upgrades.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/upgrades.js b/modules/upgrades.js index 84c5baae1..7207ac9df 100644 --- a/modules/upgrades.js +++ b/modules/upgrades.js @@ -7,7 +7,7 @@ function buyUpgrades() { upgrade = upgradeList[upgrade]; var gameUpgrade = game.upgrades[upgrade]; var available = (gameUpgrade.allowed > gameUpgrade.done && canAffordTwoLevel(gameUpgrade)); - if (upgrade == 'Coordination' && (getPageSetting('BuyUpgradesNew') != 1 || !canAffordCoordinationTrimps())) continue; + if (upgrade == 'Coordination' && (getPageSetting('BuyUpgradesNew') == 2 || !canAffordCoordinationTrimps())) continue; if (upgrade == 'Shieldblock' && !getPageSetting('BuyShieldblock')) continue; if (upgrade == 'Gigastation' && (game.global.lastWarp ? game.buildings.Warpstation.owned < (Math.floor(game.upgrades.Gigastation.done * getPageSetting('DeltaGigastation')) + getPageSetting('FirstGigastation')) : game.buildings.Warpstation.owned < getPageSetting('FirstGigastation'))) continue; //skip bloodlust during scientist challenges and while we have autofight enabled. From 7520bdcebc054ddfb979f205fe9e7646b79daebd Mon Sep 17 00:00:00 2001 From: gen BTC Date: Mon, 2 Apr 2018 19:42:51 -0400 Subject: [PATCH 039/365] make tooltip show up again for AutoGoldenUpgrades --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 6af07cdc2..fb9e3dac8 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -427,7 +427,7 @@ function initializeAllSettings() { //Golden Upgrade Strategies: - createSetting('AutoGoldenUpgrades', 'Auto Golden Upgrades', 'IMPORTANT SETTING. Automatically Buy the specified Golden Upgrades as they become available. Faster than vanilla. NOTE: Void setting unlocks more settings: goldStrat, goldAlternating, goldZone and goldNoBattle. New: Void also has a \"Max then Helium\" setting so you can get the perfect 60% Voids then Helium. More buttons will become visible when you make selections.', 'dropdown', 'Void', ["Off", "Helium", "Battle", "Void"], 'Golden'); + createSetting('AutoGoldenUpgrades', 'Auto Golden Upgrades', 'IMPORTANT SETTING. Automatically Buy the specified Golden Upgrades as they become available. Faster than vanilla. NOTE: Void setting unlocks more settings: goldStrat, goldAlternating, goldZone and goldNoBattle. New: Void also has a \\"Max then Helium\\" setting so you can get the perfect 60% Voids then Helium. More buttons will become visible when you make selections.', 'dropdown', 'Void', ["Off", "Helium", "Battle", "Void"], 'Golden'); createSetting('goldStrat', 'Auto Golden Strategy', 'VOID ONLY: After max Void golden upgrades, alternate between buying helium and battle upgrades. Or Choose a Zone to switch over completely at (zones lower than X will buy only battle, and zones higher than X only helium). Battle can be disabled completely with the goldNoBattle button. MAX THEN HELIUM setting so you can get the perfect 60% Voids then Helium', 'dropdown', 'Max then Helium', ["Off", "Alternating", "Zone", "Max then Helium"], 'Golden'); createSetting('goldAlternating', 'GU VOID: Alternating', 'Buy a helium upgrade after X-1 battle upgrades have been purchased', 'value', '2', null, 'Golden'); createSetting('goldZone', 'GU VOID: Zone', 'Buy a helium upgrade until zone X, then buy battle upgrades.', 'value', '200', null, 'Golden'); From 21e99a57d42ecdb2c6b1389b51c3111709e31338 Mon Sep 17 00:00:00 2001 From: gen BTC Date: Mon, 2 Apr 2018 19:51:36 -0400 Subject: [PATCH 040/365] fixups. --- AutoTrimps2.js | 12 ++++-------- SettingsGUI.js | 14 +++++--------- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index e04132e13..770cdfddd 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -213,15 +213,11 @@ function mainLoop() { else if (getPageSetting('BuyBuildingsNew')==1) { buyBuildings(); buyStorage(); } //"Buy Buildings & Storage" (") else if (getPageSetting('BuyBuildingsNew')==2) buyBuildings(); //"Buy Buildings" (") else if (getPageSetting('BuyBuildingsNew')==3) buyStorage(); //"Buy Storage" (") - //if (getPageSetting('BuyStorage')) buyStorage(); //"Buy Storage" (buildings.js) (Can be removed now) - //if (getPageSetting('BuyBuildings')) buyBuildings(); //"Buy Buildings" (buildings.js) (Can be removed now) - if (getPageSetting('BuyJobsNew')===0); //"Don't Buy Jobs" (Jobs.js) - else if (getPageSetting('BuyJobsNew')==1) { workerRatios(); buyJobs(); } //"Auto Worker Ratios" (") - else if (getPageSetting('BuyJobsNew')==2) buyJobs(); //"Manual Worker Ratios" (") - //if (getPageSetting('BuyJobs')) buyJobs(); //"Buy Jobs" (jobs.js) (Can be removed now) - //if (getPageSetting('WorkerRatios')) workerRatios(); //"Auto Worker Ratios" (jobs.js) (Can be removed now) + if (getPageSetting('BuyJobsNew')===0); //"Don't Buy Jobs" (Jobs.js) + else if (getPageSetting('BuyJobsNew')==1) { workerRatios(); buyJobs(); } //"Auto Worker Ratios" (") + else if (getPageSetting('BuyJobsNew')==2) buyJobs(); //"Manual Worker Ratios" (") if (getPageSetting('ManualGather2')<=1) manualLabor(); //"Auto Gather/Build" (gather.js) - else if (getPageSetting('ManualGather2')==2) manualLabor2(); //"Auto Gather/Build #2" (") + else if (getPageSetting('ManualGather2')==2) manualLabor2(); //"Auto Gather/Build #2" (") getPageSetting('AutoMaps') > 0 ? autoMap() : updateAutoMapsStatus(); //"Auto Maps" (automaps.js) if (getPageSetting('GeneticistTimer') >= 0) autoBreedTimer(); //"Geneticist Timer" / "Auto Breed Timer" (autobreedtimer.js) if (autoTrimpSettings.AutoPortal.selected != "Off") autoPortal(); //"Auto Portal" (hidden until level 40) (portal.js) diff --git a/SettingsGUI.js b/SettingsGUI.js index fb9e3dac8..4c07cfb8e 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -238,7 +238,7 @@ function initializeAllSettings() { //CORE: //Line1: createSetting('ManualGather2', ['Manual Gather/Build', 'Auto Gather/Build', 'Auto Gather/Build #2', 'Science Research OFF'], 'Controls what YOU do. Manual does nothing
The Decision between AutoGather 1 or 2 is up to you, and they should be similar. Auto Gathering of Food,Wood,Metal(w/turkimp) & Science. Auto speed-Builds your build queue.
You can disable science researching for the achievement: Reach Z120 without using manual research.', 'multitoggle', 1, null, "Core"); - createSetting('BuyUpgradesNew', ['Manual Upgrades', 'Buy All upgrades', 'Upgrades no Coords'], 'Autobuys non-equipment upgrades (equipment is controlled in the Gear tab). The second option does NOT buy coordination (use this ONLY if you know what you\'re doing).', 'multitoggle', 1, null, "Core"); + createSetting('BuyUpgradesNew', ['Manual Upgrades', 'Buy All Upgrades', 'Upgrades no Coords'], 'Autobuys non-equipment upgrades (equipment is controlled in the Gear tab). The second option does NOT buy coordination (use this ONLY if you know what you\'re doing).', 'multitoggle', 1, null, "Core"); //createSetting('ManageBreedtimerNew', ['Manual Breed Timer', 'Auto Breed Timer', 'Auto No Patience'], 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges, and accounts for the patience mastery.
[ON](Yellow): The same as above, but ignores patience and will not set a breed timer longer than 30s.
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'multitoggle', 1, null, "Core"); //This replaces the two settings below, but do we really need an option to ignore patience?? createSetting('ManageBreedtimer', 'Auto Breed Timer', 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges (0, 3.5s, 10s, 30s).
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'boolean', true, null, "Core"); createSetting('GeneticistTimer', 'Geneticist Timer', 'Manages the breed timer by hiring/firing Geneticists for the purpose of setting the ideal anticpation stacks. Disable with -1 to disable the Hiring/Firing of geneticists.
Info: Potency and Nursery buying behavior is adjusted dynamically (and disabling no longer disables potency). The Automatic Genetecist Hiring Process can best be summarized by: Buy/Wait/Die,Repeat. (if you do not die, no action is taken). Also self-kills (trimpicide) aka force abandon when your anti-stacks aren\'t maxed out (conservatively).

Controlled automatically (locked) when Auto Breed Timer is on.', 'value', '30', null, "Core"); @@ -248,24 +248,20 @@ function initializeAllSettings() { //Line2 createSetting('AutoStartDaily', 'Auto Start Daily', 'With this on, the Auto Portal options will portal you into and auto-start the daily whenever available. Starts from the oldest available, and works forwards. Falls back to selected challenge when there are no more dailies available.', 'boolean', false, null, 'Core'); - createSetting('AutoFinishDailyNew', 'Finish Daily Z Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option or set this to 999!', 'valueNegative', 999, null, 'Core'); //This should make sense to replace the two below. - //OLD createSetting('AutoFinishDaily', 'Auto Finish Daily', 'With this on, the He/Hr Portal and Custom Auto Portal options will auto-finish the daily whenever they trigger and THEN portal you.', 'boolean', true, null, 'Core'); - //OLD createSetting('AutoFinishDailyZone', 'Finish Daily Zone Mod', 'Finish Daily by this # of zones earlier/later than your regular Custom AutoPortal zone or your Helium Dont Portal Before zone. When Auto Finish Daily is on. Tip: Tune your value of He/HrDontPortalBefore to suit the daily, and then tune this. Can accept negative numbers for earlier, ie: -7 means portal 7 zones earlier than normal. Can also use positive numbers to DELAY portaling for later. When used with He/Hr AutoPortal, the number of zones early does not FORCE end the daily at that zone, only ALLOW it to end that early: it will Always end when your HE/hr drops enough to trigger the portal. Use 0 to disable.', 'valueNegative', 0, null, 'Core'); + createSetting('AutoFinishDailyNew', 'Finish Daily Z Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option or set this to 999!', 'valueNegative', 999, null, 'Core'); createSetting('FinishC2', 'Finish Challenge2', 'Finish / Abandon Challenge2 (any) when this zone is reached, if you are running one. For manual use. Recommended: Zones ending with 0 for most Challenge2. Disable with -1. Does not affect Non-Challenge2 runs.', 'value', -1, null, 'Core'); if (game.worldUnlocks.easterEgg) createSetting('AutoEggs', 'AutoEggs', 'Click easter egg if it exists, upon entering a new zone. Warning: Quite overpowered. Please solemnly swear that you are up to no good.', 'boolean', false, null, 'Core'); //could really be removed?? createSetting('UsePatience', 'Enable Patience', 'Sets the default breed timer to 45 seconds if you have the Patience mastery.', 'boolean', true, null, 'Core'); - document.getElementById('UsePatience').parentNode.insertAdjacentHTML('afterend','
'); + createSetting('AutoAllocatePerks', 'Auto Allocate Perks', 'Uses the AutoPerks ratio based preset system to automatically allocate your perks to spend whatever helium you have when you AutoPortal. Does not change Fixed Perks: siphonology, anticipation, meditation, relentlessness, range, agility, bait, trumps, packrat, capable. ', 'boolean', false, null, 'Core'); + document.getElementById('AutoAllocatePerks').parentNode.insertAdjacentHTML('afterend','
'); //NewLine3 For Autoportal, it would be nice to add a 5s countdown, like with magma spending. createSetting('AutoPortal', 'Auto Portal Settings:', 'Automatically portal. Will NOT auto-portal if you have a challenge active, the challenge setting dictates which challenge it will select for the next run. All challenge settings will portal right after the challenge ends, regardless. Helium Per Hour only portals at cell 1 of the first level where your He/Hr went down even slightly compared to the current runs Best He/Hr. Take note, there is a Buffer option, which is like a grace percentage of how low it can dip without triggering. Setting a buffer will portal mid-zone if you exceed 5x of the buffer. CAUTION: Selecting He/hr may immediately portal you if its lower-(use Pause AutoTrimps button to pause the script first to avoid this)', 'dropdown', 'Off', ['Off', 'Helium Per Hour', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted', 'Custom'], "Core"); - //document.getElementById("AutoPortal").style="font-size: 1.0vw;"; //fit it on 1 line. - createSetting('HeliumHourChallenge', 'Challenge on Portal:', 'Automatically portal into this challenge when using helium per hour or custom autoportal. Custom portals after cell 100 of the zone specified. ', 'dropdown', 'None', ['None', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted'], "Core"); - document.getElementById("HeliumHourChallengeLabel").innerHTML = "Portal Challenge:"; //fit it on 1 line. + createSetting('HeliumHourChallenge', 'Portal Challenge:', 'Automatically portal into this challenge when using helium per hour or custom autoportal. Custom portals after cell 100 of the zone specified. ', 'dropdown', 'None', ['None', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted'], "Core"); createSetting('CustomAutoPortal', 'Custom Portal', 'Automatically portal AFTER clearing this level.(ie: setting to 200 would portal when you first reach level 201)', 'value', '999', null, "Core"); createSetting('HeHrDontPortalBefore', 'Don\'t Portal Before', 'Do NOT allow Helium per Hour AutoPortal setting to portal BEFORE this level is reached. It is an additional check that prevents drops in helium/hr from triggering autoportal. Set to 0 or -1 to completely disable this check. (only shows up with Helium per Hour set)', 'value', '999', null, "Core"); createSetting('HeliumHrBuffer', 'He/Hr Portal Buffer %', 'IMPORTANT SETTING. When using the He/Hr Autoportal, it will portal if your He/Hr drops by this amount of % lower than your best for current run, default is 0% (ie: set to 5 to portal at 95% of your best). Now with stuck protection - Allows portaling midzone if we exceed set buffer amount by 5x. (ie a normal 2% buffer setting would now portal mid-zone you fall below 10% buffer).', 'value', '0', null, 'Core'); - createSetting('AutoAllocatePerks', 'Auto Allocate Perks', 'Uses the AutoPerks ratio based preset system to automatically allocate your perks to spend whatever helium you have when you AutoPortal. ', 'boolean', false, null, 'Core'); createSetting('PauseScript', 'Pause AutoTrimps', 'Pause AutoTrimps Script (not including the graphs module)', 'boolean', null, null, 'Core'); //code to locate the pause button at lower right var $pauseScript = document.getElementById('PauseScript'); From 6da93d47cabefe8ff9b85aa1fe535ccba9a985b4 Mon Sep 17 00:00:00 2001 From: gen BTC Date: Mon, 2 Apr 2018 20:06:08 -0400 Subject: [PATCH 041/365] woops --- SettingsGUI.js | 1 + 1 file changed, 1 insertion(+) diff --git a/SettingsGUI.js b/SettingsGUI.js index 4c07cfb8e..c4cf8dcaa 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -259,6 +259,7 @@ function initializeAllSettings() { //NewLine3 For Autoportal, it would be nice to add a 5s countdown, like with magma spending. createSetting('AutoPortal', 'Auto Portal Settings:', 'Automatically portal. Will NOT auto-portal if you have a challenge active, the challenge setting dictates which challenge it will select for the next run. All challenge settings will portal right after the challenge ends, regardless. Helium Per Hour only portals at cell 1 of the first level where your He/Hr went down even slightly compared to the current runs Best He/Hr. Take note, there is a Buffer option, which is like a grace percentage of how low it can dip without triggering. Setting a buffer will portal mid-zone if you exceed 5x of the buffer. CAUTION: Selecting He/hr may immediately portal you if its lower-(use Pause AutoTrimps button to pause the script first to avoid this)', 'dropdown', 'Off', ['Off', 'Helium Per Hour', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted', 'Custom'], "Core"); createSetting('HeliumHourChallenge', 'Portal Challenge:', 'Automatically portal into this challenge when using helium per hour or custom autoportal. Custom portals after cell 100 of the zone specified. ', 'dropdown', 'None', ['None', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted'], "Core"); + document.getElementById("HeliumHourChallengeLabel").innerHTML = "Portal Challenge:"; //fit it on 1 line. createSetting('CustomAutoPortal', 'Custom Portal', 'Automatically portal AFTER clearing this level.(ie: setting to 200 would portal when you first reach level 201)', 'value', '999', null, "Core"); createSetting('HeHrDontPortalBefore', 'Don\'t Portal Before', 'Do NOT allow Helium per Hour AutoPortal setting to portal BEFORE this level is reached. It is an additional check that prevents drops in helium/hr from triggering autoportal. Set to 0 or -1 to completely disable this check. (only shows up with Helium per Hour set)', 'value', '999', null, "Core"); createSetting('HeliumHrBuffer', 'He/Hr Portal Buffer %', 'IMPORTANT SETTING. When using the He/Hr Autoportal, it will portal if your He/Hr drops by this amount of % lower than your best for current run, default is 0% (ie: set to 5 to portal at 95% of your best). Now with stuck protection - Allows portaling midzone if we exceed set buffer amount by 5x. (ie a normal 2% buffer setting would now portal mid-zone you fall below 10% buffer).', 'value', '0', null, 'Core'); From 7dc76047317a6ad90f5eea4da689e217e4a29a49 Mon Sep 17 00:00:00 2001 From: gen BTC Date: Tue, 3 Apr 2018 02:00:25 -0400 Subject: [PATCH 042/365] scryer fixups and settings fixups --- SettingsGUI.js | 9 ++++----- modules/scryer.js | 31 ++----------------------------- 2 files changed, 6 insertions(+), 34 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index c4cf8dcaa..ee237487b 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -307,10 +307,10 @@ function initializeAllSettings() { createSetting('LumberjackRatio', 'Lumberjack Ratio', '', 'value', '1', null, "Jobs"); createSetting('MinerRatio', 'Miner Ratio', '', 'value', '1', null, "Jobs"); //createSetting('ScientistRatio', 'Scientist Ratio', 'Advanced. This will allow you to cap your scientist to worker ratio, as well as disable the hiring of scientists.
-1 Allows the ratio to be set automatically (Recommended)
0 Turns off Scientist hiring
\>0 Set a custom ratio.', 'value', '-1', null, "Jobs"); - createSetting('MaxScientists', 'Max Scientists', 'Advanced. Cap your scientists (This is a ratio not an absolute number). recommend: -1 (infinite still controls itself)', 'value', '-1', null, "Jobs"); + createSetting('MaxScientists', 'Max Scientists', 'Advanced. Cap your scientists (This is an absolute number not a ratio). recommend: -1 (infinite still controls itself)', 'value', '-1', null, "Jobs"); //Line2 - createSetting('MaxExplorers', 'Max Explorers', 'Advanced. Cap your explorers (This is a ratio not an absolute number). recommend: -1', 'value', '-1', null, "Jobs"); //Explorers are important now! outdated setting tbh - createSetting('MaxTrainers', 'Max Trainers', 'Advanced. Cap your trainers (This is a ratio not an absolute number). recommend: -1', 'value', '-1', null, "Jobs"); //by the time that you stop needing block, food is abundant + createSetting('MaxExplorers', 'Max Explorers', 'Advanced. Cap your explorers (This is an absolute number not a ratio). recommend: -1', 'value', '-1', null, "Jobs"); //Explorers are important now! outdated setting tbh + createSetting('MaxTrainers', 'Max Trainers', 'Advanced. Cap your trainers (This is an absolute number not a ratio). recommend: -1', 'value', '-1', null, "Jobs"); //by the time that you stop needing block, food is abundant createSetting('TrainerCaptoTributes', 'Cap Trainers %', 'Only Buy a Trainer when its cost is LESS than X% of cost of a tribute. This setting can work in combination with the other one, or set the other one to -1 and this will take full control. Default: -1 (Disabled). 50% is close to the point where the cap does nothing. You can go as low as you want but recommended is 10% to 1%. (example: Trainer cost of 5001, Tribute cost of 100000, @ 5%, it would NOT buy the trainer.)', 'value', '-1', null, 'Jobs'); //this is a bit unnecessary, resource management by the script is already sufficient. @@ -339,8 +339,7 @@ function initializeAllSettings() { //AutoMaps + VoidMaps settings: -//Could combine automaps and run unique maps into one 3 way toggle: Automaps on, Non-unique maps only, Automaps off. - createSetting('AutoMaps', ["Auto Maps Off","Auto Maps","Auto Maps No Unique"], 'Recommended. Automatically run maps to progress. Very Important. Has multiple modes: Prestige, Voids, Want more Damage, Want more Health, Want Health & Damage, and Farming.Prestige takes precedence and does equal level maps until it gets what is needed as per Autotrimps Prestige dropdown setting. Voids is self explanatory: use the Void Difficulty Check setting to control the amount of farming. If \'want more damage\', it will only do 10 maps for 200% mapbonus damage bonus. If \'Farming\', it does maps beyond 10 if the displayed number is over >16x. \'Want more health[or and damage]\' is basically just a status message telling you need more health, theres not much that can be done besides tell AutoLevelEquipment to keep buying stuff. If you \'want health\' but your damage is OK to continue, invest in more HP perks.


Unique Maps are run automatically unless disabled.
Uniques Required to auto-run The Wall and Dimension of Anger. Also Required for challenges: Electricity, Mapocalypse, Meditate, and Crushed (etc) to complete their AutoPortal.

Maps/Levels:
The Block - 12
The Wall - 16
Dimension of Anger - 21
Trimple Of Doom - 34
The Prison - 82
Bionic Wonderland (only during Crushed) @ 127
NOTE: This should generally be on.
NOTE: Run Bionic Before Spire prevents the setting of Unique.
NOTICE: This does NOT auto-run all your Bionics according to your lack of Robotrimp status or whether you pass a certain level (yet).', 'multitoggle', 1, null, "Maps"); + createSetting('AutoMaps', ["Auto Maps Off","Auto Maps On","Auto Maps No Unique"], 'Recommended. Automatically run maps to progress. Very Important. Has multiple modes: Prestige, Voids, Want more Damage, Want more Health, Want Health & Damage, and Farming.Prestige takes precedence and does equal level maps until it gets what is needed as per Autotrimps Prestige dropdown setting. Voids is self explanatory: use the Void Difficulty Check setting to control the amount of farming. If \'want more damage\', it will only do 10 maps for 200% mapbonus damage bonus. If \'Farming\', it does maps beyond 10 if the displayed number is over >16x. \'Want more health[or and damage]\' is basically just a status message telling you need more health, theres not much that can be done besides tell AutoLevelEquipment to keep buying stuff. If you \'want health\' but your damage is OK to continue, invest in more HP perks.


Unique Maps are run automatically unless disabled.
Uniques Required to auto-run The Wall and Dimension of Anger. Also Required for challenges: Electricity, Mapocalypse, Meditate, and Crushed (etc) to complete their AutoPortal.

Maps/Levels:
The Block - 12
The Wall - 16
Dimension of Anger - 21
Trimple Of Doom - 34
The Prison - 82
Bionic Wonderland (only during Crushed) @ 127
NOTE: This should generally be on.
NOTE: Run Bionic Before Spire prevents the setting of Unique.
NOTICE: This does NOT auto-run all your Bionics according to your lack of Robotrimp status or whether you pass a certain level (yet).', 'multitoggle', 1, null, "Maps"); createSetting('DynamicSiphonology', 'Dynamic Siphonology', 'Recommended Always ON. Use the right level of siphonology based on your damage output. IE: Only uses siphonology if you are weak. With this OFF it means it ALWAYS uses the lowest siphonology map you can create. Siphonology is a perk you get at level 115-125ish, and means you receive map bonus stacks for running maps below your current zone - Up to 3 zones below (1 per perk level).', 'boolean', true, null, 'Maps'); //Should always be on? createSetting('PreferMetal', 'Prefer Metal Maps', 'Always prefer metal maps, intended for manual use, such as pre-spire farming. Remember to turn it back off after you\'re done farming!', 'boolean', false, null, 'Maps'); //rarely better tbh createSetting('MaxMapBonusAfterZone', 'Max MapBonus After', 'Always gets Max Map Bonus from this zone on. (inclusive and after).
NOTE: Set -1 to disable entirely (default). Set 0 to use it always.
Advanced:User can set a lower number than the default 10 maps with the AT hidden console command: MODULES[\\"maps\\"].maxMapBonusAfterZ = 9;', 'value', '-1', null, 'Maps'); diff --git a/modules/scryer.js b/modules/scryer.js index 1406e6584..d6331b6c8 100644 --- a/modules/scryer.js +++ b/modules/scryer.js @@ -27,7 +27,7 @@ function useScryerStance() { || (getEmpowerment() == "Wind" && 0 <= getPageSetting('ScryUseinWind') && (game.global.world < getPageSetting('ScryUseinWind'))) || (getEmpowerment() == "Ice" && 0 <= getPageSetting('ScryUseinIce') && (game.global.world < getPageSetting('ScryUseinIce')))); //check Corrupted Never - var iscorrupt = getCurrentEnemy(1).mutation == ("Corruption" || "Healthy"); + var iscorrupt = getCurrentEnemy(1).mutation == "Corruption" || getCurrentEnemy(1).mutation == "Healthy"; iscorrupt = iscorrupt || (mutations.Magma.active() && game.global.mapsActive); iscorrupt = iscorrupt || (game.global.mapsActive && getCurrentMapObject().location == "Void" && game.global.world >= mutations.Corruption.start()); if ((iscorrupt && getPageSetting('ScryerSkipCorrupteds2') == 0 || (use_auto))) { @@ -102,35 +102,8 @@ function useScryerStance() { return; } } -/* -//If you cannot overkill, these situations will cause a return to autostance. - //check for spire not being Forced - use_auto = use_auto || !game.global.mapsActive && isActiveSpireAT() && getPageSetting('ScryerUseinSpire2')!=1; - //check for voids - use_auto = use_auto || game.global.mapsActive && getCurrentMapObject().location == "Void" && !getPageSetting('ScryerUseinVoidMaps2'); - //check for maps - use_auto = use_auto || game.global.mapsActive && !getPageSetting('ScryerUseinMaps2'); - //check for bosses above voidlevel - use_auto = use_auto || getPageSetting('ScryerSkipBoss2') == 1 && game.global.world > getPageSetting('VoidMaps') && game.global.lastClearedCell == 98; - //check for bosses (all levels) - use_auto = use_auto || getPageSetting('ScryerSkipBoss2') == 2 && game.global.lastClearedCell == 98; - if (use_auto) { - autostancefunction(); //falls back to autostance when not using S. - wantToScry = false; - return; - } - //check for corrupted cells (and exit) - var iscorrupt = getCurrentEnemy(1).mutation == "Corruption"; - iscorrupt = iscorrupt || (mutations.Magma.active() && game.global.mapsActive); - iscorrupt = iscorrupt || (game.global.mapsActive && getCurrentMapObject().location == "Void" && game.global.world >= mutations.Corruption.start()); - if (iscorrupt && getPageSetting('ScryerSkipCorrupteds2')) { - autostancefunction(); - wantToScry = false; - return; - } -*/ - //Default. (All Never and Always are accounted for, Overkill has decided whether to run, leaving solely what zones you want to run S in even when you can't overkill) +//Default. (All Never and Always are accounted for, Overkill has decided whether to run, leaving solely what zones you want to run S in even when you can't overkill) var min_zone = getPageSetting('ScryerMinZone'); var max_zone = getPageSetting('ScryerMaxZone'); var valid_min = game.global.world >= min_zone; From 2a38836f6177473a8253d90ce11931d682f53823 Mon Sep 17 00:00:00 2001 From: gen BTC Date: Tue, 3 Apr 2018 02:09:03 -0400 Subject: [PATCH 043/365] prevent scryer.js:30 Uncaught TypeError: Cannot read property 'mutation' of undefined at useScryerStance (scryer.js:30) --- modules/scryer.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/scryer.js b/modules/scryer.js index d6331b6c8..f15b12fc0 100644 --- a/modules/scryer.js +++ b/modules/scryer.js @@ -27,8 +27,9 @@ function useScryerStance() { || (getEmpowerment() == "Wind" && 0 <= getPageSetting('ScryUseinWind') && (game.global.world < getPageSetting('ScryUseinWind'))) || (getEmpowerment() == "Ice" && 0 <= getPageSetting('ScryUseinIce') && (game.global.world < getPageSetting('ScryUseinIce')))); //check Corrupted Never - var iscorrupt = getCurrentEnemy(1).mutation == "Corruption" || getCurrentEnemy(1).mutation == "Healthy"; - iscorrupt = iscorrupt || (mutations.Magma.active() && game.global.mapsActive); + var curEnemy = getCurrentEnemy(1); + var iscorrupt = curEnemy && (curEnemy.mutation == "Corruption" || curEnemy.mutation == "Healthy"); + iscorrupt = iscorrupt || (game.global.mapsActive && mutations.Magma.active()); iscorrupt = iscorrupt || (game.global.mapsActive && getCurrentMapObject().location == "Void" && game.global.world >= mutations.Corruption.start()); if ((iscorrupt && getPageSetting('ScryerSkipCorrupteds2') == 0 || (use_auto))) { autostancefunction(); From b77901cf577174313c116d615ad1271b8d234253 Mon Sep 17 00:00:00 2001 From: gen BTC Date: Tue, 3 Apr 2018 02:44:56 -0400 Subject: [PATCH 044/365] import export changes. store MODULES better. --- AutoTrimps2.js | 3 ++- SettingsGUI.js | 2 +- modules/import-export.js | 33 ++++++++++++++------------------- 3 files changed, 17 insertions(+), 21 deletions(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index 770cdfddd..dec1ab0a1 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -116,6 +116,7 @@ function delayStartAgain(){ game.global.addonUser = true; game.global.autotrimps = true; //Actually Start mainLoop and guiLoop + MODULESdefault = JSON.parse(JSON.stringify(MODULES)); setInterval(mainLoop, runInterval); setInterval(guiLoop, runInterval*10); if (autoTrimpSettings.PrestigeBackup !== undefined && autoTrimpSettings.PrestigeBackup.selected != "") @@ -247,7 +248,7 @@ function mainLoop() { //GUI Updates happen on this thread, every 1000ms function guiLoop() { updateCustomButtons(); - MODULESdefault = JSON.parse(JSON.stringify(MODULES)); + //MODULESdefault = JSON.parse(JSON.stringify(MODULES)); //Store the diff of our custom MODULES vars in the localStorage bin. safeSetItems('storedMODULES', JSON.stringify(compareModuleVars())); //Swiffy UI/Display tab diff --git a/SettingsGUI.js b/SettingsGUI.js index ee237487b..df07ea3cf 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -468,7 +468,7 @@ function initializeAllSettings() { // Export/Import/Default settings createSetting('ImportAutoTrimps', 'Import AutoTrimps', 'Import your AutoTrimps Settings. Asks you to name it as a profile afterwards.', 'infoclick', 'ImportAutoTrimps', null, 'Import Export'); createSetting('ExportAutoTrimps', 'Export AutoTrimps', 'Export your AutoTrimps Settings as a output string text formatted in JSON.', 'infoclick', 'ExportAutoTrimps', null, 'Import Export'); - createSetting('DefaultAutoTrimps', 'Reset to Default', 'Reset everything to the way it was when you first installed the script. (Also ', 'infoclick', 'DefaultAutoTrimps', null, 'Import Export'); + createSetting('DefaultAutoTrimps', 'Reset to Default', 'Reset everything to the way it was when you first installed the script. ', 'infoclick', 'ResetDefaultSettingsProfiles', null, 'Import Export'); settingsProfileMakeGUI(); //Settings Profile dropdown and Delete button. createSetting('CleanupAutoTrimps', 'Cleanup Saved Settings ', 'Deletes old values from previous versions of the script from your AutoTrimps Settings file.', 'infoclick', 'CleanupAutoTrimps', null, 'Import Export'); createSetting('allowSettingsUpload', 'Allow Analytics Upload', 'Uploads your AUTOTRIMPS saved settings files (the same as Export AutoTrimps on this tab) anonymously - to https://autotrimps.site = the official Autotrimps development server. It will remain private for now, and aggregated for analytics to improve the script in the future and see which features are being used. Please Opt in. The upload will be approximately a small 5-10KB uncompressed text file every time the script is LOADED (for the time being until it is refined), and there is no concern for any personal data leak or privacy concern. This is all in good faith, and you are welcome to check the open source file modules/client-server.js. In the future, I will have to make a more fine-grained data-usage privacy-policy. Possible other data collected in the near-future may include certain game stats such as your highest zone, helium amount, bones, resource/magma/DE amounts, perk ratio selections. ', 'boolean', true, null, 'Import Export'); diff --git a/modules/import-export.js b/modules/import-export.js index 2859f7433..c1de6b658 100644 --- a/modules/import-export.js +++ b/modules/import-export.js @@ -7,13 +7,13 @@ function settingsProfileMakeGUI() { var $settingsProfilesLabel = document.createElement("Label"); $settingsProfilesLabel.id = 'settingsProfiles Label'; $settingsProfilesLabel.innerHTML = "Settings Profile: "; - if (game.options.menu.darkTheme.enabled == 2) $settingsProfilesLabel.setAttribute("style", "margin-left: 1.2vw; margin-right: 0.8vw; color: #C8C8C8; font-size: 0.8vw;"); - else $settingsProfilesLabel.setAttribute("style", "margin-left: 1.2vw; margin-right: 0.8vw; color:white; font-size: 0.8vw;"); + if (game.options.menu.darkTheme.enabled == 2) $settingsProfilesLabel.setAttribute("style", "margin-left: 1.2vw; margin-right: 0.8vw; font-size: 0.8vw;"); + else $settingsProfilesLabel.setAttribute("style", "margin-left: 1.2vw; margin-right: 0.8vw; font-size: 0.8vw;"); $settingsProfiles = document.createElement("select"); $settingsProfiles.id = 'settingsProfiles'; $settingsProfiles.setAttribute('class', 'noselect'); $settingsProfiles.setAttribute('onchange', 'settingsProfileDropdownHandler()'); - var oldstyle = 'text-align: center; width: 160px; font-size: 1.1vw;'; + var oldstyle = 'text-align: center; width: 160px; font-size: 1.0vw;'; if(game.options.menu.darkTheme.enabled != 2) $settingsProfiles.setAttribute("style", oldstyle + " color: black;"); else $settingsProfiles.setAttribute('style', oldstyle); //Create settings profile selection dropdown @@ -155,8 +155,6 @@ function initializeSettingsProfiles() { }); $settingsProfiles.selectedIndex = 0; } -initializeSettingsProfiles(); - //Handler for the popup/tooltip window for Import/Export/Default function ImportExportTooltip(what, event) { @@ -197,11 +195,6 @@ function ImportExportTooltip(what, event) { ondisplay = function() { document.getElementById('importBox').focus(); }; - } else if (what == "DefaultAutoTrimps") { - resetAutoTrimps(); - tooltipText = "Autotrimps has been successfully reset to its defaults! "; - costText = "

OK
"; - debug(tooltipText, "profile"); } else if (what == "CleanupAutoTrimps") { cleanupAutoTrimps(); tooltipText = "Autotrimps saved-settings have been attempted to be cleaned up. If anything broke, refreshing will fix it, but check that your settings are correct! (prestige in particular)"; @@ -349,19 +342,20 @@ function exportModuleVars() { function compareModuleVars() { var diffs = {}; var mods = Object.keys(MODULES); - for (var i=0,leni=mods.length;i Date: Tue, 3 Apr 2018 03:27:36 -0400 Subject: [PATCH 045/365] import export changes. make multiToggles respond to setPageSetting --- SettingsGUI.js | 17 ++++++++----- modules/import-export.js | 55 ++++++++++++++++++++-------------------- 2 files changed, 38 insertions(+), 34 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index df07ea3cf..acd84a84f 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -469,9 +469,9 @@ function initializeAllSettings() { createSetting('ImportAutoTrimps', 'Import AutoTrimps', 'Import your AutoTrimps Settings. Asks you to name it as a profile afterwards.', 'infoclick', 'ImportAutoTrimps', null, 'Import Export'); createSetting('ExportAutoTrimps', 'Export AutoTrimps', 'Export your AutoTrimps Settings as a output string text formatted in JSON.', 'infoclick', 'ExportAutoTrimps', null, 'Import Export'); createSetting('DefaultAutoTrimps', 'Reset to Default', 'Reset everything to the way it was when you first installed the script. ', 'infoclick', 'ResetDefaultSettingsProfiles', null, 'Import Export'); - settingsProfileMakeGUI(); //Settings Profile dropdown and Delete button. createSetting('CleanupAutoTrimps', 'Cleanup Saved Settings ', 'Deletes old values from previous versions of the script from your AutoTrimps Settings file.', 'infoclick', 'CleanupAutoTrimps', null, 'Import Export'); createSetting('allowSettingsUpload', 'Allow Analytics Upload', 'Uploads your AUTOTRIMPS saved settings files (the same as Export AutoTrimps on this tab) anonymously - to https://autotrimps.site = the official Autotrimps development server. It will remain private for now, and aggregated for analytics to improve the script in the future and see which features are being used. Please Opt in. The upload will be approximately a small 5-10KB uncompressed text file every time the script is LOADED (for the time being until it is refined), and there is no concern for any personal data leak or privacy concern. This is all in good faith, and you are welcome to check the open source file modules/client-server.js. In the future, I will have to make a more fine-grained data-usage privacy-policy. Possible other data collected in the near-future may include certain game stats such as your highest zone, helium amount, bones, resource/magma/DE amounts, perk ratio selections. ', 'boolean', true, null, 'Import Export'); + settingsProfileMakeGUI(); //Settings Profile dropdown and Delete button. (this always shows up first - can be here last) //createSetting('ExportModuleVars', 'Export Custom Variables', 'Export your custom MODULES variables.', 'infoclick', 'ExportModuleVars', null, 'Import Export'); //createSetting('ImportModuleVars', 'Import Custom Variables', 'Import your custom MODULES variables (and save).', 'infoclick', 'ImportModuleVars', null, 'Import Export'); //createSetting('ResetModuleVars', 'Reset Custom Variables', 'Reset(Delete) your custom MODULES variables, and return the script to normal. ', 'infoclick', 'ResetModuleVars', null, 'Import Export'); @@ -887,15 +887,18 @@ function updateCustomButtons() { debug("RunBionicBeforeSpire incompatible with AutoMaps No Unique Maps, changing..."); setPageSetting("AutoMaps",1); } - //make sure value buttons are set accurately. + //since this is a loop, make sure the Text contents of our buttons are set accurately. (after any setPageSetting) for (var setting in autoTrimpSettings) { - if (autoTrimpSettings[setting].type == 'value' || autoTrimpSettings[setting].type == 'valueNegative') { - var elem = document.getElementById(autoTrimpSettings[setting].id); + var item = autoTrimpSettings[setting]; + if (item.type == 'value' || item.type == 'valueNegative' || item.type == 'multitoggle') { + var elem = document.getElementById(item.id); if (elem != null) { - if (autoTrimpSettings[setting].value > -1 || autoTrimpSettings[setting].type == 'valueNegative') - elem.textContent = autoTrimpSettings[setting].name + ': ' + prettify(autoTrimpSettings[setting].value); + if (item.type == 'multitoggle') + elem.textContent = item.name[item.value]; + else if (item.value > -1 || item.type == 'valueNegative') + elem.textContent = item.name + ': ' + prettify(item.value); else - elem.innerHTML = autoTrimpSettings[setting].name + ': ' + ""; + elem.innerHTML = item.name + ': ' + ""; } } } diff --git a/modules/import-export.js b/modules/import-export.js index c1de6b658..3b8dc5d0c 100644 --- a/modules/import-export.js +++ b/modules/import-export.js @@ -23,12 +23,6 @@ function settingsProfileMakeGUI() { $settingsProfilesButton.innerHTML = "<Delete Profile"; $settingsProfilesButton.setAttribute('style', 'margin-left: 0.5vw; margin-right: 0.5vw; font-size: 0.8vw;'); $settingsProfilesButton.setAttribute('onclick','onDeleteProfileHandler()'); - //Add the $settingsProfiles dropdown to UI - var $ietab = document.getElementById('Import Export'); - //Any ERRORs here are caused by incorrect order loading of script and you should reload until its gone.(for now) - $ietab.insertBefore($settingsProfilesLabel, $ietab.childNodes[1]); - $ietab.insertBefore($settingsProfiles, $ietab.childNodes[2]); - $ietab.insertBefore($settingsProfilesButton, $ietab.childNodes[3]); //populate with a Default (read default settings): var innerhtml = ""; //populate with a Default (read default settings): @@ -36,9 +30,30 @@ function settingsProfileMakeGUI() { //Append a 2nd default item named "Save New..." and have it tied to a write function(); innerhtml += ""; //dont forget to populate the rest of it with stored items: - $settingsProfiles.innerHTML = innerhtml; + $settingsProfiles.innerHTML = innerhtml; + //Add the $settingsProfiles dropdown to UI + var $ietab = document.getElementById('Import Export'); + if ($ietab == null) return; + //Any ERRORs here are caused by incorrect order loading of script and you should reload until its gone.(for now) + $ietab.insertBefore($settingsProfilesLabel, $ietab.childNodes[1]); + $ietab.insertBefore($settingsProfiles, $ietab.childNodes[2]); + $ietab.insertBefore($settingsProfilesButton, $ietab.childNodes[3]); +} //self-executes at the bottom of the file. + +//Populate dropdown menu with list of AT SettingsProfiles +function initializeSettingsProfiles() { + if ($settingsProfiles == null) return; + //load the old data in: + var loadLastProfiles = localStorage.getItem('ATSelectedSettingsProfile'); + var oldpresets = loadLastProfiles ? JSON.parse(loadLastProfiles) : new Array(); //load the import. + oldpresets.forEach(function(elem){ + //Populate dropdown menu to reflect new name: + let optionElementReference = new Option(elem.name); + optionElementReference.id = 'customProfileRead'; + $settingsProfiles.add(optionElementReference); + }); + $settingsProfiles.selectedIndex = 0; } -//settingsProfileMakeGUI(); //runs at the bottom now: //This switches into the new profile when the dropdown is selected. //it is the "onchange" handler of the settingsProfiles dropdown @@ -141,20 +156,6 @@ function onDeleteProfile() { debug("Successfully deleted profile #: " + target, "profile"); } -//Populate dropdown menu with list of AT SettingsProfiles -function initializeSettingsProfiles() { - if ($settingsProfiles == null) return; - //load the old data in: - var loadLastProfiles = localStorage.getItem('ATSelectedSettingsProfile'); - var oldpresets = loadLastProfiles ? JSON.parse(loadLastProfiles) : new Array(); //load the import. - oldpresets.forEach(function(elem){ - //Populate dropdown menu to reflect new name: - let optionElementReference = new Option(elem.name); - optionElementReference.id = 'customProfileRead'; - $settingsProfiles.add(optionElementReference); - }); - $settingsProfiles.selectedIndex = 0; -} //Handler for the popup/tooltip window for Import/Export/Default function ImportExportTooltip(what, event) { @@ -350,7 +351,7 @@ function compareModuleVars() { var a = MODULES[mod][vj]; var b = MODULESdefault[mod][vj]; if (JSON.stringify(a)!=JSON.stringify(b)) { - if (diffs[mod] === undefined) + if (typeof diffs[mod] === 'undefined') diffs[mod] = {}; diffs[mod][vj] = a; } @@ -377,18 +378,18 @@ function importModuleVars() { debug("Error importing MODULE vars, the string is bad." + err.message, "profile"); return; } - localStorage.removeItem('ATMODULES'); - safeSetItems('ATMODULES', JSON.stringify(tmpset)); + localStorage.removeItem('storedMODULES'); + safeSetItems('storedMODULES', JSON.stringify(tmpset)); } //reset MODULE variables to default, (and/or then import) function resetModuleVars(imported) { ATrunning = false; //stop AT, wait, remove function waitRemoveLoad(imported) { - localStorage.removeItem('ATMODULES'); + localStorage.removeItem('storedMODULES'); MODULES = JSON.parse(JSON.stringify(MODULESdefault)); //load everything again, anew - safeSetItems('ATMODULES', JSON.stringify(ATMODULES)); + safeSetItems('storedMODULES', JSON.stringify(storedMODULES)); ATrunning = true; //restart AT. } setTimeout(waitRemoveLoad(imported),101); From e291c63c97eac0135ba2909680037a08d53102d4 Mon Sep 17 00:00:00 2001 From: gen BTC Date: Tue, 3 Apr 2018 04:06:06 -0400 Subject: [PATCH 046/365] set dropdown labels to be the name, not the ID. fixes a bunch of double-line-wraps. --- SettingsGUI.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index acd84a84f..40a2ba788 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -257,9 +257,9 @@ function initializeAllSettings() { document.getElementById('AutoAllocatePerks').parentNode.insertAdjacentHTML('afterend','
'); //NewLine3 For Autoportal, it would be nice to add a 5s countdown, like with magma spending. - createSetting('AutoPortal', 'Auto Portal Settings:', 'Automatically portal. Will NOT auto-portal if you have a challenge active, the challenge setting dictates which challenge it will select for the next run. All challenge settings will portal right after the challenge ends, regardless. Helium Per Hour only portals at cell 1 of the first level where your He/Hr went down even slightly compared to the current runs Best He/Hr. Take note, there is a Buffer option, which is like a grace percentage of how low it can dip without triggering. Setting a buffer will portal mid-zone if you exceed 5x of the buffer. CAUTION: Selecting He/hr may immediately portal you if its lower-(use Pause AutoTrimps button to pause the script first to avoid this)', 'dropdown', 'Off', ['Off', 'Helium Per Hour', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted', 'Custom'], "Core"); - createSetting('HeliumHourChallenge', 'Portal Challenge:', 'Automatically portal into this challenge when using helium per hour or custom autoportal. Custom portals after cell 100 of the zone specified. ', 'dropdown', 'None', ['None', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted'], "Core"); - document.getElementById("HeliumHourChallengeLabel").innerHTML = "Portal Challenge:"; //fit it on 1 line. + createSetting('AutoPortal', 'AutoPortal', 'Automatically portal. Will NOT auto-portal if you have a challenge active, the challenge setting dictates which challenge it will select for the next run. All challenge settings will portal right after the challenge ends, regardless. Helium Per Hour only portals at cell 1 of the first level where your He/Hr went down even slightly compared to the current runs Best He/Hr. Take note, there is a Buffer option, which is like a grace percentage of how low it can dip without triggering. Setting a buffer will portal mid-zone if you exceed 5x of the buffer. CAUTION: Selecting He/hr may immediately portal you if its lower-(use Pause AutoTrimps button to pause the script first to avoid this)', 'dropdown', 'Off', ['Off', 'Helium Per Hour', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted', 'Custom'], "Core"); + createSetting('HeliumHourChallenge', 'Portal Challenge', 'Automatically portal into this challenge when using helium per hour or custom autoportal. Custom portals after cell 100 of the zone specified. ', 'dropdown', 'None', ['None', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted'], "Core"); + //document.getElementById("HeliumHourChallengeLabel").innerHTML = "Portal Challenge:"; //fit it on 1 line. createSetting('CustomAutoPortal', 'Custom Portal', 'Automatically portal AFTER clearing this level.(ie: setting to 200 would portal when you first reach level 201)', 'value', '999', null, "Core"); createSetting('HeHrDontPortalBefore', 'Don\'t Portal Before', 'Do NOT allow Helium per Hour AutoPortal setting to portal BEFORE this level is reached. It is an additional check that prevents drops in helium/hr from triggering autoportal. Set to 0 or -1 to completely disable this check. (only shows up with Helium per Hour set)', 'value', '999', null, "Core"); createSetting('HeliumHrBuffer', 'He/Hr Portal Buffer %', 'IMPORTANT SETTING. When using the He/Hr Autoportal, it will portal if your He/Hr drops by this amount of % lower than your best for current run, default is 0% (ie: set to 5 to portal at 95% of your best). Now with stuck protection - Allows portaling midzone if we exceed set buffer amount by 5x. (ie a normal 2% buffer setting would now portal mid-zone you fall below 10% buffer).', 'value', '0', null, 'Core'); @@ -423,8 +423,8 @@ function initializeAllSettings() { //Golden Upgrade Strategies: - createSetting('AutoGoldenUpgrades', 'Auto Golden Upgrades', 'IMPORTANT SETTING. Automatically Buy the specified Golden Upgrades as they become available. Faster than vanilla. NOTE: Void setting unlocks more settings: goldStrat, goldAlternating, goldZone and goldNoBattle. New: Void also has a \\"Max then Helium\\" setting so you can get the perfect 60% Voids then Helium. More buttons will become visible when you make selections.', 'dropdown', 'Void', ["Off", "Helium", "Battle", "Void"], 'Golden'); - createSetting('goldStrat', 'Auto Golden Strategy', 'VOID ONLY: After max Void golden upgrades, alternate between buying helium and battle upgrades. Or Choose a Zone to switch over completely at (zones lower than X will buy only battle, and zones higher than X only helium). Battle can be disabled completely with the goldNoBattle button. MAX THEN HELIUM setting so you can get the perfect 60% Voids then Helium', 'dropdown', 'Max then Helium', ["Off", "Alternating", "Zone", "Max then Helium"], 'Golden'); + createSetting('AutoGoldenUpgrades', 'AutoGoldenUpgrades', 'IMPORTANT SETTING. Automatically Buy the specified Golden Upgrades as they become available. Faster than vanilla. NOTE: Void setting unlocks more settings: goldStrat, goldAlternating, goldZone and goldNoBattle. New: Void also has a \\"Max then Helium\\" setting so you can get the perfect 60% Voids then Helium. More buttons will become visible when you make selections.', 'dropdown', 'Void', ["Off", "Helium", "Battle", "Void"], 'Golden'); + createSetting('goldStrat', 'Strategy', 'VOID ONLY: After max Void golden upgrades, alternate between buying helium and battle upgrades. Or Choose a Zone to switch over completely at (zones lower than X will buy only battle, and zones higher than X only helium). Battle can be disabled completely with the goldNoBattle button. MAX THEN HELIUM setting so you can get the perfect 60% Voids then Helium', 'dropdown', 'Max then Helium', ["Off", "Alternating", "Zone", "Max then Helium"], 'Golden'); createSetting('goldAlternating', 'GU VOID: Alternating', 'Buy a helium upgrade after X-1 battle upgrades have been purchased', 'value', '2', null, 'Golden'); createSetting('goldZone', 'GU VOID: Zone', 'Buy a helium upgrade until zone X, then buy battle upgrades.', 'value', '200', null, 'Golden'); createSetting('goldNoBattle', 'GU VOID: No Battle', 'Green = Do NOT buy Battle Upgrades
Red = Buy Battle Upgrades.', 'boolean', true, null, 'Golden'); @@ -551,7 +551,7 @@ function createSetting(id, name, description, type, defaultValue, list, containe var dropdownLabel = document.createElement("Label"); dropdownLabel.id = id + "Label"; - dropdownLabel.innerHTML = id + ":"; + dropdownLabel.innerHTML = name + ":"; dropdownLabel.setAttribute('style', 'margin-right: 0.3vw; font-size: 0.8vw;'); btnParent.appendChild(dropdownLabel); btnParent.appendChild(btn); From 09620365322a99c56c4a1ca7ca99d9ed54aafae0 Mon Sep 17 00:00:00 2001 From: gen BTC Date: Tue, 3 Apr 2018 04:36:08 -0400 Subject: [PATCH 047/365] startup message --- AutoTrimps2.js | 10 +++++----- SettingsGUI.js | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index dec1ab0a1..603ebb971 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -61,10 +61,10 @@ function initializeAutoTrimps() { var changelogList = []; //changelogList.push({date: " ", version: " ", description: "", isNew: true}); //TEMPLATE -changelogList.push({date: "4/2", version: "v2.1.6.9b", description: "AutoPerks code was changed but still functions the same, except a new algorithm to reduce the time to allocate for high helium players. Test new algo with MODULES[\"perks\"].useAlgo2=true; .You can also clear all perks then allocate and have it work now. AutoMaps no longer considered as Lead challenge when in Chall^2", isNew: true}); -changelogList.push({date: "3/23", version: "v2.1.6.9", description: "Game's Map at Zone can be used with AT now, to run maps forever. AutoMaps setting was combined with RunUniqueMaps (variable has changed from boolean false,true to a value 0,1,2). Settings file has been migrated as such. New: Map SpecialMod is sort of working, at least. Geneticist Infinity bugfix. New AGU Settings for 60% Void (fixed). Many Graphs fixes. AutoMaps changes. Equipment Cap, see README at GitHub DarkTheme fix. Scientists Fix. Zek450 Perks Preset Changed. Ongoing Development...", isNew: true}); -changelogList.push({date: "3/22", version: "v2.1.6.8", description: "Settings GUI, make better. Import/export improved. Graph buttons: Cycle Up/Down. Internal code fixes. New Graph: Nurseries", isNew: false}); -changelogList.push({date: "3/24", version: "v2.1.6.5-stable", description: "Set up Stable Repository for the faint of heart.", isNew: true}); +changelogList.push({date: "4/2", version: "v2.1.6.9b", description: "Multiple Settings Were Combined. AutoPerks code was changed but still functions the same, except a new algorithm to reduce the time to allocate for high helium players. Test new algo with MODULES[\"perks\"].useAlgo2=true; .You can also clear all perks then allocate and have it work now. AutoMaps no longer considered as Lead challenge when in Chall^2. ", isNew: true}); +changelogList.push({date: "3/23", version: "v2.1.6.9", description: "Game's Map at Zone can be used with AT now, to run maps forever. AutoMaps setting was combined with RunUniqueMaps (variable has changed from boolean false,true to a value 0,1,2). Settings file has been migrated as such. New: Map SpecialMod is sort of working, at least. Geneticist Infinity bugfix. New AGU Settings for 60% Void (fixed). Many Graphs fixes. AutoMaps changes. Equipment Cap, see README at GitHub DarkTheme fix. Scientists Fix. Zek450 Perks Preset Changed. Ongoing Development...", isNew: false}); +changelogList.push({date: "3/24", version: "v2.1.6.5-stable", description: "Set up Stable Repository for the faint of heart.", isNew: false}); +//changelogList.push({date: "3/22", version: "v2.1.6.8", description: "Settings GUI, make better. Import/export improved. Graph buttons: Cycle Up/Down. Internal code fixes. New Graph: Nurseries", isNew: false}); //changelogList.push({date: "3/20", version: "v2.1.6.7", description: "Entirely Re-Arranged Settings Layout. Enjoy! New: Display Tab: EnhanceGrid + Go AFK Mode. GUI: Pinned AT Tab menu bar to top when scrolling. Minimize/Maxi/Close Buttons. ShowChangeLog Button. New Graph: FluffyXP&Xp/Hr (starts@300)", isNew: false}); //changelogList.push({date: "3/13", version: "v2.1.6.6", description: "Geneticist management changes. Equipment code improvements. ATscriptLoad improvements. attempt to track errors.", isNew: false}); //changelogList.push({date: "3/7", version: "v2.1.6.5", description: "Save/Reload Profiles in Import/Export. Magmamancer graph. Magmite/Magma Spam disableable.", isNew: false}); @@ -84,7 +84,7 @@ function printChangelog() { var footer = 'Ongoing Development - Report any bugs/problems please!\
Talk with the dev: genr8_#8163 @ AutoTrimps Discord Channel\ -
SeeReadMe Or check the commit history (if you want).' +
See ReadMe Or check the commit history (if you want).' , action = 'cancelTooltip()' , title = 'Script Update Notice
' + ATversion , acceptBtnText = "Thank you for playing AutoTrimps. Accept and Continue." diff --git a/SettingsGUI.js b/SettingsGUI.js index 40a2ba788..9f8504bc2 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -392,7 +392,7 @@ function initializeAllSettings() { //Line2 createSetting('ScryerSkipBoss2', ['Boss: NEVER (All Levels)','Boss: NEVER (Above VoidLevel)','Boss: MAYBE'], 'NEVER (All Levels) will NEVER use S in cell 100 of the world!!!
NEVER (Above VoidLevel) will NEVER use S in cell 100 of the world ABOVE the zone that your void maps are set to run at (Maps).
MAYBE treats the cell no differently to any other, Overkill and Min/Max Scryer is allowed.

Recommend NEVER (There is little benefit to double NON-HELIUM resources and a small chance of DE).', 'multitoggle', 0, null, 'Scryer'); createSetting('ScryerSkipCorrupteds2', ['Corrupted: NEVER', 'Corrupted: FORCE','Corrupted: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate against Corrupted enemies
MAYBE means that Overkill and Min/Max use are allowed.
Magma maps and Corrupted Voidmaps are currently classified as corrupted and NEVER here will override Maps and Voidmaps use of Scryer

Recommend MAYBE.', 'multitoggle', 2, null, 'Scryer'); - createSetting('ScryerDieZ', 'Die To Use S','-1 to disable.
Turning this on will switch you back to S even when doing so would kill you. Happens in scenarios where you used Skip Corrupteds that took you into regular Autostance X/H stance, killed the corrupted and reached a non-corrupted enemy that you wish to use S on, but you havent bred yet and you are too low on health to just switch back to S. So you\'d rather die, wait to breed, then use S for the full non-corrupted enemy, to maximize DE. This feature was added for 1 person, use at your own risk.
Use this input to set the minimum zone that scryer activates in (You can use decimal values to specify what cell this setting starts from)' , 'value', 230.60, null, 'Scryer'); + createSetting('ScryerDieZ', 'Die To Use S','-1 to disable.
Turning this on will switch you back to S even when doing so would kill you. Happens in scenarios where you used Skip Corrupteds that took you into regular Autostance X/H stance, killed the corrupted and reached a non-corrupted enemy that you wish to use S on, but you havent bred yet and you are too low on health to just switch back to S. So you\'d rather die, wait to breed, then use S for the full non-corrupted enemy, to maximize DE. NOTE: Use at your own risk.
Use this input to set the minimum zone that scryer activates in (You can use decimal values to specify what cell this setting starts from)' , 'value', 230.60, null, 'Scryer'); createSetting('ScryUseinPoison', 'Scry in Poison','-1 to disable, any other number (including 0) sets a minimum zone to use S in Poison', 'value', -1, null, 'Scryer'); createSetting('ScryUseinWind', 'Scry in Wind','-1 to disable, any other number (including 0) sets a minimum zone to use S in Wind', 'value', -1, null, 'Scryer'); createSetting('ScryUseinIce', 'Scry in Ice','-1 to disable, any other number (including 0) sets a minimum zone to use S in Ice', 'value', -1, null, 'Scryer'); From 60c45f8e1579b320979f9699fc81b10042f5d25b Mon Sep 17 00:00:00 2001 From: gen BTC Date: Tue, 3 Apr 2018 04:57:53 -0400 Subject: [PATCH 048/365] add some new dropdowns. PlayerLevel and ATModuleListDropdown remove unused file --- SettingsGUI.js | 4 ++ sparecode/laborfix.js | 104 ------------------------------------------ 2 files changed, 4 insertions(+), 104 deletions(-) delete mode 100644 sparecode/laborfix.js diff --git a/SettingsGUI.js b/SettingsGUI.js index 9f8504bc2..91ef0f3fd 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -184,6 +184,7 @@ function initializeAllTabs() { createTabs("Golden", "Golden Upgrade Settings"); createTabs("Nature", "Nature Settings"); createTabs("Display", "Display & Spam Settings"); + //createTabs("Modules", "Load/Unload Modules & Settings"); createTabs("Import Export", "Import & Export Settings"); //add a minimize button: var li_0 = document.createElement('li'); @@ -475,6 +476,9 @@ function initializeAllSettings() { //createSetting('ExportModuleVars', 'Export Custom Variables', 'Export your custom MODULES variables.', 'infoclick', 'ExportModuleVars', null, 'Import Export'); //createSetting('ImportModuleVars', 'Import Custom Variables', 'Import your custom MODULES variables (and save).', 'infoclick', 'ImportModuleVars', null, 'Import Export'); //createSetting('ResetModuleVars', 'Reset Custom Variables', 'Reset(Delete) your custom MODULES variables, and return the script to normal. ', 'infoclick', 'ResetModuleVars', null, 'Import Export'); + + //createSetting('PlayerLevel', 'PlayerLevel', 'PlayerLevel: Indicate around what level you are. noob, low, medium, high, spire, magma, expert, z450+, z500+, endgame and so on. Might be used to control which settings are visible in the future. ', 'dropdown', "Medium", ["Noob","Low","Medium","High","Spire","Magma","Expert","z450+","z500+","EndGame"], 'Modules'); + //createSetting('ATModuleListDropdown', 'Modules', 'AT Module List Dropdown: Lists all the individual modules (.js files) that have been auto-loaded. It might be possible to unload these or something in the future.', 'dropdown', ATmoduleList[0], ATmoduleList, 'Modules'); } initializeAllSettings(); //EXECUTE diff --git a/sparecode/laborfix.js b/sparecode/laborfix.js deleted file mode 100644 index 8689f037f..000000000 --- a/sparecode/laborfix.js +++ /dev/null @@ -1,104 +0,0 @@ -//"Auto Gather/Build" -function manualLabor() { - //vars - var breedingTrimps = game.resources.trimps.owned - game.resources.trimps.employed; - var trapTrimpsOK = getPageSetting('TrapTrimps'); - var targetBreed = parseInt(getPageSetting('GeneticistTimer')); - - //FRESH GAME LOWLEVEL NOHELIUM CODE. - if (game.global.world <=3 && game.global.totalHeliumEarned<=1000) { - if (game.global.buildingsQueue.length == 0 && (game.global.playerGathering != 'trimps' || game.buildings.Trap.owned == 0)){ - if (!game.triggers.wood.done || game.resources.food.owned < 10 || Math.floor(game.resources.food.owned) < Math.floor(game.resources.wood.owned)) { - setGather('food'); - return; - } - else { - setGather('wood'); - return; - } - } - } - //Traps and Trimps - if (trapTrimpsOK && (breedingTrimps < 5 || targetBreed < getBreedTime(true))) { - if (game.buildings.Trap.owned > 0) { - setGather('trimps');//gatherTrimps = true; - return; - } - if (game.buildings.Trap.owned == 0 && canAffordBuilding('Trap')) - safeBuyBuilding('Trap');//buyTraps = true; - } - //Buildings: - //if we have more than 2 buildings in queue, or (our modifier is real fast and trapstorm is off), build - if ((!game.talents.foreman.purchased && (game.global.buildingsQueue.length ? (game.global.buildingsQueue.length > 1 || game.global.autoCraftModifier == 0 || (getPlayerModifier() > 1000 && game.global.buildingsQueue[0] != 'Trap.1')) : false)) || - //if trapstorm is off (likely we havent gotten it yet, the game is still early, buildings take a while to build ), then Prioritize Storage buildings when they hit the front of the queue (should really be happening anyway since the queue should be >2(fits the clause above this), but in case they are the only object in the queue.) - (!game.global.trapBuildToggled && (game.global.buildingsQueue[0] == 'Barn.1' || game.global.buildingsQueue[0] == 'Shed.1' || game.global.buildingsQueue[0] == 'Forge.1')) || - //Build more traps if we have TrapTrimps on, and we own less than 1000 traps. - (trapTrimpsOK && game.global.trapBuildToggled && game.buildings.Trap.owned < 1000)) { - setGather('buildings');//buildBuildings = true; - return; - } - //Sciencey: - //if we have some upgrades sitting around which we don't have enough science for, gather science - if (document.getElementById('scienceCollectBtn').style.display != 'none' && document.getElementById('science').style.visibility != 'hidden') { - //if we have less than a minute of science - if (game.resources.science.owned < 100 || (game.resources.science.owned < getPsString('science', true) * 60 && game.global.turkimpTimer < 1)) - if (getPageSetting('ManualGather2') != 2) { - setGather('science'); - return; - } - if (game.resources.science.owned < scienceNeeded) { - //if manual is less than science production and turkimp, metal. (or science is set as disallowed) - if ((getPlayerModifier() < getPerSecBeforeManual('Scientist') && game.global.turkimpTimer > 0) || getPageSetting('ManualGather2') == 2) - setGather('metal'); - else if (getPageSetting('ManualGather2') != 2) { - setGather('science'); - return; - } - } - } - //If we got here, without exiting, gather Normal Resources: - var manualResourceList = { - 'food': 'Farmer', - 'wood': 'Lumberjack', - 'metal': 'Miner', - }; - var lowestResource = 'food'; - var lowestResourceRate = -1; - var haveWorkers = true; - for (var resource in manualResourceList) { - var job = manualResourceList[resource]; - var currentRate = game.jobs[job].owned * game.jobs[job].modifier; - // debug('Current rate for ' + resource + ' is ' + currentRate + ' is hidden? ' + (document.getElementById(resource).style.visibility == 'hidden')); - if (document.getElementById(resource).style.visibility != 'hidden') { - //find the lowest resource rate - if (currentRate === 0) { - currentRate = game.resources[resource].owned; - // debug('Current rate for ' + resource + ' is ' + currentRate + ' lowest ' + lowestResource + lowestResourceRate); - if ((haveWorkers) || (currentRate < lowestResourceRate)) { - // debug('New Lowest1 ' + resource + ' is ' + currentRate + ' lowest ' + lowestResource + lowestResourceRate+ ' haveworkers ' +haveWorkers); - haveWorkers = false; - lowestResource = resource; - lowestResourceRate = currentRate; - } - } - if ((currentRate < lowestResourceRate || lowestResourceRate == -1) && haveWorkers) { - // debug('New Lowest2 ' + resource + ' is ' + currentRate + ' lowest ' + lowestResource + lowestResourceRate); - lowestResource = resource; - lowestResourceRate = currentRate; - } - } - // debug('Current Stats ' + resource + ' is ' + currentRate + ' lowest ' + lowestResource + lowestResourceRate+ ' haveworkers ' +haveWorkers); - } - - if (game.global.playerGathering != lowestResource && !haveWorkers && !breedFire) { - if (game.global.turkimpTimer > 0) - setGather('metal'); - else - setGather(lowestResource);//gather the lowest resource - } else if (game.global.turkimpTimer > 0) - setGather('metal'); - else - setGather(lowestResource); - //ok - return true; -} \ No newline at end of file From 6e170790ce1014ed36ddbd09949f208a3737dad9 Mon Sep 17 00:00:00 2001 From: gen BTC Date: Tue, 3 Apr 2018 05:41:54 -0400 Subject: [PATCH 049/365] work on settings migration in utils.js --- modules/utils.js | 64 +++++++++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 25 deletions(-) diff --git a/modules/utils.js b/modules/utils.js index e7e392417..ee71b65af 100644 --- a/modules/utils.js +++ b/modules/utils.js @@ -66,26 +66,42 @@ function updateOldSettings(oldSettings) { var oldVer = oldSettings['ATversion']; debug("ATsettings: Updating v" + oldVer + " to v" + ATversion); if (versionIsOlder(oldVer, '2.1.6.9')) { - debug("ATsettings: Migrating AutoMaps + RunUniqueMaps to new AutoMaps."); - //migrate AutoMaps + RunUniqueMaps to new AutoMaps - var am = (oldSettings['AutoMaps']); - oldSettings['AutoMaps'] = am ? 1 : 0; - if (!oldSettings['RunUniqueMaps']) - oldSettings['AutoMaps']++; - delete oldSettings['RunUniqueMaps']; + debug("ATsettings: Migrating AutoMaps + RunUniqueMaps to new AutoMaps."); + //migrate AutoMaps + RunUniqueMaps to new AutoMaps + oldSettings['AutoMaps'].value = oldSettings['AutoMaps'].enabled ? 1 : 0; + if (!oldSettings['RunUniqueMaps'].enabled) + oldSettings['AutoMaps'].value++; + delete oldSettings['RunUniqueMaps']; } - /* - if (versionIsOlder(oldVer, '2.1.7.0')) { - debug("ATsettings: Migrating X + Y to new Z."); - //migrate X + Y to new Z - var am = (oldSettings['X']); - oldSettings['X'] = am ? 1 : 0; - if (!oldSettings['Y']) - oldSettings['X']++; - delete oldSettings['Y']; - } - */ + //These settingsneed to be migrated here: +/* +BuyBuildingsNew = BuyBuildings + BuyStorage +BuyJobsNew = BuyJobs + WorkerRatios +BuyWeaponsNew = BuyWeaponUpgrades + BuyWeapons +BuyArmorNew = BuyArmorUpgrades + BuyArmor +ManualGather2 was 2 now 3 (4=way) - needs to be converted. +BuyOneTimeOC = BuyOvclock + OneTimeOnly +PrestigeSkip1_2 = PrestigeSkipMode + PrestigeSkip2 +AutoHeirloomsNew = AutoHeirlooms + AutoHeirlooms2 +ScryerDieToUseS += ScryerDieZ +(+more since 5 days ago) +*/ + if (versionIsOlder(oldVer, '2.1.7.0')) { + //example:*untested* + var X='BuyBuildings'; + var Y='BuyStorage'; + var Z='BuyBuildingsNew'; + //migrate X + Y to new Z + var oldOne = oldSettings[X]; + var oldTwo = oldSettings[Y]; + var newOne = oldSettings[Z]; + debug("ATsettings: Migrating " + X + " + " + Y + " to new " + Z); + newOne.value = oldOne.enabled ? 1 : 0; + newOne.value+= oldTwo.enabled ? 1 : 0; + delete oldOne; + delete oldTwo; + } autoTrimpSettings = oldSettings; } @@ -168,6 +184,7 @@ function debug(message, type, lootIcon) { var graphs = getPageSetting('SpamGraphs'); var magmite = getPageSetting('SpamMagmite'); var perks = getPageSetting('SpamPerks'); + var profiles = getPageSetting('SpamProfiles'); var output = true; switch (type) { case null: @@ -202,6 +219,9 @@ function debug(message, type, lootIcon) { case "perks": output = perks; break; + case "profiles": + output = profiles; + break; } if (output) { if (enableDebug) @@ -373,13 +393,7 @@ window.onerror = function catchErrors(msg, url, lineNo, columnNo, error) { console.log("AT logged error: " + message); //ATServer.Upload(message); }; -/* -window.addEventListener('error', function(event) { - var message = JSON.stringify(event); - console.log("logged error: " + message); - //ATServer.Upload(message); -}); -*/ + function throwErrorfromModule() { throw new Error("We have successfully read the thrown error message out of a module"); } From 2ae36f2da22e532dde612c95dafa00e11431b81b Mon Sep 17 00:00:00 2001 From: gen BTC Date: Tue, 3 Apr 2018 08:59:40 -0400 Subject: [PATCH 050/365] script Module Load Unload in import export. protect Equipment from Null errors on bookmarklet. --- AutoTrimps2.js | 15 +++++++------- SettingsGUI.js | 13 +++++++++++-- modules/equipment.js | 42 ++++++++++++++++++++-------------------- modules/import-export.js | 26 +++++++++++++++++++++++++ user.js | 4 ++++ 5 files changed, 70 insertions(+), 30 deletions(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index 603ebb971..bfd059238 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -30,7 +30,8 @@ if (atscript !== null) { function ATscriptLoad(pathname, modulename) { if (modulename == null) debug("Wrong Syntax. Script could not be loaded. Try ATscriptLoad(modulepath, 'example.js'); "); var script = document.createElement('script'); - script.src = basepath + pathname + modulename; + if (pathname == null) pathname = ''; + script.src = basepath + pathname + modulename + '.js'; script.id = modulename + '_MODULE'; //script.setAttribute('crossorigin',"use-credentials"); //script.setAttribute('crossorigin',"anonymous"); @@ -38,22 +39,22 @@ function ATscriptLoad(pathname, modulename) { } //Scripts can be unloaded like this: ATscriptUnload('scryer'); function ATscriptUnload(id) { - var $link = document.getElementById(id + '.js_MODULE'); + var $link = document.getElementById(id + '_MODULE'); if (!$link) return; document.head.removeChild($link); debug("Removing " + id + "_MODULE","other"); } -ATscriptLoad(modulepath, 'utils.js'); //Load stuff needed to load other stuff: +ATscriptLoad(modulepath, 'utils'); //Load stuff needed to load other stuff: //This starts up after 2.5 seconds. function initializeAutoTrimps() { loadPageVariables(); //get autoTrimpSettings - ATscriptLoad("",'SettingsGUI.js'); //populate Settings GUI - ATscriptLoad("",'Graphs.js'); //populate Graphs + ATscriptLoad('','SettingsGUI'); //populate Settings GUI + ATscriptLoad('','Graphs'); //populate Graphs //Load modules: ATmoduleList = ['query', 'portal', 'upgrades', 'heirlooms', 'buildings', 'jobs', 'equipment', 'gather', 'stance', 'battlecalc', 'maps', 'breedtimer', 'dynprestige', 'fight', 'scryer', 'magmite', 'other', 'import-export', 'client-server', 'perks', /* 'perky', */ 'fight-info', 'performance']; for (var m in ATmoduleList) { - ATscriptLoad(modulepath, ATmoduleList[m] + '.js'); + ATscriptLoad(modulepath, ATmoduleList[m]); } // debug('AutoTrimps v' + ATversion + ' Loaded!', '*spinner3'); @@ -61,7 +62,7 @@ function initializeAutoTrimps() { var changelogList = []; //changelogList.push({date: " ", version: " ", description: "", isNew: true}); //TEMPLATE -changelogList.push({date: "4/2", version: "v2.1.6.9b", description: "Multiple Settings Were Combined. AutoPerks code was changed but still functions the same, except a new algorithm to reduce the time to allocate for high helium players. Test new algo with MODULES[\"perks\"].useAlgo2=true; .You can also clear all perks then allocate and have it work now. AutoMaps no longer considered as Lead challenge when in Chall^2. ", isNew: true}); +changelogList.push({date: "4/2", version: "v2.1.6.9b", description: "Import Export, Modules Load code Improvements. Multiple Buttons/Settings Were Combined. AutoPerks code was changed but still functions the same, except for a new algorithm that reduces the time to allocate for high helium players to near-instantaneous. Please test new algo with MODULES[\"perks\"].useAlgo2=true; .You can also clear all perks then allocate and have it work now. AutoMaps no longer considered as being in Lead challenge during Chall^2. ", isNew: true}); changelogList.push({date: "3/23", version: "v2.1.6.9", description: "Game's Map at Zone can be used with AT now, to run maps forever. AutoMaps setting was combined with RunUniqueMaps (variable has changed from boolean false,true to a value 0,1,2). Settings file has been migrated as such. New: Map SpecialMod is sort of working, at least. Geneticist Infinity bugfix. New AGU Settings for 60% Void (fixed). Many Graphs fixes. AutoMaps changes. Equipment Cap, see README at GitHub DarkTheme fix. Scientists Fix. Zek450 Perks Preset Changed. Ongoing Development...", isNew: false}); changelogList.push({date: "3/24", version: "v2.1.6.5-stable", description: "Set up Stable Repository for the faint of heart.", isNew: false}); //changelogList.push({date: "3/22", version: "v2.1.6.8", description: "Settings GUI, make better. Import/export improved. Graph buttons: Cycle Up/Down. Internal code fixes. New Graph: Nurseries", isNew: false}); diff --git a/SettingsGUI.js b/SettingsGUI.js index 91ef0f3fd..6be43e6eb 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -477,8 +477,17 @@ function initializeAllSettings() { //createSetting('ImportModuleVars', 'Import Custom Variables', 'Import your custom MODULES variables (and save).', 'infoclick', 'ImportModuleVars', null, 'Import Export'); //createSetting('ResetModuleVars', 'Reset Custom Variables', 'Reset(Delete) your custom MODULES variables, and return the script to normal. ', 'infoclick', 'ResetModuleVars', null, 'Import Export'); - //createSetting('PlayerLevel', 'PlayerLevel', 'PlayerLevel: Indicate around what level you are. noob, low, medium, high, spire, magma, expert, z450+, z500+, endgame and so on. Might be used to control which settings are visible in the future. ', 'dropdown', "Medium", ["Noob","Low","Medium","High","Spire","Magma","Expert","z450+","z500+","EndGame"], 'Modules'); - //createSetting('ATModuleListDropdown', 'Modules', 'AT Module List Dropdown: Lists all the individual modules (.js files) that have been auto-loaded. It might be possible to unload these or something in the future.', 'dropdown', ATmoduleList[0], ATmoduleList, 'Modules'); + //createSetting('PlayerLevel', 'PlayerLevel', 'PlayerLevel: Indicate around what level you are. noob, low, medium, high, spire, magma, expert, z450+, z500+, endgame and so on. Might be used to control which settings are visible in the future. ', 'dropdown', "Medium", ["Noob","Low","Medium","High","Spire","Magma","Expert","z450+","z500+","EndGame"], 'Display'); + + createSetting('ATModuleListDropdown', 'Modules', 'AT Module List Dropdown: Lists all the individual modules (.js files) that have been auto-loaded. It might be possible to unload these or something in the future.', 'dropdown', ATmoduleList[0], ATmoduleList, 'Import Export'); + document.getElementById('ATModuleListDropdown').multiple = true; //allow 4 multiple selections + document.getElementById('ATModuleListDropdown').size = 4; + document.getElementById('ATModuleListDropdown').height = '5vw'; + document.getElementById('ATModuleListDropdownLabel').style.verticalAlign = 'top'; + document.getElementById('ATModuleListDropdownLabel').parentNode.style.width = null; //make the next stuff fit on 1 line. + createSetting('ATModuleUnload', 'Unload Module', 'UnLoads a running module file this session', 'infoclick', 'ATModuleUnload', null, 'Import Export'); + createSetting('ATModuleLoad', 'ReLoad Module', 'Load/Reloads a module file (.js) and runs it.', 'infoclick', 'ATModuleLoad', null, 'Import Export'); + } initializeAllSettings(); //EXECUTE diff --git a/modules/equipment.js b/modules/equipment.js index 0c518a512..59e430ae0 100644 --- a/modules/equipment.js +++ b/modules/equipment.js @@ -322,32 +322,32 @@ function autoLevelEquipment() { Best[BKey].StatusBorder = evaluation.StatusBorder; } Best[BKey].Cost = evaluation.Cost; + //add up whats needed: + resourcesNeeded[equip.Resource] += Best[BKey].Cost; + //Apply colors from before: //white - Upgrade is not available //yellow - Upgrade is not affordable (or capped) //orange - Upgrade is affordable, but will lower stats //red - Yes, do it now! - + if (evaluation.Wall) + $equipName.style.color = 'yellow'; $equipName.style.border = '1px solid ' + evaluation.StatusBorder; + var $equipUpgrade = document.getElementById(equip.Upgrade); - if (evaluation.StatusBorder != 'white' && evaluation.StatusBorder != 'yellow') { - if ($equipUpgrade) - $equipUpgrade.style.color = evaluation.StatusBorder; - } - if (evaluation.StatusBorder == 'yellow') { + if (evaluation.StatusBorder != 'white' && evaluation.StatusBorder != 'yellow' && $equipUpgrade) + $equipUpgrade.style.color = evaluation.StatusBorder; + if (evaluation.StatusBorder == 'yellow' && $equipUpgrade) $equipUpgrade.style.color = 'white'; - } - if (evaluation.Wall) { - $equipName.style.color = 'yellow'; - } if (equipName == 'Gym' && needGymystic) { $equipName.style.color = 'white'; $equipName.style.border = '1px solid white'; - $equipUpgrade.style.color = 'red'; - $equipUpgrade.style.border = '2px solid red'; + if ($equipUpgrade) { + $equipUpgrade.style.color = 'red'; + $equipUpgrade.style.border = '2px solid red'; + } } - //add up whats needed: - resourcesNeeded[equip.Resource] += Best[BKey].Cost; + //Code is Spaced This Way So You Can Read It: if (evaluation.StatusBorder == 'red' && !(game.global.world < 60 && game.global.world >= 58 && MODULES["equipment"].waitTill60)) { @@ -357,20 +357,20 @@ function autoLevelEquipment() { if ( ( BuyWeaponUpgrades && equipmentList[equipName].Stat == 'attack' ) - || + || ( BuyWeaponUpgrades && equipmentList[equipName].Stat == 'block' ) - || + || ( BuyArmorUpgrades && equipmentList[equipName].Stat == 'health' && - //Only buy Armor prestiges when 'DelayArmorWhenNeeded' is on, IF: + //Only buy Armor prestiges when 'DelayArmorWhenNeeded' is on, IF: ( ( DelayArmorWhenNeeded && !shouldFarm) // not during "Farming" mode - || // or + || // or ( DelayArmorWhenNeeded && enoughDamageE) // has enough damage (not in "Wants more Damage" mode) - || // or + || // or ( DelayArmorWhenNeeded && !enoughDamageE && !enoughHealthE) // if neither enough dmg or health, then tis ok to buy. - || + || ( DelayArmorWhenNeeded && equipmentList[equipName].Resource == 'wood') - || + || ( !DelayArmorWhenNeeded) //or when its off. ) ) diff --git a/modules/import-export.js b/modules/import-export.js index 3b8dc5d0c..ba64e18dc 100644 --- a/modules/import-export.js +++ b/modules/import-export.js @@ -228,6 +228,32 @@ function ImportExportTooltip(what, event) { ondisplay = function() { document.getElementById('importBox').focus(); }; + } else if (what == "ATModuleLoad") { + var mods = document.getElementById('ATModuleListDropdown'); + var modnames = ""; + for (script in mods.selectedOptions) { + var $item = mods.selectedOptions[script]; + if ($item.value != null) { + ATscriptLoad(modulepath, $item.value); + //console.log($item.value); + modnames += $item.value + " "; + } + } + tooltipText = "Autotrimps - Loaded the MODULE .JS File(s): " + modnames; + costText = "
OK
"; + } else if (what == "ATModuleUnload") { + var mods = document.getElementById('ATModuleListDropdown'); + var modnames = ""; + for (script in mods.selectedOptions) { + var $item = mods.selectedOptions[script]; + if ($item.value != null) { + ATscriptUnload($item.value); + //console.log($item.value); + modnames += $item.value + " "; + } + } + tooltipText = "Autotrimps - UnLoaded the MODULE .JS File(s): " + modnames; + costText = "
OK
"; } else if (what == "ResetModuleVars") { resetModuleVars(); tooltipText = "Autotrimps MODULE variable settings have been successfully reset to its defaults!"; diff --git a/user.js b/user.js index dabe89d42..46ddf46a3 100644 --- a/user.js +++ b/user.js @@ -20,3 +20,7 @@ document.head.appendChild(script); // This File is Deprecated, please use .user.js instead (with the leading dot) so TamperMonkey/Greasemonkey can detect it as a script automatically. // Other than that they are identical and no change is required on your part if everything is working already. + +//You can use the following to auto-load your own forked repo as a local directory served from a local HTTPS webserver. +//the other bookmarklet wont load locally - the script.id will tell it to pull the rest of modules from the given URL. +//javascript:with(document)(script = createElement('script'), script.src='https://localhost:4443/AutoTrimps2.js', script.id='AutoTrimps-script',head.appendChild(script))._ \ No newline at end of file From ac651ddb8c31f1b3da458ccb82d912c1f3b02dc8 Mon Sep 17 00:00:00 2001 From: gen BTC Date: Tue, 3 Apr 2018 09:17:27 -0400 Subject: [PATCH 051/365] AutoPerks can save custom ratios now --- modules/perks.js | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/modules/perks.js b/modules/perks.js index 4004eaca2..98bf99a5b 100644 --- a/modules/perks.js +++ b/modules/perks.js @@ -189,10 +189,10 @@ AutoPerks.saveDumpPerk = function() { } AutoPerks.saveCustomRatios = function() { - var perkRatioBoxes = document.getElementsByClassName('perkRatios'); + var $perkRatioBoxes = document.getElementsByClassName('perkRatios'); var customRatios = []; - for(var i = 0; i < perkRatioBoxes.length; i++) { - customRatios.push({'id':perkRatioBoxes[i].id,'value':parseFloat(perkRatioBoxes[i].value)}); + for(var i = 0; i < $perkRatioBoxes.length; i++) { + customRatios.push({'id':$perkRatioBoxes[i].id,'value':parseFloat($perkRatioBoxes[i].value)}); } safeSetItems('AutoPerksCustomRatios', JSON.stringify(customRatios) ); } @@ -201,31 +201,31 @@ AutoPerks.saveCustomRatios = function() { // (and everytime the ratio-preset dropdown-selector is changed) //loads custom ratio selections from localstorage if applicable AutoPerks.setDefaultRatios = function() { - var perkRatioBoxes = document.getElementsByClassName("perkRatios"); + var $perkRatioBoxes = document.getElementsByClassName("perkRatios"); var ratioSet = document.getElementById("ratioPreset").selectedIndex; var currentPerk; - for(var i = 0; i < perkRatioBoxes.length; i++) { - currentPerk = AutoPerks.getPerkByName(perkRatioBoxes[i].id.substring(0, perkRatioBoxes[i].id.length - 5)); // Remove "ratio" from the id to obtain the perk name - perkRatioBoxes[i].value = currentPerk.value[ratioSet]; + for(var i = 0; i < $perkRatioBoxes.length; i++) { + currentPerk = AutoPerks.getPerkByName($perkRatioBoxes[i].id.substring(0, $perkRatioBoxes[i].id.length - 5)); // Remove "ratio" from the id to obtain the perk name + $perkRatioBoxes[i].value = currentPerk.value[ratioSet]; } //grab custom ratios if saved. if (ratioSet == document.getElementById("ratioPreset").length-1) { var tmp = JSON.parse(localStorage.getItem('AutoPerksCustomRatios')); if (tmp !== null) - customRatios = tmp; + AutoPerks.GUI.$customRatios = tmp; else { - // If "custom" is manually selected, and no file was found, start by setting all perkRatioBoxes to 0. - for(var i = 0; i < perkRatioBoxes.length; i++) { - perkRatioBoxes[i].value = 0; //initialize to 0. + // If "custom" is manually selected, and no file was found, start by setting all $perkRatioBoxes to 0. + for(var i = 0; i < $perkRatioBoxes.length; i++) { + $perkRatioBoxes[i].value = 0; //initialize to 0. } return; //then exit. } //if we have ratios in the storage file, load them - for(var i = 0; i < perkRatioBoxes.length; i++) { + for(var i = 0; i < $perkRatioBoxes.length; i++) { //do a quick sanity check (order) - if (customRatios[i].id != perkRatioBoxes[i].id) continue; - currentPerk = AutoPerks.getPerkByName(perkRatioBoxes[i].id.substring(0, perkRatioBoxes[i].id.length - 5)); // Remove "ratio" from the id to obtain the perk name - perkRatioBoxes[i].value = customRatios[i].value; + if (AutoPerks.GUI.$customRatios[i].id != $perkRatioBoxes[i].id) continue; + currentPerk = AutoPerks.getPerkByName($perkRatioBoxes[i].id.substring(0, $perkRatioBoxes[i].id.length - 5)); // Remove "ratio" from the id to obtain the perk name + $perkRatioBoxes[i].value = AutoPerks.GUI.$customRatios[i].value; } } //save the last ratio used @@ -233,12 +233,12 @@ AutoPerks.setDefaultRatios = function() { } //updates the internal perk variables with values grabbed from the custom ratio input boxes that the user may have changed. -AutoPerks.setNewRatios = function() { - var perkRatioBoxes = document.getElementsByClassName('perkRatios'); +AutoPerks.updatePerkRatios = function() { + var $perkRatioBoxes = document.getElementsByClassName('perkRatios'); var currentPerk; - for(var i = 0; i < perkRatioBoxes.length; i++) { - currentPerk = AutoPerks.getPerkByName(perkRatioBoxes[i].id.substring(0, perkRatioBoxes[i].id.length - 5)); // Remove "ratio" from the id to obtain the perk name - currentPerk.updatedValue = parseFloat(perkRatioBoxes[i].value); + for(var i = 0; i < $perkRatioBoxes.length; i++) { + currentPerk = AutoPerks.getPerkByName($perkRatioBoxes[i].id.substring(0, $perkRatioBoxes[i].id.length - 5)); // Remove "ratio" from the id to obtain the perk name + currentPerk.updatedValue = parseFloat($perkRatioBoxes[i].value); } AutoPerks.getPerkByName("toughness").updatedValue = AutoPerks.getPerkByName("resilience").updatedValue / 2; // Manually update tier II perks @@ -250,11 +250,11 @@ AutoPerks.setNewRatios = function() { //get ready / initialize AutoPerks.initialise = function() { - AutoPerks.initializePerks(); // Init all the new vars - AutoPerks.setNewRatios(); //grab new ratios if any //save custom ratios if "custom" is selected if (document.getElementById("ratioPreset").selectedIndex == document.getElementById("ratioPreset").length-1) AutoPerks.saveCustomRatios(); + AutoPerks.initializePerks(); // Init all the new vars + AutoPerks.updatePerkRatios(); //grab new ratios if any } //Main function (green "Allocate Perks" button): From e2e5eb3e7480c3ee7d98e952bb76e7dc55232b49 Mon Sep 17 00:00:00 2001 From: gen BTC Date: Tue, 3 Apr 2018 09:42:40 -0400 Subject: [PATCH 052/365] Add a Fast Allocate button to turn the hidden setting on. Put Cunning/Curious on 2nd line. Default customratios to 1 instead of 0 if customs are not found. --- modules/perks.js | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/modules/perks.js b/modules/perks.js index 98bf99a5b..464ce58f8 100644 --- a/modules/perks.js +++ b/modules/perks.js @@ -104,22 +104,17 @@ AutoPerks.displayGUI = function() { //Line 1 of the UI apGUI.$ratiosLine1 = document.createElement("DIV"); apGUI.$ratiosLine1.setAttribute('style', 'display: inline-block; text-align: left; width: 100%'); - var listratiosLine1 = ["Overkill","Resourceful","Coordinated","Resilience","Carpentry"]; + var listratiosLine1 = ["Overkill","Resourceful","Coordinated","Resilience","Carpentry","Artisanistry"]; for (var i in listratiosLine1) AutoPerks.createInput(listratiosLine1[i],apGUI.$ratiosLine1); apGUI.$customRatios.appendChild(apGUI.$ratiosLine1); //Line 2 of the UI apGUI.$ratiosLine2 = document.createElement("DIV"); apGUI.$ratiosLine2.setAttribute('style', 'display: inline-block; text-align: left; width: 100%'); - var listratiosLine2 = ["Artisanistry","Pheromones","Motivation","Power","Looting"]; + var listratiosLine2 = ["Pheromones","Motivation","Power","Looting","Cunning","Curious"]; for (var i in listratiosLine2) AutoPerks.createInput(listratiosLine2[i],apGUI.$ratiosLine2); //Line 3 of the UI - apGUI.$ratiosLine3 = document.createElement("DIV"); - apGUI.$ratiosLine3.setAttribute('style', 'display: inline-block; text-align: left; width: 100%'); - var listratiosLine3 = ["Cunning","Curious"]; - for (var i in listratiosLine3) - AutoPerks.createInput(listratiosLine3[i],apGUI.$ratiosLine3); //Create dump perk dropdown apGUI.$dumpperklabel = document.createElement("Label"); apGUI.$dumpperklabel.id = 'DumpPerk Label'; @@ -134,6 +129,13 @@ AutoPerks.displayGUI = function() { //Add the dump perk dropdown to UI Line 2 apGUI.$ratiosLine2.appendChild(apGUI.$dumpperklabel); apGUI.$ratiosLine2.appendChild(apGUI.$dumpperk); + //Toggle Algorithm 2 checkbox + apGUI.$toggleAlgo2 = document.createElement("DIV"); + apGUI.$toggleAlgo2.setAttribute('style', 'display: inline-block; text-align: left; margin-left: 1vw; width: 7vw;'); + apGUI.$toggleAlgo2.innerHTML = '\ + \ + Fast Allocate!:'; + apGUI.$ratiosLine2.appendChild(apGUI.$toggleAlgo2); //Create ratioPreset dropdown apGUI.$ratioPresetLabel = document.createElement("Label"); apGUI.$ratioPresetLabel.id = 'Ratio Preset Label'; @@ -154,7 +156,6 @@ AutoPerks.displayGUI = function() { apGUI.$ratiosLine1.appendChild(apGUI.$ratioPresetLabel); apGUI.$ratiosLine1.appendChild(apGUI.$ratioPreset); apGUI.$customRatios.appendChild(apGUI.$ratiosLine2); - apGUI.$customRatios.appendChild(apGUI.$ratiosLine3); //Add it all to the perk/portal screen var $portalWrapper = document.getElementById("portalWrapper") $portalWrapper.appendChild(apGUI.$customRatios); @@ -216,7 +217,7 @@ AutoPerks.setDefaultRatios = function() { else { // If "custom" is manually selected, and no file was found, start by setting all $perkRatioBoxes to 0. for(var i = 0; i < $perkRatioBoxes.length; i++) { - $perkRatioBoxes[i].value = 0; //initialize to 0. + $perkRatioBoxes[i].value = 1; //initialize to 1. } return; //then exit. } @@ -631,12 +632,14 @@ AutoPerks.lowercaseFirst = function(str) { AutoPerks.capitaliseFirstLetter = function(str) { return str.charAt(0).toUpperCase() + str.slice(1); } - AutoPerks.getPercent = function(spentHelium, totalHelium) { var frac = spentHelium / totalHelium; frac = (frac* 100).toPrecision(2); return frac + "%"; } +AutoPerks.toggleFastAllocate = function() { + MODULES["perks"].useAlgo2 = !MODULES["perks"].useAlgo2; +} AutoPerks.FixedPerk = function(name, base, level, max, fluffy) { this.id = -1; From 3b115bcbd3dc45ca59f43a8beac79979e41b0abf Mon Sep 17 00:00:00 2001 From: gen BTC Date: Tue, 3 Apr 2018 10:18:35 -0400 Subject: [PATCH 053/365] AutoPerks - on edit perk ratios, the saveCustomRatios dropdown now switches to "Custom" item when you change any ratio number. --- modules/perks.js | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/modules/perks.js b/modules/perks.js index 464ce58f8..67d347432 100644 --- a/modules/perks.js +++ b/modules/perks.js @@ -69,6 +69,7 @@ AutoPerks.createInput = function(perkname,div) { if(game.options.menu.darkTheme.enabled != 2) perk1input.setAttribute("style", oldstyle + " color: black;"); else perk1input.setAttribute('style', oldstyle); perk1input.setAttribute('class', 'perkRatios'); + perk1input.setAttribute('onchange', 'AutoPerks.switchToCustomRatios()'); var perk1label = document.createElement("Label"); perk1label.id = perkname + 'Label'; perk1label.innerHTML = perkname; @@ -114,7 +115,6 @@ AutoPerks.displayGUI = function() { var listratiosLine2 = ["Pheromones","Motivation","Power","Looting","Cunning","Curious"]; for (var i in listratiosLine2) AutoPerks.createInput(listratiosLine2[i],apGUI.$ratiosLine2); - //Line 3 of the UI //Create dump perk dropdown apGUI.$dumpperklabel = document.createElement("Label"); apGUI.$dumpperklabel.id = 'DumpPerk Label'; @@ -143,6 +143,7 @@ AutoPerks.displayGUI = function() { apGUI.$ratioPresetLabel.setAttribute('style', 'margin-right: 1vw; color: white;'); apGUI.$ratioPreset = document.createElement("select"); apGUI.$ratioPreset.id = 'ratioPreset'; + apGUI.$ratioPreset.setAttribute('onchange', 'AutoPerks.setDefaultRatios()'); oldstyle = 'text-align: center; width: 110px;'; if(game.options.menu.darkTheme.enabled != 2) apGUI.$ratioPreset.setAttribute("style", oldstyle + " color: black;"); else apGUI.$ratioPreset.setAttribute('style', oldstyle); @@ -151,7 +152,6 @@ AutoPerks.displayGUI = function() { //load the last ratio used var loadLastPreset = localStorage.getItem('AutoperkSelectedRatioPresetID'); apGUI.$ratioPreset.selectedIndex = (loadLastPreset != null) ? loadLastPreset : 0; // First element is zxv (default) ratio. - apGUI.$ratioPreset.setAttribute('onchange', 'AutoPerks.setDefaultRatios()'); //Add the presets dropdown to UI Line 1 apGUI.$ratiosLine1.appendChild(apGUI.$ratioPresetLabel); apGUI.$ratiosLine1.appendChild(apGUI.$ratioPreset); @@ -190,12 +190,20 @@ AutoPerks.saveDumpPerk = function() { } AutoPerks.saveCustomRatios = function() { - var $perkRatioBoxes = document.getElementsByClassName('perkRatios'); - var customRatios = []; - for(var i = 0; i < $perkRatioBoxes.length; i++) { - customRatios.push({'id':$perkRatioBoxes[i].id,'value':parseFloat($perkRatioBoxes[i].value)}); + if (document.getElementById("ratioPreset").selectedIndex == document.getElementById("ratioPreset").length-1) { + var $perkRatioBoxes = document.getElementsByClassName('perkRatios'); + var customRatios = []; + for(var i = 0; i < $perkRatioBoxes.length; i++) { + customRatios.push({'id':$perkRatioBoxes[i].id,'value':parseFloat($perkRatioBoxes[i].value)}); + } + safeSetItems('AutoPerksCustomRatios', JSON.stringify(customRatios) ); } - safeSetItems('AutoPerksCustomRatios', JSON.stringify(customRatios) ); +} + +AutoPerks.switchToCustomRatios = function() { + var $rp = document.getElementById("ratioPreset"); + if ($rp.selectedIndex != $rp.length-1) + ($rp.selectedIndex = $rp.length-1); } //sets the ratioboxes with the default ratios embedded in the script when perks are instanciated. @@ -209,16 +217,16 @@ AutoPerks.setDefaultRatios = function() { currentPerk = AutoPerks.getPerkByName($perkRatioBoxes[i].id.substring(0, $perkRatioBoxes[i].id.length - 5)); // Remove "ratio" from the id to obtain the perk name $perkRatioBoxes[i].value = currentPerk.value[ratioSet]; } - //grab custom ratios if saved. + //If "Custom" dropdown is selected: if (ratioSet == document.getElementById("ratioPreset").length-1) { + //Try to grab custom ratios from LocalStorage if they were saved. var tmp = JSON.parse(localStorage.getItem('AutoPerksCustomRatios')); if (tmp !== null) AutoPerks.GUI.$customRatios = tmp; else { - // If "custom" is manually selected, and no file was found, start by setting all $perkRatioBoxes to 0. - for(var i = 0; i < $perkRatioBoxes.length; i++) { + // If no file was found, start by setting all $perkRatioBoxes to 1. + for(var i = 0; i < $perkRatioBoxes.length; i++) $perkRatioBoxes[i].value = 1; //initialize to 1. - } return; //then exit. } //if we have ratios in the storage file, load them @@ -252,8 +260,7 @@ AutoPerks.updatePerkRatios = function() { //get ready / initialize AutoPerks.initialise = function() { //save custom ratios if "custom" is selected - if (document.getElementById("ratioPreset").selectedIndex == document.getElementById("ratioPreset").length-1) - AutoPerks.saveCustomRatios(); + AutoPerks.saveCustomRatios(); AutoPerks.initializePerks(); // Init all the new vars AutoPerks.updatePerkRatios(); //grab new ratios if any } From dff086a8c4502196f7a88df1294dfc0a17d3f31a Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Wed, 4 Apr 2018 17:07:38 +0100 Subject: [PATCH 054/365] Merge branch 'gh-pages' into 4-3_Kfro Merge edits, changes, and fixes by Gen. --- AutoTrimps2.js | 66 ++-- SettingsGUI.js | 65 ++-- modules/equipment.js | 42 +- modules/import-export.js | 112 +++--- modules/maps.js | 13 +- modules/perks.js | 811 +++++++++++++++++++++++---------------- modules/scryer.js | 40 +- modules/upgrades.js | 2 +- modules/utils.js | 64 +-- sparecode/laborfix.js | 104 ----- user.js | 4 + 11 files changed, 700 insertions(+), 623 deletions(-) delete mode 100644 sparecode/laborfix.js diff --git a/AutoTrimps2.js b/AutoTrimps2.js index 057add7d5..bfd059238 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -1,6 +1,6 @@ // ==UserScript== // @name AutoTrimpsV2 -// @version 2.1.6.9-genbtc-3-23-2018 +// @version 2.1.6.9b-genbtc-4-2-2018 // @updateURL https://github.com/genbtc/AutoTrimps/AutoTrimps2.js // @description Automate all the trimps! // @author zininzinin, spindrjr, belaith, ishakaru, genBTC, Unihedron, coderPatsy @@ -8,39 +8,53 @@ // @include *kongregate.com/games/GreenSatellite/trimps // @grant none // ==/UserScript== -var ATversion = '2.1.6.9-genbtc-3-23-2018 + KFrowde-28-3-18'; +var ATversion = '2.1.6.9b-genbtc-4-2-2018'; //////////////////////////////////////////////////////////////////////////////// //Main Loader Initialize Function (loads first, load everything else)/////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////// var atscript = document.getElementById('AutoTrimps-script') - , basepath = 'https://Kfrowde.github.io/AutoTrimps/' + , basepath = 'https://genBTC.github.io/AutoTrimps/' , modulepath = 'modules/' ; //This should redirect the script to wherever its being mirrored from. if (atscript !== null) { - basepath = atscript.getAttribute('src').replace(/AutoTrimps2\.js$/, ''); + basepath = atscript.src.replace(/AutoTrimps2\.js$/, ''); } +//This could potentially do something one day. like: read localhost url from tampermonkey. +// AKA do certain things when matched on a certain url. +//if (atscript.src.includes('localhost')) {;}; -function scriptLoad(pathname) { +//Script can be loaded like this: ATscriptLoad(modulepath, 'utils.js'); +function ATscriptLoad(pathname, modulename) { + if (modulename == null) debug("Wrong Syntax. Script could not be loaded. Try ATscriptLoad(modulepath, 'example.js'); "); var script = document.createElement('script'); - script.src = basepath + pathname; + if (pathname == null) pathname = ''; + script.src = basepath + pathname + modulename + '.js'; + script.id = modulename + '_MODULE'; //script.setAttribute('crossorigin',"use-credentials"); //script.setAttribute('crossorigin',"anonymous"); document.head.appendChild(script); } -scriptLoad(modulepath + 'utils.js'); //Load stuff needed to load other stuff: +//Scripts can be unloaded like this: ATscriptUnload('scryer'); +function ATscriptUnload(id) { + var $link = document.getElementById(id + '_MODULE'); + if (!$link) return; + document.head.removeChild($link); + debug("Removing " + id + "_MODULE","other"); +} +ATscriptLoad(modulepath, 'utils'); //Load stuff needed to load other stuff: //This starts up after 2.5 seconds. function initializeAutoTrimps() { loadPageVariables(); //get autoTrimpSettings - scriptLoad('SettingsGUI.js'); //populate Settings GUI - scriptLoad('Graphs.js'); //populate Graphs + ATscriptLoad('','SettingsGUI'); //populate Settings GUI + ATscriptLoad('','Graphs'); //populate Graphs //Load modules: - var ATmodules = ['query', 'portal', 'upgrades', 'heirlooms', 'buildings', 'jobs', 'equipment', 'gather', 'stance', 'battlecalc', 'maps', 'breedtimer', 'dynprestige', 'fight', 'scryer', 'magmite', 'other', 'import-export', 'client-server', 'perks', /* 'perky', */ 'fight-info', 'performance']; - for (var m in ATmodules) { - scriptLoad(modulepath + ATmodules[m] + '.js'); + ATmoduleList = ['query', 'portal', 'upgrades', 'heirlooms', 'buildings', 'jobs', 'equipment', 'gather', 'stance', 'battlecalc', 'maps', 'breedtimer', 'dynprestige', 'fight', 'scryer', 'magmite', 'other', 'import-export', 'client-server', 'perks', /* 'perky', */ 'fight-info', 'performance']; + for (var m in ATmoduleList) { + ATscriptLoad(modulepath, ATmoduleList[m]); } // debug('AutoTrimps v' + ATversion + ' Loaded!', '*spinner3'); @@ -48,12 +62,12 @@ function initializeAutoTrimps() { var changelogList = []; //changelogList.push({date: " ", version: " ", description: "", isNew: true}); //TEMPLATE -//changelogList.push({date: "3/25", version: "v2.1.7.0", description: "", isNew: true}); -changelogList.push({date: "3/23", version: "v2.1.6.9", description: "Game's Map at Zone can be used with AT now, to run maps forever. AutoMaps setting was combined with RunUniqueMaps (variable has changed from boolean false,true to a value 0,1,2). Settings file has been migrated as such. New: Map SpecialMod is sort of working, at least. Geneticist Infinity bugfix. New AGU Settings for 60% Void (fixed). Many Graphs fixes. AutoMaps changes. Equipment Cap, see README at GitHub DarkTheme fix. Scientists Fix. Zek450 Perks Preset Changed. Ongoing Development...", isNew: true}); -changelogList.push({date: "3/22", version: "v2.1.6.8", description: "Settings GUI, make better. Import/export improved. Graph buttons: Cycle Up/Down. Internal code fixes. New Graph: Nurseries", isNew: false}); -changelogList.push({date: "3/24", version: "v2.1.6.5-stable", description: "Set up Stable Repository for the faint of heart.", isNew: true}); +changelogList.push({date: "4/2", version: "v2.1.6.9b", description: "Import Export, Modules Load code Improvements. Multiple Buttons/Settings Were Combined. AutoPerks code was changed but still functions the same, except for a new algorithm that reduces the time to allocate for high helium players to near-instantaneous. Please test new algo with MODULES[\"perks\"].useAlgo2=true; .You can also clear all perks then allocate and have it work now. AutoMaps no longer considered as being in Lead challenge during Chall^2. ", isNew: true}); +changelogList.push({date: "3/23", version: "v2.1.6.9", description: "Game's Map at Zone can be used with AT now, to run maps forever. AutoMaps setting was combined with RunUniqueMaps (variable has changed from boolean false,true to a value 0,1,2). Settings file has been migrated as such. New: Map SpecialMod is sort of working, at least. Geneticist Infinity bugfix. New AGU Settings for 60% Void (fixed). Many Graphs fixes. AutoMaps changes. Equipment Cap, see README at GitHub DarkTheme fix. Scientists Fix. Zek450 Perks Preset Changed. Ongoing Development...", isNew: false}); +changelogList.push({date: "3/24", version: "v2.1.6.5-stable", description: "Set up Stable Repository for the faint of heart.", isNew: false}); +//changelogList.push({date: "3/22", version: "v2.1.6.8", description: "Settings GUI, make better. Import/export improved. Graph buttons: Cycle Up/Down. Internal code fixes. New Graph: Nurseries", isNew: false}); //changelogList.push({date: "3/20", version: "v2.1.6.7", description: "Entirely Re-Arranged Settings Layout. Enjoy! New: Display Tab: EnhanceGrid + Go AFK Mode. GUI: Pinned AT Tab menu bar to top when scrolling. Minimize/Maxi/Close Buttons. ShowChangeLog Button. New Graph: FluffyXP&Xp/Hr (starts@300)", isNew: false}); -//changelogList.push({date: "3/13", version: "v2.1.6.6", description: "Geneticist management changes. Equipment code improvements. scriptLoad improvements. attempt to track errors.", isNew: false}); +//changelogList.push({date: "3/13", version: "v2.1.6.6", description: "Geneticist management changes. Equipment code improvements. ATscriptLoad improvements. attempt to track errors.", isNew: false}); //changelogList.push({date: "3/7", version: "v2.1.6.5", description: "Save/Reload Profiles in Import/Export. Magmamancer graph. Magmite/Magma Spam disableable.", isNew: false}); function assembleChangelog(date,version,description,isNew) { @@ -71,7 +85,7 @@ function printChangelog() { var footer = 'Ongoing Development - Report any bugs/problems please!\
Talk with the dev: genr8_#8163 @ AutoTrimps Discord Channel\ -
SeeReadMe Or check the commit history (if you want).' +
See ReadMe Or check the commit history (if you want).' , action = 'cancelTooltip()' , title = 'Script Update Notice
' + ATversion , acceptBtnText = "Thank you for playing AutoTrimps. Accept and Continue." @@ -103,6 +117,7 @@ function delayStartAgain(){ game.global.addonUser = true; game.global.autotrimps = true; //Actually Start mainLoop and guiLoop + MODULESdefault = JSON.parse(JSON.stringify(MODULES)); setInterval(mainLoop, runInterval); setInterval(guiLoop, runInterval*10); if (autoTrimpSettings.PrestigeBackup !== undefined && autoTrimpSettings.PrestigeBackup.selected != "") @@ -124,6 +139,7 @@ var autoTrimpSettings = {}; var MODULES = {}; var MODULESdefault = {}; var ATMODULES = {}; +var ATmoduleList = []; var bestBuilding; var scienceNeeded; @@ -199,15 +215,11 @@ function mainLoop() { else if (getPageSetting('BuyBuildingsNew')==1) { buyBuildings(); buyStorage(); } //"Buy Buildings & Storage" (") else if (getPageSetting('BuyBuildingsNew')==2) buyBuildings(); //"Buy Buildings" (") else if (getPageSetting('BuyBuildingsNew')==3) buyStorage(); //"Buy Storage" (") - //if (getPageSetting('BuyStorage')) buyStorage(); //"Buy Storage" (buildings.js) (Can be removed now) - //if (getPageSetting('BuyBuildings')) buyBuildings(); //"Buy Buildings" (buildings.js) (Can be removed now) - if (getPageSetting('BuyJobsNew')===0); //"Don't Buy Jobs" (Jobs.js) - else if (getPageSetting('BuyJobsNew')==1) { workerRatios(); buyJobs(); } //"Auto Worker Ratios" (") - else if (getPageSetting('BuyJobsNew')==2) buyJobs(); //"Manual Worker Ratios" (") - //if (getPageSetting('BuyJobs')) buyJobs(); //"Buy Jobs" (jobs.js) (Can be removed now) - //if (getPageSetting('WorkerRatios')) workerRatios(); //"Auto Worker Ratios" (jobs.js) (Can be removed now) + if (getPageSetting('BuyJobsNew')===0); //"Don't Buy Jobs" (Jobs.js) + else if (getPageSetting('BuyJobsNew')==1) { workerRatios(); buyJobs(); } //"Auto Worker Ratios" (") + else if (getPageSetting('BuyJobsNew')==2) buyJobs(); //"Manual Worker Ratios" (") if (getPageSetting('ManualGather2')<=1) manualLabor(); //"Auto Gather/Build" (gather.js) - else if (getPageSetting('ManualGather2')==2) manualLabor2(); //"Auto Gather/Build #2" (") + else if (getPageSetting('ManualGather2')==2) manualLabor2(); //"Auto Gather/Build #2" (") getPageSetting('AutoMaps') > 0 ? autoMap() : updateAutoMapsStatus(); //"Auto Maps" (automaps.js) if (getPageSetting('GeneticistTimer') >= 0) autoBreedTimer(); //"Geneticist Timer" / "Auto Breed Timer" (autobreedtimer.js) if (autoTrimpSettings.AutoPortal.selected != "Off") autoPortal(); //"Auto Portal" (hidden until level 40) (portal.js) @@ -237,7 +249,7 @@ function mainLoop() { //GUI Updates happen on this thread, every 1000ms function guiLoop() { updateCustomButtons(); - MODULESdefault = JSON.parse(JSON.stringify(MODULES)); + //MODULESdefault = JSON.parse(JSON.stringify(MODULES)); //Store the diff of our custom MODULES vars in the localStorage bin. safeSetItems('storedMODULES', JSON.stringify(compareModuleVars())); //Swiffy UI/Display tab diff --git a/SettingsGUI.js b/SettingsGUI.js index 634c8e27f..af489979f 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -74,6 +74,7 @@ function automationMenuSettingsInit() { var autoSettings = document.createElement("DIV"); autoSettings.id = "autoSettings"; autoSettings.setAttribute("style", "display: none; max-height: 92.5vh;overflow: auto;"); + autoSettings.setAttribute("class","niceScroll"); settingsrow.appendChild(autoSettings); } automationMenuSettingsInit(); @@ -184,6 +185,7 @@ function initializeAllTabs() { createTabs("Golden", "Golden Upgrade Settings"); createTabs("Nature", "Nature Settings"); createTabs("Display", "Display & Spam Settings"); + //createTabs("Modules", "Load/Unload Modules & Settings"); createTabs("Import Export", "Import & Export Settings"); //add a minimize button: var li_0 = document.createElement('li'); @@ -238,7 +240,7 @@ function initializeAllSettings() { //CORE: //Line1: createSetting('ManualGather2', ['Manual Gather/Build', 'Auto Gather/Build', 'Auto Gather/Build #2', 'Science Research OFF'], 'Controls what YOU do. Manual does nothing
The Decision between AutoGather 1 or 2 is up to you, and they should be similar. Auto Gathering of Food,Wood,Metal(w/turkimp) & Science. Auto speed-Builds your build queue.
You can disable science researching for the achievement: Reach Z120 without using manual research.', 'multitoggle', 1, null, "Core"); - createSetting('BuyUpgradesNew', ['Manual Upgrades', 'Buy All upgrades', 'Upgrades no Coords'], 'Autobuys non-equipment upgrades (equipment is controlled in the Gear tab). The second option does NOT buy coordination (use this ONLY if you know what you\'re doing).', 'multitoggle', 1, null, "Core"); + createSetting('BuyUpgradesNew', ['Manual Upgrades', 'Buy All Upgrades', 'Upgrades no Coords'], 'Autobuys non-equipment upgrades (equipment is controlled in the Gear tab). The second option does NOT buy coordination (use this ONLY if you know what you\'re doing).', 'multitoggle', 1, null, "Core"); //createSetting('ManageBreedtimerNew', ['Manual Breed Timer', 'Auto Breed Timer', 'Auto No Patience'], 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges, and accounts for the patience mastery.
[ON](Yellow): The same as above, but ignores patience and will not set a breed timer longer than 30s.
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'multitoggle', 1, null, "Core"); //This replaces the two settings below, but do we really need an option to ignore patience?? createSetting('ManageBreedtimer', 'Auto Breed Timer', 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges (0, 3.5s, 10s, 30s).
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'boolean', true, null, "Core"); createSetting('GeneticistTimer', 'Geneticist Timer', 'Manages the breed timer by hiring/firing Geneticists for the purpose of setting the ideal anticpation stacks. Disable with -1 to disable the Hiring/Firing of geneticists.
Info: Potency and Nursery buying behavior is adjusted dynamically (and disabling no longer disables potency). The Automatic Genetecist Hiring Process can best be summarized by: Buy/Wait/Die,Repeat. (if you do not die, no action is taken). Also self-kills (trimpicide) aka force abandon when your anti-stacks aren\'t maxed out (conservatively).

Controlled automatically (locked) when Auto Breed Timer is on.', 'value', '30', null, "Core"); @@ -248,24 +250,21 @@ function initializeAllSettings() { //Line2 createSetting('AutoStartDaily', 'Auto Start Daily', 'With this on, the Auto Portal options will portal you into and auto-start the daily whenever available. Starts from the oldest available, and works forwards. Falls back to selected challenge when there are no more dailies available.', 'boolean', false, null, 'Core'); - createSetting('AutoFinishDailyNew', 'Finish Daily Z Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option or set this to 999!', 'valueNegative', 999, null, 'Core'); //This should make sense to replace the two below. - //OLD createSetting('AutoFinishDaily', 'Auto Finish Daily', 'With this on, the He/Hr Portal and Custom Auto Portal options will auto-finish the daily whenever they trigger and THEN portal you.', 'boolean', true, null, 'Core'); - //OLD createSetting('AutoFinishDailyZone', 'Finish Daily Zone Mod', 'Finish Daily by this # of zones earlier/later than your regular Custom AutoPortal zone or your Helium Dont Portal Before zone. When Auto Finish Daily is on. Tip: Tune your value of He/HrDontPortalBefore to suit the daily, and then tune this. Can accept negative numbers for earlier, ie: -7 means portal 7 zones earlier than normal. Can also use positive numbers to DELAY portaling for later. When used with He/Hr AutoPortal, the number of zones early does not FORCE end the daily at that zone, only ALLOW it to end that early: it will Always end when your HE/hr drops enough to trigger the portal. Use 0 to disable.', 'valueNegative', 0, null, 'Core'); + createSetting('AutoFinishDailyNew', 'Finish Daily Z Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option or set this to 999!', 'valueNegative', 999, null, 'Core'); createSetting('FinishC2', 'Finish Challenge2', 'Finish / Abandon Challenge2 (any) when this zone is reached, if you are running one. For manual use. Recommended: Zones ending with 0 for most Challenge2. Disable with -1. Does not affect Non-Challenge2 runs.', 'value', -1, null, 'Core'); if (game.worldUnlocks.easterEgg) createSetting('AutoEggs', 'AutoEggs', 'Click easter egg if it exists, upon entering a new zone. Warning: Quite overpowered. Please solemnly swear that you are up to no good.', 'boolean', false, null, 'Core'); //could really be removed?? createSetting('UsePatience', 'Enable Patience', 'Sets the default breed timer to 45 seconds if you have the Patience mastery.', 'boolean', true, null, 'Core'); - document.getElementById('UsePatience').parentNode.insertAdjacentHTML('afterend','
'); + createSetting('AutoAllocatePerks', 'Auto Allocate Perks', 'Uses the AutoPerks ratio based preset system to automatically allocate your perks to spend whatever helium you have when you AutoPortal. Does not change Fixed Perks: siphonology, anticipation, meditation, relentlessness, range, agility, bait, trumps, packrat, capable. ', 'boolean', false, null, 'Core'); + document.getElementById('AutoAllocatePerks').parentNode.insertAdjacentHTML('afterend','
'); //NewLine3 For Autoportal, it would be nice to add a 5s countdown, like with magma spending. - createSetting('AutoPortal', 'Auto Portal Settings:', 'Automatically portal. Will NOT auto-portal if you have a challenge active, the challenge setting dictates which challenge it will select for the next run. All challenge settings will portal right after the challenge ends, regardless. Helium Per Hour only portals at cell 1 of the first level where your He/Hr went down even slightly compared to the current runs Best He/Hr. Take note, there is a Buffer option, which is like a grace percentage of how low it can dip without triggering. Setting a buffer will portal mid-zone if you exceed 5x of the buffer. CAUTION: Selecting He/hr may immediately portal you if its lower-(use Pause AutoTrimps button to pause the script first to avoid this)', 'dropdown', 'Off', ['Off', 'Helium Per Hour', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted', 'Custom'], "Core"); - //document.getElementById("AutoPortal").style="font-size: 1.0vw;"; //fit it on 1 line. - createSetting('HeliumHourChallenge', 'Challenge on Portal:', 'Automatically portal into this challenge when using helium per hour or custom autoportal. Custom portals after cell 100 of the zone specified. ', 'dropdown', 'None', ['None', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted'], "Core"); + createSetting('AutoPortal', 'AutoPortal', 'Automatically portal. Will NOT auto-portal if you have a challenge active, the challenge setting dictates which challenge it will select for the next run. All challenge settings will portal right after the challenge ends, regardless. Helium Per Hour only portals at cell 1 of the first level where your He/Hr went down even slightly compared to the current runs Best He/Hr. Take note, there is a Buffer option, which is like a grace percentage of how low it can dip without triggering. Setting a buffer will portal mid-zone if you exceed 5x of the buffer. CAUTION: Selecting He/hr may immediately portal you if its lower-(use Pause AutoTrimps button to pause the script first to avoid this)', 'dropdown', 'Off', ['Off', 'Helium Per Hour', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted', 'Custom'], "Core"); + createSetting('HeliumHourChallenge', 'Portal Challenge', 'Automatically portal into this challenge when using helium per hour or custom autoportal. Custom portals after cell 100 of the zone specified. ', 'dropdown', 'None', ['None', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted'], "Core"); document.getElementById("HeliumHourChallengeLabel").innerHTML = "Portal Challenge:"; //fit it on 1 line. createSetting('CustomAutoPortal', 'Custom Portal', 'Automatically portal AFTER clearing this level.(ie: setting to 200 would portal when you first reach level 201)', 'value', '999', null, "Core"); createSetting('HeHrDontPortalBefore', 'Don\'t Portal Before', 'Do NOT allow Helium per Hour AutoPortal setting to portal BEFORE this level is reached. It is an additional check that prevents drops in helium/hr from triggering autoportal. Set to 0 or -1 to completely disable this check. (only shows up with Helium per Hour set)', 'value', '999', null, "Core"); createSetting('HeliumHrBuffer', 'He/Hr Portal Buffer %', 'IMPORTANT SETTING. When using the He/Hr Autoportal, it will portal if your He/Hr drops by this amount of % lower than your best for current run, default is 0% (ie: set to 5 to portal at 95% of your best). Now with stuck protection - Allows portaling midzone if we exceed set buffer amount by 5x. (ie a normal 2% buffer setting would now portal mid-zone you fall below 10% buffer).', 'value', '0', null, 'Core'); - createSetting('AutoAllocatePerks', 'Auto Allocate Perks', 'Uses the AutoPerks ratio based preset system to automatically allocate your perks to spend whatever helium you have when you AutoPortal. ', 'boolean', false, null, 'Core'); createSetting('PauseScript', 'Pause AutoTrimps', 'Pause AutoTrimps Script (not including the graphs module)', 'boolean', null, null, 'Core'); //code to locate the pause button at lower right var $pauseScript = document.getElementById('PauseScript'); @@ -310,10 +309,10 @@ function initializeAllSettings() { createSetting('LumberjackRatio', 'Lumberjack Ratio', '', 'value', '1', null, "Jobs"); createSetting('MinerRatio', 'Miner Ratio', '', 'value', '1', null, "Jobs"); //createSetting('ScientistRatio', 'Scientist Ratio', 'Advanced. This will allow you to cap your scientist to worker ratio, as well as disable the hiring of scientists.
-1 Allows the ratio to be set automatically (Recommended)
0 Turns off Scientist hiring
\>0 Set a custom ratio.', 'value', '-1', null, "Jobs"); - createSetting('MaxScientists', 'Max Scientists', 'Advanced. Cap your scientists (This is a ratio not an absolute number). recommend: -1 (infinite still controls itself)', 'value', '-1', null, "Jobs"); + createSetting('MaxScientists', 'Max Scientists', 'Advanced. Cap your scientists (This is an absolute number not a ratio). recommend: -1 (infinite still controls itself)', 'value', '-1', null, "Jobs"); //Line2 - createSetting('MaxExplorers', 'Max Explorers', 'Advanced. Cap your explorers (This is a ratio not an absolute number). recommend: -1', 'value', '-1', null, "Jobs"); //Explorers are important now! outdated setting tbh - createSetting('MaxTrainers', 'Max Trainers', 'Advanced. Cap your trainers (This is a ratio not an absolute number). recommend: -1', 'value', '-1', null, "Jobs"); //by the time that you stop needing block, food is abundant + createSetting('MaxExplorers', 'Max Explorers', 'Advanced. Cap your explorers (This is an absolute number not a ratio). recommend: -1', 'value', '-1', null, "Jobs"); //Explorers are important now! outdated setting tbh + createSetting('MaxTrainers', 'Max Trainers', 'Advanced. Cap your trainers (This is an absolute number not a ratio). recommend: -1', 'value', '-1', null, "Jobs"); //by the time that you stop needing block, food is abundant createSetting('TrainerCaptoTributes', 'Cap Trainers %', 'Only Buy a Trainer when its cost is LESS than X% of cost of a tribute. This setting can work in combination with the other one, or set the other one to -1 and this will take full control. Default: -1 (Disabled). 50% is close to the point where the cap does nothing. You can go as low as you want but recommended is 10% to 1%. (example: Trainer cost of 5001, Tribute cost of 100000, @ 5%, it would NOT buy the trainer.)', 'value', '-1', null, 'Jobs'); //this is a bit unnecessary, resource management by the script is already sufficient. @@ -342,8 +341,7 @@ function initializeAllSettings() { //AutoMaps + VoidMaps settings: -//Could combine automaps and run unique maps into one 3 way toggle: Automaps on, Non-unique maps only, Automaps off. - createSetting('AutoMaps', ["Auto Maps Off","Auto Maps","Auto Maps No Unique"], 'Recommended. Automatically run maps to progress. Very Important. Has multiple modes: Prestige, Voids, Want more Damage, Want more Health, Want Health & Damage, and Farming.Prestige takes precedence and does equal level maps until it gets what is needed as per Autotrimps Prestige dropdown setting. Voids is self explanatory: use the Void Difficulty Check setting to control the amount of farming. If \'want more damage\', it will only do 10 maps for 200% mapbonus damage bonus. If \'Farming\', it does maps beyond 10 if the displayed number is over >16x. \'Want more health[or and damage]\' is basically just a status message telling you need more health, theres not much that can be done besides tell AutoLevelEquipment to keep buying stuff. If you \'want health\' but your damage is OK to continue, invest in more HP perks.


Unique Maps are run automatically unless disabled.
Uniques Required to auto-run The Wall and Dimension of Anger. Also Required for challenges: Electricity, Mapocalypse, Meditate, and Crushed (etc) to complete their AutoPortal.

Maps/Levels:
The Block - 12
The Wall - 16
Dimension of Anger - 21
Trimple Of Doom - 34
The Prison - 82
Bionic Wonderland (only during Crushed) @ 127
NOTE: This should generally be on.
NOTE: Run Bionic Before Spire prevents the setting of Unique.
NOTICE: This does NOT auto-run all your Bionics according to your lack of Robotrimp status or whether you pass a certain level (yet).', 'multitoggle', 1, null, "Maps"); + createSetting('AutoMaps', ["Auto Maps Off","Auto Maps On","Auto Maps No Unique"], 'Recommended. Automatically run maps to progress. Very Important. Has multiple modes: Prestige, Voids, Want more Damage, Want more Health, Want Health & Damage, and Farming.Prestige takes precedence and does equal level maps until it gets what is needed as per Autotrimps Prestige dropdown setting. Voids is self explanatory: use the Void Difficulty Check setting to control the amount of farming. If \'want more damage\', it will only do 10 maps for 200% mapbonus damage bonus. If \'Farming\', it does maps beyond 10 if the displayed number is over >16x. \'Want more health[or and damage]\' is basically just a status message telling you need more health, theres not much that can be done besides tell AutoLevelEquipment to keep buying stuff. If you \'want health\' but your damage is OK to continue, invest in more HP perks.


Unique Maps are run automatically unless disabled.
Uniques Required to auto-run The Wall and Dimension of Anger. Also Required for challenges: Electricity, Mapocalypse, Meditate, and Crushed (etc) to complete their AutoPortal.

Maps/Levels:
The Block - 12
The Wall - 16
Dimension of Anger - 21
Trimple Of Doom - 34
The Prison - 82
Bionic Wonderland (only during Crushed) @ 127
NOTE: This should generally be on.
NOTE: Run Bionic Before Spire prevents the setting of Unique.
NOTICE: This does NOT auto-run all your Bionics according to your lack of Robotrimp status or whether you pass a certain level (yet).', 'multitoggle', 1, null, "Maps"); createSetting('DynamicSiphonology', 'Dynamic Siphonology', 'Recommended Always ON. Use the right level of siphonology based on your damage output. IE: Only uses siphonology if you are weak. With this OFF it means it ALWAYS uses the lowest siphonology map you can create. Siphonology is a perk you get at level 115-125ish, and means you receive map bonus stacks for running maps below your current zone - Up to 3 zones below (1 per perk level).', 'boolean', true, null, 'Maps'); //Should always be on? createSetting('PreferMetal', 'Prefer Metal Maps', 'Always prefer metal maps, intended for manual use, such as pre-spire farming. Remember to turn it back off after you\'re done farming!', 'boolean', false, null, 'Maps'); //rarely better tbh createSetting('MaxMapBonusAfterZone', 'Max MapBonus After', 'Always gets Max Map Bonus from this zone on. (inclusive and after).
NOTE: Set -1 to disable entirely (default). Set 0 to use it always.
Advanced:User can set a lower number than the default 10 maps with the AT hidden console command: MODULES[\\"maps\\"].maxMapBonusAfterZ = 9;', 'value', '-1', null, 'Maps'); @@ -396,7 +394,7 @@ function initializeAllSettings() { //Line2 createSetting('ScryerSkipBoss2', ['Boss: NEVER (All Levels)','Boss: NEVER (Above VoidLevel)','Boss: MAYBE'], 'NEVER (All Levels) will NEVER use S in cell 100 of the world!!!
NEVER (Above VoidLevel) will NEVER use S in cell 100 of the world ABOVE the zone that your void maps are set to run at (Maps).
MAYBE treats the cell no differently to any other, Overkill and Min/Max Scryer is allowed.

Recommend NEVER (There is little benefit to double NON-HELIUM resources and a small chance of DE).', 'multitoggle', 0, null, 'Scryer'); createSetting('ScryerSkipCorrupteds2', ['Corrupted: NEVER', 'Corrupted: FORCE','Corrupted: MAYBE'], 'NEVER means what it says!!!
FORCE means Scryer will ALWAYS activate against Corrupted enemies
MAYBE means that Overkill and Min/Max use are allowed.
Magma maps and Corrupted Voidmaps are currently classified as corrupted and NEVER here will override Maps and Voidmaps use of Scryer

Recommend MAYBE.', 'multitoggle', 2, null, 'Scryer'); - createSetting('ScryerDieZ', 'Die To Use S','-1 to disable.
Turning this on will switch you back to S even when doing so would kill you. Happens in scenarios where you used Skip Corrupteds that took you into regular Autostance X/H stance, killed the corrupted and reached a non-corrupted enemy that you wish to use S on, but you havent bred yet and you are too low on health to just switch back to S. So you\'d rather die, wait to breed, then use S for the full non-corrupted enemy, to maximize DE. This feature was added for 1 person, use at your own risk.
Use this input to set the minimum zone that scryer activates in (You can use decimal values to specify what cell this setting starts from)' , 'value', 230.60, null, 'Scryer'); + createSetting('ScryerDieZ', 'Die To Use S','-1 to disable.
Turning this on will switch you back to S even when doing so would kill you. Happens in scenarios where you used Skip Corrupteds that took you into regular Autostance X/H stance, killed the corrupted and reached a non-corrupted enemy that you wish to use S on, but you havent bred yet and you are too low on health to just switch back to S. So you\'d rather die, wait to breed, then use S for the full non-corrupted enemy, to maximize DE. NOTE: Use at your own risk.
Use this input to set the minimum zone that scryer activates in (You can use decimal values to specify what cell this setting starts from)' , 'value', 230.60, null, 'Scryer'); createSetting('ScryUseinPoison', 'Scry in Poison','-1 to disable, any other number (including 0) sets a minimum zone to use S in Poison', 'value', -1, null, 'Scryer'); createSetting('ScryUseinWind', 'Scry in Wind','-1 to disable, any other number (including 0) sets a minimum zone to use S in Wind', 'value', -1, null, 'Scryer'); createSetting('ScryUseinIce', 'Scry in Ice','-1 to disable, any other number (including 0) sets a minimum zone to use S in Ice', 'value', -1, null, 'Scryer'); @@ -427,8 +425,8 @@ function initializeAllSettings() { //Golden Upgrade Strategies: - createSetting('AutoGoldenUpgrades', 'Auto Golden Upgrades', 'IMPORTANT SETTING. Automatically Buy the specified Golden Upgrades as they become available. Faster than vanilla. NOTE: Void setting unlocks more settings: goldStrat, goldAlternating, goldZone and goldNoBattle. New: Void also has a \"Max then Helium\" setting so you can get the perfect 60% Voids then Helium. More buttons will become visible when you make selections.', 'dropdown', 'Void', ["Off", "Helium", "Battle", "Void"], 'Golden'); - createSetting('goldStrat', 'Auto Golden Strategy', 'VOID ONLY: After max Void golden upgrades, alternate between buying helium and battle upgrades. Or Choose a Zone to switch over completely at (zones lower than X will buy only battle, and zones higher than X only helium). Battle can be disabled completely with the goldNoBattle button. MAX THEN HELIUM setting so you can get the perfect 60% Voids then Helium', 'dropdown', 'Max then Helium', ["Off", "Alternating", "Zone", "Max then Helium"], 'Golden'); + createSetting('AutoGoldenUpgrades', 'AutoGoldenUpgrades', 'IMPORTANT SETTING. Automatically Buy the specified Golden Upgrades as they become available. Faster than vanilla. NOTE: Void setting unlocks more settings: goldStrat, goldAlternating, goldZone and goldNoBattle. New: Void also has a \\"Max then Helium\\" setting so you can get the perfect 60% Voids then Helium. More buttons will become visible when you make selections.', 'dropdown', 'Void', ["Off", "Helium", "Battle", "Void"], 'Golden'); + createSetting('goldStrat', 'Strategy', 'VOID ONLY: After max Void golden upgrades, alternate between buying helium and battle upgrades. Or Choose a Zone to switch over completely at (zones lower than X will buy only battle, and zones higher than X only helium). Battle can be disabled completely with the goldNoBattle button. MAX THEN HELIUM setting so you can get the perfect 60% Voids then Helium', 'dropdown', 'Max then Helium', ["Off", "Alternating", "Zone", "Max then Helium"], 'Golden'); createSetting('goldAlternating', 'GU VOID: Alternating', 'Buy a helium upgrade after X-1 battle upgrades have been purchased', 'value', '2', null, 'Golden'); createSetting('goldZone', 'GU VOID: Zone', 'Buy a helium upgrade until zone X, then buy battle upgrades.', 'value', '200', null, 'Golden'); createSetting('goldNoBattle', 'GU VOID: No Battle', 'Green = Do NOT buy Battle Upgrades
Red = Buy Battle Upgrades.', 'boolean', true, null, 'Golden'); @@ -472,13 +470,25 @@ function initializeAllSettings() { // Export/Import/Default settings createSetting('ImportAutoTrimps', 'Import AutoTrimps', 'Import your AutoTrimps Settings. Asks you to name it as a profile afterwards.', 'infoclick', 'ImportAutoTrimps', null, 'Import Export'); createSetting('ExportAutoTrimps', 'Export AutoTrimps', 'Export your AutoTrimps Settings as a output string text formatted in JSON.', 'infoclick', 'ExportAutoTrimps', null, 'Import Export'); - createSetting('DefaultAutoTrimps', 'Reset to Default', 'Reset everything to the way it was when you first installed the script. (Also ', 'infoclick', 'DefaultAutoTrimps', null, 'Import Export'); - settingsProfileMakeGUI(); //Settings Profile dropdown and Delete button. + createSetting('DefaultAutoTrimps', 'Reset to Default', 'Reset everything to the way it was when you first installed the script. ', 'infoclick', 'ResetDefaultSettingsProfiles', null, 'Import Export'); createSetting('CleanupAutoTrimps', 'Cleanup Saved Settings ', 'Deletes old values from previous versions of the script from your AutoTrimps Settings file.', 'infoclick', 'CleanupAutoTrimps', null, 'Import Export'); createSetting('allowSettingsUpload', 'Allow Analytics Upload', 'Uploads your AUTOTRIMPS saved settings files (the same as Export AutoTrimps on this tab) anonymously - to https://autotrimps.site = the official Autotrimps development server. It will remain private for now, and aggregated for analytics to improve the script in the future and see which features are being used. Please Opt in. The upload will be approximately a small 5-10KB uncompressed text file every time the script is LOADED (for the time being until it is refined), and there is no concern for any personal data leak or privacy concern. This is all in good faith, and you are welcome to check the open source file modules/client-server.js. In the future, I will have to make a more fine-grained data-usage privacy-policy. Possible other data collected in the near-future may include certain game stats such as your highest zone, helium amount, bones, resource/magma/DE amounts, perk ratio selections. ', 'boolean', true, null, 'Import Export'); + settingsProfileMakeGUI(); //Settings Profile dropdown and Delete button. (this always shows up first - can be here last) //createSetting('ExportModuleVars', 'Export Custom Variables', 'Export your custom MODULES variables.', 'infoclick', 'ExportModuleVars', null, 'Import Export'); //createSetting('ImportModuleVars', 'Import Custom Variables', 'Import your custom MODULES variables (and save).', 'infoclick', 'ImportModuleVars', null, 'Import Export'); //createSetting('ResetModuleVars', 'Reset Custom Variables', 'Reset(Delete) your custom MODULES variables, and return the script to normal. ', 'infoclick', 'ResetModuleVars', null, 'Import Export'); + + //createSetting('PlayerLevel', 'PlayerLevel', 'PlayerLevel: Indicate around what level you are. noob, low, medium, high, spire, magma, expert, z450+, z500+, endgame and so on. Might be used to control which settings are visible in the future. ', 'dropdown', "Medium", ["Noob","Low","Medium","High","Spire","Magma","Expert","z450+","z500+","EndGame"], 'Display'); + /* + createSetting('ATModuleListDropdown', 'Modules', 'AT Module List Dropdown: Lists all the individual modules (.js files) that have been auto-loaded. It might be possible to unload these or something in the future.', 'dropdown', ATmoduleList[0], ATmoduleList, 'Import Export'); + document.getElementById('ATModuleListDropdown').multiple = true; //allow 4 multiple selections + document.getElementById('ATModuleListDropdown').size = 4; + document.getElementById('ATModuleListDropdown').height = '5vw'; + document.getElementById('ATModuleListDropdownLabel').style.verticalAlign = 'top'; + document.getElementById('ATModuleListDropdownLabel').parentNode.style.width = null; //make the next stuff fit on 1 line. + createSetting('ATModuleUnload', 'Unload Module', 'UnLoads a running module file this session', 'infoclick', 'ATModuleUnload', null, 'Import Export'); + createSetting('ATModuleLoad', 'ReLoad Module', 'Load/Reloads a module file (.js) and runs it.', 'infoclick', 'ATModuleLoad', null, 'Import Export'); + */ } initializeAllSettings(); //EXECUTE @@ -555,7 +565,7 @@ function createSetting(id, name, description, type, defaultValue, list, containe var dropdownLabel = document.createElement("Label"); dropdownLabel.id = id + "Label"; - dropdownLabel.innerHTML = id + ":"; + dropdownLabel.innerHTML = name + ":"; dropdownLabel.setAttribute('style', 'margin-right: 0.3vw; font-size: 0.8vw;'); btnParent.appendChild(dropdownLabel); btnParent.appendChild(btn); @@ -891,15 +901,18 @@ function updateCustomButtons() { debug("RunBionicBeforeSpire incompatible with AutoMaps No Unique Maps, changing..."); setPageSetting("AutoMaps",1); } - //make sure value buttons are set accurately. + //since this is a loop, make sure the Text contents of our buttons are set accurately. (after any setPageSetting) for (var setting in autoTrimpSettings) { - if (autoTrimpSettings[setting].type == 'value' || autoTrimpSettings[setting].type == 'valueNegative') { - var elem = document.getElementById(autoTrimpSettings[setting].id); + var item = autoTrimpSettings[setting]; + if (item.type == 'value' || item.type == 'valueNegative' || item.type == 'multitoggle') { + var elem = document.getElementById(item.id); if (elem != null) { - if (autoTrimpSettings[setting].value > -1 || autoTrimpSettings[setting].type == 'valueNegative') - elem.textContent = autoTrimpSettings[setting].name + ': ' + prettify(autoTrimpSettings[setting].value); + if (item.type == 'multitoggle') + elem.textContent = item.name[item.value]; + else if (item.value > -1 || item.type == 'valueNegative') + elem.textContent = item.name + ': ' + prettify(item.value); else - elem.innerHTML = autoTrimpSettings[setting].name + ': ' + ""; + elem.innerHTML = item.name + ': ' + ""; } } } diff --git a/modules/equipment.js b/modules/equipment.js index 12c50e4fa..b247b969b 100644 --- a/modules/equipment.js +++ b/modules/equipment.js @@ -321,32 +321,32 @@ function autoLevelEquipment() { Best[BKey].StatusBorder = evaluation.StatusBorder; } Best[BKey].Cost = evaluation.Cost; + //add up whats needed: + resourcesNeeded[equip.Resource] += Best[BKey].Cost; + //Apply colors from before: //white - Upgrade is not available //yellow - Upgrade is not affordable (or capped) //orange - Upgrade is affordable, but will lower stats //red - Yes, do it now! - + if (evaluation.Wall) + $equipName.style.color = 'yellow'; $equipName.style.border = '1px solid ' + evaluation.StatusBorder; + var $equipUpgrade = document.getElementById(equip.Upgrade); - if (evaluation.StatusBorder != 'white' && evaluation.StatusBorder != 'yellow') { - if ($equipUpgrade) - $equipUpgrade.style.color = evaluation.StatusBorder; - } - if (evaluation.StatusBorder == 'yellow') { + if (evaluation.StatusBorder != 'white' && evaluation.StatusBorder != 'yellow' && $equipUpgrade) + $equipUpgrade.style.color = evaluation.StatusBorder; + if (evaluation.StatusBorder == 'yellow' && $equipUpgrade) $equipUpgrade.style.color = 'white'; - } - if (evaluation.Wall) { - $equipName.style.color = 'yellow'; - } if (equipName == 'Gym' && needGymystic) { $equipName.style.color = 'white'; $equipName.style.border = '1px solid white'; - $equipUpgrade.style.color = 'red'; - $equipUpgrade.style.border = '2px solid red'; + if ($equipUpgrade) { + $equipUpgrade.style.color = 'red'; + $equipUpgrade.style.border = '2px solid red'; + } } - //add up whats needed: - resourcesNeeded[equip.Resource] += Best[BKey].Cost; + //Code is Spaced This Way So You Can Read It: if (evaluation.StatusBorder == 'red' && !(game.global.world < 60 && game.global.world >= 58 && MODULES["equipment"].waitTill60)) { @@ -356,20 +356,20 @@ function autoLevelEquipment() { if ( ( BuyWeaponUpgrades && equipmentList[equipName].Stat == 'attack' ) - || + || ( BuyWeaponUpgrades && equipmentList[equipName].Stat == 'block' ) - || + || ( BuyArmorUpgrades && equipmentList[equipName].Stat == 'health' && - //Only buy Armor prestiges when 'DelayArmorWhenNeeded' is on, IF: + //Only buy Armor prestiges when 'DelayArmorWhenNeeded' is on, IF: ( ( DelayArmorWhenNeeded && !shouldFarm) // not during "Farming" mode - || // or + || // or ( DelayArmorWhenNeeded && enoughDamageE) // has enough damage (not in "Wants more Damage" mode) - || // or + || // or ( DelayArmorWhenNeeded && !enoughDamageE && !enoughHealthE) // if neither enough dmg or health, then tis ok to buy. - || + || ( DelayArmorWhenNeeded && equipmentList[equipName].Resource == 'wood') - || + || ( !DelayArmorWhenNeeded) //or when its off. ) ) diff --git a/modules/import-export.js b/modules/import-export.js index 2859f7433..ba64e18dc 100644 --- a/modules/import-export.js +++ b/modules/import-export.js @@ -7,13 +7,13 @@ function settingsProfileMakeGUI() { var $settingsProfilesLabel = document.createElement("Label"); $settingsProfilesLabel.id = 'settingsProfiles Label'; $settingsProfilesLabel.innerHTML = "Settings Profile: "; - if (game.options.menu.darkTheme.enabled == 2) $settingsProfilesLabel.setAttribute("style", "margin-left: 1.2vw; margin-right: 0.8vw; color: #C8C8C8; font-size: 0.8vw;"); - else $settingsProfilesLabel.setAttribute("style", "margin-left: 1.2vw; margin-right: 0.8vw; color:white; font-size: 0.8vw;"); + if (game.options.menu.darkTheme.enabled == 2) $settingsProfilesLabel.setAttribute("style", "margin-left: 1.2vw; margin-right: 0.8vw; font-size: 0.8vw;"); + else $settingsProfilesLabel.setAttribute("style", "margin-left: 1.2vw; margin-right: 0.8vw; font-size: 0.8vw;"); $settingsProfiles = document.createElement("select"); $settingsProfiles.id = 'settingsProfiles'; $settingsProfiles.setAttribute('class', 'noselect'); $settingsProfiles.setAttribute('onchange', 'settingsProfileDropdownHandler()'); - var oldstyle = 'text-align: center; width: 160px; font-size: 1.1vw;'; + var oldstyle = 'text-align: center; width: 160px; font-size: 1.0vw;'; if(game.options.menu.darkTheme.enabled != 2) $settingsProfiles.setAttribute("style", oldstyle + " color: black;"); else $settingsProfiles.setAttribute('style', oldstyle); //Create settings profile selection dropdown @@ -23,12 +23,6 @@ function settingsProfileMakeGUI() { $settingsProfilesButton.innerHTML = "<Delete Profile"; $settingsProfilesButton.setAttribute('style', 'margin-left: 0.5vw; margin-right: 0.5vw; font-size: 0.8vw;'); $settingsProfilesButton.setAttribute('onclick','onDeleteProfileHandler()'); - //Add the $settingsProfiles dropdown to UI - var $ietab = document.getElementById('Import Export'); - //Any ERRORs here are caused by incorrect order loading of script and you should reload until its gone.(for now) - $ietab.insertBefore($settingsProfilesLabel, $ietab.childNodes[1]); - $ietab.insertBefore($settingsProfiles, $ietab.childNodes[2]); - $ietab.insertBefore($settingsProfilesButton, $ietab.childNodes[3]); //populate with a Default (read default settings): var innerhtml = ""; //populate with a Default (read default settings): @@ -36,9 +30,30 @@ function settingsProfileMakeGUI() { //Append a 2nd default item named "Save New..." and have it tied to a write function(); innerhtml += ""; //dont forget to populate the rest of it with stored items: - $settingsProfiles.innerHTML = innerhtml; + $settingsProfiles.innerHTML = innerhtml; + //Add the $settingsProfiles dropdown to UI + var $ietab = document.getElementById('Import Export'); + if ($ietab == null) return; + //Any ERRORs here are caused by incorrect order loading of script and you should reload until its gone.(for now) + $ietab.insertBefore($settingsProfilesLabel, $ietab.childNodes[1]); + $ietab.insertBefore($settingsProfiles, $ietab.childNodes[2]); + $ietab.insertBefore($settingsProfilesButton, $ietab.childNodes[3]); +} //self-executes at the bottom of the file. + +//Populate dropdown menu with list of AT SettingsProfiles +function initializeSettingsProfiles() { + if ($settingsProfiles == null) return; + //load the old data in: + var loadLastProfiles = localStorage.getItem('ATSelectedSettingsProfile'); + var oldpresets = loadLastProfiles ? JSON.parse(loadLastProfiles) : new Array(); //load the import. + oldpresets.forEach(function(elem){ + //Populate dropdown menu to reflect new name: + let optionElementReference = new Option(elem.name); + optionElementReference.id = 'customProfileRead'; + $settingsProfiles.add(optionElementReference); + }); + $settingsProfiles.selectedIndex = 0; } -//settingsProfileMakeGUI(); //runs at the bottom now: //This switches into the new profile when the dropdown is selected. //it is the "onchange" handler of the settingsProfiles dropdown @@ -141,22 +156,6 @@ function onDeleteProfile() { debug("Successfully deleted profile #: " + target, "profile"); } -//Populate dropdown menu with list of AT SettingsProfiles -function initializeSettingsProfiles() { - if ($settingsProfiles == null) return; - //load the old data in: - var loadLastProfiles = localStorage.getItem('ATSelectedSettingsProfile'); - var oldpresets = loadLastProfiles ? JSON.parse(loadLastProfiles) : new Array(); //load the import. - oldpresets.forEach(function(elem){ - //Populate dropdown menu to reflect new name: - let optionElementReference = new Option(elem.name); - optionElementReference.id = 'customProfileRead'; - $settingsProfiles.add(optionElementReference); - }); - $settingsProfiles.selectedIndex = 0; -} -initializeSettingsProfiles(); - //Handler for the popup/tooltip window for Import/Export/Default function ImportExportTooltip(what, event) { @@ -197,11 +196,6 @@ function ImportExportTooltip(what, event) { ondisplay = function() { document.getElementById('importBox').focus(); }; - } else if (what == "DefaultAutoTrimps") { - resetAutoTrimps(); - tooltipText = "Autotrimps has been successfully reset to its defaults! "; - costText = "

OK
"; - debug(tooltipText, "profile"); } else if (what == "CleanupAutoTrimps") { cleanupAutoTrimps(); tooltipText = "Autotrimps saved-settings have been attempted to be cleaned up. If anything broke, refreshing will fix it, but check that your settings are correct! (prestige in particular)"; @@ -234,6 +228,32 @@ function ImportExportTooltip(what, event) { ondisplay = function() { document.getElementById('importBox').focus(); }; + } else if (what == "ATModuleLoad") { + var mods = document.getElementById('ATModuleListDropdown'); + var modnames = ""; + for (script in mods.selectedOptions) { + var $item = mods.selectedOptions[script]; + if ($item.value != null) { + ATscriptLoad(modulepath, $item.value); + //console.log($item.value); + modnames += $item.value + " "; + } + } + tooltipText = "Autotrimps - Loaded the MODULE .JS File(s): " + modnames; + costText = "
OK
"; + } else if (what == "ATModuleUnload") { + var mods = document.getElementById('ATModuleListDropdown'); + var modnames = ""; + for (script in mods.selectedOptions) { + var $item = mods.selectedOptions[script]; + if ($item.value != null) { + ATscriptUnload($item.value); + //console.log($item.value); + modnames += $item.value + " "; + } + } + tooltipText = "Autotrimps - UnLoaded the MODULE .JS File(s): " + modnames; + costText = "
OK
"; } else if (what == "ResetModuleVars") { resetModuleVars(); tooltipText = "Autotrimps MODULE variable settings have been successfully reset to its defaults!"; @@ -349,19 +369,20 @@ function exportModuleVars() { function compareModuleVars() { var diffs = {}; var mods = Object.keys(MODULES); - for (var i=0,leni=mods.length;i= customVars.shouldFarmCell) || (scryerStuck)) && ( (game.resources.trimps.realMax() <= game.resources.trimps.owned + 1) - || (game.global.challengeActive == 'Lead' && game.global.lastClearedCell > 93) + || ((game.global.challengeActive == 'Lead' && !challSQ) && game.global.lastClearedCell > 93) || (doVoids && game.global.lastClearedCell > 93) ) ){ diff --git a/modules/perks.js b/modules/perks.js index 90dc3e876..835bb38b8 100644 --- a/modules/perks.js +++ b/modules/perks.js @@ -1,7 +1,7 @@ // ==UserScript== // @name AutoPerks // @namespace http://tampermonkey.net/ -// @version 1.0.3-3-3-2018+hiders+zeker +// @version 1.1.2-4-2-2018+genBTC // @description Trimps Automatic Perk Calculator // @author zxv, genBTC // @include *trimps.github.io* @@ -10,129 +10,21 @@ // ==/UserScript== //Create blank AutoPerks object -MODULES["perks"] = {}; var AutoPerks = {}; +MODULES["perks"] = {}; +MODULES["perks"].showDetails = true; //show which individual perks are spent; +MODULES["perks"].useAlgo2 = false; //use algorithm 2 instead. //Import the FastPriorityQueue.js general Library (not AT specific, but needed for perk queue) var head = document.getElementsByTagName('head')[0]; var queuescript = document.createElement('script'); queuescript.type = 'text/javascript'; -//This does NOT need to be changed to your own repo. Its a 3rd party file. +//This does not need to be changed to your own repo. Its a 3rd party file. queuescript.src = 'https://genbtc.github.io/AutoTrimps/FastPriorityQueue.js'; head.appendChild(queuescript); -//BEGIN AUTOPERKS GUI CODE:>>>>>>>>>>>>>> - -//Create Allocator button and add it to Trimps Perk Window -var buttonbar = document.getElementById("portalBtnContainer"); -var allocatorBtn1 = document.createElement("DIV"); -allocatorBtn1.id = 'allocatorBTN1'; -allocatorBtn1.setAttribute('class', 'btn inPortalBtn settingsBtn settingBtntrue'); -allocatorBtn1.setAttribute('onclick', 'AutoPerks.clickAllocate()'); -allocatorBtn1.textContent = 'Allocate Perks'; -buttonbar.appendChild(allocatorBtn1); -buttonbar.setAttribute('style', 'margin-bottom: 0.8vw;'); - -//Custom Creation for all perk customRatio boxes in Trimps Perk Window -AutoPerks.createInput = function(perkname,div) { - var perk1input = document.createElement("Input"); - perk1input.id = perkname + 'Ratio'; - var oldstyle = 'text-align: center; width: 60px;'; - if(game.options.menu.darkTheme.enabled != 2) perk1input.setAttribute("style", oldstyle + " color: black;"); - else perk1input.setAttribute('style', oldstyle); - perk1input.setAttribute('class', 'perkRatios'); - - var perk1label = document.createElement("Label"); - perk1label.id = perkname + 'Label'; - perk1label.innerHTML = perkname; - perk1label.setAttribute('style', 'margin-right: 1vw; width: 120px; color: white;'); - //add to the div. - div.appendChild(perk1input); - div.appendChild(perk1label); -} -var customRatios = document.createElement("DIV"); -customRatios.id = 'customRatios'; -//Line 1 of the UI -var ratiosLine1 = document.createElement("DIV"); -ratiosLine1.setAttribute('style', 'display: inline-block; text-align: left; width: 100%'); -var listratiosLine1 = ["Overkill","Resourceful","Coordinated","Resilience","Carpentry"]; -for (var i in listratiosLine1) - AutoPerks.createInput(listratiosLine1[i],ratiosLine1); -customRatios.appendChild(ratiosLine1); -//Line 2 of the UI -var ratiosLine2 = document.createElement("DIV"); -ratiosLine2.setAttribute('style', 'display: inline-block; text-align: left; width: 100%'); -var listratiosLine2 = ["Artisanistry","Pheromones","Motivation","Power","Looting"]; -for (var i in listratiosLine2) - AutoPerks.createInput(listratiosLine2[i],ratiosLine2); -//Line 3 of the UI -var ratiosLine3 = document.createElement("DIV"); -ratiosLine3.setAttribute('style', 'display: inline-block; text-align: left; width: 100%'); -var listratiosLine3 = ["Cunning","Curious"]; -for (var i in listratiosLine3) - AutoPerks.createInput(listratiosLine3[i],ratiosLine3); -//Create dump perk dropdown -var dumpperklabel = document.createElement("Label"); -dumpperklabel.id = 'DumpPerk Label'; -dumpperklabel.innerHTML = "Dump Perk:"; -dumpperklabel.setAttribute('style', 'margin-right: 1vw; color: white;'); -var dumpperk = document.createElement("select"); -dumpperk.id = 'dumpPerk'; -dumpperk.setAttribute('onchange', 'AutoPerks.saveDumpPerk()'); -var oldstyle = 'text-align: center; width: 120px;'; -if(game.options.menu.darkTheme.enabled != 2) dumpperk.setAttribute("style", oldstyle + " color: black;"); -else dumpperk.setAttribute('style', oldstyle); -//Add the dump perk dropdown to UI Line 2 -ratiosLine2.appendChild(dumpperklabel); -ratiosLine2.appendChild(dumpperk); -//Create ratioPreset dropdown -var ratioPresetLabel = document.createElement("Label"); -ratioPresetLabel.id = 'Ratio Preset Label'; -ratioPresetLabel.innerHTML = "Ratio Preset:"; -ratioPresetLabel.setAttribute('style', 'margin-right: 1vw; color: white;'); -var ratioPreset = document.createElement("select"); -ratioPreset.id = 'ratioPreset'; -var oldstyle = 'text-align: center; width: 110px;'; -if(game.options.menu.darkTheme.enabled != 2) ratioPreset.setAttribute("style", oldstyle + " color: black;"); -else ratioPreset.setAttribute('style', oldstyle); -//Populate dump perk dropdown list : -//var presetList = [preset_ZXV,preset_ZXVnew,preset_ZXV3,preset_TruthEarly,preset_TruthLate,preset_nsheetz,preset_nsheetzNew,preset_HiderHehr,preset_HiderBalance,preset_HiderMore,preset_genBTC,preset_genBTC2,preset_Zek450,preset_Zek4502,preset_Zek4503]; -var html = "" -html += "" -html += "" -html += "" -html += "" -html += "" -html += "" -html += "" -html += "" -html += "" -html += "" -html += "" -html += "" -html += "" -html += "" -html += "" -//Specific ratios labeled above are configured down in the bottom of this file.Lines 543-556 -ratioPreset.innerHTML = html; -//load the last ratio used -var loadLastPreset = localStorage.getItem('AutoperkSelectedRatioPresetID'); -if (loadLastPreset != null) - ratioPreset.selectedIndex = loadLastPreset; // First element is zxv (default) ratio. -else - ratioPreset.selectedIndex = 0; -ratioPreset.setAttribute('onchange', 'AutoPerks.setDefaultRatios()'); -//Add the presets dropdown to UI Line 1 -ratiosLine1.appendChild(ratioPresetLabel); -ratiosLine1.appendChild(ratioPreset); -// -customRatios.appendChild(ratiosLine2); -customRatios.appendChild(ratiosLine3); -document.getElementById("portalWrapper").appendChild(customRatios); - -//END AUTOPERKS GUI CODE:>>>>>>>>>>>>>> //-------------------------------------- -//Ratio Presets: +//Ratio Presets - Perk proportions: // (in perk order): [looting,toughness,power,motivation,pheromones,artisanistry,carpentry,resilience,coordinated,resourceful,overkill,cunning,curious]; var preset_ZXV = [20, 0.5, 1, 1.5, 0.5, 1.5, 8, 1, 25, 2, 3, 1, 1]; var preset_ZXVnew = [50, 0.75, 1, 3, 0.75, 3, 10, 1.5, 60, 2, 5, 1, 1]; @@ -149,10 +41,148 @@ var preset_genBTC2 = [96, 19, 15.4, 8, 8, 7, 14, 19, 11, 1, 1, 1, 1]; var preset_Zek450 = [300, 1, 30, 2, 4, 2, 9, 8, 17, 0.1, 1, 320, 1]; var preset_Zek4502 = [350, 1, 40, 2, 3, 2, 5, 8, 2, 0.1, 1, 300, 20]; //Will update again in few days, this seems to be more optimal for more helium for now var preset_Zek4503 = [450, 0.9, 48, 3.35, 1, 2.8, 7.8, 1.95, 4, 0.04, 1, 120, 175]; //Final change till perky(?) integration -//gather these into an array of objects. +//gather these into an array of objects. this is one important object. var presetList = [preset_ZXV,preset_ZXVnew,preset_ZXV3,preset_TruthEarly,preset_TruthLate,preset_nsheetz,preset_nsheetzNew,preset_HiderHehr,preset_HiderBalance,preset_HiderMore,preset_genBTC,preset_genBTC2,preset_Zek450,preset_Zek4502,preset_Zek4503]; -// -//BEGIN AUTOPERKS SCRIPT CODE:>>>>>>>>>>>>>> +//Specific ratios labeled above must be given the matching ID below. +//Ratio preset dropdown list +var presetListHtml = "\ +\ +\ +\ +\ +\ +\ +\ +\ +\ +\ +\ +\ +\ +\ +"; +//Custom Creation for all perk customRatio boxes in Trimps Perk Window +AutoPerks.createInput = function(perkname,div) { + var perk1input = document.createElement("Input"); + perk1input.id = perkname + 'Ratio'; + var oldstyle = 'text-align: center; width: 60px;'; + if(game.options.menu.darkTheme.enabled != 2) perk1input.setAttribute("style", oldstyle + " color: black;"); + else perk1input.setAttribute('style', oldstyle); + perk1input.setAttribute('class', 'perkRatios'); + perk1input.setAttribute('onchange', 'AutoPerks.switchToCustomRatios()'); + var perk1label = document.createElement("Label"); + perk1label.id = perkname + 'Label'; + perk1label.innerHTML = perkname; + perk1label.setAttribute('style', 'margin-right: 1vw; width: 120px; color: white;'); + //add to the div. + div.appendChild(perk1input); + div.appendChild(perk1label); +} +//-------------------------------------- +//BEGIN AUTOPERKS GUI CODE:>>>>>>>>>>>>>> +//-------------------------------------- +AutoPerks.GUI = {}; +AutoPerks.removeGUI = function() { + Object.keys(AutoPerks.GUI).forEach(function(key) { + var $elem = AutoPerks.GUI[key]; + $elem.parentNode.removeChild($elem); + delete AutoPerks.GUI[key]; + }); +} +AutoPerks.displayGUI = function() { + let apGUI = AutoPerks.GUI; + //Create Allocator button and add it to Trimps Perk Window + var $buttonbar = document.getElementById("portalBtnContainer"); + apGUI.$allocatorBtn1 = document.createElement("DIV"); + apGUI.$allocatorBtn1.id = 'allocatorBtn1'; + apGUI.$allocatorBtn1.setAttribute('class', 'btn inPortalBtn settingsBtn settingBtntrue'); + apGUI.$allocatorBtn1.setAttribute('onclick', 'AutoPerks.clickAllocate()'); + apGUI.$allocatorBtn1.textContent = 'Allocate Perks'; + $buttonbar.appendChild(apGUI.$allocatorBtn1); + $buttonbar.setAttribute('style', 'margin-bottom: 0.8vw;'); + apGUI.$customRatios = document.createElement("DIV"); + apGUI.$customRatios.id = 'customRatios'; + //Line 1 of the UI + apGUI.$ratiosLine1 = document.createElement("DIV"); + apGUI.$ratiosLine1.setAttribute('style', 'display: inline-block; text-align: left; width: 100%'); + var listratiosLine1 = ["Overkill","Resourceful","Coordinated","Resilience","Carpentry","Artisanistry"]; + for (var i in listratiosLine1) + AutoPerks.createInput(listratiosLine1[i],apGUI.$ratiosLine1); + apGUI.$customRatios.appendChild(apGUI.$ratiosLine1); + //Line 2 of the UI + apGUI.$ratiosLine2 = document.createElement("DIV"); + apGUI.$ratiosLine2.setAttribute('style', 'display: inline-block; text-align: left; width: 100%'); + var listratiosLine2 = ["Pheromones","Motivation","Power","Looting","Cunning","Curious"]; + for (var i in listratiosLine2) + AutoPerks.createInput(listratiosLine2[i],apGUI.$ratiosLine2); + //Create dump perk dropdown + apGUI.$dumpperklabel = document.createElement("Label"); + apGUI.$dumpperklabel.id = 'DumpPerk Label'; + apGUI.$dumpperklabel.innerHTML = "Dump Perk:"; + apGUI.$dumpperklabel.setAttribute('style', 'margin-right: 1vw; color: white;'); + apGUI.$dumpperk = document.createElement("select"); + apGUI.$dumpperk.id = 'dumpPerk'; + apGUI.$dumpperk.setAttribute('onchange', 'AutoPerks.saveDumpPerk()'); + var oldstyle = 'text-align: center; width: 120px;'; + if(game.options.menu.darkTheme.enabled != 2) apGUI.$dumpperk.setAttribute("style", oldstyle + " color: black;"); + else apGUI.$dumpperk.setAttribute('style', oldstyle); + //Add the dump perk dropdown to UI Line 2 + apGUI.$ratiosLine2.appendChild(apGUI.$dumpperklabel); + apGUI.$ratiosLine2.appendChild(apGUI.$dumpperk); + //Toggle Algorithm 2 checkbox + apGUI.$toggleAlgo2 = document.createElement("DIV"); + apGUI.$toggleAlgo2.setAttribute('style', 'display: inline-block; text-align: left; margin-left: 1vw; width: 7vw;'); + apGUI.$toggleAlgo2.innerHTML = '\ + \ + Fast Allocate!:'; + apGUI.$ratiosLine2.appendChild(apGUI.$toggleAlgo2); + //Create ratioPreset dropdown + apGUI.$ratioPresetLabel = document.createElement("Label"); + apGUI.$ratioPresetLabel.id = 'Ratio Preset Label'; + apGUI.$ratioPresetLabel.innerHTML = "Ratio Preset:"; + apGUI.$ratioPresetLabel.setAttribute('style', 'margin-right: 1vw; color: white;'); + apGUI.$ratioPreset = document.createElement("select"); + apGUI.$ratioPreset.id = 'ratioPreset'; + apGUI.$ratioPreset.setAttribute('onchange', 'AutoPerks.setDefaultRatios()'); + oldstyle = 'text-align: center; width: 110px;'; + if(game.options.menu.darkTheme.enabled != 2) apGUI.$ratioPreset.setAttribute("style", oldstyle + " color: black;"); + else apGUI.$ratioPreset.setAttribute('style', oldstyle); + //Populate ratio preset dropdown list from HTML above: + apGUI.$ratioPreset.innerHTML = presetListHtml; + //load the last ratio used + var loadLastPreset = localStorage.getItem('AutoperkSelectedRatioPresetID'); + apGUI.$ratioPreset.selectedIndex = (loadLastPreset != null) ? loadLastPreset : 0; // First element is zxv (default) ratio. + //Add the presets dropdown to UI Line 1 + apGUI.$ratiosLine1.appendChild(apGUI.$ratioPresetLabel); + apGUI.$ratiosLine1.appendChild(apGUI.$ratioPreset); + apGUI.$customRatios.appendChild(apGUI.$ratiosLine2); + //Add it all to the perk/portal screen + var $portalWrapper = document.getElementById("portalWrapper") + $portalWrapper.appendChild(apGUI.$customRatios); + //////////////////////////////////////// + //Main LOGIC Loop/////////////////////// + //////////////////////////////////////// + AutoPerks.initializePerks();// Init all the new vars + AutoPerks.populateDumpPerkList(); +} + +//populate dump perk dropdown list +AutoPerks.populateDumpPerkList = function() { + var $dumpDropdown = document.getElementById('dumpPerk'); + if ($dumpDropdown == null) return; + var html = ""; + var dumpperks = AutoPerks.getVariablePerks(); + for(var i in dumpperks) + html += "" + html += ""; + $dumpDropdown.innerHTML = html; + //load the last dump preset used + var loadLastDump = localStorage.getItem('AutoperkSelectedDumpPresetID'); + if (loadLastDump != null) + $dumpDropdown.selectedIndex = loadLastDump; + else + $dumpDropdown.selectedIndex = $dumpDropdown.length - 2; // Second to last element is looting_II (or other) +} AutoPerks.saveDumpPerk = function() { var dumpIndex = document.getElementById("dumpPerk").selectedIndex; @@ -160,43 +190,51 @@ AutoPerks.saveDumpPerk = function() { } AutoPerks.saveCustomRatios = function() { - var perkRatioBoxes = document.getElementsByClassName('perkRatios'); - var customRatios = []; - for(var i = 0; i < perkRatioBoxes.length; i++) { - customRatios.push({'id':perkRatioBoxes[i].id,'value':parseFloat(perkRatioBoxes[i].value)}); + if (document.getElementById("ratioPreset").selectedIndex == document.getElementById("ratioPreset").length-1) { + var $perkRatioBoxes = document.getElementsByClassName('perkRatios'); + var customRatios = []; + for(var i = 0; i < $perkRatioBoxes.length; i++) { + customRatios.push({'id':$perkRatioBoxes[i].id,'value':parseFloat($perkRatioBoxes[i].value)}); + } + safeSetItems('AutoPerksCustomRatios', JSON.stringify(customRatios) ); } - safeSetItems('AutoPerksCustomRatios', JSON.stringify(customRatios) ); } -//sets the ratioboxes with the default ratios embedded in the script when perks are instanciated. hardcoded @ lines 461-488 (ish) -//executed manually at the very last line of this file. (and everytime the ratio-preset dropdown-selector is changed) +AutoPerks.switchToCustomRatios = function() { + var $rp = document.getElementById("ratioPreset"); + if ($rp.selectedIndex != $rp.length-1) + ($rp.selectedIndex = $rp.length-1); +} + +//sets the ratioboxes with the default ratios embedded in the script when perks are instanciated. +// (and everytime the ratio-preset dropdown-selector is changed) //loads custom ratio selections from localstorage if applicable AutoPerks.setDefaultRatios = function() { - var perkRatioBoxes = document.getElementsByClassName("perkRatios"); + var $perkRatioBoxes = document.getElementsByClassName("perkRatios"); var ratioSet = document.getElementById("ratioPreset").selectedIndex; var currentPerk; - for(var i = 0; i < perkRatioBoxes.length; i++) { - currentPerk = AutoPerks.getPerkByName(perkRatioBoxes[i].id.substring(0, perkRatioBoxes[i].id.length - 5)); // Remove "ratio" from the id to obtain the perk name - perkRatioBoxes[i].value = currentPerk.value[ratioSet]; + for(var i = 0; i < $perkRatioBoxes.length; i++) { + currentPerk = AutoPerks.getPerkByName($perkRatioBoxes[i].id.substring(0, $perkRatioBoxes[i].id.length - 5)); // Remove "ratio" from the id to obtain the perk name + $perkRatioBoxes[i].value = currentPerk.value[ratioSet]; } - //grab custom ratios if saved. + //If "Custom" dropdown is selected: if (ratioSet == document.getElementById("ratioPreset").length-1) { + //Try to grab custom ratios from LocalStorage if they were saved. var tmp = JSON.parse(localStorage.getItem('AutoPerksCustomRatios')); if (tmp !== null) - customRatios = tmp; + AutoPerks.GUI.$customRatios = tmp; else { - // If "custom" is manually selected, and no file was found, start by setting all perkRatioBoxes to 0. - for(var i = 0; i < perkRatioBoxes.length; i++) { - perkRatioBoxes[i].value = 0; //initialize to 0. - } + // If no file was found, start by setting all $perkRatioBoxes to 1. + for(var i = 0; i < $perkRatioBoxes.length; i++) + $perkRatioBoxes[i].value = 1; //initialize to 1. return; //then exit. } //if we have ratios in the storage file, load them - for(var i = 0; i < perkRatioBoxes.length; i++) { + for(var i = 0; i < $perkRatioBoxes.length; i++) { //do a quick sanity check (order) - if (customRatios[i].id != perkRatioBoxes[i].id) continue; - currentPerk = AutoPerks.getPerkByName(perkRatioBoxes[i].id.substring(0, perkRatioBoxes[i].id.length - 5)); // Remove "ratio" from the id to obtain the perk name - perkRatioBoxes[i].value = customRatios[i].value; + if (AutoPerks.GUI.$customRatios[i].id != $perkRatioBoxes[i].id) continue; + currentPerk = AutoPerks.getPerkByName($perkRatioBoxes[i].id.substring(0, $perkRatioBoxes[i].id.length - 5)); // Remove "ratio" from the id to obtain the perk name + $perkRatioBoxes[i].value = AutoPerks.GUI.$customRatios[i].value; } } //save the last ratio used @@ -204,67 +242,70 @@ AutoPerks.setDefaultRatios = function() { } //updates the internal perk variables with values grabbed from the custom ratio input boxes that the user may have changed. -AutoPerks.setNewRatios = function() { - var perkRatioBoxes = document.getElementsByClassName('perkRatios'); +AutoPerks.updatePerkRatios = function() { + var $perkRatioBoxes = document.getElementsByClassName('perkRatios'); var currentPerk; - for(var i = 0; i < perkRatioBoxes.length; i++) { - currentPerk = AutoPerks.getPerkByName(perkRatioBoxes[i].id.substring(0, perkRatioBoxes[i].id.length - 5)); // Remove "ratio" from the id to obtain the perk name - currentPerk.updatedValue = parseFloat(perkRatioBoxes[i].value); + for(var i = 0; i < $perkRatioBoxes.length; i++) { + currentPerk = AutoPerks.getPerkByName($perkRatioBoxes[i].id.substring(0, $perkRatioBoxes[i].id.length - 5)); // Remove "ratio" from the id to obtain the perk name + currentPerk.updatedValue = parseFloat($perkRatioBoxes[i].value); } - - toughness.updatedValue = resilience.updatedValue / 2; + AutoPerks.getPerkByName("toughness").updatedValue = AutoPerks.getPerkByName("resilience").updatedValue / 2; // Manually update tier II perks var tierIIPerks = AutoPerks.getTierIIPerks(); for(var i in tierIIPerks) tierIIPerks[i].updatedValue = tierIIPerks[i].parent.updatedValue / tierIIPerks[i].relativeIncrease; } +//END AUTOPERKS GUI CODE:>>>>>>>>>>>>>> //get ready / initialize AutoPerks.initialise = function() { - AutoPerks.setperksByName(); - //This does something important but oddly enough but i cant figure out how the local var carries over to mean something later. - var perks = AutoPerks.getOwnedPerks(); - for(var i in perks) { - perks[i].level = 0; //errors out here if a new perk is added. - perks[i].spent = 0; - perks[i].updatedValue = perks[i].value; - } - - //grab new ratios if any - AutoPerks.setNewRatios(); //save custom ratios if "custom" is selected - if (document.getElementById("ratioPreset").selectedIndex == document.getElementById("ratioPreset").length-1) - AutoPerks.saveCustomRatios(); + AutoPerks.saveCustomRatios(); + AutoPerks.initializePerks(); // Init all the new vars + AutoPerks.updatePerkRatios(); //grab new ratios if any } //Main function (green "Allocate Perks" button): AutoPerks.clickAllocate = function() { AutoPerks.initialise(); // Reset all fixed perks to 0 and grab new ratios if any - var preSpentHe = 0; - var helium = AutoPerks.getHelium(); // Get fixed perks + var preSpentHe = 0; var fixedPerks = AutoPerks.getFixedPerks(); - for (var i = 0; i < fixedPerks.length; i++) { + for (var i in fixedPerks) { + //Maintain your existing fixed perks levels. fixedPerks[i].level = game.portal[AutoPerks.capitaliseFirstLetter(fixedPerks[i].name)].level; var price = AutoPerks.calculateTotalPrice(fixedPerks[i], fixedPerks[i].level); fixedPerks[i].spent += price; preSpentHe += price; } + if (preSpentHe) + debug("AutoPerks: Your existing fixed-perks reserve Helium: " + prettify(preSpentHe), "perks"); //if one of these is NaN, bugs. var remainingHelium = helium - preSpentHe; - // Get owned perks - var perks = AutoPerks.getOwnedPerks(); + //Check for NaN - if one of these is NaN, bugs. + if (Number.isNaN(remainingHelium)) + debug("AutoPerks: Major Error: Reading your Helium amount. " + remainingHelium, "perks"); // determine how to spend helium - AutoPerks.spendHelium(remainingHelium, perks); + if (MODULES["perks"].useAlgo2) + var result = AutoPerks.spendHelium2(remainingHelium); + else + var result = AutoPerks.spendHelium(remainingHelium); + if (result == false) { + debug("AutoPerks: Major Error: Make sure all ratios are set properly.","perks"); + return; + } + // Get owned perks + var perks = AutoPerks.getOwnedPerks(); //re-arrange perk points - AutoPerks.applyCalculations(perks); - debug("Finishing AutoPerks Auto-Allocate.","perks"); + AutoPerks.applyCalculations(perks,remainingHelium); + //Done + debug("AutoPerks: Auto-Allocate Finished.","perks"); } //NEW way: Get accurate count of helium (calcs it like the game does) @@ -281,20 +322,28 @@ AutoPerks.getHelium = function() { return respecMax; } +//Calculate Price AutoPerks.calculatePrice = function(perk, level) { // Calculate price of buying *next* level if(perk.fluffy) return Math.ceil(perk.base * Math.pow(10,level)); if(perk.type == 'exponential') return Math.ceil(level/2 + perk.base * Math.pow(1.3, level)); else if(perk.type == 'linear') return Math.ceil(perk.base + perk.increase * level); } - +//Calculate Total Price AutoPerks.calculateTotalPrice = function(perk, finalLevel) { + if(perk.type == 'linear' && !perk.fluffy) + return AutoPerks.calculateTIIprice(perk, finalLevel); var totalPrice = 0; for(var i = 0; i < finalLevel; i++) { totalPrice += AutoPerks.calculatePrice(perk, i); } return totalPrice; } - +//Calculate Tier 2 Total Price (Shortcut) +AutoPerks.calculateTIIprice = function(perk, finalLevel) { + //based on Trimps getAdditivePrice() @ main.js line 2056 + return Math.ceil((((finalLevel - 1) * finalLevel) / 2 * perk.increase) + (perk.base * finalLevel)); +} +//Calculate the increase in stat. AutoPerks.calculateIncrease = function(perk, level) { var increase = 0; var value; // Allows for custom perk ratios. @@ -307,37 +356,86 @@ AutoPerks.calculateIncrease = function(perk, level) { return increase / perk.baseIncrease * value; } -AutoPerks.spendHelium = function(helium, perks) { - debug("Beginning AutoPerks calculate how to spend " + helium + " Helium... This could take a while...","perks"); +AutoPerks.spendHelium = function(helium) { + debug("Beginning AutoPerks1 calculate how to spend " + prettify(helium) + " Helium... This could take a while...","perks"); if(helium < 0) { - debug("AutoPerks: Not enough helium to buy fixed perks.","perks"); + debug("AutoPerks: Major Error - Not enough helium to buy fixed perks.","perks"); //document.getElementById("nextCoordinated").innerHTML = "Not enough helium to buy fixed perks."; return; } - if(helium == NaN) { - debug("AutoPerks: Helium is Not a Number Error","perks"); + if (Number.isNaN(helium)) { + debug("AutoPerks: Major Error - Helium is Not a Number!","perks"); return; - } - + } + var perks = AutoPerks.getVariablePerks(); var effQueue = new FastPriorityQueue(function(a,b) { return a.efficiency > b.efficiency } ) // Queue that keeps most efficient purchase at the top // Calculate base efficiency of all perks + + var mostEff, price, inc; for(var i in perks) { - var price = AutoPerks.calculatePrice(perks[i], 0); - var inc = AutoPerks.calculateIncrease(perks[i], 0); + price = AutoPerks.calculatePrice(perks[i], 0); + inc = AutoPerks.calculateIncrease(perks[i], 0); perks[i].efficiency = inc/price; if(perks[i].efficiency <= 0) { debug("Perk ratios must be positive values.","perks"); - return; + return false; + } + if(perks[i].efficiency != 0) + effQueue.add(perks[i]); + } + + var i=0; + //Change the way we iterate. + function iterateQueue() { + mostEff = effQueue.poll(); + price = AutoPerks.calculatePrice(mostEff, mostEff.level); // Price of *next* purchase. + inc = AutoPerks.calculateIncrease(mostEff, mostEff.level); + mostEff.efficiency = inc / price; + i++; + } + for (iterateQueue() ; price <= helium ; iterateQueue() ) { + if(mostEff.level < mostEff.max) { // but first, check if the perk has reached its maximum value + // Purchase the most efficient perk + helium -= price; + mostEff.level++; + mostEff.spent += price; + price = AutoPerks.calculatePrice(mostEff, mostEff.level); // Price of *next* purchase. + inc = AutoPerks.calculateIncrease(mostEff, mostEff.level); + mostEff.efficiency = inc / price; + effQueue.add(mostEff); // Add back into queue run again until out of helium } - effQueue.add(perks[i]); } + debug("AutoPerks1: Pass One Complete. Loops ran: " + i, "perks"); - var mostEff = effQueue.poll(); - var price = AutoPerks.calculatePrice(mostEff, mostEff.level); // Price of *next* purchase. - var inc; - while(price <= helium) { + //Begin selectable dump perk code + var $selector = document.getElementById('dumpPerk'); + if ($selector != null && $selector.value != "None") { + var heb4dump = helium; + var index = $selector.selectedIndex; + var dumpPerk = AutoPerks.getPerkByName($selector[index].innerHTML); + //debug(AutoPerks.capitaliseFirstLetter(dumpPerk.name) + " level pre-dump: " + dumpPerk.level,"perks"); + if(dumpPerk.level < dumpPerk.max) { + for(price = AutoPerks.calculatePrice(dumpPerk, dumpPerk.level); price < helium && dumpPerk.level < dumpPerk.max; price = AutoPerks.calculatePrice(dumpPerk, dumpPerk.level)) { + helium -= price; + dumpPerk.spent += price; + dumpPerk.level++; + } + } + var dumpresults = heb4dump - helium; + debug("AutoPerks1: Dump Perk " + AutoPerks.capitaliseFirstLetter(dumpPerk.name) + " level post-dump: "+ dumpPerk.level + " Helium Dumped: " + prettify(dumpresults) + " He.", "perks"); + } //end dump perk code. + + var heB4round2 = helium; + //Repeat the process for spending round 2. This spends any extra helium we have that is less than the cost of the last point of the dump-perk. + while (effQueue.size > 1) { + mostEff = effQueue.poll(); + if (mostEff.level >= mostEff.max) continue; + price = AutoPerks.calculatePrice(mostEff, mostEff.level); + // Add back into queue run again until out of helium + // but first, check if the perk has reached its maximum value + if (price >= helium) continue; // Purchase the most efficient perk helium -= price; mostEff.level++; @@ -346,32 +444,99 @@ AutoPerks.spendHelium = function(helium, perks) { inc = AutoPerks.calculateIncrease(mostEff, mostEff.level); price = AutoPerks.calculatePrice(mostEff, mostEff.level); mostEff.efficiency = inc/price; - // Add back into queue run again until out of helium - if(mostEff.level < mostEff.max) // but first, check if the perk has reached its maximum value - effQueue.add(mostEff); + effQueue.add(mostEff); + } + var r2results = heB4round2 - helium; + debug("AutoPerks1: Pass two complete. Round 2 cleanup spend of : " + prettify(r2results),"perks"); +} + +AutoPerks.spendHelium2 = function(helium) { + debug("Beginning AutoPerks2 calculate how to spend " + prettify(helium) + " Helium... This could take a while...","perks"); + if(helium < 0) { + debug("AutoPerks: Major Error - Not enough helium to buy fixed perks.","perks"); + //document.getElementById("nextCoordinated").innerHTML = "Not enough helium to buy fixed perks."; + return; + } + if (Number.isNaN(helium)) { + debug("AutoPerks: Major Error - Helium is Not a Number!","perks"); + return; + } + + var perks = AutoPerks.getVariablePerks(); + + var effQueue = new FastPriorityQueue(function(a,b) { return a.efficiency > b.efficiency } ) // Queue that keeps most efficient purchase at the top + // Calculate base efficiency of all perks + for(var i in perks) { + var price = AutoPerks.calculatePrice(perks[i], 0); + var inc = AutoPerks.calculateIncrease(perks[i], 0); + perks[i].efficiency = inc/price; + if(perks[i].efficiency < 0) { + debug("Perk ratios must be positive values.","perks"); + return false; + } + if(perks[i].efficiency != 0) + effQueue.add(perks[i]); + } + + var mostEff, price, inc; + var packPrice,packLevel; + var i=0; + //Change the way we iterate. + function iterateQueue() { mostEff = effQueue.poll(); - price = AutoPerks.calculatePrice(mostEff, mostEff.level); + price = AutoPerks.calculatePrice(mostEff, mostEff.level); // Price of *next* purchase. + inc = AutoPerks.calculateIncrease(mostEff, mostEff.level); + mostEff.efficiency = inc / price; + i++; + } + for (iterateQueue() ; price <= helium ; iterateQueue() ) { + if(mostEff.level < mostEff.max) { // but first, check if the perk has reached its maximum value + // Purchase the most efficient perk + var t2 = mostEff.name.endsWith("_II"); + if (t2) { + packLevel = mostEff.increase * 10; + packPrice = AutoPerks.calculateTotalPrice(mostEff, mostEff.level + packLevel) - mostEff.spent; + } + if (t2 && packPrice <= helium) { + helium -= packPrice; + mostEff.level+= packLevel; + mostEff.spent += packPrice; + } else { + helium -= price; + mostEff.level++; + mostEff.spent += price; + } + price = AutoPerks.calculatePrice(mostEff, mostEff.level); // Price of *next* purchase. + inc = AutoPerks.calculateIncrease(mostEff, mostEff.level); + mostEff.efficiency = inc / price; + effQueue.add(mostEff); // Add back into queue run again until out of helium + } } - debug("AutoPerks: Pass one complete.","perks"); + debug("AutoPerks2: Pass One Complete. Loops ran: " + i, "perks"); //Begin selectable dump perk code - var selector = document.getElementById('dumpPerk'); - var index = selector.selectedIndex; - if(selector.value != "None") { - var dumpPerk = AutoPerks.getPerkByName(selector[index].innerHTML); - debug(AutoPerks.capitaliseFirstLetter(dumpPerk.name) + " level pre-dump: " + dumpPerk.level,"perks"); + var $selector = document.getElementById('dumpPerk'); + if ($selector != null && $selector.value != "None") { + var heb4dump = helium; + var index = $selector.selectedIndex; + var dumpPerk = AutoPerks.getPerkByName($selector[index].innerHTML); + //debug(AutoPerks.capitaliseFirstLetter(dumpPerk.name) + " level pre-dump: " + dumpPerk.level,"perks"); if(dumpPerk.level < dumpPerk.max) { - for(price = AutoPerks.calculatePrice(dumpPerk, dumpPerk.level); price <= helium; price = AutoPerks.calculatePrice(dumpPerk, dumpPerk.level)) { + for(price = AutoPerks.calculatePrice(dumpPerk, dumpPerk.level); price < helium && dumpPerk.level < dumpPerk.max; price = AutoPerks.calculatePrice(dumpPerk, dumpPerk.level)) { helium -= price; dumpPerk.spent += price; dumpPerk.level++; } } + var dumpresults = heb4dump - helium; + debug("AutoPerks2: Dump Perk " + AutoPerks.capitaliseFirstLetter(dumpPerk.name) + " level post-dump: "+ dumpPerk.level + " Helium Dumped: " + prettify(dumpresults) + " He.", "perks"); } //end dump perk code. - + + var heB4round2 = helium; //Repeat the process for spending round 2. This spends any extra helium we have that is less than the cost of the last point of the dump-perk. while (effQueue.size > 1) { mostEff = effQueue.poll(); + if (mostEff.level >= mostEff.max) continue; // but first, check if the perk has reached its maximum value price = AutoPerks.calculatePrice(mostEff, mostEff.level); if (price >= helium) continue; // Purchase the most efficient perk @@ -383,14 +548,16 @@ AutoPerks.spendHelium = function(helium, perks) { price = AutoPerks.calculatePrice(mostEff, mostEff.level); mostEff.efficiency = inc/price; // Add back into queue run again until out of helium - if(mostEff.level < mostEff.max) // but first, check if the perk has reached its maximum value - effQueue.add(mostEff); + effQueue.add(mostEff); } - debug("AutoPerks: Pass two complete.","perks"); + var r2results = heB4round2 - helium; + debug("AutoPerks2: Pass Two Complete. Cleanup Spent Any Leftover Helium: " + prettify(r2results) + " He.","perks"); } + + //Pushes the respec button, then the Clear All button, then assigns perk points based on what was calculated. -AutoPerks.applyCalculationsRespec = function(perks){ +AutoPerks.applyCalculationsRespec = function(perks,remainingHelium){ // *Apply calculations with respec if (game.global.canRespecPerks) { respecPerks(); @@ -398,68 +565,57 @@ AutoPerks.applyCalculationsRespec = function(perks){ if (game.global.respecActive) { clearPerks(); var preBuyAmt = game.global.buyAmt; - //var lastcustom = game.global.lastCustomAmt; + for(var i in perks) { var capitalized = AutoPerks.capitaliseFirstLetter(perks[i].name); game.global.buyAmt = perks[i].level; - //console.log(perks[i].name + " " + perks[i].level); - buyPortalUpgrade(capitalized); - } - var FixedPerks = AutoPerks.getFixedPerks(); - for(var i in FixedPerks) { - var capitalized = AutoPerks.capitaliseFirstLetter(FixedPerks[i].name); - game.global.buyAmt = FixedPerks[i].level; - //console.log(FixedPerks[i].name + " " + FixedPerks[i].level); - buyPortalUpgrade(capitalized); + if (getPortalUpgradePrice(capitalized) <= remainingHelium) { + if (MODULES["perks"].showDetails) + debug("AutoPerks-Respec Buying: " + capitalized + " " + perks[i].level, "perks"); + buyPortalUpgrade(capitalized); + } else + if (MODULES["perks"].showDetails) + debug("AutoPerks-Respec Error Couldn't Afford Asked Perk: " + capitalized + " " + perks[i].level, "perks"); } game.global.buyAmt = preBuyAmt; - //game.global.lastCustomAmt = lastcustom; numTab(1,true); //selects the 1st number of the buy-amount tab-bar (Always 1) cancelTooltip(); //displays the last perk we bought's tooltip without this. idk why. //activateClicked(); //click OK for them (disappears the window). } else { debug("A Respec would be required and is not available. You used it already, try again next portal.","perks"); - allocatorBtn1.setAttribute('class', 'btn inPortalBtn settingsBtn settingBtnfalse'); + AutoPerks.GUI.$allocatorBtn1.setAttribute('class', 'btn inPortalBtn settingsBtn settingBtnfalse'); tooltip("Automatic Perk Allocation Error", "customText", event, "A Respec would be required and is NOT available. You used it already, try again next portal. Press esc to close this tooltip." ); } } //Assigns perk points without respeccing if nothing is needed to be negative. -AutoPerks.applyCalculations = function(perks){ - // *Apply calculations WITHOUT respec +AutoPerks.applyCalculations = function(perks,remainingHelium){ + // // *Apply calculations WITHOUT respec var preBuyAmt = game.global.buyAmt; - //var lastcustom = game.global.lastCustomAmt; var needsRespec = false; for(var i in perks) { var capitalized = AutoPerks.capitaliseFirstLetter(perks[i].name); - game.global.buyAmt = perks[i].level - game.portal[capitalized].level; - //console.log(perks[i].name + " " + perks[i].level); + game.global.buyAmt = perks[i].level - game.portal[capitalized].level - game.portal[capitalized].levelTemp; if (game.global.buyAmt < 0) { needsRespec = true; - break; + if (MODULES["perks"].showDetails) + debug("AutoPerks RESPEC Required for: " + capitalized + " " + game.global.buyAmt, "perks"); + //break; } - else + else if (game.global.buyAmt > 0) { + if (MODULES["perks"].showDetails) + debug("AutoPerks-NoRespec Adding: " + capitalized + " " + game.global.buyAmt, "perks"); buyPortalUpgrade(capitalized); - } - var FixedPerks = AutoPerks.getFixedPerks(); - for(var i in FixedPerks) { - var capitalized = AutoPerks.capitaliseFirstLetter(FixedPerks[i].name); - game.global.buyAmt = FixedPerks[i].level - game.portal[capitalized].level; - //console.log(FixedPerks[i].name + " " + FixedPerks[i].level); - if (game.global.buyAmt < 0) { - needsRespec = true; - break; } - else - buyPortalUpgrade(capitalized); } + game.global.buyAmt = preBuyAmt; - //game.global.lastCustomAmt = lastcustom; numTab(1,true); //selects the 1st number of the buy-amount tab-bar (Always 1) cancelTooltip(); //displays the last perk we bought's tooltip without this. idk why. - if (needsRespec == true){ + if (needsRespec){ + debug("AutoPerks - A Respec is required. Trying respec...", "perks"); //get the variable, in this order, then switch screens (or else the sequence is messed up) var whichscreen = game.global.viewingUpgrades; cancelPortal(); @@ -467,25 +623,37 @@ AutoPerks.applyCalculations = function(perks){ viewPortalUpgrades(); else portalClicked(); - AutoPerks.applyCalculationsRespec(perks); + AutoPerks.applyCalculationsRespec(perks,remainingHelium); + // + if (MODULES["perks"].showDetails) { + var exportPerks = {}; + for (var item in game.portal){ + el = game.portal[item]; + //For smaller strings and backwards compatibility, perks not added to the object will be treated as if the perk is supposed to be level 0. + if (el.locked || el.level <= 0) continue; + //Add the perk to the object with the desired level + exportPerks[item] = el.level + el.levelTemp; + } + console.log(exportPerks); + } } } +AutoPerks.lowercaseFirst = function(str) { + return str.substr(0, 1).toLowerCase() + str.substr(1); +} AutoPerks.capitaliseFirstLetter = function(str) { return str.charAt(0).toUpperCase() + str.slice(1); } - AutoPerks.getPercent = function(spentHelium, totalHelium) { var frac = spentHelium / totalHelium; frac = (frac* 100).toPrecision(2); return frac + "%"; } - -AutoPerks.lowercaseFirst = function(str) { - return str.substr(0, 1).toLowerCase() + str.substr(1); +AutoPerks.toggleFastAllocate = function() { + MODULES["perks"].useAlgo2 = !MODULES["perks"].useAlgo2; } - AutoPerks.FixedPerk = function(name, base, level, max, fluffy) { this.id = -1; this.name = name; @@ -497,7 +665,7 @@ AutoPerks.FixedPerk = function(name, base, level, max, fluffy) { this.max = max || Number.MAX_VALUE; if (fluffy == "fluffy") { //This affects cost calculation on "Capable" fixed perk (during line 273) - this.fluffy = true; + this.fluffy = true; this.type = "linear"; this.increase = 10; } @@ -518,13 +686,11 @@ AutoPerks.VariablePerk = function(name, base, compounding, value, baseIncrease, this.level = level || 0; // How many levels have been invested into a perk this.spent = 0; // Total helium spent on each perk. function getRatiosFromPresets() { - //var perkOrder = [looting,toughness,power,motivation,pheromones,artisanistry,carpentry,resilience,coordinated,resourceful,overkill,cunning,curious]; var valueArray = []; for (var i=0; i"+AutoPerks.capitaliseFirstLetter(dumpperks[i].name)+"" -html += ""; -dumpDropdown.innerHTML = html; -//load the last dump preset used -var loadLastDump = localStorage.getItem('AutoperkSelectedDumpPresetID'); -if (loadLastDump != null) - dumpDropdown.selectedIndex = loadLastDump; -else - dumpDropdown.selectedIndex = dumpDropdown.length - 2; // Second to last element is looting_II (or other) +//Run the GUI: +AutoPerks.displayGUI(); \ No newline at end of file diff --git a/modules/scryer.js b/modules/scryer.js index 183632935..f15b12fc0 100644 --- a/modules/scryer.js +++ b/modules/scryer.js @@ -27,8 +27,9 @@ function useScryerStance() { || (getEmpowerment() == "Wind" && 0 <= getPageSetting('ScryUseinWind') && (game.global.world < getPageSetting('ScryUseinWind'))) || (getEmpowerment() == "Ice" && 0 <= getPageSetting('ScryUseinIce') && (game.global.world < getPageSetting('ScryUseinIce')))); //check Corrupted Never - var iscorrupt = getCurrentEnemy(1).mutation == ("Corruption" || "Healthy"); - iscorrupt = iscorrupt || (mutations.Magma.active() && game.global.mapsActive); + var curEnemy = getCurrentEnemy(1); + var iscorrupt = curEnemy && (curEnemy.mutation == "Corruption" || curEnemy.mutation == "Healthy"); + iscorrupt = iscorrupt || (game.global.mapsActive && mutations.Magma.active()); iscorrupt = iscorrupt || (game.global.mapsActive && getCurrentMapObject().location == "Void" && game.global.world >= mutations.Corruption.start()); if ((iscorrupt && getPageSetting('ScryerSkipCorrupteds2') == 0 || (use_auto))) { autostancefunction(); @@ -85,9 +86,9 @@ function useScryerStance() { if (useoverkill && !game.global.mapsActive && isActiveSpireAT() && getPageSetting('ScryerUseinSpire2')==0) useoverkill = false; //If lower than nature zone, do not use overkill //redundant now?? - if (useoverkill && ((getEmpowerment() = "Poison" && (game.global.world <= getPageSetting('ScryUseinPoison'))) - || (getEmpowerment() = "Wind" && (game.global.world <= getPageSetting('ScryUseinWind'))) - || (getEmpowerment() = "Ice" &&(game.global.world <= getPageSetting('ScryUseinIce'))))) + if (useoverkill && ((getEmpowerment() == "Poison" && (game.global.world <= getPageSetting('ScryUseinPoison'))) + || (getEmpowerment() == "Wind" && (game.global.world <= getPageSetting('ScryUseinWind'))) + || (getEmpowerment() == "Ice" &&(game.global.world <= getPageSetting('ScryUseinIce'))))) useoverkill = false; //Overkill button being on and being able to overkill in S will override any setting other than never spire & nature zone, regardless. if (useoverkill && game.portal.Overkill.level > 0) { @@ -102,35 +103,8 @@ function useScryerStance() { return; } } -/* -//If you cannot overkill, these situations will cause a return to autostance. - //check for spire not being Forced - use_auto = use_auto || !game.global.mapsActive && isActiveSpireAT() && getPageSetting('ScryerUseinSpire2')!=1; - //check for voids - use_auto = use_auto || game.global.mapsActive && getCurrentMapObject().location == "Void" && !getPageSetting('ScryerUseinVoidMaps2'); - //check for maps - use_auto = use_auto || game.global.mapsActive && !getPageSetting('ScryerUseinMaps2'); - //check for bosses above voidlevel - use_auto = use_auto || getPageSetting('ScryerSkipBoss2') == 1 && game.global.world > getPageSetting('VoidMaps') && game.global.lastClearedCell == 98; - //check for bosses (all levels) - use_auto = use_auto || getPageSetting('ScryerSkipBoss2') == 2 && game.global.lastClearedCell == 98; - if (use_auto) { - autostancefunction(); //falls back to autostance when not using S. - wantToScry = false; - return; - } - //check for corrupted cells (and exit) - var iscorrupt = getCurrentEnemy(1).mutation == "Corruption"; - iscorrupt = iscorrupt || (mutations.Magma.active() && game.global.mapsActive); - iscorrupt = iscorrupt || (game.global.mapsActive && getCurrentMapObject().location == "Void" && game.global.world >= mutations.Corruption.start()); - if (iscorrupt && getPageSetting('ScryerSkipCorrupteds2')) { - autostancefunction(); - wantToScry = false; - return; - } -*/ - //Default. (All Never and Always are accounted for, Overkill has decided whether to run, leaving solely what zones you want to run S in even when you can't overkill) +//Default. (All Never and Always are accounted for, Overkill has decided whether to run, leaving solely what zones you want to run S in even when you can't overkill) var min_zone = getPageSetting('ScryerMinZone'); var max_zone = getPageSetting('ScryerMaxZone'); var valid_min = game.global.world >= min_zone; diff --git a/modules/upgrades.js b/modules/upgrades.js index 84c5baae1..7207ac9df 100644 --- a/modules/upgrades.js +++ b/modules/upgrades.js @@ -7,7 +7,7 @@ function buyUpgrades() { upgrade = upgradeList[upgrade]; var gameUpgrade = game.upgrades[upgrade]; var available = (gameUpgrade.allowed > gameUpgrade.done && canAffordTwoLevel(gameUpgrade)); - if (upgrade == 'Coordination' && (getPageSetting('BuyUpgradesNew') != 1 || !canAffordCoordinationTrimps())) continue; + if (upgrade == 'Coordination' && (getPageSetting('BuyUpgradesNew') == 2 || !canAffordCoordinationTrimps())) continue; if (upgrade == 'Shieldblock' && !getPageSetting('BuyShieldblock')) continue; if (upgrade == 'Gigastation' && (game.global.lastWarp ? game.buildings.Warpstation.owned < (Math.floor(game.upgrades.Gigastation.done * getPageSetting('DeltaGigastation')) + getPageSetting('FirstGigastation')) : game.buildings.Warpstation.owned < getPageSetting('FirstGigastation'))) continue; //skip bloodlust during scientist challenges and while we have autofight enabled. diff --git a/modules/utils.js b/modules/utils.js index e7e392417..ee71b65af 100644 --- a/modules/utils.js +++ b/modules/utils.js @@ -66,26 +66,42 @@ function updateOldSettings(oldSettings) { var oldVer = oldSettings['ATversion']; debug("ATsettings: Updating v" + oldVer + " to v" + ATversion); if (versionIsOlder(oldVer, '2.1.6.9')) { - debug("ATsettings: Migrating AutoMaps + RunUniqueMaps to new AutoMaps."); - //migrate AutoMaps + RunUniqueMaps to new AutoMaps - var am = (oldSettings['AutoMaps']); - oldSettings['AutoMaps'] = am ? 1 : 0; - if (!oldSettings['RunUniqueMaps']) - oldSettings['AutoMaps']++; - delete oldSettings['RunUniqueMaps']; + debug("ATsettings: Migrating AutoMaps + RunUniqueMaps to new AutoMaps."); + //migrate AutoMaps + RunUniqueMaps to new AutoMaps + oldSettings['AutoMaps'].value = oldSettings['AutoMaps'].enabled ? 1 : 0; + if (!oldSettings['RunUniqueMaps'].enabled) + oldSettings['AutoMaps'].value++; + delete oldSettings['RunUniqueMaps']; } - /* - if (versionIsOlder(oldVer, '2.1.7.0')) { - debug("ATsettings: Migrating X + Y to new Z."); - //migrate X + Y to new Z - var am = (oldSettings['X']); - oldSettings['X'] = am ? 1 : 0; - if (!oldSettings['Y']) - oldSettings['X']++; - delete oldSettings['Y']; - } - */ + //These settingsneed to be migrated here: +/* +BuyBuildingsNew = BuyBuildings + BuyStorage +BuyJobsNew = BuyJobs + WorkerRatios +BuyWeaponsNew = BuyWeaponUpgrades + BuyWeapons +BuyArmorNew = BuyArmorUpgrades + BuyArmor +ManualGather2 was 2 now 3 (4=way) - needs to be converted. +BuyOneTimeOC = BuyOvclock + OneTimeOnly +PrestigeSkip1_2 = PrestigeSkipMode + PrestigeSkip2 +AutoHeirloomsNew = AutoHeirlooms + AutoHeirlooms2 +ScryerDieToUseS += ScryerDieZ +(+more since 5 days ago) +*/ + if (versionIsOlder(oldVer, '2.1.7.0')) { + //example:*untested* + var X='BuyBuildings'; + var Y='BuyStorage'; + var Z='BuyBuildingsNew'; + //migrate X + Y to new Z + var oldOne = oldSettings[X]; + var oldTwo = oldSettings[Y]; + var newOne = oldSettings[Z]; + debug("ATsettings: Migrating " + X + " + " + Y + " to new " + Z); + newOne.value = oldOne.enabled ? 1 : 0; + newOne.value+= oldTwo.enabled ? 1 : 0; + delete oldOne; + delete oldTwo; + } autoTrimpSettings = oldSettings; } @@ -168,6 +184,7 @@ function debug(message, type, lootIcon) { var graphs = getPageSetting('SpamGraphs'); var magmite = getPageSetting('SpamMagmite'); var perks = getPageSetting('SpamPerks'); + var profiles = getPageSetting('SpamProfiles'); var output = true; switch (type) { case null: @@ -202,6 +219,9 @@ function debug(message, type, lootIcon) { case "perks": output = perks; break; + case "profiles": + output = profiles; + break; } if (output) { if (enableDebug) @@ -373,13 +393,7 @@ window.onerror = function catchErrors(msg, url, lineNo, columnNo, error) { console.log("AT logged error: " + message); //ATServer.Upload(message); }; -/* -window.addEventListener('error', function(event) { - var message = JSON.stringify(event); - console.log("logged error: " + message); - //ATServer.Upload(message); -}); -*/ + function throwErrorfromModule() { throw new Error("We have successfully read the thrown error message out of a module"); } diff --git a/sparecode/laborfix.js b/sparecode/laborfix.js deleted file mode 100644 index 8689f037f..000000000 --- a/sparecode/laborfix.js +++ /dev/null @@ -1,104 +0,0 @@ -//"Auto Gather/Build" -function manualLabor() { - //vars - var breedingTrimps = game.resources.trimps.owned - game.resources.trimps.employed; - var trapTrimpsOK = getPageSetting('TrapTrimps'); - var targetBreed = parseInt(getPageSetting('GeneticistTimer')); - - //FRESH GAME LOWLEVEL NOHELIUM CODE. - if (game.global.world <=3 && game.global.totalHeliumEarned<=1000) { - if (game.global.buildingsQueue.length == 0 && (game.global.playerGathering != 'trimps' || game.buildings.Trap.owned == 0)){ - if (!game.triggers.wood.done || game.resources.food.owned < 10 || Math.floor(game.resources.food.owned) < Math.floor(game.resources.wood.owned)) { - setGather('food'); - return; - } - else { - setGather('wood'); - return; - } - } - } - //Traps and Trimps - if (trapTrimpsOK && (breedingTrimps < 5 || targetBreed < getBreedTime(true))) { - if (game.buildings.Trap.owned > 0) { - setGather('trimps');//gatherTrimps = true; - return; - } - if (game.buildings.Trap.owned == 0 && canAffordBuilding('Trap')) - safeBuyBuilding('Trap');//buyTraps = true; - } - //Buildings: - //if we have more than 2 buildings in queue, or (our modifier is real fast and trapstorm is off), build - if ((!game.talents.foreman.purchased && (game.global.buildingsQueue.length ? (game.global.buildingsQueue.length > 1 || game.global.autoCraftModifier == 0 || (getPlayerModifier() > 1000 && game.global.buildingsQueue[0] != 'Trap.1')) : false)) || - //if trapstorm is off (likely we havent gotten it yet, the game is still early, buildings take a while to build ), then Prioritize Storage buildings when they hit the front of the queue (should really be happening anyway since the queue should be >2(fits the clause above this), but in case they are the only object in the queue.) - (!game.global.trapBuildToggled && (game.global.buildingsQueue[0] == 'Barn.1' || game.global.buildingsQueue[0] == 'Shed.1' || game.global.buildingsQueue[0] == 'Forge.1')) || - //Build more traps if we have TrapTrimps on, and we own less than 1000 traps. - (trapTrimpsOK && game.global.trapBuildToggled && game.buildings.Trap.owned < 1000)) { - setGather('buildings');//buildBuildings = true; - return; - } - //Sciencey: - //if we have some upgrades sitting around which we don't have enough science for, gather science - if (document.getElementById('scienceCollectBtn').style.display != 'none' && document.getElementById('science').style.visibility != 'hidden') { - //if we have less than a minute of science - if (game.resources.science.owned < 100 || (game.resources.science.owned < getPsString('science', true) * 60 && game.global.turkimpTimer < 1)) - if (getPageSetting('ManualGather2') != 2) { - setGather('science'); - return; - } - if (game.resources.science.owned < scienceNeeded) { - //if manual is less than science production and turkimp, metal. (or science is set as disallowed) - if ((getPlayerModifier() < getPerSecBeforeManual('Scientist') && game.global.turkimpTimer > 0) || getPageSetting('ManualGather2') == 2) - setGather('metal'); - else if (getPageSetting('ManualGather2') != 2) { - setGather('science'); - return; - } - } - } - //If we got here, without exiting, gather Normal Resources: - var manualResourceList = { - 'food': 'Farmer', - 'wood': 'Lumberjack', - 'metal': 'Miner', - }; - var lowestResource = 'food'; - var lowestResourceRate = -1; - var haveWorkers = true; - for (var resource in manualResourceList) { - var job = manualResourceList[resource]; - var currentRate = game.jobs[job].owned * game.jobs[job].modifier; - // debug('Current rate for ' + resource + ' is ' + currentRate + ' is hidden? ' + (document.getElementById(resource).style.visibility == 'hidden')); - if (document.getElementById(resource).style.visibility != 'hidden') { - //find the lowest resource rate - if (currentRate === 0) { - currentRate = game.resources[resource].owned; - // debug('Current rate for ' + resource + ' is ' + currentRate + ' lowest ' + lowestResource + lowestResourceRate); - if ((haveWorkers) || (currentRate < lowestResourceRate)) { - // debug('New Lowest1 ' + resource + ' is ' + currentRate + ' lowest ' + lowestResource + lowestResourceRate+ ' haveworkers ' +haveWorkers); - haveWorkers = false; - lowestResource = resource; - lowestResourceRate = currentRate; - } - } - if ((currentRate < lowestResourceRate || lowestResourceRate == -1) && haveWorkers) { - // debug('New Lowest2 ' + resource + ' is ' + currentRate + ' lowest ' + lowestResource + lowestResourceRate); - lowestResource = resource; - lowestResourceRate = currentRate; - } - } - // debug('Current Stats ' + resource + ' is ' + currentRate + ' lowest ' + lowestResource + lowestResourceRate+ ' haveworkers ' +haveWorkers); - } - - if (game.global.playerGathering != lowestResource && !haveWorkers && !breedFire) { - if (game.global.turkimpTimer > 0) - setGather('metal'); - else - setGather(lowestResource);//gather the lowest resource - } else if (game.global.turkimpTimer > 0) - setGather('metal'); - else - setGather(lowestResource); - //ok - return true; -} \ No newline at end of file diff --git a/user.js b/user.js index 8c752034a..326256168 100644 --- a/user.js +++ b/user.js @@ -20,3 +20,7 @@ document.head.appendChild(script); // This File is Deprecated, please use .user.js instead (with the leading dot) so TamperMonkey/Greasemonkey can detect it as a script automatically. // Other than that they are identical and no change is required on your part if everything is working already. + +//You can use the following to auto-load your own forked repo as a local directory served from a local HTTPS webserver. +//the other bookmarklet wont load locally - the script.id will tell it to pull the rest of modules from the given URL. +//javascript:with(document)(script = createElement('script'), script.src='https://localhost:4443/AutoTrimps2.js', script.id='AutoTrimps-script',head.appendChild(script))._ \ No newline at end of file From fbced74dbc94dc9811f34e82a55ecf7dddc4da5b Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Wed, 4 Apr 2018 17:20:18 +0100 Subject: [PATCH 055/365] add my name to changelog to make it clear that it isn't main fork --- AutoTrimps2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index bfd059238..e172a782a 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -8,7 +8,7 @@ // @include *kongregate.com/games/GreenSatellite/trimps // @grant none // ==/UserScript== -var ATversion = '2.1.6.9b-genbtc-4-2-2018'; +var ATversion = '2.1.6.9b-genbtc-4-2-2018 + KFrowde'; //////////////////////////////////////////////////////////////////////////////// //Main Loader Initialize Function (loads first, load everything else)/////////// From e5f39cbc64ebc96c289da8fc0bc0008d9a2b4ccb Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Wed, 4 Apr 2018 17:21:28 +0100 Subject: [PATCH 056/365] change URL --- user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user.js b/user.js index 326256168..3cf8251f3 100644 --- a/user.js +++ b/user.js @@ -21,6 +21,6 @@ document.head.appendChild(script); // This File is Deprecated, please use .user.js instead (with the leading dot) so TamperMonkey/Greasemonkey can detect it as a script automatically. // Other than that they are identical and no change is required on your part if everything is working already. -//You can use the following to auto-load your own forked repo as a local directory served from a local HTTPS webserver. +//You can use the following to auto-load your own forked repo as a local directory served from a local HTTPS webserver. //the other bookmarklet wont load locally - the script.id will tell it to pull the rest of modules from the given URL. -//javascript:with(document)(script = createElement('script'), script.src='https://localhost:4443/AutoTrimps2.js', script.id='AutoTrimps-script',head.appendChild(script))._ \ No newline at end of file +//javascript:with(document)(script = createElement('script'), script.src='https://localhost:4443/AutoTrimps2.js', script.id='AutoTrimps-script',head.appendChild(script))._ From bed3c5551cb4fdbfaff5f6dcea4be9e653ee9d07 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Wed, 4 Apr 2018 17:28:16 +0100 Subject: [PATCH 057/365] URL --- AutoTrimps2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index e172a782a..22570ad67 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -15,7 +15,7 @@ var ATversion = '2.1.6.9b-genbtc-4-2-2018 + KFrowde'; //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////// var atscript = document.getElementById('AutoTrimps-script') - , basepath = 'https://genBTC.github.io/AutoTrimps/' + , basepath = 'https://Kfrowde.github.io/AutoTrimps/' , modulepath = 'modules/' ; //This should redirect the script to wherever its being mirrored from. From f220f3e0b5b2493fc773fab720118d879d58fd0b Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 12 Apr 2018 17:39:32 +0100 Subject: [PATCH 058/365] test removing the check for cell contents --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 45d71dd15..a98182292 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -106,7 +106,7 @@ else if(M["fightinfo"].exotics.indexOf(cell.name) > -1) // Exotic cell { - if(cell.special.length === 0) + //if(cell.special.length === 0) $cell.innerHTML = " "; $cell.title = cell.name; From 02cb8c3099ea86c8c45a9d340af3fa44dbdde54f Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 12 Apr 2018 17:59:32 +0100 Subject: [PATCH 059/365] try adding 2 icons to a cell --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index a98182292..a6644e0bf 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -107,7 +107,7 @@ else if(M["fightinfo"].exotics.indexOf(cell.name) > -1) // Exotic cell { //if(cell.special.length === 0) - $cell.innerHTML = " "; + $cell.innerHTML += " "; $cell.title = cell.name; //$cell.style.color = M["fightinfo"].colors.exotic; //(This changes the colour of the glyph - bad bc it overrides trimps and looks bad against corruption etc) From 4864b8c75faa211b5f75b0ceece386972b597b46 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 12 Apr 2018 18:20:49 +0100 Subject: [PATCH 060/365] try individualising the overlay to diff imps --- modules/fight-info.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/fight-info.js b/modules/fight-info.js index a6644e0bf..3db165da7 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -104,6 +104,16 @@ $cell.style.textShadow = '0px 0px 15px #ffffff'; } + else if(cell.name.toLowerCase().indexOf('titimp') > -1) // titimp cell + { + if(cell.special.length === 0) + $cell.innerHTML = " "; + + $cell.title = cell.name; + $cell.style.color = M["fightinfo"].colors.bone; //(This changes the colour of the glyph - bad bc it overrides trimps and looks bad against corruption etc) + $cell.style.textShadow = '0px 0px 15px #fb753f'; + } + else if(M["fightinfo"].exotics.indexOf(cell.name) > -1) // Exotic cell { //if(cell.special.length === 0) From 4dd120fdcaaac4cf928478031a3d1c8ea6db8e6e Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 12 Apr 2018 18:42:24 +0100 Subject: [PATCH 061/365] mo --- modules/fight-info.js | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 3db165da7..001b3249d 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -93,6 +93,7 @@ // Cell data var cell = cells[i]; + $cell.title = cell.name; if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { @@ -104,17 +105,45 @@ $cell.style.textShadow = '0px 0px 15px #ffffff'; } + //Map Imports (replaces original cell contents cause of some fucked refresh thing that I couldn't fix) + else if(cell.name.toLowerCase().indexOf('goblimp') > -1) // feyimp cell + { + $cell.innerHTML = " "; + //$cell.title = cell.name; + $cell.style.textShadow = '0px 0px 15px #fb753f'; + } + + else if(cell.name.toLowerCase().indexOf('flutimp') > -1) // titimp cell + { + $cell.innerHTML = " "; + //$cell.title = cell.name; + $cell.style.textShadow = '0px 0px 15px #fb753f'; + } + + else if(cell.name.toLowerCase().indexOf('jestimp') > -1) // titimp cell + { + $cell.innerHTML = " "; + //$cell.title = cell.name; + $cell.style.textShadow = '0px 0px 15px #fb753f'; + } + else if(cell.name.toLowerCase().indexOf('titimp') > -1) // titimp cell { - if(cell.special.length === 0) - $cell.innerHTML = " "; + $cell.innerHTML = " "; + //$cell.title = cell.name; + $cell.style.textShadow = '0px 0px 15px #fb753f'; + } - $cell.title = cell.name; - $cell.style.color = M["fightinfo"].colors.bone; //(This changes the colour of the glyph - bad bc it overrides trimps and looks bad against corruption etc) + else if(cell.name.toLowerCase().indexOf('chronoimp') > -1) // titimp cell + { + $cell.innerHTML = " "; + //$cell.title = cell.name; $cell.style.textShadow = '0px 0px 15px #fb753f'; } - else if(M["fightinfo"].exotics.indexOf(cell.name) > -1) // Exotic cell + + //World Imports (Adds second icon to the cells, doesn't seem to have same bug as maps do...) + /*else if(M["fightinfo"].exotics.indexOf(cell.name) > -1) // Exotic cell { //if(cell.special.length === 0) $cell.innerHTML += " "; @@ -122,7 +151,7 @@ $cell.title = cell.name; //$cell.style.color = M["fightinfo"].colors.exotic; //(This changes the colour of the glyph - bad bc it overrides trimps and looks bad against corruption etc) $cell.style.textShadow = '0px 0px 15px #fb753f'; - } + }*/ else if(M["fightinfo"].powerful.indexOf(cell.name) > -1) // Powerful imp { From 9c2588b26fa1f0149a819ab2d43c50357c6f87cd Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 12 Apr 2018 19:00:58 +0100 Subject: [PATCH 062/365] only chrono works atm... --- modules/fight-info.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 001b3249d..266da962d 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -108,28 +108,28 @@ //Map Imports (replaces original cell contents cause of some fucked refresh thing that I couldn't fix) else if(cell.name.toLowerCase().indexOf('goblimp') > -1) // feyimp cell { - $cell.innerHTML = " "; + $cell.innerHTML = " "; //$cell.title = cell.name; $cell.style.textShadow = '0px 0px 15px #fb753f'; } else if(cell.name.toLowerCase().indexOf('flutimp') > -1) // titimp cell { - $cell.innerHTML = " "; + $cell.innerHTML = " "; //$cell.title = cell.name; $cell.style.textShadow = '0px 0px 15px #fb753f'; } else if(cell.name.toLowerCase().indexOf('jestimp') > -1) // titimp cell { - $cell.innerHTML = " "; + $cell.innerHTML = " "; //$cell.title = cell.name; $cell.style.textShadow = '0px 0px 15px #fb753f'; } else if(cell.name.toLowerCase().indexOf('titimp') > -1) // titimp cell { - $cell.innerHTML = " "; + $cell.innerHTML = " "; //$cell.title = cell.name; $cell.style.textShadow = '0px 0px 15px #fb753f'; } From 0d33b3604fe2f88ae4be8a9a2504027189544b9c Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 12 Apr 2018 22:39:54 +0100 Subject: [PATCH 063/365] Individual icons for each import --- modules/fight-info.js | 61 +++++++++++++++++++++++++++++++------------ 1 file changed, 44 insertions(+), 17 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 266da962d..b2c0eebc6 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -106,43 +106,70 @@ } //Map Imports (replaces original cell contents cause of some fucked refresh thing that I couldn't fix) - else if(cell.name.toLowerCase().indexOf('goblimp') > -1) // feyimp cell + else if(cell.name.toLowerCase().indexOf('goblimp') > -1) // goblimp cell { - $cell.innerHTML = " "; - //$cell.title = cell.name; + $cell.innerHTML = " "; $cell.style.textShadow = '0px 0px 15px #fb753f'; } - else if(cell.name.toLowerCase().indexOf('flutimp') > -1) // titimp cell + else if(cell.name.toLowerCase().indexOf('flutimp') > -1) // flutimp cell { - $cell.innerHTML = " "; - //$cell.title = cell.name; + $cell.innerHTML = " "; $cell.style.textShadow = '0px 0px 15px #fb753f'; } - else if(cell.name.toLowerCase().indexOf('jestimp') > -1) // titimp cell + else if(cell.name.toLowerCase().indexOf('jestimp') > -1) // jestimp cell { - $cell.innerHTML = " "; - //$cell.title = cell.name; + $cell.innerHTML = " "; $cell.style.textShadow = '0px 0px 15px #fb753f'; } else if(cell.name.toLowerCase().indexOf('titimp') > -1) // titimp cell { - $cell.innerHTML = " "; - //$cell.title = cell.name; + $cell.innerHTML = " "; $cell.style.textShadow = '0px 0px 15px #fb753f'; } - else if(cell.name.toLowerCase().indexOf('chronoimp') > -1) // titimp cell + else if(cell.name.toLowerCase().indexOf('chronoimp') > -1) // chronoimp cell { - $cell.innerHTML = " "; - //$cell.title = cell.name; + $cell.innerHTML = " "; $cell.style.textShadow = '0px 0px 15px #fb753f'; } //World Imports (Adds second icon to the cells, doesn't seem to have same bug as maps do...) + else if(cell.name.toLowerCase().indexOf('feyimp') > -1) // feyimp cell + { + $cell.innerHTML += " "; + $cell.style.textShadow = '0px 0px 15px #fb753f'; + } + + else if(cell.name.toLowerCase().indexOf('tauntimp') > -1) // titimp cell + { + $cell.innerHTML += " "; + $cell.style.textShadow = '0px 0px 15px #fb753f'; + } + + else if(cell.name.toLowerCase().indexOf('venimp') > -1) // titimp cell + { + $cell.innerHTML += " "; + $cell.style.textShadow = '0px 0px 15px #fb753f'; + } + + else if(cell.name.toLowerCase().indexOf('whipimp') > -1) // titimp cell + { + $cell.innerHTML += " "; + $cell.style.textShadow = '0px 0px 15px #fb753f'; + } + + else if(cell.name.toLowerCase().indexOf('magnimp') > -1) // titimp cell + { + $cell.innerHTML += " "; + $cell.style.textShadow = '0px 0px 15px #fb753f'; + } + + + /*else if(M["fightinfo"].exotics.indexOf(cell.name) > -1) // Exotic cell { //if(cell.special.length === 0) @@ -164,7 +191,7 @@ } //This shit doesn't work and I don't know why (What is the celltitle??? is it the name of the nature? Imps are labelled Toxic/Gusty/Frozen but that didin't work either) - if(cell.name.toLowerCase().indexOf('poison') > -1) // Poison Token cell + else if(cell.name.toLowerCase().indexOf('poison') > -1) // Poison Token cell { if(cell.special.length === 0) $cell.innerHTML = " "; @@ -173,7 +200,7 @@ //$cell.style.color = M["fightinfo"].colors.exotic; //(This changes the colour of the glyph - bad bc it overrides trimps and looks bad against corruption etc) $cell.style.textShadow = '0px 0px 10px #ffffff'; } - if(cell.name.toLowerCase().indexOf('wind') > -1) // Wind Token cell + else if(cell.name.toLowerCase().indexOf('wind') > -1) // Wind Token cell { if(cell.special.length === 0) $cell.innerHTML = " "; @@ -182,7 +209,7 @@ //$cell.style.color = M["fightinfo"].colors.exotic; //(This changes the colour of the glyph - bad bc it overrides trimps and looks bad against corruption etc) $cell.style.textShadow = '0px 0px 10px #ffffff'; } - if(cell.name.toLowerCase().indexOf('ice') > -1) // Ice Token cell + else if(cell.name.toLowerCase().indexOf('ice') > -1) // Ice Token cell { if(cell.special.length === 0) $cell.innerHTML = " "; From 72d7eea0c9db357cbdb5ca3d513656565ba428e4 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Thu, 12 Apr 2018 23:01:43 +0100 Subject: [PATCH 064/365] Update .user.js --- .user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.user.js b/.user.js index 0ef659162..e47110a79 100644 --- a/.user.js +++ b/.user.js @@ -1,6 +1,6 @@ // ==UserScript== -// @name AutoTrimps-genBTC -// @version 2.1.6.9-genbtc-3-23-2018 +// @name AutoTrimps-kfro +// @version 1.0-kfro // @namespace https://genbtc.github.io/AutoTrimps // @updateURL https://genbtc.github.io/AutoTrimps/.user.js // @description Automate all the trimps! From 08f393d3a49d26ed307d0fe9ac0e393a15c8613e Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Thu, 12 Apr 2018 23:04:39 +0100 Subject: [PATCH 065/365] Update .user.js --- .user.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.user.js b/.user.js index e47110a79..d1709a7dd 100644 --- a/.user.js +++ b/.user.js @@ -1,20 +1,20 @@ // ==UserScript== // @name AutoTrimps-kfro // @version 1.0-kfro -// @namespace https://genbtc.github.io/AutoTrimps -// @updateURL https://genbtc.github.io/AutoTrimps/.user.js +// @namespace https://KFrowde.github.io/AutoTrimps +// @updateURL https://KFrowde.github.io/AutoTrimps/.user.js // @description Automate all the trimps! // @author zininzinin, spindrjr, Ishkaru, genBTC // @include *trimps.github.io* // @include *kongregate.com/games/GreenSatellite/trimps -// @connect *genbtc.github.io/AutoTrimps* +// @connect *KFrowde.github.io/AutoTrimps* // @connect *trimps.github.io* // @connect self // @grant none // ==/UserScript== var script = document.createElement('script'); -script.id = 'AutoTrimps-script'; +script.id = 'AutoTrimps-KFrowde'; //This can be edited to point to your own Github Repository URL. script.src = 'https://kfrowde.github.io/AutoTrimps/AutoTrimps2.js'; //script.setAttribute('crossorigin',"use-credentials"); From c99d9ed0715730cdfd198467242f5f707a63c75a Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 18:04:58 +0100 Subject: [PATCH 066/365] try using badName var instead of cell.name --- modules/fight-info.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index b2c0eebc6..d84a1e2f2 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -93,14 +93,13 @@ // Cell data var cell = cells[i]; - $cell.title = cell.name; + $cell.title = badName; if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { if(cell.special.length === 0) $cell.innerHTML = " "; - $cell.title = cell.name; //$cell.style.color = M["fightinfo"].colors.bone; //(This changes the colour of the glyph - bad bc it overrides trimps and looks bad against corruption etc) $cell.style.textShadow = '0px 0px 15px #ffffff'; } @@ -182,11 +181,7 @@ else if(M["fightinfo"].powerful.indexOf(cell.name) > -1) // Powerful imp { - if(cell.special.length === 0) - $cell.innerHTML = " "; - - $cell.title = cell.name; - //$cell.style.color = M["fightinfo"].colors.powerful; //(This changes the colour of the glyph - bad bc it overrides trimps and looks bad against corruption etc) + $cell.innerHTML += " "; $cell.style.textShadow = '0px 0px 15px #8c0000'; } From 72b1edd018cee8daed23a09bba97f9d09fcb5516 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 18:10:33 +0100 Subject: [PATCH 067/365] test --- modules/fight-info.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index d84a1e2f2..06135da59 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -93,7 +93,8 @@ // Cell data var cell = cells[i]; - $cell.title = badName; + //Tooltip on world cells + $cell.title = document.getElementById("badGuyName").innerHTML; if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { From 7c138d6b5bb360a0ea6f2ff63eeb064f6b9ece9f Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 18:40:46 +0100 Subject: [PATCH 068/365] qwert --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 06135da59..49df005c9 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -94,7 +94,7 @@ var cell = cells[i]; //Tooltip on world cells - $cell.title = document.getElementById("badGuyName").innerHTML; + $cell.title = document.getElementById("badGuyMutation").innerHTML; if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { From 13c5d5b1d67becc7930e40b26f95603a096a9f12 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 18:42:30 +0100 Subject: [PATCH 069/365] innertext? --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 49df005c9..39df99c0b 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -94,7 +94,7 @@ var cell = cells[i]; //Tooltip on world cells - $cell.title = document.getElementById("badGuyMutation").innerHTML; + $cell.title = document.getElementById("badGuyMutation").innerText; if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { From 245d1095eb6515d27144a414504ee5155c06d815 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 18:44:42 +0100 Subject: [PATCH 070/365] qwert --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 39df99c0b..23e815998 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -94,7 +94,7 @@ var cell = cells[i]; //Tooltip on world cells - $cell.title = document.getElementById("badGuyMutation").innerText; + $cell.title = document.getElementById("badName").innerHTML; if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { From a3e83fcf42970d0a761db05e7303796dce58c4b8 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 18:48:20 +0100 Subject: [PATCH 071/365] meh --- modules/fight-info.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 23e815998..be2014323 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -94,7 +94,8 @@ var cell = cells[i]; //Tooltip on world cells - $cell.title = document.getElementById("badName").innerHTML; + var badName; + $cell.title = badName; if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { From 01c26fae8d0a5d28d7478b81f34b65799f52db33 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 18:53:34 +0100 Subject: [PATCH 072/365] qwerty --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index be2014323..0d2bb2756 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -94,7 +94,7 @@ var cell = cells[i]; //Tooltip on world cells - var badName; + var badName = document.getElementById("badGuyName").innerHTML; $cell.title = badName; if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell From 4a54496fcf7cd4a27b6abafb2bd73517558a826e Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 19:09:30 +0100 Subject: [PATCH 073/365] qwerty --- modules/fight-info.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 0d2bb2756..080a90bfc 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -94,8 +94,8 @@ var cell = cells[i]; //Tooltip on world cells - var badName = document.getElementById("badGuyName").innerHTML; - $cell.title = badName; + //var badName = document.getElementById("badGuyName").innerHTML; + $cell.title = document.getElementByID("mutationEffects[effectName].text".innerHTML; if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { From 24024da15b16171a64c12d619e7e09292c66be9e Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 19:11:52 +0100 Subject: [PATCH 074/365] qwerty --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 080a90bfc..d11950b7c 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -95,7 +95,7 @@ //Tooltip on world cells //var badName = document.getElementById("badGuyName").innerHTML; - $cell.title = document.getElementByID("mutationEffects[effectName].text".innerHTML; + $cell.title = document.getElementByID("mutationEffects[effectName].text").innerHTML; if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { From f5721fa3bcd2ed7e34def63f35faa7649b295f46 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 19:14:29 +0100 Subject: [PATCH 075/365] typo --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index d11950b7c..197cc879c 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -95,7 +95,7 @@ //Tooltip on world cells //var badName = document.getElementById("badGuyName").innerHTML; - $cell.title = document.getElementByID("mutationEffects[effectName].text").innerHTML; + $cell.title = document.getElementById("mutationEffects[effectName].text").innerHTML; if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { From 2ab112d3d0d66b9b0ada7ee60acbcaa92d893f52 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 19:18:11 +0100 Subject: [PATCH 076/365] qwerty --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 197cc879c..8f6d0850c 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -95,7 +95,7 @@ //Tooltip on world cells //var badName = document.getElementById("badGuyName").innerHTML; - $cell.title = document.getElementById("mutationEffects[effectName].text").innerHTML; + $cell.title = document.getElementById("mutationEffects[effectName].text"); if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { From 5ecf4da56ed48a4bdacb2e5473cda42cede984d2 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 19:30:08 +0100 Subject: [PATCH 077/365] qwerty --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 8f6d0850c..dc69124f4 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -95,7 +95,7 @@ //Tooltip on world cells //var badName = document.getElementById("badGuyName").innerHTML; - $cell.title = document.getElementById("mutationEffects[effectName].text"); + $cell.title = document.getElementById("mutationEffects"); if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { From 640b3ea4de7dbe7fea213e71b51b7666aab47a1c Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 19:32:40 +0100 Subject: [PATCH 078/365] Qwerty --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index dc69124f4..aa50e4664 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -95,7 +95,7 @@ //Tooltip on world cells //var badName = document.getElementById("badGuyName").innerHTML; - $cell.title = document.getElementById("mutationEffects"); + $cell.title = document.getElementById("badName"); if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { From e1219bd2cb84b4eceb27d14f2190acaab4448671 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 19:35:03 +0100 Subject: [PATCH 079/365] qwerty --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index aa50e4664..0c74d0493 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -95,7 +95,7 @@ //Tooltip on world cells //var badName = document.getElementById("badGuyName").innerHTML; - $cell.title = document.getElementById("badName"); + $cell.title = document.getElementById("badGuyName"); if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { From 44b0e62d973af142b162ede0b140ee0927eb79e0 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 19:37:34 +0100 Subject: [PATCH 080/365] meh --- modules/fight-info.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 0c74d0493..4da602881 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -95,13 +95,11 @@ //Tooltip on world cells //var badName = document.getElementById("badGuyName").innerHTML; - $cell.title = document.getElementById("badGuyName"); + $cell.title = document.getElementById("corrupted").innerHTML; if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { - if(cell.special.length === 0) $cell.innerHTML = " "; - //$cell.style.color = M["fightinfo"].colors.bone; //(This changes the colour of the glyph - bad bc it overrides trimps and looks bad against corruption etc) $cell.style.textShadow = '0px 0px 15px #ffffff'; } From 249997ea2f8db87922cdd6faaf26faff37b7020c Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 19:40:33 +0100 Subject: [PATCH 081/365] qwerty --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 4da602881..5608c9ff9 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -95,7 +95,7 @@ //Tooltip on world cells //var badName = document.getElementById("badGuyName").innerHTML; - $cell.title = document.getElementById("corrupted").innerHTML; + $cell.title = document.getElementById("cell.corrupted").innerHTML; if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { From 629e92a03e09bc54b7df275f5898161d0184345f Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 19:41:34 +0100 Subject: [PATCH 082/365] no innnerHTML --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 5608c9ff9..62278730c 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -95,7 +95,7 @@ //Tooltip on world cells //var badName = document.getElementById("badGuyName").innerHTML; - $cell.title = document.getElementById("cell.corrupted").innerHTML; + $cell.title = document.getElementById("cell.corrupted"); if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { From 3b8a3000c3e9052e7941d1d0d8ac0f6cd7677042 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 19:45:57 +0100 Subject: [PATCH 083/365] qwerty --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 62278730c..0d6f99578 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -95,7 +95,7 @@ //Tooltip on world cells //var badName = document.getElementById("badGuyName").innerHTML; - $cell.title = document.getElementById("cell.corrupted"); + $cell.title = document.getElementById("cell.corrupted").innerText; if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { From ba0ba95eacbdb5a6ec35b6335476311ba3b5b4eb Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 19:50:10 +0100 Subject: [PATCH 084/365] hmm --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 0d6f99578..de9722d33 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -95,7 +95,7 @@ //Tooltip on world cells //var badName = document.getElementById("badGuyName").innerHTML; - $cell.title = document.getElementById("cell.corrupted").innerText; + $cell.title = cell.corrupted; if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { From 4fa424a75062e30cf46ab8ea4c87058ab7fe9c64 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 19:55:02 +0100 Subject: [PATCH 085/365] IT WORKS --- modules/fight-info.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index de9722d33..d352e5cb5 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -95,7 +95,8 @@ //Tooltip on world cells //var badName = document.getElementById("badGuyName").innerHTML; - $cell.title = cell.corrupted; + $cell.title = cell.name + cell.corrupted; + if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { From c3576bd37b2f4eb036dc4eacaccd4fe939b714a5 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 19:58:26 +0100 Subject: [PATCH 086/365] try to add a space --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index d352e5cb5..55c50367b 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -95,7 +95,7 @@ //Tooltip on world cells //var badName = document.getElementById("badGuyName").innerHTML; - $cell.title = cell.name + cell.corrupted; + $cell.title = cell.name&nsbp + cell.corrupted; if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell From d9ba2f791a1d3fab7613e71ceea2b0849795f3b2 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 20:03:13 +0100 Subject: [PATCH 087/365] add space --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 55c50367b..b96128c93 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -95,7 +95,7 @@ //Tooltip on world cells //var badName = document.getElementById("badGuyName").innerHTML; - $cell.title = cell.name&nsbp + cell.corrupted; + $cell.title = cell.name + " " + cell.corrupted; if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell From 8dac97f67996aafcf8e2d56e89d74be1f99983a9 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 20:12:27 +0100 Subject: [PATCH 088/365] try new things --- modules/fight-info.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index b96128c93..a945c13cf 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -95,7 +95,11 @@ //Tooltip on world cells //var badName = document.getElementById("badGuyName").innerHTML; - $cell.title = cell.name + " " + cell.corrupted; + if((cell.corrupted != "undefined") && (cell.corrupted != "none")) + { + $cell.title = cell.name + " " + cell.corrupted; + } + else{$cell.title = cell.name;} if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell From 550e3bf4d979bd5149b0cf21f9029005561dcc08 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 20:17:33 +0100 Subject: [PATCH 089/365] try Ponan_pinoy's changes --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index a945c13cf..7eef639ed 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -97,7 +97,7 @@ //var badName = document.getElementById("badGuyName").innerHTML; if((cell.corrupted != "undefined") && (cell.corrupted != "none")) { - $cell.title = cell.name + " " + cell.corrupted; + $cell.title = `${cell.name} ${mutationEffects[cell.name].title}`; } else{$cell.title = cell.name;} From 7c50556aa692a5b5d4b0df5326c9bee0e8b69716 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 20:38:11 +0100 Subject: [PATCH 090/365] try changing cell.name --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 7eef639ed..ae1046d53 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -97,7 +97,7 @@ //var badName = document.getElementById("badGuyName").innerHTML; if((cell.corrupted != "undefined") && (cell.corrupted != "none")) { - $cell.title = `${cell.name} ${mutationEffects[cell.name].title}`; + $cell.title = `${cell.name} ${mutationEffects[cell.corrupted].title}`; } else{$cell.title = cell.name;} From 6c642e44af93410b2e1d5d33875995079e01f34b Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 20:59:42 +0100 Subject: [PATCH 091/365] qwerty --- modules/fight-info.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index ae1046d53..54ea9372c 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -95,11 +95,11 @@ //Tooltip on world cells //var badName = document.getElementById("badGuyName").innerHTML; - if((cell.corrupted != "undefined") && (cell.corrupted != "none")) - { + //if((cell.corrupted != "undefined") && (cell.corrupted != "none")) + //{ $cell.title = `${cell.name} ${mutationEffects[cell.corrupted].title}`; - } - else{$cell.title = cell.name;} + //} + //else{$cell.title = cell.name;} if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell From cbcf77adebdaab51ed2812a52f7283d83524c236 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 21:03:45 +0100 Subject: [PATCH 092/365] try to fix it breaking --- modules/fight-info.js | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 54ea9372c..910b92f2b 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -94,12 +94,11 @@ var cell = cells[i]; //Tooltip on world cells - //var badName = document.getElementById("badGuyName").innerHTML; - //if((cell.corrupted != "undefined") && (cell.corrupted != "none")) - //{ + if(cell.corrupted) + { $cell.title = `${cell.name} ${mutationEffects[cell.corrupted].title}`; - //} - //else{$cell.title = cell.name;} + } + else{$cell.title = cell.name;} if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell @@ -144,31 +143,31 @@ //World Imports (Adds second icon to the cells, doesn't seem to have same bug as maps do...) else if(cell.name.toLowerCase().indexOf('feyimp') > -1) // feyimp cell { - $cell.innerHTML += " "; + $cell.innerHTML += ` `; $cell.style.textShadow = '0px 0px 15px #fb753f'; } else if(cell.name.toLowerCase().indexOf('tauntimp') > -1) // titimp cell { - $cell.innerHTML += " "; + $cell.innerHTML += ` `; $cell.style.textShadow = '0px 0px 15px #fb753f'; } else if(cell.name.toLowerCase().indexOf('venimp') > -1) // titimp cell { - $cell.innerHTML += " "; + $cell.innerHTML += ` `; $cell.style.textShadow = '0px 0px 15px #fb753f'; } else if(cell.name.toLowerCase().indexOf('whipimp') > -1) // titimp cell { - $cell.innerHTML += " "; + $cell.innerHTML += ` `; $cell.style.textShadow = '0px 0px 15px #fb753f'; } - else if(cell.name.toLowerCase().indexOf('magnimp') > -1) // titimp cell + else if(cell.name.toLowerCase().indexOf('magnimp') > -1) // magnimp cell { - $cell.innerHTML += " "; + $cell.innerHTML += ` `; $cell.style.textShadow = '0px 0px 15px #fb753f'; } From 6be41eb0620413eb93acfa6665f35d4998b2c5c0 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 21:08:46 +0100 Subject: [PATCH 093/365] try to remove 'emptiness, and preserve tokens of nature --- modules/fight-info.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 910b92f2b..fff7d4793 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -94,11 +94,11 @@ var cell = cells[i]; //Tooltip on world cells - if(cell.corrupted) + if(cell.corrupted != ("emptiness"||"null"||"undefined")) { - $cell.title = `${cell.name} ${mutationEffects[cell.corrupted].title}`; + $cell.title += ` \- ${cell.name} ${mutationEffects[cell.corrupted].title}`; } - else{$cell.title = cell.name;} + else{$cell.title += ` \- cell.name`;} if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell From 293a864e5e61def06e8f5c1f0c79f385dff38c23 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 21:25:29 +0100 Subject: [PATCH 094/365] Try and fix emptiness --- modules/fight-info.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index fff7d4793..524f5a709 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -94,11 +94,14 @@ var cell = cells[i]; //Tooltip on world cells - if(cell.corrupted != ("emptiness"||"null"||"undefined")) - { - $cell.title += ` \- ${cell.name} ${mutationEffects[cell.corrupted].title}`; - } - else{$cell.title += ` \- cell.name`;} + if(cell.corrupted != (null || "Emptiness")) + { + $cell.title += `${cell.name} \- ${mutationEffects[cell.corrupted].title}`; + } + else + { + $cell.title += `cell.name`; + } if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell From c372585d11b82985d04afa5f9b66b0a289a37550 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 21:32:33 +0100 Subject: [PATCH 095/365] Grabz' suggestion --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 524f5a709..c1f70f4ed 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -94,7 +94,7 @@ var cell = cells[i]; //Tooltip on world cells - if(cell.corrupted != (null || "Emptiness")) + if(cell.corrupted != null && cell.corrupted !== "Emptiness") { $cell.title += `${cell.name} \- ${mutationEffects[cell.corrupted].title}`; } From 79f825f753a77f631be2f7b734e905b73f8add7a Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 21:40:59 +0100 Subject: [PATCH 096/365] 75% working now --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index c1f70f4ed..9a02fe27c 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -100,7 +100,7 @@ } else { - $cell.title += `cell.name`; + $cell.title += ` ${cell.name}`; } From ca023f9cf90b758755d17748ed59a68564e4254e Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 21:45:55 +0100 Subject: [PATCH 097/365] 80% --- modules/fight-info.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 9a02fe27c..eabfa5997 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -94,13 +94,17 @@ var cell = cells[i]; //Tooltip on world cells - if(cell.corrupted != null && cell.corrupted !== "Emptiness") + if(cell.corrupted != null && cell.corrupted !== "none") { $cell.title += `${cell.name} \- ${mutationEffects[cell.corrupted].title}`; } + else if(cell.title !== 0) + { + $cell.title += ` - ${cell.name}`; + } else { - $cell.title += ` ${cell.name}`; + $cell.title == ` '${cell.name}'`; } From fab4e44ea00577b788641282995b3f26d64c9142 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 21:48:11 +0100 Subject: [PATCH 098/365] 80% --- modules/fight-info.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index eabfa5997..4ccd07cab 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -98,13 +98,13 @@ { $cell.title += `${cell.name} \- ${mutationEffects[cell.corrupted].title}`; } - else if(cell.title !== 0) + else if($cell.title === 0) { - $cell.title += ` - ${cell.name}`; + $cell.title += `${cell.name}`; } else { - $cell.title == ` '${cell.name}'`; + $cell.title == ` \- ${cell.name}`; } From e268415b2c44af4a4c8e1465d82e54651e3b3b71 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 21:51:02 +0100 Subject: [PATCH 099/365] meh --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 4ccd07cab..c4bd2118c 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -98,7 +98,7 @@ { $cell.title += `${cell.name} \- ${mutationEffects[cell.corrupted].title}`; } - else if($cell.title === 0) + else if($cell.name === 0) { $cell.title += `${cell.name}`; } From a7234c2bffb540c8a99ff138115838425915f58a Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 21:58:37 +0100 Subject: [PATCH 100/365] 85% --- modules/fight-info.js | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index c4bd2118c..47155fe72 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -98,13 +98,9 @@ { $cell.title += `${cell.name} \- ${mutationEffects[cell.corrupted].title}`; } - else if($cell.name === 0) - { - $cell.title += `${cell.name}`; - } else { - $cell.title == ` \- ${cell.name}`; + $cell.title == ` ${cell.name}`; } @@ -197,31 +193,21 @@ } //This shit doesn't work and I don't know why (What is the celltitle??? is it the name of the nature? Imps are labelled Toxic/Gusty/Frozen but that didin't work either) - else if(cell.name.toLowerCase().indexOf('poison') > -1) // Poison Token cell + else if(cell.title.toLowerCase().indexOf('poison') > -1) // Poison Token cell { - if(cell.special.length === 0) - $cell.innerHTML = " "; - - $cell.title = cell.name; - //$cell.style.color = M["fightinfo"].colors.exotic; //(This changes the colour of the glyph - bad bc it overrides trimps and looks bad against corruption etc) + $cell.innerHTML += ` ` ; $cell.style.textShadow = '0px 0px 10px #ffffff'; } - else if(cell.name.toLowerCase().indexOf('wind') > -1) // Wind Token cell - { - if(cell.special.length === 0) - $cell.innerHTML = " "; - $cell.title = cell.name; - //$cell.style.color = M["fightinfo"].colors.exotic; //(This changes the colour of the glyph - bad bc it overrides trimps and looks bad against corruption etc) + else if(cell.title.toLowerCase().indexOf('wind') > -1) // Wind Token cell + { + $cell.innerHTML = ` `; $cell.style.textShadow = '0px 0px 10px #ffffff'; } - else if(cell.name.toLowerCase().indexOf('ice') > -1) // Ice Token cell - { - if(cell.special.length === 0) - $cell.innerHTML = " "; - $cell.title = cell.name; - //$cell.style.color = M["fightinfo"].colors.exotic; //(This changes the colour of the glyph - bad bc it overrides trimps and looks bad against corruption etc) + else if(cell.title.toLowerCase().indexOf('ice') > -1) // Ice Token cell + { + $cell.innerHTML = ` `; $cell.style.textShadow = '0px 0px 10px #ffffff'; } } From b3d1065d9e63e3d0846432690f27977cbd6e092a Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 22:39:25 +0100 Subject: [PATCH 101/365] test add spaces + cell title on non-corrupt --- modules/fight-info.js | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 47155fe72..19660b379 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -100,44 +100,50 @@ } else { - $cell.title == ` ${cell.name}`; + $cell.title == cell.name; } + //Glyphs if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { - $cell.innerHTML = " "; - //$cell.style.color = M["fightinfo"].colors.bone; //(This changes the colour of the glyph - bad bc it overrides trimps and looks bad against corruption etc) + if(cell.special.length !== 0){$cell.innerHTML += ' ';} + $cell.innerHTML += ``; $cell.style.textShadow = '0px 0px 15px #ffffff'; } //Map Imports (replaces original cell contents cause of some fucked refresh thing that I couldn't fix) else if(cell.name.toLowerCase().indexOf('goblimp') > -1) // goblimp cell { + if(cell.special.length !== 0){$cell.innerHTML += ' ';} $cell.innerHTML = " "; $cell.style.textShadow = '0px 0px 15px #fb753f'; } else if(cell.name.toLowerCase().indexOf('flutimp') > -1) // flutimp cell { + if(cell.special.length !== 0){$cell.innerHTML += ' ';} $cell.innerHTML = " "; $cell.style.textShadow = '0px 0px 15px #fb753f'; } else if(cell.name.toLowerCase().indexOf('jestimp') > -1) // jestimp cell { + if(cell.special.length !== 0){$cell.innerHTML += ' ';} $cell.innerHTML = " "; $cell.style.textShadow = '0px 0px 15px #fb753f'; } else if(cell.name.toLowerCase().indexOf('titimp') > -1) // titimp cell { + if(cell.special.length !== 0){$cell.innerHTML += ' ';} $cell.innerHTML = " "; $cell.style.textShadow = '0px 0px 15px #fb753f'; } else if(cell.name.toLowerCase().indexOf('chronoimp') > -1) // chronoimp cell { + if(cell.special.length !== 0){$cell.innerHTML += ' ';} $cell.innerHTML = " "; $cell.style.textShadow = '0px 0px 15px #fb753f'; } @@ -146,31 +152,36 @@ //World Imports (Adds second icon to the cells, doesn't seem to have same bug as maps do...) else if(cell.name.toLowerCase().indexOf('feyimp') > -1) // feyimp cell { - $cell.innerHTML += ` `; + if(cell.special.length !== 0){$cell.innerHTML += ' ';} + $cell.innerHTML += ``; $cell.style.textShadow = '0px 0px 15px #fb753f'; } else if(cell.name.toLowerCase().indexOf('tauntimp') > -1) // titimp cell { - $cell.innerHTML += ` `; + if(cell.special.length !== 0){$cell.innerHTML += ' ';} + $cell.innerHTML += ``; $cell.style.textShadow = '0px 0px 15px #fb753f'; } else if(cell.name.toLowerCase().indexOf('venimp') > -1) // titimp cell { - $cell.innerHTML += ` `; + if(cell.special.length !== 0){$cell.innerHTML += ' ';} + $cell.innerHTML += ``; $cell.style.textShadow = '0px 0px 15px #fb753f'; } else if(cell.name.toLowerCase().indexOf('whipimp') > -1) // titimp cell { - $cell.innerHTML += ` `; + if(cell.special.length !== 0){$cell.innerHTML += ' ';} + $cell.innerHTML += ``; $cell.style.textShadow = '0px 0px 15px #fb753f'; } else if(cell.name.toLowerCase().indexOf('magnimp') > -1) // magnimp cell { - $cell.innerHTML += ` `; + if(cell.special.length !== 0){$cell.innerHTML += ' ';} + $cell.innerHTML += ``; $cell.style.textShadow = '0px 0px 15px #fb753f'; } @@ -193,21 +204,21 @@ } //This shit doesn't work and I don't know why (What is the celltitle??? is it the name of the nature? Imps are labelled Toxic/Gusty/Frozen but that didin't work either) - else if(cell.title.toLowerCase().indexOf('poison') > -1) // Poison Token cell + else if(cell.name.toLowerCase().indexOf('poison') > -1) // Poison Token cell { - $cell.innerHTML += ` ` ; + $cell.innerHTML += `` ; $cell.style.textShadow = '0px 0px 10px #ffffff'; } - else if(cell.title.toLowerCase().indexOf('wind') > -1) // Wind Token cell + else if(cell.name.toLowerCase().indexOf('wind') > -1) // Wind Token cell { - $cell.innerHTML = ` `; + $cell.innerHTML = ``; $cell.style.textShadow = '0px 0px 10px #ffffff'; } - else if(cell.title.toLowerCase().indexOf('ice') > -1) // Ice Token cell + else if(cell.name.toLowerCase().indexOf('ice') > -1) // Ice Token cell { - $cell.innerHTML = ` `; + $cell.innerHTML = ``; $cell.style.textShadow = '0px 0px 10px #ffffff'; } } From 439fa22c2a1b6ccbf6a043f2f889afa4b2bcd542 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 22:44:04 +0100 Subject: [PATCH 102/365] seems to work a bit better --- modules/fight-info.js | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 19660b379..d0aae55a6 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -99,9 +99,7 @@ $cell.title += `${cell.name} \- ${mutationEffects[cell.corrupted].title}`; } else - { $cell.title == cell.name; - } //Glyphs @@ -112,7 +110,14 @@ $cell.style.textShadow = '0px 0px 15px #ffffff'; } - //Map Imports (replaces original cell contents cause of some fucked refresh thing that I couldn't fix) + else if(M["fightinfo"].powerful.indexOf(cell.name) > -1) // Powerful imps + { + if(cell.special.length !== 0){$cell.innerHTML += ' ';} + $cell.innerHTML += " "; + $cell.style.textShadow = '0px 0px 15px #8c0000'; + } + + //Map Imports else if(cell.name.toLowerCase().indexOf('goblimp') > -1) // goblimp cell { if(cell.special.length !== 0){$cell.innerHTML += ' ';} @@ -149,7 +154,7 @@ } - //World Imports (Adds second icon to the cells, doesn't seem to have same bug as maps do...) + //World Imports else if(cell.name.toLowerCase().indexOf('feyimp') > -1) // feyimp cell { if(cell.special.length !== 0){$cell.innerHTML += ' ';} @@ -197,28 +202,24 @@ $cell.style.textShadow = '0px 0px 15px #fb753f'; }*/ - else if(M["fightinfo"].powerful.indexOf(cell.name) > -1) // Powerful imp - { - $cell.innerHTML += " "; - $cell.style.textShadow = '0px 0px 15px #8c0000'; - } //This shit doesn't work and I don't know why (What is the celltitle??? is it the name of the nature? Imps are labelled Toxic/Gusty/Frozen but that didin't work either) - else if(cell.name.toLowerCase().indexOf('poison') > -1) // Poison Token cell + else if(cell.title === "Token of Poison") // Poison Token cell { - $cell.innerHTML += `` ; + $cell.innerHTML += `` ; $cell.style.textShadow = '0px 0px 10px #ffffff'; } else if(cell.name.toLowerCase().indexOf('wind') > -1) // Wind Token cell { - $cell.innerHTML = ``; + $cell.innerHTML = ``; $cell.style.textShadow = '0px 0px 10px #ffffff'; } - else if(cell.name.toLowerCase().indexOf('ice') > -1) // Ice Token cell + else if(cell.title === "Token of Ice") // Ice Token cell { - $cell.innerHTML = ``; + if(cell.special.length !== 0){$cell.innerHTML += ' ';} + $cell.innerHTML = ``; $cell.style.textShadow = '0px 0px 10px #ffffff'; } } From 4367d7d5aefab395870a3e2bc0feaab48a647bdc Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 22:46:36 +0100 Subject: [PATCH 103/365] = --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index d0aae55a6..6baed8c99 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -99,7 +99,7 @@ $cell.title += `${cell.name} \- ${mutationEffects[cell.corrupted].title}`; } else - $cell.title == cell.name; + $cell.title = cell.name; //Glyphs From 41686a1fa14065b9077b7a94d88fcb62c0512c83 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 22:55:15 +0100 Subject: [PATCH 104/365] qwerty --- modules/fight-info.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 6baed8c99..11a655bf8 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -93,15 +93,6 @@ // Cell data var cell = cells[i]; - //Tooltip on world cells - if(cell.corrupted != null && cell.corrupted !== "none") - { - $cell.title += `${cell.name} \- ${mutationEffects[cell.corrupted].title}`; - } - else - $cell.title = cell.name; - - //Glyphs if(cell.name.toLowerCase().indexOf('skele') > -1) // Skeletimp cell { @@ -222,6 +213,14 @@ $cell.innerHTML = ``; $cell.style.textShadow = '0px 0px 10px #ffffff'; } + + //Tooltip on world cells + if(cell.corrupted != null && cell.corrupted !== "none") + { + $cell.title += `${cell.name} \- ${mutationEffects[cell.corrupted].title}`; + } + else + $cell.title += ` ${cell.name}`; } } From f46aedd6f47989c748e5e2dc87d6e2b6d6d2881f Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 23:08:12 +0100 Subject: [PATCH 105/365] qwerty --- modules/fight-info.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 11a655bf8..b88269d7f 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -195,19 +195,19 @@ //This shit doesn't work and I don't know why (What is the celltitle??? is it the name of the nature? Imps are labelled Toxic/Gusty/Frozen but that didin't work either) - else if(cell.title === "Token of Poison") // Poison Token cell + else if(cell.title.toLowerCase().indexOf('poison') > -1) // Poison Token cell { $cell.innerHTML += `` ; $cell.style.textShadow = '0px 0px 10px #ffffff'; } - else if(cell.name.toLowerCase().indexOf('wind') > -1) // Wind Token cell + else if(cell.title.toLowerCase().indexOf('wind') > -1) // Wind Token cell { $cell.innerHTML = ``; $cell.style.textShadow = '0px 0px 10px #ffffff'; } - else if(cell.title === "Token of Ice") // Ice Token cell + else if(cell.title.toLowerCase().indexOf('ice') > -1) // Ice Token cell { if(cell.special.length !== 0){$cell.innerHTML += ' ';} $cell.innerHTML = ``; From 9caf5fbc80dfcc92223fb09923055f4b39cae0e6 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 23:13:40 +0100 Subject: [PATCH 106/365] qwerty --- modules/fight-info.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index b88269d7f..68e5f899c 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -195,19 +195,19 @@ //This shit doesn't work and I don't know why (What is the celltitle??? is it the name of the nature? Imps are labelled Toxic/Gusty/Frozen but that didin't work either) - else if(cell.title.toLowerCase().indexOf('poison') > -1) // Poison Token cell + else if(cell.title != undefined && cell.title.toLowerCase().indexOf('poison') > -1) > -1) // Poison Token cell { $cell.innerHTML += `` ; $cell.style.textShadow = '0px 0px 10px #ffffff'; } - else if(cell.title.toLowerCase().indexOf('wind') > -1) // Wind Token cell + else if(cell.title != undefined && cell.title.toLowerCase().indexOf('wind') > -1) // Wind Token cell { $cell.innerHTML = ``; $cell.style.textShadow = '0px 0px 10px #ffffff'; } - else if(cell.title.toLowerCase().indexOf('ice') > -1) // Ice Token cell + else if(cell.title != undefined && cell.title.toLowerCase().indexOf('ice') > -1) // Ice Token cell { if(cell.special.length !== 0){$cell.innerHTML += ' ';} $cell.innerHTML = ``; From f4e8cd174b4e49acce31b9dfb5c15829635ccf1a Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 23:15:19 +0100 Subject: [PATCH 107/365] typo --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 68e5f899c..cd47d311e 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -195,7 +195,7 @@ //This shit doesn't work and I don't know why (What is the celltitle??? is it the name of the nature? Imps are labelled Toxic/Gusty/Frozen but that didin't work either) - else if(cell.title != undefined && cell.title.toLowerCase().indexOf('poison') > -1) > -1) // Poison Token cell + else if(cell.title != undefined && cell.title.toLowerCase().indexOf('poison') > -1) // Poison Token cell { $cell.innerHTML += `` ; $cell.style.textShadow = '0px 0px 10px #ffffff'; From a7d2cdb282b8f7a9d8f499776b3cb14d7ecfc923 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 23:18:13 +0100 Subject: [PATCH 108/365] test --- modules/fight-info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index cd47d311e..baacb2fe3 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -207,7 +207,7 @@ $cell.style.textShadow = '0px 0px 10px #ffffff'; } - else if(cell.title != undefined && cell.title.toLowerCase().indexOf('ice') > -1) // Ice Token cell + else if(cell.title != undefined) // Ice Token cell { if(cell.special.length !== 0){$cell.innerHTML += ' ';} $cell.innerHTML = ``; From d41e2f1dcf81a7f20a0edec12c6d68a52fc6bf4e Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 23:23:09 +0100 Subject: [PATCH 109/365] test --- modules/fight-info.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index baacb2fe3..0f3dc9210 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -203,14 +203,14 @@ else if(cell.title != undefined && cell.title.toLowerCase().indexOf('wind') > -1) // Wind Token cell { - $cell.innerHTML = ``; + $cell.innerHTML += ``; $cell.style.textShadow = '0px 0px 10px #ffffff'; } else if(cell.title != undefined) // Ice Token cell { if(cell.special.length !== 0){$cell.innerHTML += ' ';} - $cell.innerHTML = ``; + $cell.innerHTML += ``; $cell.style.textShadow = '0px 0px 10px #ffffff'; } From 639bddad71421f95db0c083df03a20e614195c05 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 23:26:20 +0100 Subject: [PATCH 110/365] class --- modules/fight-info.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 0f3dc9210..acdd68813 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -195,22 +195,22 @@ //This shit doesn't work and I don't know why (What is the celltitle??? is it the name of the nature? Imps are labelled Toxic/Gusty/Frozen but that didin't work either) - else if(cell.title != undefined && cell.title.toLowerCase().indexOf('poison') > -1) // Poison Token cell + else if(cell.title != undefined && cell.class.toLowerCase().indexOf('poison') > -1) // Poison Token cell { $cell.innerHTML += `` ; $cell.style.textShadow = '0px 0px 10px #ffffff'; } - else if(cell.title != undefined && cell.title.toLowerCase().indexOf('wind') > -1) // Wind Token cell + else if(cell.class != undefined && cell.class.toLowerCase().indexOf('wind') > -1) // Wind Token cell { - $cell.innerHTML += ``; + $cell.innerHTML = ``; $cell.style.textShadow = '0px 0px 10px #ffffff'; } - else if(cell.title != undefined) // Ice Token cell + else if(cell.class != undefined && cell.class.toLowerCase().indexOf('ice') > -1) // Ice Token cell { if(cell.special.length !== 0){$cell.innerHTML += ' ';} - $cell.innerHTML += ``; + $cell.innerHTML = ``; $cell.style.textShadow = '0px 0px 10px #ffffff'; } From 2e2171db818320991f56d0ae9178d58bd539c58f Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sat, 14 Apr 2018 23:40:41 +0100 Subject: [PATCH 111/365] class --- modules/fight-info.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index acdd68813..40a74da29 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -193,7 +193,6 @@ $cell.style.textShadow = '0px 0px 15px #fb753f'; }*/ - //This shit doesn't work and I don't know why (What is the celltitle??? is it the name of the nature? Imps are labelled Toxic/Gusty/Frozen but that didin't work either) else if(cell.title != undefined && cell.class.toLowerCase().indexOf('poison') > -1) // Poison Token cell { @@ -207,7 +206,7 @@ $cell.style.textShadow = '0px 0px 10px #ffffff'; } - else if(cell.class != undefined && cell.class.toLowerCase().indexOf('ice') > -1) // Ice Token cell + else if(className.toLowerCase().indexOf('ice') > -1) // Ice Token cell { if(cell.special.length !== 0){$cell.innerHTML += ' ';} $cell.innerHTML = ``; From c0c169d407a5c52c26b2e51881a80d144a4f99a4 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sun, 15 Apr 2018 00:02:46 +0100 Subject: [PATCH 112/365] classname --- modules/fight-info.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 40a74da29..ead4f45d2 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -194,19 +194,19 @@ }*/ //This shit doesn't work and I don't know why (What is the celltitle??? is it the name of the nature? Imps are labelled Toxic/Gusty/Frozen but that didin't work either) - else if(cell.title != undefined && cell.class.toLowerCase().indexOf('poison') > -1) // Poison Token cell + else if(document.getElementsByClassName("empoweredCellPoison")[0] != null) // Poison Token cell { $cell.innerHTML += `` ; $cell.style.textShadow = '0px 0px 10px #ffffff'; } - else if(cell.class != undefined && cell.class.toLowerCase().indexOf('wind') > -1) // Wind Token cell + else if(document.getElementsByClassName("empoweredCellWind")[0] != null) // Wind Token cell { $cell.innerHTML = ``; $cell.style.textShadow = '0px 0px 10px #ffffff'; } - else if(className.toLowerCase().indexOf('ice') > -1) // Ice Token cell + else if(document.getElementsByClassName("empoweredCellIce")[0] != null) // Ice Token cell { if(cell.special.length !== 0){$cell.innerHTML += ' ';} $cell.innerHTML = ``; From 9985629cd64bd2843b9bf5fcb01e4ca055bbf4ae Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sun, 15 Apr 2018 00:06:22 +0100 Subject: [PATCH 113/365] lol wtf --- modules/fight-info.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index ead4f45d2..4b62dfdb7 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -202,14 +202,14 @@ else if(document.getElementsByClassName("empoweredCellWind")[0] != null) // Wind Token cell { - $cell.innerHTML = ``; + $cell.innerHTML += ``; $cell.style.textShadow = '0px 0px 10px #ffffff'; } else if(document.getElementsByClassName("empoweredCellIce")[0] != null) // Ice Token cell { if(cell.special.length !== 0){$cell.innerHTML += ' ';} - $cell.innerHTML = ``; + $cell.innerHTML += ``; $cell.style.textShadow = '0px 0px 10px #ffffff'; } From 7a46938cfaa98f2e586381276d46ad0706c432a3 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sun, 15 Apr 2018 00:20:46 +0100 Subject: [PATCH 114/365] revoke attempt at nature stuff --- modules/fight-info.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index 4b62dfdb7..d195731f8 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -194,7 +194,7 @@ }*/ //This shit doesn't work and I don't know why (What is the celltitle??? is it the name of the nature? Imps are labelled Toxic/Gusty/Frozen but that didin't work either) - else if(document.getElementsByClassName("empoweredCellPoison")[0] != null) // Poison Token cell + /*else if(document.getElementsByClassName("empoweredCellPoison")[0] != null) // Poison Token cell { $cell.innerHTML += `` ; $cell.style.textShadow = '0px 0px 10px #ffffff'; @@ -211,7 +211,7 @@ if(cell.special.length !== 0){$cell.innerHTML += ' ';} $cell.innerHTML += ``; $cell.style.textShadow = '0px 0px 10px #ffffff'; - } + }*/ //Tooltip on world cells if(cell.corrupted != null && cell.corrupted !== "none") From 42407c06f48c1797c00ba6e3b06add4c1a93e1e6 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sun, 15 Apr 2018 00:26:54 +0100 Subject: [PATCH 115/365] revoke attempt at nature stuff --- modules/fight-info.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/fight-info.js b/modules/fight-info.js index d195731f8..bb6f719dd 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -218,6 +218,8 @@ { $cell.title += `${cell.name} \- ${mutationEffects[cell.corrupted].title}`; } + else if (game.global.mapsActive) + $cell.title = `${cell.name}`; else $cell.title += ` ${cell.name}`; } From 46f4279786012946a32c46b71dcaed10389dd8cc Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sun, 15 Apr 2018 00:27:26 +0100 Subject: [PATCH 116/365] revoke attempt at nature stuff --- modules/fight-info.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/fight-info.js b/modules/fight-info.js index bb6f719dd..af4fb409d 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -219,7 +219,9 @@ $cell.title += `${cell.name} \- ${mutationEffects[cell.corrupted].title}`; } else if (game.global.mapsActive) + { $cell.title = `${cell.name}`; + } else $cell.title += ` ${cell.name}`; } From 171a44234316c87edd349b45117453e7e1f8d64d Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sun, 15 Apr 2018 03:06:53 +0100 Subject: [PATCH 117/365] Finalising changes to Fight-Info module Issues: Map still loops nonstop (can't figure out how to improve the code swiffy commented out). Cause of this, overlay behaviour in maps is to REPLACE rather than add to vanilla trimp info/glyphs, otherwise you get an endless list of icons every time the script runs. Tokens of nature stuff still doesn't work... but its close. The current behaviour just slams a glyph into every cell. The code currently only puts one extra glyph into each cell. might be worth removing the else statements, and sticking with an IF? eg a token exotic imp. improved formatting for previous changes --- modules/fight-info.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index af4fb409d..d70f2fd36 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -10,10 +10,11 @@ "Improbability", "Omnipotrimp", "Mutimp", - "Hulking_Mutimp" + "Hulking_Mutimp", + "Cthulimp" ]; - // Exotic imps + // Exotic imps (This has been disabled) M["fightinfo"].exotics = [ "Feyimp", @@ -183,7 +184,7 @@ - /*else if(M["fightinfo"].exotics.indexOf(cell.name) > -1) // Exotic cell + /*else if(M["fightinfo"].exotics.indexOf(cell.name) > -1) // Exotic cell (also the Original code) { //if(cell.special.length === 0) $cell.innerHTML += " "; @@ -193,7 +194,7 @@ $cell.style.textShadow = '0px 0px 15px #fb753f'; }*/ - //This shit doesn't work and I don't know why (What is the celltitle??? is it the name of the nature? Imps are labelled Toxic/Gusty/Frozen but that didin't work either) + //This shit doesn't work and I don't know why tbh, the current behaviour spams ice glyphs everywhere /*else if(document.getElementsByClassName("empoweredCellPoison")[0] != null) // Poison Token cell { $cell.innerHTML += `` ; @@ -213,7 +214,7 @@ $cell.style.textShadow = '0px 0px 10px #ffffff'; }*/ - //Tooltip on world cells + //Tooltip on world cells, works reasonably well. special behaviour for maps cause of looping if(cell.corrupted != null && cell.corrupted !== "none") { $cell.title += `${cell.name} \- ${mutationEffects[cell.corrupted].title}`; From 93852fbe7d4f4cfc5b2efcccb535926a40ce1e7c Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Sun, 15 Apr 2018 03:18:40 +0100 Subject: [PATCH 118/365] Finalising changes to Fight-Info module Issues: Map still loops nonstop (can't figure out how to improve the code swiffy commented out). Cause of this, overlay behaviour in maps is to REPLACE rather than add to vanilla trimp info/glyphs, otherwise you get an endless list of icons every time the script runs. Tokens of nature stuff still doesn't work... but its close. The current behaviour just slams a glyph into every cell. The code currently only puts one extra glyph into each cell. might be worth removing the else statements, and sticking with an IF? eg a token exotic imp. improved formatting for previous changes --- modules/fight-info.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/fight-info.js b/modules/fight-info.js index d70f2fd36..214f74119 100644 --- a/modules/fight-info.js +++ b/modules/fight-info.js @@ -10,8 +10,7 @@ "Improbability", "Omnipotrimp", "Mutimp", - "Hulking_Mutimp", - "Cthulimp" + "Hulking_Mutimp" ]; // Exotic imps (This has been disabled) @@ -109,6 +108,11 @@ $cell.style.textShadow = '0px 0px 15px #8c0000'; } + else if(cell.name.toLowerCase().indexOf('cthulimp') > -1) // Cthulimp cell + { + $cell.style.textShadow = '0px 0px 15px #fb753f'; + } + //Map Imports else if(cell.name.toLowerCase().indexOf('goblimp') > -1) // goblimp cell { From c3664fac5e02f8cd7d66928a6605411843c1940d Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Thu, 26 Apr 2018 22:56:58 +0100 Subject: [PATCH 119/365] Add function for Finish Daily Z Mod to apply to Void Zone. --- SettingsGUI.js | 14 ++++++++------ modules/maps.js | 5 +++++ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index af489979f..da66f4165 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -250,12 +250,12 @@ function initializeAllSettings() { //Line2 createSetting('AutoStartDaily', 'Auto Start Daily', 'With this on, the Auto Portal options will portal you into and auto-start the daily whenever available. Starts from the oldest available, and works forwards. Falls back to selected challenge when there are no more dailies available.', 'boolean', false, null, 'Core'); - createSetting('AutoFinishDailyNew', 'Finish Daily Z Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option or set this to 999!', 'valueNegative', 999, null, 'Core'); + createSetting('AutoFinishDailyNew', 'Finish Daily Z Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option or set this to 999!', 'valueNegative', 999, null, 'Core'); createSetting('FinishC2', 'Finish Challenge2', 'Finish / Abandon Challenge2 (any) when this zone is reached, if you are running one. For manual use. Recommended: Zones ending with 0 for most Challenge2. Disable with -1. Does not affect Non-Challenge2 runs.', 'value', -1, null, 'Core'); if (game.worldUnlocks.easterEgg) createSetting('AutoEggs', 'AutoEggs', 'Click easter egg if it exists, upon entering a new zone. Warning: Quite overpowered. Please solemnly swear that you are up to no good.', 'boolean', false, null, 'Core'); //could really be removed?? createSetting('UsePatience', 'Enable Patience', 'Sets the default breed timer to 45 seconds if you have the Patience mastery.', 'boolean', true, null, 'Core'); - createSetting('AutoAllocatePerks', 'Auto Allocate Perks', 'Uses the AutoPerks ratio based preset system to automatically allocate your perks to spend whatever helium you have when you AutoPortal. Does not change Fixed Perks: siphonology, anticipation, meditation, relentlessness, range, agility, bait, trumps, packrat, capable. ', 'boolean', false, null, 'Core'); + createSetting('AutoAllocatePerks', 'Auto Allocate Perks', 'Uses the AutoPerks ratio based preset system to automatically allocate your perks to spend whatever helium you have when you AutoPortal. Does not change Fixed Perks: siphonology, anticipation, meditation, relentlessness, range, agility, bait, trumps, packrat, capable. ', 'boolean', false, null, 'Core'); document.getElementById('AutoAllocatePerks').parentNode.insertAdjacentHTML('afterend','
'); //NewLine3 For Autoportal, it would be nice to add a 5s countdown, like with magma spending. @@ -359,9 +359,11 @@ function initializeAllSettings() { createSetting('MaxTox', 'Max Toxicity Stacks', 'Get maximum toxicity stacks before killing the improbability in each zone 60 and above. Generally only recommended for 1 run to maximize bone portal value. This setting will revert to disabled after a successful Max-Tox run + Toxicity Autoportal.', 'boolean', false, null, 'Maps'); //Line3 - createSetting('VoidMaps', 'Void Maps', '0 to disable The zone at which you want all your void maps to be cleared inclusive of the zone you type. Runs them at Cell 93 by default, unless you set a decimal value indicating the cell (example: 187.75). Use odd zones on Lead.', 'value', '0', null, "Maps"); + createSetting('VoidMaps', 'Void Maps', '0 to disable The zone at which you want all your void maps to be cleared inclusive of the zone you type. Runs them at Cell 93 by default, unless you set a decimal value indicating the cell (example: 187.75). Use odd zones on Lead.
If Daily Void Zone Mod is active, your Finish Daily Z Mod will apply to this number when a Daily is active.', 'value', '0', null, "Maps"); createSetting('RunNewVoidsUntilNew', 'New Voids Mod', '0 to disable. Positive numbers are added to your Void Map zone. -1 for no cap. This allows you to run new Void Maps obtained after your Void Map zone by adding this number to your Void Map zone.
Example Void map zone=185.75 and This setting=10. New Voids run until 197.75).
This means that any new void maps gained until Z197, cell 75 will be run. CAUTION: May severely slow you down by trying to do too-high level void maps. Default 0 (OFF).', 'value', '0', null, 'Maps'); //Should replace the two below //createSetting('VoidsPerZone', 'Voids per Zone', 'Run a max of this many Voids per zone, if you have a lot of Voids saved up. Then moves onto the next zone and does more voids.', 'value', '-1', null, 'Maps'); + //-1 Autograbs your Finish Daily Z Mod
0 Disables this setting
Positive Numbers add to your normal void zone on a daily

Possible number input? + createSetting('DailyVoidMod', 'Daily Void Zone Mod', 'If this is on, your daily autoportal mod (Core) will also apply to Void maps on dailies. For example, if you have void maps and autoportal set to 200 on normal runs, and your daily mod is 15, you will do voids and portal 15 zones later on a daily.', 'boolean', true, null, 'Maps'); createSetting('VoidCheck', 'Void Difficulty Check', 'How many hits to be able to take from a void map boss in X stance before we attempt the map. Higher values will get you stronger (by farming maps for health) before attempting. Disabling this with 0 or -1 translates into a default of surviving 2 hits. I recommend somewhere between 2 and 12 (default is now 6).', 'value', '6', null, 'Maps'); createSetting('TrimpleZ', 'Trimple Z', 'I don\'t really think doing this automatically is a good idea. You might want to farm for a bit before this, but I\'m not sure if it\'s meaningful at all to make a \'farm X minutes before trimple\' parameter to go along with it. Set it to the zone you want and it will run Trimple of Doom for Ancient Treasure AFTER farming and getting map stacks. If it is a negative number, this will be disabled after a successful run so you can set it differently next time.', 'valueNegative', 0, null, 'Maps'); //in reality this needs another setting to make it farm for a set number of minutes without spending anything. And I cba cause its a meh setting anyway. Advancing 2 zones more than doubles your income. Only useful for spire I, and IMO you may aswell actually play the game manually at SOME point. createSetting('AdvMapSpecialModifier', 'Map Special Modifier', 'EXPERIMENTAL. Attempt to select the BEST map special attacks mod. With this on, this will replace the normal behavior. If bugs, please report as this will become more default soon.', 'boolean', false, null, 'Maps'); @@ -477,16 +479,16 @@ function initializeAllSettings() { //createSetting('ExportModuleVars', 'Export Custom Variables', 'Export your custom MODULES variables.', 'infoclick', 'ExportModuleVars', null, 'Import Export'); //createSetting('ImportModuleVars', 'Import Custom Variables', 'Import your custom MODULES variables (and save).', 'infoclick', 'ImportModuleVars', null, 'Import Export'); //createSetting('ResetModuleVars', 'Reset Custom Variables', 'Reset(Delete) your custom MODULES variables, and return the script to normal. ', 'infoclick', 'ResetModuleVars', null, 'Import Export'); - + //createSetting('PlayerLevel', 'PlayerLevel', 'PlayerLevel: Indicate around what level you are. noob, low, medium, high, spire, magma, expert, z450+, z500+, endgame and so on. Might be used to control which settings are visible in the future. ', 'dropdown', "Medium", ["Noob","Low","Medium","High","Spire","Magma","Expert","z450+","z500+","EndGame"], 'Display'); /* createSetting('ATModuleListDropdown', 'Modules', 'AT Module List Dropdown: Lists all the individual modules (.js files) that have been auto-loaded. It might be possible to unload these or something in the future.', 'dropdown', ATmoduleList[0], ATmoduleList, 'Import Export'); document.getElementById('ATModuleListDropdown').multiple = true; //allow 4 multiple selections document.getElementById('ATModuleListDropdown').size = 4; - document.getElementById('ATModuleListDropdown').height = '5vw'; + document.getElementById('ATModuleListDropdown').height = '5vw'; document.getElementById('ATModuleListDropdownLabel').style.verticalAlign = 'top'; document.getElementById('ATModuleListDropdownLabel').parentNode.style.width = null; //make the next stuff fit on 1 line. - createSetting('ATModuleUnload', 'Unload Module', 'UnLoads a running module file this session', 'infoclick', 'ATModuleUnload', null, 'Import Export'); + createSetting('ATModuleUnload', 'Unload Module', 'UnLoads a running module file this session', 'infoclick', 'ATModuleUnload', null, 'Import Export'); createSetting('ATModuleLoad', 'ReLoad Module', 'Load/Reloads a module file (.js) and runs it.', 'infoclick', 'ATModuleLoad', null, 'Import Export'); */ } diff --git a/modules/maps.js b/modules/maps.js index 0e386e95a..160226b39 100644 --- a/modules/maps.js +++ b/modules/maps.js @@ -77,6 +77,11 @@ function autoMap() { var extraMapLevels = getPageSetting('AdvMapSpecialModifier') ? getExtraMapLevels() : 0; //FIND VOID MAPS LEVEL: var voidMapLevelSetting = getPageSetting('VoidMaps'); + //Add your daily zone mod onto the void maps level + var dailyVoidMod = getPageSetting('AutoFinishDailyNew'); + if ((game.global.challengeActive == "Daily") && (getPageSetting('AutoFinishDailyNew') != 999) && (getPageSetting('DailyVoidMod'))) { + (voidMapLevelSetting += dailyVoidMod); + } //decimal void maps are possible, using string function to avoid false float precision (0.29999999992). javascript can compare ints to strings anyway. var voidMapLevelSettingZone = (voidMapLevelSetting+"").split(".")[0]; var voidMapLevelSettingMap = (voidMapLevelSetting+"").split(".")[1]; From f86e89060b0f469bb65aa5459f067856404ad94d Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Fri, 27 Apr 2018 02:03:56 +0100 Subject: [PATCH 120/365] Add BAF3 with checks for Spire etc. Trial improvements for BAF2. --- SettingsGUI.js | 4 +- modules/fight.js | 100 ++++++++++++++++++++++++++++++++--------------- 2 files changed, 70 insertions(+), 34 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index da66f4165..d8abd3afd 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -373,8 +373,8 @@ function initializeAllSettings() { //Combat //Subsection1Line1 - createSetting('BetterAutoFight', ['Better AutoFight OFF', 'Better Auto Fight 1', 'Better Auto Fight 2',], '3-Way Button, Recommended. Will automatically handle fighting. The decision between BetterAutoFight 1 or 2 is up to your own discretion. The new BAF#2 does: A)Click fight anyway if we are dead and stuck in a loop due to Dimensional Generator and we can get away with adding time to it.(RemainingTime + ArmyAdd.Time < GeneTimer) and B) Clicks fight anyway if we are dead and have >=31 NextGroupTimer and deal with the consequences by firing genetecists afterwards. WARNING: If you autoportal with BetterAutoFight disabled, the game sits there doing nothing until you click FIGHT. (not good for afk) ', 'multitoggle', 1, null, "Combat"); - createSetting('AutoStance', ['Auto Stance OFF', 'Auto Stance 1', 'Auto Stance 2', 'Auto Stance 3'], 'Automatically swap stances to avoid death. The decision between AutoStance 1 or 2 is up to your own discretion and they should be similar. Better Autofight 3 is new and experimental for use after nature (z230), and will keep you in D stance unless you are windstacking (only useful if transfer is maxed out and wind empowerment is high. This feature is currently only a tweak added on request.', 'multitoggle', 1, null, "Combat"); + createSetting('BetterAutoFight', ['Better AutoFight OFF', 'Better Auto Fight 1', 'Better Auto Fight 2', 'Better Auto Fight 3'], '4-Way Button, Recommended. Will automatically handle fighting.
BAF1 = Old Algo (Fights if dead, new squad ready, new squad breed timer target exceeded, and if breeding takes under 0.5 seconds
BAF2 = Newer, As with BAF1, but also solves DimGen looping, sends trimps immediately when breed target met, and deals with the consequences by firing geneticists
BAF3 = Uses vanilla autofight, and force fights when dead except in VM and Spire.
WARNING: If you autoportal with BetterAutoFight disabled, the game may sit there doing nothing until you click FIGHT. (not good for afk) ', 'multitoggle', 3, null, "Combat"); + createSetting('AutoStance', ['Auto Stance OFF', 'Auto Stance 1', 'Auto Stance 2', 'Auto Stance 3'], 'Automatically swap stances to avoid death. The decision between AutoStance 1 or 2 is up to your own discretion and they should be similar. AutoStance 3 is new and experimental for use after nature (z230), and will keep you in D stance unless you are windstacking (only useful if transfer is maxed out and wind empowerment is high. This feature is currently only a tweak added on request.', 'multitoggle', 1, null, "Combat"); createSetting('WindStackingMin', 'Windstack Min Zone', '-1 = Off
0 = Always On

For use with AutoStance 3, enables windstacking in zones above and inclusive of the zone set. (Get 200 windstacks then change to D, kill bad guy, then repeat). This is designed to force S use until you have 200 stacks in wind zones, overriding scryer settings.', 'value', '-1', null, 'Combat'); createSetting('IgnoreCrits', ['Safety First', 'Ignore Void Strength', 'Ignore All Crits'], 'No longer switches to B against corrupted precision and/or void strength. Basically we now treat \'crit things\' as regular in both autoStance and autoStance2. In fact it no longer takes precision / strength into account and will manage like a normal enemy, thus retaining X / D depending on your needs. If you\'re certain your block is high enough regardless if you\'re fighting a crit guy in a crit daily, use this! Alternatively, manage the stances yourself.', 'multitoggle', 0, null, 'Combat'); createSetting('PowerSaving', ['AutoAbandon', 'Don\'t Abandon', 'Only Rush Voids'], 'Autoabandon: Considers abandoning trimps for void maps/prestiges.
Don\'t Abandon: Will not abandon troops, but will still agressively autostance even if it will kill you (WILL NOT ABANDON TRIMPS TO DO VOIDS).
Only Rush Voids: Considers abandoning trimps for void maps, but not prestiges, still autostances aggressively.
Made for Empower daily, and you might find this helpful if you\'re doing Workplace Safety feat. Then again with that I strongly recommend doing it fully manually. Anyway, don\'t blame me whatever happens.
Note: AT will no longer be able to fix when your scryer gets stuck!', 'multitoggle', 0, null, 'Combat'); diff --git a/modules/fight.js b/modules/fight.js index 4368395ea..d963ff18f 100644 --- a/modules/fight.js +++ b/modules/fight.js @@ -10,6 +10,7 @@ function ATselectAutoFight() { BAFsetting = getPageSetting('BetterAutoFight'); if (BAFsetting==1) betterAutoFight(); //"Better Auto Fight" (autofight.js) else if (BAFsetting==2) betterAutoFight2(); //"Better Auto Fight2" (") + else if (BAFsetting==3) betterAutoFight3(); //"Better Auto Fight3" (") else if (BAFsetting==0 && BAFsetting!=oldBAFsetting && game.global.autoBattle && game.global.pauseFight) pauseFight(); //turn on autofight on once when BAF is toggled off. else if (BAFsetting==0 && game.global.world == 1 && game.global.autoBattle && game.global.pauseFight) pauseFight(); //turn on autofight on lvl 1 if its off. else if (BAFsetting==0 && !game.global.autoBattle && game.global.soldierHealth == 0) betterAutoFight(); //use BAF as a backup for pre-Battle situations @@ -47,7 +48,8 @@ function betterAutoFight2() { pauseFight(); //Disable built-in autofight if (game.global.gridArray.length === 0 || game.global.preMapsActive || !game.upgrades.Battle.done || game.global.fighting) return; //sanity check. - var targetBreed = getPageSetting('GeneticistTimer'); + var spireBreed = getPageSetting('SpireBreedTimer'); + var targetBreed = (game.global.spireActive && spireBreed != -1) ? spireBreed : game.global.GeneticistassistSetting; //use custom breed value for spire var breeding = (game.resources.trimps.owned - game.resources.trimps.employed); var newSquadRdy = game.resources.trimps.realMax() <= game.resources.trimps.owned + 1; var adjustedMax = (game.portal.Coordinated.level) ? game.portal.Coordinated.currentSend : trimps.maxSoldiers; @@ -57,40 +59,74 @@ function betterAutoFight2() { //if armySend is less than half of what you have breeding, and what you have breeding is more than 10% of your total trimps. (when scientist I is incompleted) var lowLevelFight = game.resources.trimps.maxSoldiers < 0.5*breeding && breeding > 0.1*game.resources.trimps.realMax() && game.global.world <= 6 && game.global.sLevel < 1; + //accounts for the shitty rounding errors in trimp breeding with coord levels over 100 + var roundingError = (newsquadRdy && (game.global.lastBreedTime <== 1)); + + //chooses the correct patience value var breedTimerLimit = game.talents.patience.purchased && getPageSetting('UsePatience') ? 46 : 31; //Manually fight if: //game.global.soldierHealth > 0 //just fight if we're alive,or if == 0; we're dead, and also fight :P - if (!game.global.fighting) { - if (game.global.soldierHealth > 0) - battle(true); //just fight, dont speak. - else if (newSquadRdy || lowLevelFight || game.global.challengeActive == 'Watch') { - battle(true); - if (MODULES["fight"].enableDebug) - debug("AutoFight Default: New squad ready", "other"); - } - //Click Fight if we are dead and already have enough for our breed timer, and fighting would not add a significant amount of time - else if (getBreedTime() < customVars.breedTimerCutoff1 && (game.global.lastBreedTime/1000) > targetBreed) { - battle(true); - if (MODULES["fight"].enableDebug) - debug("AutoFight: BAF2 #1, breed < " + customVars.breedTimerCutoff1 + " && HiddenNextGroup > GeneTimer", "other"); - } - //AutoFight will now send Trimps to fight if it takes less than 0.5 seconds to create a new group of soldiers, if we havent bred fully yet - else if (getBreedTime() <= customVars.breedTimerCutoff2) { - battle(true); - if (MODULES["fight"].enableDebug) - debug("AutoFight: BAF2 #2, breed <= " + customVars.breedTimerCutoff2 + " s", "other"); - } - //Click fight anyway if we are dead and stuck in a loop due to Dimensional Generator and we can get away with adding time to it. - else if (getBreedTime(true)+addTime <= targetBreed && breeding>=adjustedMax && !(game.global.mapsActive && getCurrentMapObject().location == "Void")) { - battle(true); - if (MODULES["fight"].enableDebug) - debug("AutoFight: BAF2 #3, RemainingTime + ArmyAdd.Time < GeneTimer", "other"); - } - //Clicks fight anyway if we are dead and have >=breedTimerLimit NextGroupTimer and deal with the consequences by firing geneticists afterwards. - else if (game.global.soldierHealth == 0 && (game.global.lastBreedTime/1000)>=breedTimerLimit && targetBreed >= 0 && !game.jobs.Geneticist.locked && game.jobs.Geneticist.owned > 10 ) { - battle(true); - if (MODULES["fight"].enableDebug) - debug("AutoFight: BAF2 #4, NextGroupBreedTimer went over " + breedTimerLimit + " and we arent fighting.", "other"); + if (!game.global.fighting) { // !(game.global.spireActive || (game.global.mapsActive && getCurrentMapObject().location == "Void") || game.global.preMapsActive) + if (game.global.SpireActive){ + if((game.global.lastBreedtime/1000)>=targetBreed && (game.global.lastBreedtime/1000)>=breedTimerLimit) { + fightManual() + } } + else if (game.global.soldierHealth > 0) + fightManual(); //If you are not fighting but have health, fix this situation by clicking fight (fixes some weird Trimps errors) + //if max trimps, army size insignificant, or in Watch, or rounding error + else if (newSquadRdy || lowLevelFight || game.global.challengeActive == 'Watch' || roundingError) { + fightManual(); + if (MODULES["fight"].enableDebug) + debug("AutoFight Default: New squad ready", "other"); + } + //Click Fight if we are dead and already have enough for our breed timer, and fighting would not add a significant amount of time + else if (getBreedTime() < customVars.breedTimerCutoff1 && (game.global.lastBreedTime/1000) > targetBreed) { + fightManual(); + if (MODULES["fight"].enableDebug) + debug("AutoFight: BAF2 #1, breed < " + customVars.breedTimerCutoff1 + " && HiddenNextGroup > GeneTimer", "other"); + } + //AutoFight will now send Trimps to fight if it takes less than 0.5 seconds to create a new group of soldiers, if we havent bred fully yet + else if (getBreedTime() <= customVars.breedTimerCutoff2) { + fightManual(); + if (MODULES["fight"].enableDebug) + debug("AutoFight: BAF2 #2, breed <= " + customVars.breedTimerCutoff2 + " s", "other"); + } + //Click fight anyway if we are dead and stuck in a loop due to Dimensional Generator and we can get away with adding time to it. + else if (getBreedTime(true)+addTime <= targetBreed && breeding>=adjustedMax && !(game.global.mapsActive && getCurrentMapObject().location == "Void")) { + fightManual(); + if (MODULES["fight"].enableDebug) + debug("AutoFight: BAF2 #3, RemainingTime + ArmyAdd.Time < GeneTimer", "other"); + } + //Clicks fight anyway if we are dead and have >=breedTimerLimit NextGroupTimer and deal with the consequences by firing geneticists afterwards. + else if (game.global.soldierHealth == 0 && (game.global.lastBreedTime/1000)>=breedTimerLimit && targetBreed >= 0 && !game.jobs.Geneticist.locked && game.jobs.Geneticist.owned > 10 ) { + fightManual(); + if (MODULES["fight"].enableDebug) + debug("AutoFight: BAF2 #4, NextGroupBreedTimer went over " + breedTimerLimit + " and we arent fighting.", "other"); + } } } + +//NEW:: 3rd algorithm for Better Auto Fight (Basically brute force fight unless in spire or VM) +function betterAutoFight3() { + var customVars = MODULES["fight"]; + if (game.global.autoBattle && game.global.pauseFight) //check autofight available, and if it is off + pauseFight(); //activates autofight + if (game.global.gridArray.length === 0 || game.global.preMapsActive || !game.upgrades.Battle.done || game.global.fighting || game.global.spireActive || (game.global.mapsActive && getCurrentMapObject().location == "Void")) + return; //sanity check. + if (!game.global.fighting) { + fightManual(); + } +} + +/* code borrowed from Sliverz as a starting point +if (game.global.soldierHealth == 0 && !(game.global.spireActive || (game.global.mapsActive && getCurrentMapObject().location == "Void") || game.global.preMapsActive)) { + fightManual(); + buyArmors(); + } + if (game.global.antiStacks != 45 && game.global.realBreedTime >= 45500 && !game.global.SpireActive) { + forceAbandonTrimps(); + } + if ((needPrestige || !enoughDamage) && game.global.world>=200 && (getEmpowerment() == "Ice" || (getEmpowerment() == "Wind" && game.global.realBreedTime >= 45500)) && !game.global.mapsActive && game.global.mapBonus != 10 && game.global.world!=game.options.menu.mapAtZone.setZone) { + forceAbandonTrimps(); + } */ From de7e8712f760ba2b995db3ecdaeff319cabd4a1f Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Fri, 27 Apr 2018 02:17:38 +0100 Subject: [PATCH 121/365] Error on line 63 --- modules/fight.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight.js b/modules/fight.js index d963ff18f..aac142882 100644 --- a/modules/fight.js +++ b/modules/fight.js @@ -60,7 +60,7 @@ function betterAutoFight2() { var lowLevelFight = game.resources.trimps.maxSoldiers < 0.5*breeding && breeding > 0.1*game.resources.trimps.realMax() && game.global.world <= 6 && game.global.sLevel < 1; //accounts for the shitty rounding errors in trimp breeding with coord levels over 100 - var roundingError = (newsquadRdy && (game.global.lastBreedTime <== 1)); + var roundingError = newsquadRdy && (game.global.lastBreedTime <== 1); //chooses the correct patience value var breedTimerLimit = game.talents.patience.purchased && getPageSetting('UsePatience') ? 46 : 31; From b8b6f3a2a566516fa75d0b5922652692bcc04f26 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Fri, 27 Apr 2018 02:19:26 +0100 Subject: [PATCH 122/365] rounding error var was fucked --- modules/fight.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/modules/fight.js b/modules/fight.js index aac142882..71084410f 100644 --- a/modules/fight.js +++ b/modules/fight.js @@ -59,9 +59,6 @@ function betterAutoFight2() { //if armySend is less than half of what you have breeding, and what you have breeding is more than 10% of your total trimps. (when scientist I is incompleted) var lowLevelFight = game.resources.trimps.maxSoldiers < 0.5*breeding && breeding > 0.1*game.resources.trimps.realMax() && game.global.world <= 6 && game.global.sLevel < 1; - //accounts for the shitty rounding errors in trimp breeding with coord levels over 100 - var roundingError = newsquadRdy && (game.global.lastBreedTime <== 1); - //chooses the correct patience value var breedTimerLimit = game.talents.patience.purchased && getPageSetting('UsePatience') ? 46 : 31; @@ -74,8 +71,8 @@ function betterAutoFight2() { } else if (game.global.soldierHealth > 0) fightManual(); //If you are not fighting but have health, fix this situation by clicking fight (fixes some weird Trimps errors) - //if max trimps, army size insignificant, or in Watch, or rounding error - else if (newSquadRdy || lowLevelFight || game.global.challengeActive == 'Watch' || roundingError) { + //if max trimps, army size insignificant, or in Watch + else if (newSquadRdy || lowLevelFight || game.global.challengeActive == 'Watch') { fightManual(); if (MODULES["fight"].enableDebug) debug("AutoFight Default: New squad ready", "other"); From ee7a0b88cd89f4e2cbe1c9aa78bc362fdc4d8015 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Fri, 27 Apr 2018 03:01:57 +0100 Subject: [PATCH 123/365] get rid of void check --- modules/fight.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fight.js b/modules/fight.js index 71084410f..03375b2d0 100644 --- a/modules/fight.js +++ b/modules/fight.js @@ -109,7 +109,7 @@ function betterAutoFight3() { var customVars = MODULES["fight"]; if (game.global.autoBattle && game.global.pauseFight) //check autofight available, and if it is off pauseFight(); //activates autofight - if (game.global.gridArray.length === 0 || game.global.preMapsActive || !game.upgrades.Battle.done || game.global.fighting || game.global.spireActive || (game.global.mapsActive && getCurrentMapObject().location == "Void")) + if (game.global.gridArray.length === 0 || game.global.preMapsActive || !game.upgrades.Battle.done || game.global.fighting || game.global.spireActive) return; //sanity check. if (!game.global.fighting) { fightManual(); From 123d8ddaaa61149726d7d5ea8edf451847683221 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 12:46:33 +0100 Subject: [PATCH 124/365] update to latest perks --- modules/perks.js | 125 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 88 insertions(+), 37 deletions(-) diff --git a/modules/perks.js b/modules/perks.js index 835bb38b8..fc4c4120a 100644 --- a/modules/perks.js +++ b/modules/perks.js @@ -1,7 +1,7 @@ // ==UserScript== // @name AutoPerks // @namespace http://tampermonkey.net/ -// @version 1.1.2-4-2-2018+genBTC +// @version 1.1.3-4-7-2018+genBTC // @description Trimps Automatic Perk Calculator // @author zxv, genBTC // @include *trimps.github.io* @@ -38,14 +38,23 @@ var preset_HiderBalance = [75, 4, 8, 4, 1, 4, 24, 1, 75, 0.5, 3, 1, 1]; var preset_HiderMore = [20, 4, 10, 12, 1, 8, 8, 1, 40, 0.1, 0.5, 1, 1]; var preset_genBTC = [100, 8, 8, 4, 4, 5, 18, 8, 14, 1, 1, 1, 1]; var preset_genBTC2 = [96, 19, 15.4, 8, 8, 7, 14, 19, 11, 1, 1, 1, 1]; -var preset_Zek450 = [300, 1, 30, 2, 4, 2, 9, 8, 17, 0.1, 1, 320, 1]; -var preset_Zek4502 = [350, 1, 40, 2, 3, 2, 5, 8, 2, 0.1, 1, 300, 20]; //Will update again in few days, this seems to be more optimal for more helium for now -var preset_Zek4503 = [450, 0.9, 48, 3.35, 1, 2.8, 7.8, 1.95, 4, 0.04, 1, 120, 175]; //Final change till perky(?) integration +var preset_Zek450 = [450, 0.9, 48, 3.35, 1, 2.8, 7.8, 1.95, 4, 0.04, 1, 120, 175]; +// +var preset_space = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; +// +var preset_Zek059 = [7, 0.6, 3, 0.8, 0.3, 3, 25, 0.6, 0, 0, 0, 0, 0]; +var preset_Zek100 = [9.8, 1.8, 3.2, 2.6, 0.7, 2.9, 25, 1.8, 0, 0, 0, 0, 0]; +var preset_Zek180 = [13, 1.3, 4, 2.6, 0.7, 2.9, 25, 1.3, 35, 0.05, 1, 0, 0]; +var preset_Zek229 = [11.2, 0.58, 2.37, 1.464, 0.3, 2.02, 12.2, 0.58, 37, 0.22, 2.2, 0, 0]; +var preset_Zek299 = [16.8, 3, 1.9, 1.1, 1.2, 1, 17.1, 3, 100, 0.06, 0.8, 0, 0]; +var preset_Zek399 = [135, 6.1, 18.5, 6.5, 2.5, 6, 17, 6.1, 25, 0.08, 1, 0, 0]; +var preset_Zek449 = [245, 5.85, 29, 1.95, 2.8, 6, 6.1, 5.85, 15, 0.05, 1, 57, 0]; //gather these into an array of objects. this is one important object. -var presetList = [preset_ZXV,preset_ZXVnew,preset_ZXV3,preset_TruthEarly,preset_TruthLate,preset_nsheetz,preset_nsheetzNew,preset_HiderHehr,preset_HiderBalance,preset_HiderMore,preset_genBTC,preset_genBTC2,preset_Zek450,preset_Zek4502,preset_Zek4503]; +var presetList = [preset_ZXV,preset_ZXVnew,preset_ZXV3,preset_TruthEarly,preset_TruthLate,preset_nsheetz,preset_nsheetzNew,preset_HiderHehr,preset_HiderBalance,preset_HiderMore,preset_genBTC,preset_genBTC2,preset_space,preset_Zek059,preset_Zek100,preset_Zek180,preset_Zek229,preset_Zek299,preset_Zek399,preset_Zek449,preset_Zek450,preset_space]; //Specific ratios labeled above must be given the matching ID below. //Ratio preset dropdown list -var presetListHtml = "\ +var presetListHtml = "\ +\ \ \ \ @@ -57,15 +66,22 @@ var presetListHtml = "\ \ \ \ -\ -\ -\ -"; +\ +\ +\ +\ +\ +\ +\ +\ +\ +\ +"; //Custom Creation for all perk customRatio boxes in Trimps Perk Window AutoPerks.createInput = function(perkname,div) { var perk1input = document.createElement("Input"); perk1input.id = perkname + 'Ratio'; - var oldstyle = 'text-align: center; width: 60px;'; + var oldstyle = 'text-align: center; width: calc(100vw/36); font-size: 1.0vw; '; if(game.options.menu.darkTheme.enabled != 2) perk1input.setAttribute("style", oldstyle + " color: black;"); else perk1input.setAttribute('style', oldstyle); perk1input.setAttribute('class', 'perkRatios'); @@ -73,7 +89,7 @@ AutoPerks.createInput = function(perkname,div) { var perk1label = document.createElement("Label"); perk1label.id = perkname + 'Label'; perk1label.innerHTML = perkname; - perk1label.setAttribute('style', 'margin-right: 1vw; width: 120px; color: white;'); + perk1label.setAttribute('style', 'margin-right: 0.7vw; width: calc(100vw/18); color: white; font-size: 0.9vw; font-weight: lighter; margin-left: 0.3vw; '); //add to the div. div.appendChild(perk1input); div.appendChild(perk1label); @@ -85,8 +101,14 @@ AutoPerks.GUI = {}; AutoPerks.removeGUI = function() { Object.keys(AutoPerks.GUI).forEach(function(key) { var $elem = AutoPerks.GUI[key]; - $elem.parentNode.removeChild($elem); - delete AutoPerks.GUI[key]; + if (!$elem) { + console.log("error in: "+key); + return; + } + if ($elem.parentNode) { + $elem.parentNode.removeChild($elem); + delete $elem; + } }); } AutoPerks.displayGUI = function() { @@ -119,11 +141,11 @@ AutoPerks.displayGUI = function() { apGUI.$dumpperklabel = document.createElement("Label"); apGUI.$dumpperklabel.id = 'DumpPerk Label'; apGUI.$dumpperklabel.innerHTML = "Dump Perk:"; - apGUI.$dumpperklabel.setAttribute('style', 'margin-right: 1vw; color: white;'); + apGUI.$dumpperklabel.setAttribute('style', 'margin-right: 1vw; color: white; font-size: 0.9vw;'); apGUI.$dumpperk = document.createElement("select"); apGUI.$dumpperk.id = 'dumpPerk'; apGUI.$dumpperk.setAttribute('onchange', 'AutoPerks.saveDumpPerk()'); - var oldstyle = 'text-align: center; width: 120px;'; + var oldstyle = 'text-align: center; width: 8vw; font-size: 0.8vw; font-weight: lighter; '; if(game.options.menu.darkTheme.enabled != 2) apGUI.$dumpperk.setAttribute("style", oldstyle + " color: black;"); else apGUI.$dumpperk.setAttribute('style', oldstyle); //Add the dump perk dropdown to UI Line 2 @@ -131,27 +153,41 @@ AutoPerks.displayGUI = function() { apGUI.$ratiosLine2.appendChild(apGUI.$dumpperk); //Toggle Algorithm 2 checkbox apGUI.$toggleAlgo2 = document.createElement("DIV"); - apGUI.$toggleAlgo2.setAttribute('style', 'display: inline-block; text-align: left; margin-left: 1vw; width: 7vw;'); + apGUI.$toggleAlgo2.setAttribute('style', 'display: inline; text-align: left; margin-left: 1vw;'); apGUI.$toggleAlgo2.innerHTML = '\ \ - Fast Allocate!:'; - apGUI.$ratiosLine2.appendChild(apGUI.$toggleAlgo2); + Fast Allocate!'; + $buttonbar.appendChild(apGUI.$toggleAlgo2); + var $fastAllocate = document.getElementById("fastAllocate"); + $fastAllocate.setAttribute("onmouseover", 'tooltip(\"FastAllocate\", \"customText\", event, \"Bulk buys thousands of Tier2 Perks at once to save time. Caution - May overshoot. Recommended for High Helium amounts above 1 Qi only.\")'); + $fastAllocate.setAttribute("onmouseout", 'tooltip("hide")'); //Create ratioPreset dropdown apGUI.$ratioPresetLabel = document.createElement("Label"); apGUI.$ratioPresetLabel.id = 'Ratio Preset Label'; apGUI.$ratioPresetLabel.innerHTML = "Ratio Preset:"; - apGUI.$ratioPresetLabel.setAttribute('style', 'margin-right: 1vw; color: white;'); + apGUI.$ratioPresetLabel.setAttribute('style', 'margin-right: 0.5vw; color: white; font-size: 0.9vw;'); apGUI.$ratioPreset = document.createElement("select"); apGUI.$ratioPreset.id = 'ratioPreset'; apGUI.$ratioPreset.setAttribute('onchange', 'AutoPerks.setDefaultRatios()'); - oldstyle = 'text-align: center; width: 110px;'; + oldstyle = 'text-align: center; width: 8vw; font-size: 0.8vw; font-weight: lighter; '; if(game.options.menu.darkTheme.enabled != 2) apGUI.$ratioPreset.setAttribute("style", oldstyle + " color: black;"); else apGUI.$ratioPreset.setAttribute('style', oldstyle); //Populate ratio preset dropdown list from HTML above: apGUI.$ratioPreset.innerHTML = presetListHtml; - //load the last ratio used + //Load the last ratio used var loadLastPreset = localStorage.getItem('AutoperkSelectedRatioPresetID'); - apGUI.$ratioPreset.selectedIndex = (loadLastPreset != null) ? loadLastPreset : 0; // First element is zxv (default) ratio. + var setID; + if (loadLastPreset != null) { + //these four lines are temporary to migrate Custom Ratios to the new dropdown. Once everyone has the name in localStorage we can remove this. + if (loadLastPreset == 15 && !localStorage.getItem('AutoperkSelectedRatioPresetName')) + loadLastPreset = 25; + if (localStorage.getItem('AutoperkSelectedRatioPresetName')=="customPreset") + loadLastPreset = 25; + setID = loadLastPreset; + } + else + setID = 0; // First element is zxv (default) ratio. + apGUI.$ratioPreset.selectedIndex = setID; //Add the presets dropdown to UI Line 1 apGUI.$ratiosLine1.appendChild(apGUI.$ratioPresetLabel); apGUI.$ratiosLine1.appendChild(apGUI.$ratioPreset); @@ -185,8 +221,9 @@ AutoPerks.populateDumpPerkList = function() { } AutoPerks.saveDumpPerk = function() { - var dumpIndex = document.getElementById("dumpPerk").selectedIndex; - safeSetItems('AutoperkSelectedDumpPresetID', dumpIndex); + var $dump = document.getElementById("dumpPerk"); + safeSetItems('AutoperkSelectedDumpPresetID', $dump.selectedIndex); + safeSetItems('AutoperkSelectedDumpPresetName', $dump.value); } AutoPerks.saveCustomRatios = function() { @@ -211,14 +248,17 @@ AutoPerks.switchToCustomRatios = function() { //loads custom ratio selections from localstorage if applicable AutoPerks.setDefaultRatios = function() { var $perkRatioBoxes = document.getElementsByClassName("perkRatios"); - var ratioSet = document.getElementById("ratioPreset").selectedIndex; + var $rp = document.getElementById("ratioPreset"); + if (!$rp || !$perkRatioBoxes || !$rp.selectedOptions[0]) return; + var ratioSet = $rp.selectedIndex; var currentPerk; + //set ratio boxes using getPerksByName to get values from the perkHolder for(var i = 0; i < $perkRatioBoxes.length; i++) { currentPerk = AutoPerks.getPerkByName($perkRatioBoxes[i].id.substring(0, $perkRatioBoxes[i].id.length - 5)); // Remove "ratio" from the id to obtain the perk name $perkRatioBoxes[i].value = currentPerk.value[ratioSet]; } //If "Custom" dropdown is selected: - if (ratioSet == document.getElementById("ratioPreset").length-1) { + if (ratioSet == $rp.length-1) { //Try to grab custom ratios from LocalStorage if they were saved. var tmp = JSON.parse(localStorage.getItem('AutoPerksCustomRatios')); if (tmp !== null) @@ -239,6 +279,7 @@ AutoPerks.setDefaultRatios = function() { } //save the last ratio used safeSetItems('AutoperkSelectedRatioPresetID', ratioSet); + safeSetItems('AutoperkSelectedRatioPresetName', $rp.selectedOptions[0].id); } //updates the internal perk variables with values grabbed from the custom ratio input boxes that the user may have changed. @@ -291,15 +332,15 @@ AutoPerks.clickAllocate = function() { debug("AutoPerks: Major Error: Reading your Helium amount. " + remainingHelium, "perks"); // determine how to spend helium + var result; if (MODULES["perks"].useAlgo2) - var result = AutoPerks.spendHelium2(remainingHelium); + result = AutoPerks.spendHelium2(remainingHelium); else - var result = AutoPerks.spendHelium(remainingHelium); + result = AutoPerks.spendHelium(remainingHelium); if (result == false) { debug("AutoPerks: Major Error: Make sure all ratios are set properly.","perks"); return; } - // Get owned perks var perks = AutoPerks.getOwnedPerks(); //re-arrange perk points @@ -325,7 +366,7 @@ AutoPerks.getHelium = function() { //Calculate Price AutoPerks.calculatePrice = function(perk, level) { // Calculate price of buying *next* level if(perk.fluffy) return Math.ceil(perk.base * Math.pow(10,level)); - if(perk.type == 'exponential') return Math.ceil(level/2 + perk.base * Math.pow(1.3, level)); + else if(perk.type == 'exponential') return Math.ceil(level/2 + perk.base * Math.pow(1.3, level)); else if(perk.type == 'linear') return Math.ceil(perk.base + perk.increase * level); } //Calculate Total Price @@ -361,11 +402,11 @@ AutoPerks.spendHelium = function(helium) { if(helium < 0) { debug("AutoPerks: Major Error - Not enough helium to buy fixed perks.","perks"); //document.getElementById("nextCoordinated").innerHTML = "Not enough helium to buy fixed perks."; - return; + return false; } if (Number.isNaN(helium)) { debug("AutoPerks: Major Error - Helium is Not a Number!","perks"); - return; + return false; } var perks = AutoPerks.getVariablePerks(); @@ -378,13 +419,18 @@ AutoPerks.spendHelium = function(helium) { price = AutoPerks.calculatePrice(perks[i], 0); inc = AutoPerks.calculateIncrease(perks[i], 0); perks[i].efficiency = inc/price; - if(perks[i].efficiency <= 0) { + if(perks[i].efficiency < 0) { debug("Perk ratios must be positive values.","perks"); return false; } + //Unsaid: If eff == 0, just do nothing. if(perks[i].efficiency != 0) effQueue.add(perks[i]); } + if (effQueue.size < 1) { + debug("All Perk Ratios were 0, or some other error.","perks"); + return false; + } var i=0; //Change the way we iterate. @@ -455,11 +501,11 @@ AutoPerks.spendHelium2 = function(helium) { if(helium < 0) { debug("AutoPerks: Major Error - Not enough helium to buy fixed perks.","perks"); //document.getElementById("nextCoordinated").innerHTML = "Not enough helium to buy fixed perks."; - return; + return false; } if (Number.isNaN(helium)) { debug("AutoPerks: Major Error - Helium is Not a Number!","perks"); - return; + return false; } var perks = AutoPerks.getVariablePerks(); @@ -474,9 +520,14 @@ AutoPerks.spendHelium2 = function(helium) { debug("Perk ratios must be positive values.","perks"); return false; } + //Unsaid: If eff == 0, just do nothing. if(perks[i].efficiency != 0) effQueue.add(perks[i]); } + if (effQueue.size < 1) { + debug("All Perk Ratios were 0, or some other error.","perks"); + return false; + } var mostEff, price, inc; var packPrice,packLevel; @@ -821,4 +872,4 @@ AutoPerks.getOwnedPerks = function() { } //Run the GUI: -AutoPerks.displayGUI(); \ No newline at end of file +AutoPerks.displayGUI(); From 75195c04e06f82b38d226cd2e1118e3b4a6c4545 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Fri, 27 Apr 2018 12:55:28 +0100 Subject: [PATCH 125/365] Add some +lvl support for VMs --- SettingsGUI.js | 1 + modules/fight.js | 4 +++- modules/maps.js | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index d8abd3afd..f51de0f4a 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -364,6 +364,7 @@ function initializeAllSettings() { //createSetting('VoidsPerZone', 'Voids per Zone', 'Run a max of this many Voids per zone, if you have a lot of Voids saved up. Then moves onto the next zone and does more voids.', 'value', '-1', null, 'Maps'); //-1 Autograbs your Finish Daily Z Mod
0 Disables this setting
Positive Numbers add to your normal void zone on a daily

Possible number input? createSetting('DailyVoidMod', 'Daily Void Zone Mod', 'If this is on, your daily autoportal mod (Core) will also apply to Void maps on dailies. For example, if you have void maps and autoportal set to 200 on normal runs, and your daily mod is 15, you will do voids and portal 15 zones later on a daily.', 'boolean', true, null, 'Maps'); + createSetting('PlusMapVoidToggle', 'Plus Maps for Voids', '-1/0 = Off
Max Value is 10!!!

If this is on, AT will grab a prestigious map X zones up, and run it once (to grab the dagger prestige). This is independent of the new special map mods button that Gen is testing. I cba to make this \'smart\' and actively calculate what zone to go for...
Values above 10 will NOT work at all. Advise 1-5.', 'value', '0', null, 'Maps'); createSetting('VoidCheck', 'Void Difficulty Check', 'How many hits to be able to take from a void map boss in X stance before we attempt the map. Higher values will get you stronger (by farming maps for health) before attempting. Disabling this with 0 or -1 translates into a default of surviving 2 hits. I recommend somewhere between 2 and 12 (default is now 6).', 'value', '6', null, 'Maps'); createSetting('TrimpleZ', 'Trimple Z', 'I don\'t really think doing this automatically is a good idea. You might want to farm for a bit before this, but I\'m not sure if it\'s meaningful at all to make a \'farm X minutes before trimple\' parameter to go along with it. Set it to the zone you want and it will run Trimple of Doom for Ancient Treasure AFTER farming and getting map stacks. If it is a negative number, this will be disabled after a successful run so you can set it differently next time.', 'valueNegative', 0, null, 'Maps'); //in reality this needs another setting to make it farm for a set number of minutes without spending anything. And I cba cause its a meh setting anyway. Advancing 2 zones more than doubles your income. Only useful for spire I, and IMO you may aswell actually play the game manually at SOME point. createSetting('AdvMapSpecialModifier', 'Map Special Modifier', 'EXPERIMENTAL. Attempt to select the BEST map special attacks mod. With this on, this will replace the normal behavior. If bugs, please report as this will become more default soon.', 'boolean', false, null, 'Maps'); diff --git a/modules/fight.js b/modules/fight.js index 03375b2d0..2d869ff0c 100644 --- a/modules/fight.js +++ b/modules/fight.js @@ -126,4 +126,6 @@ if (game.global.soldierHealth == 0 && !(game.global.spireActive || (game.global. } if ((needPrestige || !enoughDamage) && game.global.world>=200 && (getEmpowerment() == "Ice" || (getEmpowerment() == "Wind" && game.global.realBreedTime >= 45500)) && !game.global.mapsActive && game.global.mapBonus != 10 && game.global.world!=game.options.menu.mapAtZone.setZone) { forceAbandonTrimps(); - } */ + } + + */ diff --git a/modules/maps.js b/modules/maps.js index 160226b39..9674e95ba 100644 --- a/modules/maps.js +++ b/modules/maps.js @@ -32,6 +32,7 @@ MODULES["maps"].maxMapBonusAfterZ = MODULES["maps"].maxMapBonus; //Max Map Bon var stackingTox = false; var doVoids = false; var needToVoid = false; +var plusMapVoid = false; var needPrestige = false; var skippedPrestige = false; var voidCheckPercent = 0; @@ -908,3 +909,43 @@ function mapTimeEstimater() { mapTimeEstimate = 0; return mapTimeEstimate; } + +//NEW KFrowde + Sliverz +//Set up Vars +var plusMapVoidLastZone = null; +var plusMapVoid = (voidMapLevelSetting > 0) && (game.global.totalVoidMaps > 0) && (game.global.world == voidMapLevelSettingZone); //Sanity check +var plusMapVoidInput = getPageSetting('PlusMapVoidToggle') +//Check that you should do this, check you've enabled it between the correct values, check that it hasn't already run this zone +if ((plusMapVoid) && (plusMapVoidInput > 0 && plusMapVoidInput <= 10) && (plusMapVoidLastZone === null || plusMapVoidLastZone !== game.global.world)) { + document.getElementById("biomeAdvMapsSelect").value = "Random"; + document.getElementById('advExtraLevelSelect').value = plusMapVoidInput; + document.getElementById('advSpecialSelect').value = "p"; + document.getElementById("lootAdvMapsRange").value = 0; + document.getElementById("difficultyAdvMapsRange").value = 9; + document.getElementById("sizeAdvMapsRange").value = 9; + document.getElementById('advPerfectCheckbox').checked = false; + updateMapCost(); + buyMap(); + selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); + runMap(); + plusMapVoidLastZone = game.global.world; //This stops it from looping +} +else + return; + +/* +function plusFivePres(){ + document.getElementById("biomeAdvMapsSelect").value = "Random"; + document.getElementById('advExtraLevelSelect').value = 5; + document.getElementById('advSpecialSelect').value = "p"; + document.getElementById("lootAdvMapsRange").value = 0; + document.getElementById("difficultyAdvMapsRange").value = 9; + document.getElementById("sizeAdvMapsRange").value = 9; + document.getElementById('advPerfectCheckbox').checked = false; + updateMapCost(); + } +plusFivePres(); +buyMap(); +selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); +runMap(); +*/ From 4a6fa7a6a2c4eae18403fcc62440d27f952d7d3b Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Fri, 27 Apr 2018 13:09:41 +0100 Subject: [PATCH 126/365] bundle VM +lvl map into automaps --- modules/maps.js | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/modules/maps.js b/modules/maps.js index 06f15ba5d..9da323990 100644 --- a/modules/maps.js +++ b/modules/maps.js @@ -95,6 +95,28 @@ function autoMap() { (game.global.world >= voidMapLevelSettingZone && getPageSetting('RunNewVoidsUntilNew') != 0 && (voidsuntil == -1 || game.global.world <= (voidsuntil + voidMapLevelSettingZone)))); if(game.global.totalVoidMaps == 0 || !needToVoid) doVoids = false; + + //NEW KFrowde + Sliverz + //Set up vars + var plusMapVoidLastZone + var plusMapVoid = (voidMapLevelSetting > 0) && (game.global.totalVoidMaps > 0) && (game.global.world == voidMapLevelSettingZone); //Sanity check + var plusMapVoidInput = getPageSetting('PlusMapVoidToggle') + //Check that you should do this, check you've enabled it between the correct values, check that it hasn't already run this zone + if ((plusMapVoid) && (plusMapVoidInput > 0 && plusMapVoidInput <= 10) && (plusMapVoidLastZone === null || plusMapVoidLastZone !== game.global.world)) { + document.getElementById("biomeAdvMapsSelect").value = "Random"; + document.getElementById('advExtraLevelSelect').value = plusMapVoidInput; + document.getElementById('advSpecialSelect').value = "p"; + document.getElementById("lootAdvMapsRange").value = 0; + document.getElementById("difficultyAdvMapsRange").value = 9; + document.getElementById("sizeAdvMapsRange").value = 9; + document.getElementById('advPerfectCheckbox').checked = false; + updateMapCost(); + buyMap(); + selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); + runMap(); + plusMapVoidLastZone = game.global.world; //This should have stopped it from looping + } + // if force prestige, check if we are behind any first if ((getPageSetting('ForcePresZ') >= 0) && ((game.global.world+extraMapLevels) >= getPageSetting('ForcePresZ'))) { const prestigeList = ['Supershield','Dagadder','Megamace','Polierarm','Axeidic','Greatersword','Harmbalest','Bootboost','Hellishmet','Pantastic','Smoldershoulder','Bestplate','GambesOP']; @@ -910,7 +932,7 @@ function mapTimeEstimater() { return mapTimeEstimate; } -//NEW KFrowde + Sliverz +/* //NEW KFrowde + Sliverz //Set up Vars var plusMapVoidLastZone = null; var plusMapVoid = (voidMapLevelSetting > 0) && (game.global.totalVoidMaps > 0) && (game.global.world == voidMapLevelSettingZone); //Sanity check @@ -929,7 +951,7 @@ if ((plusMapVoid) && (plusMapVoidInput > 0 && plusMapVoidInput <= 10) && (plusMa selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); runMap(); plusMapVoidLastZone = game.global.world; //This stops it from looping -} +}/* /* function plusFivePres(){ From f3f18144414e694c0097d82aabd38b157c4a2685 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 13:27:38 +0100 Subject: [PATCH 127/365] added spire sub --- SettingsGUI.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index f51de0f4a..5c9bd92c6 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -178,6 +178,7 @@ function initializeAllTabs() { createTabs("Jobs", "Jobs - Worker Settings"); createTabs("Gear", "Gear - Equipment Settings"); createTabs("Maps", "Maps - AutoMaps & VoidMaps Settings"); + createTabs("Spire", "Spire - Settings for Spires"); createTabs("Combat", "Combat & Stance Settings"); createTabs("Scryer", "Scryer Settings"); createTabs("Magma", "Dimensional Generator & Magmite Settings"); @@ -350,11 +351,6 @@ function initializeAllSettings() { createSetting('FarmWhenNomStacks7', 'Farm on >7 NOMstacks', 'Optional. If Improbability already has 5 NOMstacks, stack 30 Anticipation. If the Improbability has >7 NOMstacks on it, get +200% dmg from MapBonus. If we still cant kill it, enter Farming mode at 30 stacks, Even with DisableFarming On! (exits when we get under 10x). Farms if we hit 100 stacks in the world. If we ever hit (100) nomstacks in a map (likely a voidmap), farm, (exit the voidmap) and (prevent void from running, until situation is clear). Restarts any voidmaps if we hit 100 stacks. ', 'boolean', false, null, 'Maps'); //Line2 - createSetting('MaxStacksForSpire', 'Max Map Bonus for Spire', 'Get max map bonus before running the Spire.', 'boolean', false, null, 'Maps'); //Does farm before spire not cover this fairly well anyway? grabbing +1 equips would make way more difference anyway - createSetting('MinutestoFarmBeforeSpire', 'Farm Before Spire', 'Farm level 200/199(or BW) maps for X minutes before continuing onto attempting Spire.
NOTE: Set 0 to disable entirely (default).
Setting to -1/Infinite does not work here, set a very high number instead.', 'value', '0', null, 'Maps'); - createSetting('IgnoreSpiresUntil', 'Ignore Spires Until', 'Spire specific settings like end-at-cell are ignored until at least this zone is reached (0 to disable).
Does not work with Run Bionic Before Spire.', 'value', '200', null, 'Maps'); - createSetting('RunBionicBeforeSpire', 'Run Bionic Before Spire', 'CAUTION: Runs Bionic Wonderlands and repeatedly farms Bionic VI @ level 200 before attempting Spire, for the purpose of resource farming. Then it attempts the spire. The Minutes-Before-Spire timer runs concurrently to this, and needs to be set. If not set, it will exit without doing any Bionics... You can un-toggle it on the fly.
NOTE: Turning this on also mandates that Run Unique Maps be on.
WARNING: These 100 square maps take ~3x longer than normal maps.
WARNING: If you dont have Bionic Magnet mastery, this will run the 5 pre-requisites and take longer.
NOTE: In fact, it may not be what you want at all.', 'boolean', false, null, 'Maps'); //OUTDATED! - createSetting('ExitSpireCell', 'Exit Spire After Cell', 'Optional/Rare. Exits the Spire early, after completing cell X. example: 40 for Row 4. (use 0 or -1 to disable)', 'value', '-1', null, 'Maps'); createSetting('CorruptionCalc', 'Corruption Farm Mode', 'Recommended. Enabling this will cause the Automaps routine to take amount of corruption in a zone into account, to decide whether it should do maps first for map bonus. ONLY in Zone 181+ (or Headstart 1,2,3 zone: 176,166,151) ', 'boolean', true, null, 'Maps'); createSetting('MaxTox', 'Max Toxicity Stacks', 'Get maximum toxicity stacks before killing the improbability in each zone 60 and above. Generally only recommended for 1 run to maximize bone portal value. This setting will revert to disabled after a successful Max-Tox run + Toxicity Autoportal.', 'boolean', false, null, 'Maps'); @@ -372,6 +368,16 @@ function initializeAllSettings() { +//Spire + createSetting('MaxStacksForSpire', 'Max Map Bonus for Spire', 'Get max map bonus before running the Spire.', 'boolean', false, null, 'Spire'); //Does farm before spire not cover this fairly well anyway? grabbing +1 equips would make way more difference anyway + createSetting('MinutestoFarmBeforeSpire', 'Farm Before Spire', 'Farm level 200/199(or BW) maps for X minutes before continuing onto attempting Spire.
NOTE: Set 0 to disable entirely (default).
Setting to -1/Infinite does not work here, set a very high number instead.', 'value', '0', null, 'Spire'); + createSetting('IgnoreSpiresUntil', 'Ignore Spires Until', 'Spire specific settings like end-at-cell are ignored until at least this zone is reached (0 to disable).
Does not work with Run Bionic Before Spire.', 'value', '200', null, 'Spire'); + createSetting('RunBionicBeforeSpire', 'Run Bionic Before Spire', 'CAUTION: Runs Bionic Wonderlands and repeatedly farms Bionic VI @ level 200 before attempting Spire, for the purpose of resource farming. Then it attempts the spire. The Minutes-Before-Spire timer runs concurrently to this, and needs to be set. If not set, it will exit without doing any Bionics... You can un-toggle it on the fly.
NOTE: Turning this on also mandates that Run Unique Maps be on.
WARNING: These 100 square maps take ~3x longer than normal maps.
WARNING: If you dont have Bionic Magnet mastery, this will run the 5 pre-requisites and take longer.
NOTE: In fact, it may not be what you want at all.', 'boolean', false, null, 'Spire'); //OUTDATED! + createSetting('ExitSpireCell', 'Exit Spire After Cell', 'Optional/Rare. Exits the Spire early, after completing cell X. example: 40 for Row 4. (use 0 or -1 to disable)', 'value', '-1', null, 'Spire'); + + + + //Combat //Subsection1Line1 createSetting('BetterAutoFight', ['Better AutoFight OFF', 'Better Auto Fight 1', 'Better Auto Fight 2', 'Better Auto Fight 3'], '4-Way Button, Recommended. Will automatically handle fighting.
BAF1 = Old Algo (Fights if dead, new squad ready, new squad breed timer target exceeded, and if breeding takes under 0.5 seconds
BAF2 = Newer, As with BAF1, but also solves DimGen looping, sends trimps immediately when breed target met, and deals with the consequences by firing geneticists
BAF3 = Uses vanilla autofight, and force fights when dead except in VM and Spire.
WARNING: If you autoportal with BetterAutoFight disabled, the game may sit there doing nothing until you click FIGHT. (not good for afk) ', 'multitoggle', 3, null, "Combat"); From 40b333127c2d1f6d367a7bb794267de4f7069f78 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 13:43:30 +0100 Subject: [PATCH 128/365] Added other spire settings, and BW raiding --- SettingsGUI.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 5c9bd92c6..70f9c0795 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -245,7 +245,6 @@ function initializeAllSettings() { //createSetting('ManageBreedtimerNew', ['Manual Breed Timer', 'Auto Breed Timer', 'Auto No Patience'], 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges, and accounts for the patience mastery.
[ON](Yellow): The same as above, but ignores patience and will not set a breed timer longer than 30s.
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'multitoggle', 1, null, "Core"); //This replaces the two settings below, but do we really need an option to ignore patience?? createSetting('ManageBreedtimer', 'Auto Breed Timer', 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges (0, 3.5s, 10s, 30s).
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'boolean', true, null, "Core"); createSetting('GeneticistTimer', 'Geneticist Timer', 'Manages the breed timer by hiring/firing Geneticists for the purpose of setting the ideal anticpation stacks. Disable with -1 to disable the Hiring/Firing of geneticists.
Info: Potency and Nursery buying behavior is adjusted dynamically (and disabling no longer disables potency). The Automatic Genetecist Hiring Process can best be summarized by: Buy/Wait/Die,Repeat. (if you do not die, no action is taken). Also self-kills (trimpicide) aka force abandon when your anti-stacks aren\'t maxed out (conservatively).

Controlled automatically (locked) when Auto Breed Timer is on.', 'value', '30', null, "Core"); - createSetting('SpireBreedTimer', 'Spire Breed Timer', 'Overrides the normal breed timer for the Spire (Affected by ignore spires until zone in Maps tab). Use -1 to disable this special setting.', 'value', -1, null, 'Core'); createSetting('BreedFire', 'Breed Fire', 'OPTIONAL. Fire Lumberjacks and Miners to speed up breeding when needed. Basically trades wood/metal to cut the wait between deaths down. Disclaimer: May heavily negatively impact wood-gathering. ', 'boolean', false, null, 'Core'); createSetting('TrapTrimps', 'Trap Trimps', 'Automatically trap trimps when needed, including building traps. (when you turn this off, you may aswell turn off the in-game autotraps button, think of the starving trimps that could eat that food!)', 'boolean', true, null, "Core"); @@ -298,9 +297,7 @@ function initializeAllSettings() { createSetting('WarpstationWall3', 'Warpstation Wall', 'Conserves Metal. Only buys 1 Warpstation when you can afford X warpstations metal cost (at the first one\'s price, simple math). -1, 0, 1 = disable. In other words, only allows warps that cost less than 1/nth your currently owned metal. (to save metal for prestiges)', 'value', -1, null, 'Buildings'); createSetting('MaxNursery', 'Max Nurseries', 'Advanced. Recommend: -1 until you reach Magma (z230+)', 'value', '-1', null, "Buildings"); createSetting('NoNurseriesUntil', 'No Nurseries Until z', 'For Magma z230+ purposes. Nurseries get shut down, and wasting nurseries early on is probably a bad idea. Might want to set this to 230+ for now. Can use combined with the old Max Nurseries cap setting.', 'value', -1, null, 'Buildings'); - createSetting('PreSpireNurseries', 'Nurseries pre-Spire', 'Set the maximum number of Nurseries to build for Spires. Overrides No Nurseries Until z and Max Nurseries so you can keep them seperate! Will build nurseries before z200 for Spire 1, but only on the zone of Spires 2+ to avoid unnecessary burning. Disable with -1.', 'value', -1, null, 'Buildings'); - - + //Jobs @@ -369,13 +366,18 @@ function initializeAllSettings() { //Spire + //Line 1 createSetting('MaxStacksForSpire', 'Max Map Bonus for Spire', 'Get max map bonus before running the Spire.', 'boolean', false, null, 'Spire'); //Does farm before spire not cover this fairly well anyway? grabbing +1 equips would make way more difference anyway createSetting('MinutestoFarmBeforeSpire', 'Farm Before Spire', 'Farm level 200/199(or BW) maps for X minutes before continuing onto attempting Spire.
NOTE: Set 0 to disable entirely (default).
Setting to -1/Infinite does not work here, set a very high number instead.', 'value', '0', null, 'Spire'); createSetting('IgnoreSpiresUntil', 'Ignore Spires Until', 'Spire specific settings like end-at-cell are ignored until at least this zone is reached (0 to disable).
Does not work with Run Bionic Before Spire.', 'value', '200', null, 'Spire'); createSetting('RunBionicBeforeSpire', 'Run Bionic Before Spire', 'CAUTION: Runs Bionic Wonderlands and repeatedly farms Bionic VI @ level 200 before attempting Spire, for the purpose of resource farming. Then it attempts the spire. The Minutes-Before-Spire timer runs concurrently to this, and needs to be set. If not set, it will exit without doing any Bionics... You can un-toggle it on the fly.
NOTE: Turning this on also mandates that Run Unique Maps be on.
WARNING: These 100 square maps take ~3x longer than normal maps.
WARNING: If you dont have Bionic Magnet mastery, this will run the 5 pre-requisites and take longer.
NOTE: In fact, it may not be what you want at all.', 'boolean', false, null, 'Spire'); //OUTDATED! createSetting('ExitSpireCell', 'Exit Spire After Cell', 'Optional/Rare. Exits the Spire early, after completing cell X. example: 40 for Row 4. (use 0 or -1 to disable)', 'value', '-1', null, 'Spire'); + createSetting('SpireBreedTimer', 'Spire Breed Timer', 'Overrides the normal breed timer for the Spire (Affected by ignore spires until zone in Maps tab). Use -1 to disable this special setting.', 'value', -1, null, 'Spire'); + createSetting('PreSpireNurseries', 'Nurseries pre-Spire', 'Set the maximum number of Nurseries to build for Spires. Overrides No Nurseries Until z and Max Nurseries so you can keep them seperate! Will build nurseries before z200 for Spire 1, but only on the zone of Spires 2+ to avoid unnecessary burning. Disable with -1.', 'value', -1, null, 'Buildings'); - + //Line 2 + //createSetting('BWraidingzone', 'BW Raiding', 'Raids BW at zone specified. Example: 495, will raid BWs at z495. Needs "Max BW to raid" setting to work. ', 'value', -1, null, 'Spire'); + //createSetting('BWraidingmax', 'Max BW to raid', 'Raids BWs until zone specified. Example: 515, will raid all BWs for all gear until 515. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to world. ', 'value', -1, null, 'Spire'); //Combat From 763fd818d690031d98ed1ef79a8edc01f8e5c283 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 13:54:24 +0100 Subject: [PATCH 129/365] Started BW raid --- modules/other.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/modules/other.js b/modules/other.js index 64bc59541..db905d91f 100644 --- a/modules/other.js +++ b/modules/other.js @@ -132,3 +132,15 @@ function exitSpireCell() { if(isActiveSpireAT() && game.global.lastClearedCell >= getPageSetting('ExitSpireCell')-1) endSpire(); } + +//var raided = false; + +//BWraidingzone +//function BWraidingzone() { + // getPageSetting('BWraidingzone') +//} + +//BWraidingmax +//function BWraidingmax() { + //getPageSetting('BWraidingmax') +//} From 9d4dbdad98b30619fb85e773222cba5364eabe96 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 15:22:20 +0100 Subject: [PATCH 130/365] Update other.js --- modules/other.js | 60 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 56 insertions(+), 4 deletions(-) diff --git a/modules/other.js b/modules/other.js index db905d91f..01a052638 100644 --- a/modules/other.js +++ b/modules/other.js @@ -133,12 +133,64 @@ function exitSpireCell() { endSpire(); } -//var raided = false; +var BWraidz = getPageSetting('BWraidingzone'); +var bwraid = false; +var prestraid = false; //BWraidingzone -//function BWraidingzone() { - // getPageSetting('BWraidingzone') -//} +function BWraidingzone() { + if (game.global.world == BWraidz && getPageSetting('AutoMaps') == 1 && game.global.mapsActive && !prestraid) + { + toggleAutoMaps(); + repeatClicked(); + while (game.options.menu.repeatUntil.enabled!=2) + { + toggleSetting('repeatUntil'); + } + setTimeout(function(){ + repeatClicked(); + game.global.world == BWraidz ? plusSixPres():plusFivePres(); + buyMap(); + selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); + runMap(); + prestraid = true; + },3000 ); + } + else if (prestraid && game.global.preMapsActive) + { + recycleMap(); + toggleAutoMaps(); + } + } + if (game.global.world == BWraidz+1) + { + game.options.menu.mapAtZone.enabled = 1; + bwraid = false; + } + +function plusFivePres() + { + document.getElementById("biomeAdvMapsSelect").value = "Random"; + document.getElementById('advExtraLevelSelect').value = 5; + document.getElementById('advSpecialSelect').value = 0; + document.getElementById("lootAdvMapsRange").value = 0; + document.getElementById("difficultyAdvMapsRange").value = 9; + document.getElementById("sizeAdvMapsRange").value = 9; + document.getElementById('advPerfectCheckbox').checked = false; + updateMapCost(); + } + + function plusSixPres() + { + document.getElementById("biomeAdvMapsSelect").value = "Random"; + document.getElementById('advExtraLevelSelect').value = 6; + document.getElementById('advSpecialSelect').value = 0; + document.getElementById("lootAdvMapsRange").value = 0; + document.getElementById("difficultyAdvMapsRange").value = 9; + document.getElementById("sizeAdvMapsRange").value = 9; + document.getElementById('advPerfectCheckbox').checked = false; + updateMapCost(); + } //BWraidingmax //function BWraidingmax() { From 321e2e59a2a7788b6bd031746d1c050927dc138c Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 15:23:39 +0100 Subject: [PATCH 131/365] Update SettingsGUI.js --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 70f9c0795..2ae4615a9 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -376,7 +376,7 @@ function initializeAllSettings() { createSetting('PreSpireNurseries', 'Nurseries pre-Spire', 'Set the maximum number of Nurseries to build for Spires. Overrides No Nurseries Until z and Max Nurseries so you can keep them seperate! Will build nurseries before z200 for Spire 1, but only on the zone of Spires 2+ to avoid unnecessary burning. Disable with -1.', 'value', -1, null, 'Buildings'); //Line 2 - //createSetting('BWraidingzone', 'BW Raiding', 'Raids BW at zone specified. Example: 495, will raid BWs at z495. Needs "Max BW to raid" setting to work. ', 'value', -1, null, 'Spire'); + createSetting('BWraidingzone', 'BW Raiding', 'Raids BW at zone specified. Example: 495, will raid BWs at z495. Needs "Max BW to raid" setting to work. ', 'value', -1, null, 'Spire'); //createSetting('BWraidingmax', 'Max BW to raid', 'Raids BWs until zone specified. Example: 515, will raid all BWs for all gear until 515. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to world. ', 'value', -1, null, 'Spire'); From d5cc5bc746c3178350c872e2786463162a82317a Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 15:31:29 +0100 Subject: [PATCH 132/365] Update SettingsGUI.js --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 2ae4615a9..16fa734a6 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -376,7 +376,7 @@ function initializeAllSettings() { createSetting('PreSpireNurseries', 'Nurseries pre-Spire', 'Set the maximum number of Nurseries to build for Spires. Overrides No Nurseries Until z and Max Nurseries so you can keep them seperate! Will build nurseries before z200 for Spire 1, but only on the zone of Spires 2+ to avoid unnecessary burning. Disable with -1.', 'value', -1, null, 'Buildings'); //Line 2 - createSetting('BWraidingzone', 'BW Raiding', 'Raids BW at zone specified. Example: 495, will raid BWs at z495. Needs "Max BW to raid" setting to work. ', 'value', -1, null, 'Spire'); + createSetting('BWraidingzone', 'BW Raiding', 'Raids BW at zone specified. Example: 495, will raid BWs at z495. Needs Max BW to raid setting to work.', 'value', -1, null, 'Spire'); //createSetting('BWraidingmax', 'Max BW to raid', 'Raids BWs until zone specified. Example: 515, will raid all BWs for all gear until 515. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to world. ', 'value', -1, null, 'Spire'); From d4c1442858098c0df0c6dd82cc22e36a14b31fd3 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 15:37:44 +0100 Subject: [PATCH 133/365] Update other.js --- modules/other.js | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/modules/other.js b/modules/other.js index 01a052638..afb742f01 100644 --- a/modules/other.js +++ b/modules/other.js @@ -140,7 +140,7 @@ var prestraid = false; //BWraidingzone function BWraidingzone() { if (game.global.world == BWraidz && getPageSetting('AutoMaps') == 1 && game.global.mapsActive && !prestraid) - { + toggleAutoMaps(); repeatClicked(); while (game.options.menu.repeatUntil.enabled!=2) @@ -149,18 +149,11 @@ function BWraidingzone() { } setTimeout(function(){ repeatClicked(); - game.global.world == BWraidz ? plusSixPres():plusFivePres(); - buyMap(); + plusSixPres(); selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); runMap(); prestraid = true; },3000 ); - } - else if (prestraid && game.global.preMapsActive) - { - recycleMap(); - toggleAutoMaps(); - } } if (game.global.world == BWraidz+1) { From 7630fd6d5192ffe2f368fe8e140ce3db8546e975 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 15:39:02 +0100 Subject: [PATCH 134/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index afb742f01..0bfce93a4 100644 --- a/modules/other.js +++ b/modules/other.js @@ -149,7 +149,7 @@ function BWraidingzone() { } setTimeout(function(){ repeatClicked(); - plusSixPres(); + plusSixPres(); selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); runMap(); prestraid = true; From 333674761c734c66f2a912e9ec3c988bad58b9dc Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 15:47:56 +0100 Subject: [PATCH 135/365] Update other.js --- modules/other.js | 51 +++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/modules/other.js b/modules/other.js index 0bfce93a4..ac38374b4 100644 --- a/modules/other.js +++ b/modules/other.js @@ -133,13 +133,37 @@ function exitSpireCell() { endSpire(); } +function plusFivePres() + { + document.getElementById("biomeAdvMapsSelect").value = "Random"; + document.getElementById('advExtraLevelSelect').value = 5; + document.getElementById('advSpecialSelect').value = 0; + document.getElementById("lootAdvMapsRange").value = 0; + document.getElementById("difficultyAdvMapsRange").value = 9; + document.getElementById("sizeAdvMapsRange").value = 9; + document.getElementById('advPerfectCheckbox').checked = false; + updateMapCost(); + } + + function plusSixPres() + { + document.getElementById("biomeAdvMapsSelect").value = "Random"; + document.getElementById('advExtraLevelSelect').value = 6; + document.getElementById('advSpecialSelect').value = 0; + document.getElementById("lootAdvMapsRange").value = 0; + document.getElementById("difficultyAdvMapsRange").value = 9; + document.getElementById("sizeAdvMapsRange").value = 9; + document.getElementById('advPerfectCheckbox').checked = false; + updateMapCost(); + } + var BWraidz = getPageSetting('BWraidingzone'); var bwraid = false; var prestraid = false; //BWraidingzone function BWraidingzone() { - if (game.global.world == BWraidz && getPageSetting('AutoMaps') == 1 && game.global.mapsActive && !prestraid) + if (game.global.world == BWraidz && !prestraid) toggleAutoMaps(); repeatClicked(); @@ -150,6 +174,7 @@ function BWraidingzone() { setTimeout(function(){ repeatClicked(); plusSixPres(); + buymap(); selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); runMap(); prestraid = true; @@ -161,29 +186,7 @@ function BWraidingzone() { bwraid = false; } -function plusFivePres() - { - document.getElementById("biomeAdvMapsSelect").value = "Random"; - document.getElementById('advExtraLevelSelect').value = 5; - document.getElementById('advSpecialSelect').value = 0; - document.getElementById("lootAdvMapsRange").value = 0; - document.getElementById("difficultyAdvMapsRange").value = 9; - document.getElementById("sizeAdvMapsRange").value = 9; - document.getElementById('advPerfectCheckbox').checked = false; - updateMapCost(); - } - - function plusSixPres() - { - document.getElementById("biomeAdvMapsSelect").value = "Random"; - document.getElementById('advExtraLevelSelect').value = 6; - document.getElementById('advSpecialSelect').value = 0; - document.getElementById("lootAdvMapsRange").value = 0; - document.getElementById("difficultyAdvMapsRange").value = 9; - document.getElementById("sizeAdvMapsRange").value = 9; - document.getElementById('advPerfectCheckbox').checked = false; - updateMapCost(); - } + //BWraidingmax //function BWraidingmax() { From b67b2ab8719c6be5f8c2ddf9c3ce160f8e10c687 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 15:48:48 +0100 Subject: [PATCH 136/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index ac38374b4..c00b40adc 100644 --- a/modules/other.js +++ b/modules/other.js @@ -183,7 +183,7 @@ function BWraidingzone() { if (game.global.world == BWraidz+1) { game.options.menu.mapAtZone.enabled = 1; - bwraid = false; + prestraid = false; } From d050a4d88c555695e9716a1924d47da79552c10c Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 15:53:38 +0100 Subject: [PATCH 137/365] Update SettingsGUI.js --- SettingsGUI.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 16fa734a6..ad9eb7117 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -376,7 +376,8 @@ function initializeAllSettings() { createSetting('PreSpireNurseries', 'Nurseries pre-Spire', 'Set the maximum number of Nurseries to build for Spires. Overrides No Nurseries Until z and Max Nurseries so you can keep them seperate! Will build nurseries before z200 for Spire 1, but only on the zone of Spires 2+ to avoid unnecessary burning. Disable with -1.', 'value', -1, null, 'Buildings'); //Line 2 - createSetting('BWraidingzone', 'BW Raiding', 'Raids BW at zone specified. Example: 495, will raid BWs at z495. Needs Max BW to raid setting to work.', 'value', -1, null, 'Spire'); + createSetting('BWraid', 'BW Raiding', 'Raids BW at zone specified in BW Raiding Z.', 'boolean', false, null, 'Spire'); + createSetting('BWraidingzone', 'BW Raiding Z', 'Raids BW at zone specified. Example: 495, will raid BWs at z495. Needs Max BW to raid setting to work.', 'value', -1, null, 'Spire'); //createSetting('BWraidingmax', 'Max BW to raid', 'Raids BWs until zone specified. Example: 515, will raid all BWs for all gear until 515. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to world. ', 'value', -1, null, 'Spire'); From 763534693618331b0489548fb3c44739c427df3a Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 15:57:57 +0100 Subject: [PATCH 138/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index c00b40adc..62cae6b9b 100644 --- a/modules/other.js +++ b/modules/other.js @@ -163,7 +163,7 @@ var prestraid = false; //BWraidingzone function BWraidingzone() { - if (game.global.world == BWraidz && !prestraid) + if (BWraid == true && game.global.world == BWraidz && !prestraid && getPageSetting('AutoMaps') == 1) toggleAutoMaps(); repeatClicked(); From 3033df41d5d642ba19f3074de1b21fcda9175eb9 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 16:06:29 +0100 Subject: [PATCH 139/365] Update other.js --- modules/other.js | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/modules/other.js b/modules/other.js index 62cae6b9b..648e9486b 100644 --- a/modules/other.js +++ b/modules/other.js @@ -163,23 +163,24 @@ var prestraid = false; //BWraidingzone function BWraidingzone() { - if (BWraid == true && game.global.world == BWraidz && !prestraid && getPageSetting('AutoMaps') == 1) + if (BWraid == true && game.global.world == BWraidz && !prestraid && getPageSetting('AutoMaps') == 1) //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on - toggleAutoMaps(); - repeatClicked(); - while (game.options.menu.repeatUntil.enabled!=2) + toggleAutoMaps(); //turns automaps off so it doest interfere + repeatClicked(); //??? + while (game.options.menu.repeatUntil.enabled!=2)// no idea what this is, but i assume its to make it repeat till no prestiges drop? { toggleSetting('repeatUntil'); - } - setTimeout(function(){ - repeatClicked(); - plusSixPres(); - buymap(); - selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); + } + setTimeout(function(){ //can this work without timeout? + repeatClicked(); //??? + plusSixPres(); //sets maps up + buymap(); //buys the prest 6 map, at least, i hope so + selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); //selects first map??? runMap(); - prestraid = true; - },3000 ); + prestraid = true; //successfully raided +6 map for all prestiges, so sets to true + },3000 ); //timeout } +// what does this do? if (game.global.world == BWraidz+1) { game.options.menu.mapAtZone.enabled = 1; From 26044edd844b48ff3ce2b1e557ff84328ae2a4cc Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 16:11:51 +0100 Subject: [PATCH 140/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 648e9486b..984d8b95a 100644 --- a/modules/other.js +++ b/modules/other.js @@ -158,7 +158,7 @@ function plusFivePres() } var BWraidz = getPageSetting('BWraidingzone'); -var bwraid = false; +var bwraidedd = false; var prestraid = false; //BWraidingzone From 145d25eb65e5a39888fafb8bd59eb4ab025e14fd Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Fri, 27 Apr 2018 20:02:33 +0100 Subject: [PATCH 141/365] Update SettingsGUI.js --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index ad9eb7117..1078cf85f 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -245,6 +245,7 @@ function initializeAllSettings() { //createSetting('ManageBreedtimerNew', ['Manual Breed Timer', 'Auto Breed Timer', 'Auto No Patience'], 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges, and accounts for the patience mastery.
[ON](Yellow): The same as above, but ignores patience and will not set a breed timer longer than 30s.
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'multitoggle', 1, null, "Core"); //This replaces the two settings below, but do we really need an option to ignore patience?? createSetting('ManageBreedtimer', 'Auto Breed Timer', 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges (0, 3.5s, 10s, 30s).
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'boolean', true, null, "Core"); createSetting('GeneticistTimer', 'Geneticist Timer', 'Manages the breed timer by hiring/firing Geneticists for the purpose of setting the ideal anticpation stacks. Disable with -1 to disable the Hiring/Firing of geneticists.
Info: Potency and Nursery buying behavior is adjusted dynamically (and disabling no longer disables potency). The Automatic Genetecist Hiring Process can best be summarized by: Buy/Wait/Die,Repeat. (if you do not die, no action is taken). Also self-kills (trimpicide) aka force abandon when your anti-stacks aren\'t maxed out (conservatively).

Controlled automatically (locked) when Auto Breed Timer is on.', 'value', '30', null, "Core"); + createSetting('UsePatience', 'Enable Patience', 'Sets the default breed timer to 45 seconds if you have the Patience mastery.', 'boolean', true, null, 'Core'); createSetting('BreedFire', 'Breed Fire', 'OPTIONAL. Fire Lumberjacks and Miners to speed up breeding when needed. Basically trades wood/metal to cut the wait between deaths down. Disclaimer: May heavily negatively impact wood-gathering. ', 'boolean', false, null, 'Core'); createSetting('TrapTrimps', 'Trap Trimps', 'Automatically trap trimps when needed, including building traps. (when you turn this off, you may aswell turn off the in-game autotraps button, think of the starving trimps that could eat that food!)', 'boolean', true, null, "Core"); @@ -254,7 +255,6 @@ function initializeAllSettings() { createSetting('FinishC2', 'Finish Challenge2', 'Finish / Abandon Challenge2 (any) when this zone is reached, if you are running one. For manual use. Recommended: Zones ending with 0 for most Challenge2. Disable with -1. Does not affect Non-Challenge2 runs.', 'value', -1, null, 'Core'); if (game.worldUnlocks.easterEgg) createSetting('AutoEggs', 'AutoEggs', 'Click easter egg if it exists, upon entering a new zone. Warning: Quite overpowered. Please solemnly swear that you are up to no good.', 'boolean', false, null, 'Core'); //could really be removed?? - createSetting('UsePatience', 'Enable Patience', 'Sets the default breed timer to 45 seconds if you have the Patience mastery.', 'boolean', true, null, 'Core'); createSetting('AutoAllocatePerks', 'Auto Allocate Perks', 'Uses the AutoPerks ratio based preset system to automatically allocate your perks to spend whatever helium you have when you AutoPortal. Does not change Fixed Perks: siphonology, anticipation, meditation, relentlessness, range, agility, bait, trumps, packrat, capable. ', 'boolean', false, null, 'Core'); document.getElementById('AutoAllocatePerks').parentNode.insertAdjacentHTML('afterend','
'); From 4ec63eb1d6132b739a5052d0fbdd6d91b63daa85 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Fri, 27 Apr 2018 21:39:09 +0100 Subject: [PATCH 142/365] Cba to make this work. its buggy as hell --- SettingsGUI.js | 6 +++--- modules/maps.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 1078cf85f..5ab8c13c4 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -297,7 +297,7 @@ function initializeAllSettings() { createSetting('WarpstationWall3', 'Warpstation Wall', 'Conserves Metal. Only buys 1 Warpstation when you can afford X warpstations metal cost (at the first one\'s price, simple math). -1, 0, 1 = disable. In other words, only allows warps that cost less than 1/nth your currently owned metal. (to save metal for prestiges)', 'value', -1, null, 'Buildings'); createSetting('MaxNursery', 'Max Nurseries', 'Advanced. Recommend: -1 until you reach Magma (z230+)', 'value', '-1', null, "Buildings"); createSetting('NoNurseriesUntil', 'No Nurseries Until z', 'For Magma z230+ purposes. Nurseries get shut down, and wasting nurseries early on is probably a bad idea. Might want to set this to 230+ for now. Can use combined with the old Max Nurseries cap setting.', 'value', -1, null, 'Buildings'); - + //Jobs @@ -373,8 +373,8 @@ function initializeAllSettings() { createSetting('RunBionicBeforeSpire', 'Run Bionic Before Spire', 'CAUTION: Runs Bionic Wonderlands and repeatedly farms Bionic VI @ level 200 before attempting Spire, for the purpose of resource farming. Then it attempts the spire. The Minutes-Before-Spire timer runs concurrently to this, and needs to be set. If not set, it will exit without doing any Bionics... You can un-toggle it on the fly.
NOTE: Turning this on also mandates that Run Unique Maps be on.
WARNING: These 100 square maps take ~3x longer than normal maps.
WARNING: If you dont have Bionic Magnet mastery, this will run the 5 pre-requisites and take longer.
NOTE: In fact, it may not be what you want at all.', 'boolean', false, null, 'Spire'); //OUTDATED! createSetting('ExitSpireCell', 'Exit Spire After Cell', 'Optional/Rare. Exits the Spire early, after completing cell X. example: 40 for Row 4. (use 0 or -1 to disable)', 'value', '-1', null, 'Spire'); createSetting('SpireBreedTimer', 'Spire Breed Timer', 'Overrides the normal breed timer for the Spire (Affected by ignore spires until zone in Maps tab). Use -1 to disable this special setting.', 'value', -1, null, 'Spire'); - createSetting('PreSpireNurseries', 'Nurseries pre-Spire', 'Set the maximum number of Nurseries to build for Spires. Overrides No Nurseries Until z and Max Nurseries so you can keep them seperate! Will build nurseries before z200 for Spire 1, but only on the zone of Spires 2+ to avoid unnecessary burning. Disable with -1.', 'value', -1, null, 'Buildings'); - + createSetting('PreSpireNurseries', 'Nurseries pre-Spire', 'Set the maximum number of Nurseries to build for Spires. Overrides No Nurseries Until z and Max Nurseries so you can keep them seperate! Will build nurseries before z200 for Spire 1, but only on the zone of Spires 2+ to avoid unnecessary burning. Disable with -1.', 'value', -1, null, 'Spire'); + //Line 2 createSetting('BWraid', 'BW Raiding', 'Raids BW at zone specified in BW Raiding Z.', 'boolean', false, null, 'Spire'); createSetting('BWraidingzone', 'BW Raiding Z', 'Raids BW at zone specified. Example: 495, will raid BWs at z495. Needs Max BW to raid setting to work.', 'value', -1, null, 'Spire'); diff --git a/modules/maps.js b/modules/maps.js index 9da323990..a1921c94c 100644 --- a/modules/maps.js +++ b/modules/maps.js @@ -96,7 +96,7 @@ function autoMap() { if(game.global.totalVoidMaps == 0 || !needToVoid) doVoids = false; - //NEW KFrowde + Sliverz + //NEW KFrowde + Sliverz This has several issues: 1 - Buys fuckloads of maps, 2 - enters a BW map instead of the one that you want //Set up vars var plusMapVoidLastZone var plusMapVoid = (voidMapLevelSetting > 0) && (game.global.totalVoidMaps > 0) && (game.global.world == voidMapLevelSettingZone); //Sanity check From c4b11bf4354bc31ea71dd285213cca764079dabe Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 23:03:21 +0100 Subject: [PATCH 143/365] Update other.js --- modules/other.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 984d8b95a..a17bbe762 100644 --- a/modules/other.js +++ b/modules/other.js @@ -167,6 +167,8 @@ function BWraidingzone() { toggleAutoMaps(); //turns automaps off so it doest interfere repeatClicked(); //??? + if (!game.global.preMapsActive && !game.global.mapsActive) { + mapsClicked(); while (game.options.menu.repeatUntil.enabled!=2)// no idea what this is, but i assume its to make it repeat till no prestiges drop? { toggleSetting('repeatUntil'); @@ -186,7 +188,7 @@ function BWraidingzone() { game.options.menu.mapAtZone.enabled = 1; prestraid = false; } - +} //BWraidingmax From 7bea1e318d16585e0bcd6e85c2f7b0faea018b25 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 23:06:56 +0100 Subject: [PATCH 144/365] Update other.js --- modules/other.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/other.js b/modules/other.js index a17bbe762..86df66784 100644 --- a/modules/other.js +++ b/modules/other.js @@ -163,11 +163,10 @@ var prestraid = false; //BWraidingzone function BWraidingzone() { - if (BWraid == true && game.global.world == BWraidz && !prestraid && getPageSetting('AutoMaps') == 1) //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on + if (BWraid == true && game.global.world == BWraidz && !prestraid && getPageSetting('AutoMaps') == 1 && !game.global.preMapsActive && !game.global.mapsActive) //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on toggleAutoMaps(); //turns automaps off so it doest interfere - repeatClicked(); //??? - if (!game.global.preMapsActive && !game.global.mapsActive) { + repeatClicked(); //???!game.global.preMapsActive && !game.global.mapsActive mapsClicked(); while (game.options.menu.repeatUntil.enabled!=2)// no idea what this is, but i assume its to make it repeat till no prestiges drop? { From 0de023e16f895b6a98c74f279d8a513954e9a78c Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 23:07:30 +0100 Subject: [PATCH 145/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 86df66784..1c8d63628 100644 --- a/modules/other.js +++ b/modules/other.js @@ -187,7 +187,7 @@ function BWraidingzone() { game.options.menu.mapAtZone.enabled = 1; prestraid = false; } -} + //BWraidingmax From d74ecfc4ffe69a5991db45111e380a8a1f2fb765 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 23:09:29 +0100 Subject: [PATCH 146/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 1c8d63628..a66ae9376 100644 --- a/modules/other.js +++ b/modules/other.js @@ -163,7 +163,7 @@ var prestraid = false; //BWraidingzone function BWraidingzone() { - if (BWraid == true && game.global.world == BWraidz && !prestraid && getPageSetting('AutoMaps') == 1 && !game.global.preMapsActive && !game.global.mapsActive) //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on + if (BWraid == true && game.global.world == BWraidz && !prestraid && !game.global.preMapsActive && !game.global.mapsActive) //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on toggleAutoMaps(); //turns automaps off so it doest interfere repeatClicked(); //???!game.global.preMapsActive && !game.global.mapsActive From 238f17b11cab4ebb232fe1357f89daac5378fd56 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 23:09:55 +0100 Subject: [PATCH 147/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index a66ae9376..94999b7ff 100644 --- a/modules/other.js +++ b/modules/other.js @@ -165,7 +165,7 @@ var prestraid = false; function BWraidingzone() { if (BWraid == true && game.global.world == BWraidz && !prestraid && !game.global.preMapsActive && !game.global.mapsActive) //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on - toggleAutoMaps(); //turns automaps off so it doest interfere + //toggleAutoMaps(); //turns automaps off so it doest interfere repeatClicked(); //???!game.global.preMapsActive && !game.global.mapsActive mapsClicked(); while (game.options.menu.repeatUntil.enabled!=2)// no idea what this is, but i assume its to make it repeat till no prestiges drop? From 57db08005d2dce106a4454e9dc77db5f9bb86f21 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 23:12:47 +0100 Subject: [PATCH 148/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 94999b7ff..f82a754e8 100644 --- a/modules/other.js +++ b/modules/other.js @@ -163,7 +163,7 @@ var prestraid = false; //BWraidingzone function BWraidingzone() { - if (BWraid == true && game.global.world == BWraidz && !prestraid && !game.global.preMapsActive && !game.global.mapsActive) //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on + if (game.global.world == BWraidz && !prestraid && !game.global.preMapsActive && !game.global.mapsActive) //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on //toggleAutoMaps(); //turns automaps off so it doest interfere repeatClicked(); //???!game.global.preMapsActive && !game.global.mapsActive From c30e0af511ff6c9abe5461d5ab87bb6fd1b1706a Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 23:16:05 +0100 Subject: [PATCH 149/365] Update other.js --- modules/other.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index f82a754e8..dd63d99fa 100644 --- a/modules/other.js +++ b/modules/other.js @@ -163,11 +163,11 @@ var prestraid = false; //BWraidingzone function BWraidingzone() { - if (game.global.world == BWraidz && !prestraid && !game.global.preMapsActive && !game.global.mapsActive) //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on + if (game.global.world == BWraidz && !prestraid) //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on //toggleAutoMaps(); //turns automaps off so it doest interfere repeatClicked(); //???!game.global.preMapsActive && !game.global.mapsActive - mapsClicked(); + //mapsClicked(); while (game.options.menu.repeatUntil.enabled!=2)// no idea what this is, but i assume its to make it repeat till no prestiges drop? { toggleSetting('repeatUntil'); From c0a4e9c2cc59aa990044204cf615bfc267bce635 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 23:17:07 +0100 Subject: [PATCH 150/365] Update other.js --- modules/other.js | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index dd63d99fa..1923ac38b 100644 --- a/modules/other.js +++ b/modules/other.js @@ -184,7 +184,6 @@ function BWraidingzone() { // what does this do? if (game.global.world == BWraidz+1) { - game.options.menu.mapAtZone.enabled = 1; prestraid = false; } From 27ba3b46a2df4058e89afc1a116d7cc1d7ddf2e0 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 23:19:32 +0100 Subject: [PATCH 151/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 1923ac38b..7abf3af68 100644 --- a/modules/other.js +++ b/modules/other.js @@ -163,7 +163,7 @@ var prestraid = false; //BWraidingzone function BWraidingzone() { - if (game.global.world == BWraidz && !prestraid) //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on + while (game.global.world == BWraidz && !prestraid) //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on //toggleAutoMaps(); //turns automaps off so it doest interfere repeatClicked(); //???!game.global.preMapsActive && !game.global.mapsActive From 67cc3cf5976badd39848c4d3b21bf8296e8efa46 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 23:21:56 +0100 Subject: [PATCH 152/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 7abf3af68..ead1f5044 100644 --- a/modules/other.js +++ b/modules/other.js @@ -175,7 +175,7 @@ function BWraidingzone() { setTimeout(function(){ //can this work without timeout? repeatClicked(); //??? plusSixPres(); //sets maps up - buymap(); //buys the prest 6 map, at least, i hope so + buyMap(); //buys the prest 6 map, at least, i hope so selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); //selects first map??? runMap(); prestraid = true; //successfully raided +6 map for all prestiges, so sets to true From 574ec01155cf0f1255998552df6a82cdabde3ff3 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 23:22:45 +0100 Subject: [PATCH 153/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index ead1f5044..d4a5a4c40 100644 --- a/modules/other.js +++ b/modules/other.js @@ -163,7 +163,7 @@ var prestraid = false; //BWraidingzone function BWraidingzone() { - while (game.global.world == BWraidz && !prestraid) //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on + if (game.global.world == BWraidz && !prestraid) //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on //toggleAutoMaps(); //turns automaps off so it doest interfere repeatClicked(); //???!game.global.preMapsActive && !game.global.mapsActive From ac830dada573f18227321b6bab9fabbd295f25b7 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 23:30:39 +0100 Subject: [PATCH 154/365] Update other.js --- modules/other.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/other.js b/modules/other.js index d4a5a4c40..ba3b5941a 100644 --- a/modules/other.js +++ b/modules/other.js @@ -163,11 +163,13 @@ var prestraid = false; //BWraidingzone function BWraidingzone() { - if (game.global.world == BWraidz && !prestraid) //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on + if (game.global.world == BWraidz && !prestraid && !game.global.preMapsActive && !game.global.mapsActive && getPageSetting('AutoMaps') == 1) { + mapsClicked(); + //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on - //toggleAutoMaps(); //turns automaps off so it doest interfere + toggleAutoMaps(); //turns automaps off so it doest interfere repeatClicked(); //???!game.global.preMapsActive && !game.global.mapsActive - //mapsClicked(); + mapsClicked(); while (game.options.menu.repeatUntil.enabled!=2)// no idea what this is, but i assume its to make it repeat till no prestiges drop? { toggleSetting('repeatUntil'); @@ -180,7 +182,9 @@ function BWraidingzone() { runMap(); prestraid = true; //successfully raided +6 map for all prestiges, so sets to true },3000 ); //timeout + toggleAutoMaps(); } +} // what does this do? if (game.global.world == BWraidz+1) { From 21ce4db3086361c3b3df99eadd15e0d7ed1c3d08 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 23:34:13 +0100 Subject: [PATCH 155/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index ba3b5941a..55389d66f 100644 --- a/modules/other.js +++ b/modules/other.js @@ -163,7 +163,7 @@ var prestraid = false; //BWraidingzone function BWraidingzone() { - if (game.global.world == BWraidz && !prestraid && !game.global.preMapsActive && !game.global.mapsActive && getPageSetting('AutoMaps') == 1) { + if (game.global.world == BWraidz && !prestraid && !game.global.preMapsActive && !game.global.mapsActive) { mapsClicked(); //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on From 645e31f1df64ed95665761634d19843110ca6d2b Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 27 Apr 2018 23:35:16 +0100 Subject: [PATCH 156/365] Update other.js --- modules/other.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/other.js b/modules/other.js index 55389d66f..39e479ac1 100644 --- a/modules/other.js +++ b/modules/other.js @@ -163,11 +163,9 @@ var prestraid = false; //BWraidingzone function BWraidingzone() { - if (game.global.world == BWraidz && !prestraid && !game.global.preMapsActive && !game.global.mapsActive) { - mapsClicked(); - //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on + if (game.global.world == BWraidz && !prestraid && !game.global.preMapsActive && !game.global.mapsActive) { //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on - toggleAutoMaps(); //turns automaps off so it doest interfere + //toggleAutoMaps(); //turns automaps off so it doest interfere repeatClicked(); //???!game.global.preMapsActive && !game.global.mapsActive mapsClicked(); while (game.options.menu.repeatUntil.enabled!=2)// no idea what this is, but i assume its to make it repeat till no prestiges drop? From e70e45fbdf5b3d89f28e75019f8e2dd8f2f2ef33 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 4 May 2018 19:41:44 +0100 Subject: [PATCH 157/365] Update other.js --- modules/other.js | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/modules/other.js b/modules/other.js index 39e479ac1..acda0ccd8 100644 --- a/modules/other.js +++ b/modules/other.js @@ -157,16 +157,17 @@ function plusFivePres() updateMapCost(); } -var BWraidz = getPageSetting('BWraidingzone'); +var Praidz = getPageSetting('Praidingzone'); var bwraidedd = false; var prestraid = false; //BWraidingzone -function BWraidingzone() { - if (game.global.world == BWraidz && !prestraid && !game.global.preMapsActive && !game.global.mapsActive) { //checks if raiding enabled, your zone matches the bwraidz setting, you havent raided yet and automaps is on - - //toggleAutoMaps(); //turns automaps off so it doest interfere - repeatClicked(); //???!game.global.preMapsActive && !game.global.mapsActive +function Praidingzone() { + if (game.global.world == Praidz && !prestraid && !game.global.preMapsActive && !game.global.mapsActive) { //checks if raiding enabled, your zone matches the Praidz setting, you havent raided yet and automaps is on + if (getPageSetting('AutoMaps') == 1){ + toggleAutoMaps(); //turns automaps off so it doest interfere + } + repeatClicked(); //toggles off repeat mapsClicked(); while (game.options.menu.repeatUntil.enabled!=2)// no idea what this is, but i assume its to make it repeat till no prestiges drop? { @@ -174,7 +175,7 @@ function BWraidingzone() { } setTimeout(function(){ //can this work without timeout? repeatClicked(); //??? - plusSixPres(); //sets maps up + if(game.global.world == Praidz){ plusSixPres();} buyMap(); //buys the prest 6 map, at least, i hope so selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); //selects first map??? runMap(); @@ -182,15 +183,19 @@ function BWraidingzone() { },3000 ); //timeout toggleAutoMaps(); } + else if (prestraid && game.global.preMapsActive){ + recycleMap(); + toggleAutoMaps(); + game.options.menu.mapAtZone.enabled = 0; + } } -// what does this do? - if (game.global.world == BWraidz+1) + + if (game.global.world == Praidz+1) { prestraid = false; } - //BWraidingmax //function BWraidingmax() { //getPageSetting('BWraidingmax') From e5d1d225993e69b324c877fd33b7720c04354767 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 4 May 2018 19:42:51 +0100 Subject: [PATCH 158/365] Update SettingsGUI.js --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 5ab8c13c4..eb33fa776 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -377,7 +377,7 @@ function initializeAllSettings() { //Line 2 createSetting('BWraid', 'BW Raiding', 'Raids BW at zone specified in BW Raiding Z.', 'boolean', false, null, 'Spire'); - createSetting('BWraidingzone', 'BW Raiding Z', 'Raids BW at zone specified. Example: 495, will raid BWs at z495. Needs Max BW to raid setting to work.', 'value', -1, null, 'Spire'); + createSetting('Praidingzone', 'P Raiding Z', 'Raids Maps at zone specified. Example: 495, will raid Maps at z+6.', 'value', -1, null, 'Spire'); //createSetting('BWraidingmax', 'Max BW to raid', 'Raids BWs until zone specified. Example: 515, will raid all BWs for all gear until 515. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to world. ', 'value', -1, null, 'Spire'); From b9781086327e0d3a0293c958116957fa185b9099 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 4 May 2018 19:50:41 +0100 Subject: [PATCH 159/365] Update other.js --- modules/other.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index acda0ccd8..1fef0a261 100644 --- a/modules/other.js +++ b/modules/other.js @@ -161,7 +161,8 @@ var Praidz = getPageSetting('Praidingzone'); var bwraidedd = false; var prestraid = false; -//BWraidingzone +//Praidingzone + function Praidingzone() { if (game.global.world == Praidz && !prestraid && !game.global.preMapsActive && !game.global.mapsActive) { //checks if raiding enabled, your zone matches the Praidz setting, you havent raided yet and automaps is on if (getPageSetting('AutoMaps') == 1){ @@ -185,11 +186,14 @@ function Praidingzone() { } else if (prestraid && game.global.preMapsActive){ recycleMap(); - toggleAutoMaps(); + if (getPageSetting('AutoMaps') == 0){ + toggleAutoMaps(); + } game.options.menu.mapAtZone.enabled = 0; } } + if (game.global.world == Praidz+1) { prestraid = false; From 661ec0126549698bd75f43a96587b9b85bfbbaad Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 11:02:22 +0100 Subject: [PATCH 160/365] Update other.js --- modules/other.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index 1fef0a261..2bbc1331c 100644 --- a/modules/other.js +++ b/modules/other.js @@ -158,7 +158,6 @@ function plusFivePres() } var Praidz = getPageSetting('Praidingzone'); -var bwraidedd = false; var prestraid = false; //Praidingzone @@ -189,7 +188,6 @@ function Praidingzone() { if (getPageSetting('AutoMaps') == 0){ toggleAutoMaps(); } - game.options.menu.mapAtZone.enabled = 0; } } @@ -198,6 +196,7 @@ function Praidingzone() { { prestraid = false; } +setInterval(Praidingzone, 1000); //BWraidingmax From 09785aa526b4ea8538440a5f3c02e3723dadb03f Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 11:19:41 +0100 Subject: [PATCH 161/365] Update other.js --- modules/other.js | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/modules/other.js b/modules/other.js index 2bbc1331c..69d0d502d 100644 --- a/modules/other.js +++ b/modules/other.js @@ -163,40 +163,46 @@ var prestraid = false; //Praidingzone function Praidingzone() { - if (game.global.world == Praidz && !prestraid && !game.global.preMapsActive && !game.global.mapsActive) { //checks if raiding enabled, your zone matches the Praidz setting, you havent raided yet and automaps is on + if (game.global.world == Praidz && !prestraid) { //checks if raiding enabled, your zone matches the Praidz setting, you havent raided yet and automaps is on if (getPageSetting('AutoMaps') == 1){ toggleAutoMaps(); //turns automaps off so it doest interfere - } + } repeatClicked(); //toggles off repeat - mapsClicked(); - while (game.options.menu.repeatUntil.enabled!=2)// no idea what this is, but i assume its to make it repeat till no prestiges drop? - { + if (!game.global.preMapsActive && !game.global.mapsActive) { + mapsClicked(); + } + while (game.options.menu.repeatUntil.enabled!=2) { toggleSetting('repeatUntil'); } setTimeout(function(){ //can this work without timeout? repeatClicked(); //??? - if(game.global.world == Praidz){ plusSixPres();} - buyMap(); //buys the prest 6 map, at least, i hope so + if (game.global.world == Praidz && game.global.preMapsActive) { + plusSixPres(); + } + if (game.global.world == Praidz && game.global.preMapsActive) { + buyMap(); //buys the prest 6 map, at least, i hope so + } selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); //selects first map??? runMap(); prestraid = true; //successfully raided +6 map for all prestiges, so sets to true },3000 ); //timeout - toggleAutoMaps(); - } - else if (prestraid && game.global.preMapsActive){ - recycleMap(); + if (getPageSetting('AutoMaps') == 0) { + toggleAutoMaps(); //turns automaps back on + } + else if (prestraid && game.global.preMapsActive){ if (getPageSetting('AutoMaps') == 0){ - toggleAutoMaps(); - } + toggleAutoMaps(); + } } -} + } + } if (game.global.world == Praidz+1) { prestraid = false; } -setInterval(Praidingzone, 1000); +Praidingzone(); //BWraidingmax From 26e5f9666a14ff6f0327a486e813cdb0063053dd Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 11:23:03 +0100 Subject: [PATCH 162/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 69d0d502d..078e284ce 100644 --- a/modules/other.js +++ b/modules/other.js @@ -202,7 +202,7 @@ function Praidingzone() { { prestraid = false; } -Praidingzone(); + //BWraidingmax From 44f46a8086621d4e033e3312f894f428e9f07763 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 11:26:45 +0100 Subject: [PATCH 163/365] This will work, i command it --- AutoTrimps2.js | 1 + 1 file changed, 1 insertion(+) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index 22570ad67..d2403cc27 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -238,6 +238,7 @@ function mainLoop() { else autoTrimpSettings.Prestige.selected = document.getElementById('Prestige').value; //just make sure the UI setting and the internal setting are aligned. if (getPageSetting('AutoMagmiteSpender2')==2 && !magmiteSpenderChanged) autoMagmiteSpender(); //Auto Magmite Spender (magmite.js) if (getPageSetting('AutoNatureTokens')) autoNatureTokens(); //Nature (other.js) + if (getPageSetting('Praidingzone')>1) Praidingzone(); //Prestige Raiding (other.js) // //Runs any user provided scripts, see line 253 below if (userscriptOn) userscripts(); From 81c367361c74d75de14024e8f7f4adeb4af82be5 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 11:35:07 +0100 Subject: [PATCH 164/365] Update AutoTrimps2.js --- AutoTrimps2.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index d2403cc27..f436634cf 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -207,7 +207,8 @@ function mainLoop() { setScienceNeeded(); //determine how much science is needed //EXECUTE CORE LOGIC - if (getPageSetting('ExitSpireCell') >0) exitSpireCell(); //"Exit Spire After Cell" (other.js) + if (getPageSetting('ExitSpireCell') >0) exitSpireCell(); //"Exit Spire After Cell" (other.js) + if (getPageSetting('Praidingzone') >0) Praiding(); //Prestige Raiding (other.js) if (getPageSetting('BuyUpgradesNew') != 0) buyUpgrades(); //"Buy Upgrades" (upgrades.js) var agu = getPageSetting('AutoGoldenUpgrades'); if (agu && agu!='Off') autoGoldenUpgradesAT(agu); //"Golden Upgrades" (other.js) @@ -238,9 +239,8 @@ function mainLoop() { else autoTrimpSettings.Prestige.selected = document.getElementById('Prestige').value; //just make sure the UI setting and the internal setting are aligned. if (getPageSetting('AutoMagmiteSpender2')==2 && !magmiteSpenderChanged) autoMagmiteSpender(); //Auto Magmite Spender (magmite.js) if (getPageSetting('AutoNatureTokens')) autoNatureTokens(); //Nature (other.js) - if (getPageSetting('Praidingzone')>1) Praidingzone(); //Prestige Raiding (other.js) // - //Runs any user provided scripts, see line 253 below + //Runs any user provided scripts, see line 254 below if (userscriptOn) userscripts(); // //rinse, repeat, done From 3b1575c0d81430919d5c84a6646cb77ff6738d0d Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 11:37:08 +0100 Subject: [PATCH 165/365] Update other.js --- modules/other.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index 078e284ce..ba5d57008 100644 --- a/modules/other.js +++ b/modules/other.js @@ -160,9 +160,9 @@ function plusFivePres() var Praidz = getPageSetting('Praidingzone'); var prestraid = false; -//Praidingzone +//Praiding -function Praidingzone() { +function Praiding() { if (game.global.world == Praidz && !prestraid) { //checks if raiding enabled, your zone matches the Praidz setting, you havent raided yet and automaps is on if (getPageSetting('AutoMaps') == 1){ toggleAutoMaps(); //turns automaps off so it doest interfere From 3d75364e9aca4c4367eeb6b13ea83a17f6249b0d Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 18:15:08 +0100 Subject: [PATCH 166/365] Update other.js --- modules/other.js | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/modules/other.js b/modules/other.js index ba5d57008..35509b930 100644 --- a/modules/other.js +++ b/modules/other.js @@ -166,36 +166,42 @@ function Praiding() { if (game.global.world == Praidz && !prestraid) { //checks if raiding enabled, your zone matches the Praidz setting, you havent raided yet and automaps is on if (getPageSetting('AutoMaps') == 1){ toggleAutoMaps(); //turns automaps off so it doest interfere + debug("Toggling AutoMaps"); } repeatClicked(); //toggles off repeat if (!game.global.preMapsActive && !game.global.mapsActive) { - mapsClicked(); + mapsClicked(); + debug("Going into Map Selection"); } - while (game.options.menu.repeatUntil.enabled!=2) { - toggleSetting('repeatUntil'); + if (game.options.menu.repeatUntil.enabled!=2) { + game.options.menu.repeatUntil.enabled = 2; } - setTimeout(function(){ //can this work without timeout? repeatClicked(); //??? + debug("Setting Map"); if (game.global.world == Praidz && game.global.preMapsActive) { - plusSixPres(); - } - if (game.global.world == Praidz && game.global.preMapsActive) { - buyMap(); //buys the prest 6 map, at least, i hope so + plusSixPres(); + buyMap(); //buys the prest 6 map, at least, i hope so } + debug("Bought Map"); selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); //selects first map??? + debug("Running Map"); runMap(); prestraid = true; //successfully raided +6 map for all prestiges, so sets to true - },3000 ); //timeout + debug("Successfully prestiged"); + } if (getPageSetting('AutoMaps') == 0) { - toggleAutoMaps(); //turns automaps back on + toggleAutoMaps(); //turns automaps back on + debug("Turning AutoMaps back off"); } - else if (prestraid && game.global.preMapsActive){ - if (getPageSetting('AutoMaps') == 0){ - toggleAutoMaps(); + else if (prestraid && game.global.preMapsActive){ + recycleMap(); + debug("Recycling Map"); + if (getPageSetting('AutoMaps') == 0){ + toggleAutoMaps(); + } } } - } if (game.global.world == Praidz+1) From 6a63da7bf102d715981f4c77987351ceb69075a0 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 18:34:01 +0100 Subject: [PATCH 167/365] Update other.js --- modules/other.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/modules/other.js b/modules/other.js index 35509b930..17e5a0df7 100644 --- a/modules/other.js +++ b/modules/other.js @@ -157,9 +157,6 @@ function plusFivePres() updateMapCost(); } -var Praidz = getPageSetting('Praidingzone'); -var prestraid = false; - //Praiding function Praiding() { @@ -175,8 +172,7 @@ function Praiding() { } if (game.options.menu.repeatUntil.enabled!=2) { game.options.menu.repeatUntil.enabled = 2; - } - repeatClicked(); //??? + } debug("Setting Map"); if (game.global.world == Praidz && game.global.preMapsActive) { plusSixPres(); From 34998437aed92bf0cc0c894f3682db2439be704e Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 18:34:48 +0100 Subject: [PATCH 168/365] Update AutoTrimps2.js --- AutoTrimps2.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index f436634cf..62419e399 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -165,6 +165,8 @@ var needGymystic = true; //used in setScienceNeeded, buildings.js, equipment. var heirloomFlag = false; var heirloomCache = game.global.heirloomsExtra.length; var magmiteSpenderChanged = false; +var Praidz = getPageSetting('Praidingzone'); +var prestraid = false; //////////////////////////////////////// //Main LOGIC Loop/////////////////////// From 4f8e24f80f8d97f1cee5bfeb9a68d98645e11c63 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 18:37:04 +0100 Subject: [PATCH 169/365] Update AutoTrimps2.js --- AutoTrimps2.js | 1 - 1 file changed, 1 deletion(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index 62419e399..810de1e83 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -165,7 +165,6 @@ var needGymystic = true; //used in setScienceNeeded, buildings.js, equipment. var heirloomFlag = false; var heirloomCache = game.global.heirloomsExtra.length; var magmiteSpenderChanged = false; -var Praidz = getPageSetting('Praidingzone'); var prestraid = false; //////////////////////////////////////// From dda5949077acae7e2c7e6dc472187634e9fadbe1 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 18:40:11 +0100 Subject: [PATCH 170/365] Update other.js --- modules/other.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/other.js b/modules/other.js index 17e5a0df7..0e44ad92a 100644 --- a/modules/other.js +++ b/modules/other.js @@ -160,6 +160,8 @@ function plusFivePres() //Praiding function Praiding() { +var Praidz = getPageSetting('Praidingzone'); +var prestraid = false; if (game.global.world == Praidz && !prestraid) { //checks if raiding enabled, your zone matches the Praidz setting, you havent raided yet and automaps is on if (getPageSetting('AutoMaps') == 1){ toggleAutoMaps(); //turns automaps off so it doest interfere From 7af9dfc4c96d3baa15c589aad4daeeaad214d8c7 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 18:41:46 +0100 Subject: [PATCH 171/365] Update other.js --- modules/other.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index 0e44ad92a..40af8099b 100644 --- a/modules/other.js +++ b/modules/other.js @@ -1,5 +1,7 @@ MODULES["other"] = {}; MODULES["other"].enableRoboTrimpSpam = true; //set this to false to stop Spam of "Activated Robotrimp MagnetoShriek Ability" +var Praidz = getPageSetting('Praidingzone'); +var prestraid = false; //Activate Robo Trimp (will activate on the first zone after liquification) @@ -160,8 +162,6 @@ function plusFivePres() //Praiding function Praiding() { -var Praidz = getPageSetting('Praidingzone'); -var prestraid = false; if (game.global.world == Praidz && !prestraid) { //checks if raiding enabled, your zone matches the Praidz setting, you havent raided yet and automaps is on if (getPageSetting('AutoMaps') == 1){ toggleAutoMaps(); //turns automaps off so it doest interfere From 350fb99d5b36a3339855b03b73c22f2a8e6a4cd2 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 18:42:09 +0100 Subject: [PATCH 172/365] Update AutoTrimps2.js --- AutoTrimps2.js | 1 - 1 file changed, 1 deletion(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index 810de1e83..f436634cf 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -165,7 +165,6 @@ var needGymystic = true; //used in setScienceNeeded, buildings.js, equipment. var heirloomFlag = false; var heirloomCache = game.global.heirloomsExtra.length; var magmiteSpenderChanged = false; -var prestraid = false; //////////////////////////////////////// //Main LOGIC Loop/////////////////////// From dbc10ebd3dc41628ff2a87e59dc14258ad9aa0f6 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 18:53:04 +0100 Subject: [PATCH 173/365] Update other.js --- modules/other.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/other.js b/modules/other.js index 40af8099b..5bcca3006 100644 --- a/modules/other.js +++ b/modules/other.js @@ -184,6 +184,9 @@ function Praiding() { selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); //selects first map??? debug("Running Map"); runMap(); + if (!game.global.repeatMap) { + repeatClicked(); + } prestraid = true; //successfully raided +6 map for all prestiges, so sets to true debug("Successfully prestiged"); } From 60bc37217240452326fd8dfb6bf2b7a2519bd91d Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 19:04:26 +0100 Subject: [PATCH 174/365] Update other.js --- modules/other.js | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/modules/other.js b/modules/other.js index 5bcca3006..a8b3c795e 100644 --- a/modules/other.js +++ b/modules/other.js @@ -163,20 +163,19 @@ function plusFivePres() function Praiding() { if (game.global.world == Praidz && !prestraid) { //checks if raiding enabled, your zone matches the Praidz setting, you havent raided yet and automaps is on - if (getPageSetting('AutoMaps') == 1){ + if (getPageSetting('AutoMaps') == 1 && game.global.world == Praidz && !prestraid){ toggleAutoMaps(); //turns automaps off so it doest interfere debug("Toggling AutoMaps"); } - repeatClicked(); //toggles off repeat - if (!game.global.preMapsActive && !game.global.mapsActive) { + if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world == Praidz && !prestraid) { mapsClicked(); debug("Going into Map Selection"); } - if (game.options.menu.repeatUntil.enabled!=2) { + if (game.options.menu.repeatUntil.enabled!=2 && game.global.world == Praidz && !prestraid) { game.options.menu.repeatUntil.enabled = 2; } debug("Setting Map"); - if (game.global.world == Praidz && game.global.preMapsActive) { + if (game.global.world == Praidz && game.global.preMapsActive && !prestraid) { plusSixPres(); buyMap(); //buys the prest 6 map, at least, i hope so } @@ -184,19 +183,17 @@ function Praiding() { selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); //selects first map??? debug("Running Map"); runMap(); - if (!game.global.repeatMap) { + if (!game.global.repeatMap && game.global.world == Praidz && !prestraid) { repeatClicked(); } prestraid = true; //successfully raided +6 map for all prestiges, so sets to true debug("Successfully prestiged"); } - if (getPageSetting('AutoMaps') == 0) { + if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world == Praidz && prestraid) { toggleAutoMaps(); //turns automaps back on debug("Turning AutoMaps back off"); } else if (prestraid && game.global.preMapsActive){ - recycleMap(); - debug("Recycling Map"); if (getPageSetting('AutoMaps') == 0){ toggleAutoMaps(); From ee63dbe53acadcfe12eb864d3a28c432b16ef0c9 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 19:06:01 +0100 Subject: [PATCH 175/365] Update other.js --- modules/other.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/modules/other.js b/modules/other.js index a8b3c795e..f3ae84a21 100644 --- a/modules/other.js +++ b/modules/other.js @@ -193,12 +193,7 @@ function Praiding() { toggleAutoMaps(); //turns automaps back on debug("Turning AutoMaps back off"); } - else if (prestraid && game.global.preMapsActive){ - if (getPageSetting('AutoMaps') == 0){ - toggleAutoMaps(); - } - } } From 760fa09cfb18ef98734cbb85b31b881889b36e28 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 19:10:47 +0100 Subject: [PATCH 176/365] Update other.js --- modules/other.js | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/modules/other.js b/modules/other.js index f3ae84a21..69139cd10 100644 --- a/modules/other.js +++ b/modules/other.js @@ -1,6 +1,5 @@ MODULES["other"] = {}; MODULES["other"].enableRoboTrimpSpam = true; //set this to false to stop Spam of "Activated Robotrimp MagnetoShriek Ability" -var Praidz = getPageSetting('Praidingzone'); var prestraid = false; @@ -162,20 +161,20 @@ function plusFivePres() //Praiding function Praiding() { - if (game.global.world == Praidz && !prestraid) { //checks if raiding enabled, your zone matches the Praidz setting, you havent raided yet and automaps is on - if (getPageSetting('AutoMaps') == 1 && game.global.world == Praidz && !prestraid){ + if (game.global.world == getPageSetting('Praidingzone') && !prestraid) { //checks if raiding enabled, your zone matches the Praidz setting, you havent raided yet and automaps is on + if (getPageSetting('AutoMaps') == 1 && game.global.world == getPageSetting('Praidingzone') && !prestraid){ toggleAutoMaps(); //turns automaps off so it doest interfere debug("Toggling AutoMaps"); } - if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world == Praidz && !prestraid) { + if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world == getPageSetting('Praidingzone') && !prestraid) { mapsClicked(); debug("Going into Map Selection"); } - if (game.options.menu.repeatUntil.enabled!=2 && game.global.world == Praidz && !prestraid) { + if (game.options.menu.repeatUntil.enabled!=2 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { game.options.menu.repeatUntil.enabled = 2; } debug("Setting Map"); - if (game.global.world == Praidz && game.global.preMapsActive && !prestraid) { + if (game.global.world == getPageSetting('Praidingzone') && game.global.preMapsActive && !prestraid) { plusSixPres(); buyMap(); //buys the prest 6 map, at least, i hope so } @@ -183,21 +182,21 @@ function Praiding() { selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); //selects first map??? debug("Running Map"); runMap(); - if (!game.global.repeatMap && game.global.world == Praidz && !prestraid) { + if (!game.global.repeatMap && game.global.world == getPageSetting('Praidingzone') && !prestraid) { repeatClicked(); } prestraid = true; //successfully raided +6 map for all prestiges, so sets to true debug("Successfully prestiged"); } - if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world == Praidz && prestraid) { + if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world == getPageSetting('Praidingzone') && prestraid) { toggleAutoMaps(); //turns automaps back on - debug("Turning AutoMaps back off"); + debug("Turning AutoMaps back on"); } } - if (game.global.world == Praidz+1) + if (game.global.world !== getPageSetting('Praidingzone')) { prestraid = false; } From 48dd1d4e578122c74334636250314909d0e2e5ea Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 19:15:18 +0100 Subject: [PATCH 177/365] Update other.js --- modules/other.js | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/modules/other.js b/modules/other.js index 69139cd10..5a410c878 100644 --- a/modules/other.js +++ b/modules/other.js @@ -161,9 +161,9 @@ function plusFivePres() //Praiding function Praiding() { - if (game.global.world == getPageSetting('Praidingzone') && !prestraid) { //checks if raiding enabled, your zone matches the Praidz setting, you havent raided yet and automaps is on + if (game.global.world == getPageSetting('Praidingzone') && !prestraid) { if (getPageSetting('AutoMaps') == 1 && game.global.world == getPageSetting('Praidingzone') && !prestraid){ - toggleAutoMaps(); //turns automaps off so it doest interfere + toggleAutoMaps(); debug("Toggling AutoMaps"); } if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world == getPageSetting('Praidingzone') && !prestraid) { @@ -176,31 +176,28 @@ function Praiding() { debug("Setting Map"); if (game.global.world == getPageSetting('Praidingzone') && game.global.preMapsActive && !prestraid) { plusSixPres(); - buyMap(); //buys the prest 6 map, at least, i hope so + buyMap(); } debug("Bought Map"); - selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); //selects first map??? + selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); debug("Running Map"); runMap(); if (!game.global.repeatMap && game.global.world == getPageSetting('Praidingzone') && !prestraid) { repeatClicked(); } - prestraid = true; //successfully raided +6 map for all prestiges, so sets to true + prestraid = true; debug("Successfully prestiged"); } if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world == getPageSetting('Praidingzone') && prestraid) { - toggleAutoMaps(); //turns automaps back on + toggleAutoMaps(); debug("Turning AutoMaps back on"); } - - } - - - if (game.global.world !== getPageSetting('Praidingzone')) - { + else if (game.global.world !== getPageSetting('Praidingzone')) { + debug("Setting prestraid back to false"); prestraid = false; } - + + } //BWraidingmax From 6c50f84988f4ecfb02f9850e8c46f7d7d130765a Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 19:16:45 +0100 Subject: [PATCH 178/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 5a410c878..f3d6a4f31 100644 --- a/modules/other.js +++ b/modules/other.js @@ -192,7 +192,7 @@ function Praiding() { toggleAutoMaps(); debug("Turning AutoMaps back on"); } - else if (game.global.world !== getPageSetting('Praidingzone')) { + else if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { debug("Setting prestraid back to false"); prestraid = false; } From c1d85c664c1fb35e43b6969e50c0461c4612778f Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 20:25:13 +0100 Subject: [PATCH 179/365] Update other.js --- modules/other.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/modules/other.js b/modules/other.js index f3d6a4f31..9c2c77156 100644 --- a/modules/other.js +++ b/modules/other.js @@ -1,7 +1,7 @@ MODULES["other"] = {}; MODULES["other"].enableRoboTrimpSpam = true; //set this to false to stop Spam of "Activated Robotrimp MagnetoShriek Ability" var prestraid = false; - +var failpraid = false; //Activate Robo Trimp (will activate on the first zone after liquification) function autoRoboTrimp() { @@ -161,9 +161,9 @@ function plusFivePres() //Praiding function Praiding() { - if (game.global.world == getPageSetting('Praidingzone') && !prestraid) { + if (game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { if (getPageSetting('AutoMaps') == 1 && game.global.world == getPageSetting('Praidingzone') && !prestraid){ - toggleAutoMaps(); + autoTrimpSettings["AutoMaps"].value = 0; debug("Toggling AutoMaps"); } if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world == getPageSetting('Praidingzone') && !prestraid) { @@ -176,11 +176,22 @@ function Praiding() { debug("Setting Map"); if (game.global.world == getPageSetting('Praidingzone') && game.global.preMapsActive && !prestraid) { plusSixPres(); + if (buyMap() > 0) { buyMap(); + failpraid = false; + } + else if (buyMap() < 0) { + if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { + autoTrimpSettings["AutoMaps"].value = 1; + failpraid = true; + } + return; + } debug("Bought Map"); selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); debug("Running Map"); + } runMap(); if (!game.global.repeatMap && game.global.world == getPageSetting('Praidingzone') && !prestraid) { repeatClicked(); @@ -189,7 +200,7 @@ function Praiding() { debug("Successfully prestiged"); } if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world == getPageSetting('Praidingzone') && prestraid) { - toggleAutoMaps(); + autoTrimpSettings["AutoMaps"].value = 1; debug("Turning AutoMaps back on"); } else if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { From 97314c6b6c647ec3e612471bdd1c984a94419bd5 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 21:35:18 +0100 Subject: [PATCH 180/365] Update other.js --- modules/other.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 9c2c77156..52b716ec8 100644 --- a/modules/other.js +++ b/modules/other.js @@ -158,6 +158,18 @@ function plusFivePres() updateMapCost(); } + function plusSevPres() + { + document.getElementById("biomeAdvMapsSelect").value = "Random"; + document.getElementById('advExtraLevelSelect').value = 7; + document.getElementById('advSpecialSelect').value = 0; + document.getElementById("lootAdvMapsRange").value = 0; + document.getElementById("difficultyAdvMapsRange").value = 9; + document.getElementById("sizeAdvMapsRange").value = 9; + document.getElementById('advPerfectCheckbox').checked = false; + updateMapCost(); + } + //Praiding function Praiding() { @@ -175,7 +187,7 @@ function Praiding() { } debug("Setting Map"); if (game.global.world == getPageSetting('Praidingzone') && game.global.preMapsActive && !prestraid) { - plusSixPres(); + ? plusSevPres():plusSixPres():plusFivePres(); if (buyMap() > 0) { buyMap(); failpraid = false; From 65ba535ed6d6bda9374c97ed8fca4abd47d473b4 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 21:38:25 +0100 Subject: [PATCH 181/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 52b716ec8..0426f3252 100644 --- a/modules/other.js +++ b/modules/other.js @@ -187,7 +187,7 @@ function Praiding() { } debug("Setting Map"); if (game.global.world == getPageSetting('Praidingzone') && game.global.preMapsActive && !prestraid) { - ? plusSevPres():plusSixPres():plusFivePres(); + plusSevPres():plusSixPres():plusFivePres(); if (buyMap() > 0) { buyMap(); failpraid = false; From b7cab60740974125ba3d04a15d3c0c901e91676c Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 21:59:35 +0100 Subject: [PATCH 182/365] Update other.js --- modules/other.js | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index 0426f3252..57fa2af87 100644 --- a/modules/other.js +++ b/modules/other.js @@ -134,7 +134,7 @@ function exitSpireCell() { endSpire(); } -function plusFivePres() +function plusFivePres() { document.getElementById("biomeAdvMapsSelect").value = "Random"; document.getElementById('advExtraLevelSelect').value = 5; @@ -170,6 +170,41 @@ function plusFivePres() updateMapCost(); } + function plusPres() + { + document.getElementById("biomeAdvMapsSelect").value = "Random"; + document.getElementById('advExtraLevelSelect').value = plusMapToRun(game.global.world); + document.getElementById('advSpecialSelect').value = "p"; + document.getElementById("lootAdvMapsRange").value = 0; + document.getElementById("difficultyAdvMapsRange").value = 9; + document.getElementById("sizeAdvMapsRange").value = 9; + document.getElementById('advPerfectCheckbox').checked = false; + updateMapCost(); + } + + function plusMapToRun(zone) + { + var currentModifier = (zone-235)%15; + if (currentModifier == 1){ + if ( zone%10 == 1){ + return 4; + } + else if ( zone%10 == 6) + { + return 5; + } + } + else if (currentModifier == 5){ + if (zone%10 == 5) { + return 6; + } + else if ( zone%10 == 0) { + return 5; + } + } + return 0; + } + //Praiding function Praiding() { @@ -187,7 +222,7 @@ function Praiding() { } debug("Setting Map"); if (game.global.world == getPageSetting('Praidingzone') && game.global.preMapsActive && !prestraid) { - plusSevPres():plusSixPres():plusFivePres(); + plusPres(); if (buyMap() > 0) { buyMap(); failpraid = false; @@ -221,6 +256,7 @@ function Praiding() { } } + //BWraidingmax From 9e1c4d8749a8a8918edbc5f45812ed488e221952 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 22:03:10 +0100 Subject: [PATCH 183/365] Update other.js --- modules/other.js | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/modules/other.js b/modules/other.js index 57fa2af87..643890651 100644 --- a/modules/other.js +++ b/modules/other.js @@ -182,27 +182,12 @@ function plusFivePres() updateMapCost(); } - function plusMapToRun(zone) - { - var currentModifier = (zone-235)%15; - if (currentModifier == 1){ - if ( zone%10 == 1){ - return 4; - } - else if ( zone%10 == 6) - { - return 5; - } - } - else if (currentModifier == 5){ - if (zone%10 == 5) { - return 6; - } - else if ( zone%10 == 0) { - return 5; - } - } - return 0; + function plusMapToRun(zone) + { + if (zone %10 <=5) + return 5 - zone%10; + else + return 11 - zone%10; } //Praiding From 3852fa901bab9f46b92a37a0e7a698f671c859a7 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 22:04:35 +0100 Subject: [PATCH 184/365] Update other.js --- modules/other.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/other.js b/modules/other.js index 643890651..c58c98b35 100644 --- a/modules/other.js +++ b/modules/other.js @@ -229,6 +229,7 @@ function Praiding() { repeatClicked(); } prestraid = true; + failpraid = false; debug("Successfully prestiged"); } if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world == getPageSetting('Praidingzone') && prestraid) { From b3f0fba5ba56f1cf3082a23000bcabf6435fca1a Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 22:32:33 +0100 Subject: [PATCH 185/365] Update other.js --- modules/other.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/other.js b/modules/other.js index c58c98b35..0d951db8c 100644 --- a/modules/other.js +++ b/modules/other.js @@ -183,12 +183,12 @@ function plusFivePres() } function plusMapToRun(zone) - { - if (zone %10 <=5) +{ + if (zone %10 < 5) return 5 - zone%10; else return 11 - zone%10; - } +} //Praiding From 307c04498fc049e39d9052e451f80afdd4cab4f6 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 12 May 2018 22:38:31 +0100 Subject: [PATCH 186/365] Update other.js --- modules/other.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/other.js b/modules/other.js index 0d951db8c..94fbb46e0 100644 --- a/modules/other.js +++ b/modules/other.js @@ -184,10 +184,12 @@ function plusFivePres() function plusMapToRun(zone) { - if (zone %10 < 5) - return 5 - zone%10; + if (zone % 10 == 9) + return 6 + else if (zone % 10 <5) + return 5 - zone % 10; else - return 11 - zone%10; + return 11 - zone % 10; } //Praiding From c4b0e3e5a9f365a253ab99c313ba195bd28f4ca9 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 10:54:46 +0100 Subject: [PATCH 187/365] Update other.js --- modules/other.js | 53 ++++++------------------------------------------ 1 file changed, 6 insertions(+), 47 deletions(-) diff --git a/modules/other.js b/modules/other.js index 94fbb46e0..6b9660b70 100644 --- a/modules/other.js +++ b/modules/other.js @@ -134,42 +134,6 @@ function exitSpireCell() { endSpire(); } -function plusFivePres() - { - document.getElementById("biomeAdvMapsSelect").value = "Random"; - document.getElementById('advExtraLevelSelect').value = 5; - document.getElementById('advSpecialSelect').value = 0; - document.getElementById("lootAdvMapsRange").value = 0; - document.getElementById("difficultyAdvMapsRange").value = 9; - document.getElementById("sizeAdvMapsRange").value = 9; - document.getElementById('advPerfectCheckbox').checked = false; - updateMapCost(); - } - - function plusSixPres() - { - document.getElementById("biomeAdvMapsSelect").value = "Random"; - document.getElementById('advExtraLevelSelect').value = 6; - document.getElementById('advSpecialSelect').value = 0; - document.getElementById("lootAdvMapsRange").value = 0; - document.getElementById("difficultyAdvMapsRange").value = 9; - document.getElementById("sizeAdvMapsRange").value = 9; - document.getElementById('advPerfectCheckbox').checked = false; - updateMapCost(); - } - - function plusSevPres() - { - document.getElementById("biomeAdvMapsSelect").value = "Random"; - document.getElementById('advExtraLevelSelect').value = 7; - document.getElementById('advSpecialSelect').value = 0; - document.getElementById("lootAdvMapsRange").value = 0; - document.getElementById("difficultyAdvMapsRange").value = 9; - document.getElementById("sizeAdvMapsRange").value = 9; - document.getElementById('advPerfectCheckbox').checked = false; - updateMapCost(); - } - function plusPres() { document.getElementById("biomeAdvMapsSelect").value = "Random"; @@ -195,19 +159,17 @@ function plusFivePres() //Praiding function Praiding() { - if (game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { + if (game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { if (getPageSetting('AutoMaps') == 1 && game.global.world == getPageSetting('Praidingzone') && !prestraid){ autoTrimpSettings["AutoMaps"].value = 0; - debug("Toggling AutoMaps"); + debug("Beginning Prestige Raiding..."); } if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world == getPageSetting('Praidingzone') && !prestraid) { mapsClicked(); - debug("Going into Map Selection"); } if (game.options.menu.repeatUntil.enabled!=2 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { game.options.menu.repeatUntil.enabled = 2; } - debug("Setting Map"); if (game.global.world == getPageSetting('Praidingzone') && game.global.preMapsActive && !prestraid) { plusPres(); if (buyMap() > 0) { @@ -218,13 +180,12 @@ function Praiding() { if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { autoTrimpSettings["AutoMaps"].value = 1; failpraid = true; + debug("Failed to prestige raid. Looks like you can't afford to.."); } return; } - debug("Bought Map"); selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); - debug("Running Map"); } runMap(); if (!game.global.repeatMap && game.global.world == getPageSetting('Praidingzone') && !prestraid) { @@ -232,15 +193,13 @@ function Praiding() { } prestraid = true; failpraid = false; - debug("Successfully prestiged"); + debug("...Successfully prestiged!"); } if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world == getPageSetting('Praidingzone') && prestraid) { autoTrimpSettings["AutoMaps"].value = 1; - debug("Turning AutoMaps back on"); } - else if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { - debug("Setting prestraid back to false"); - prestraid = false; + else if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { + prestraid = false; } } From 7ea530291a1225276911ce6cd42e48c4ad8bed53 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 13:45:26 +0100 Subject: [PATCH 188/365] Update SettingsGUI.js --- SettingsGUI.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index eb33fa776..a90e2fd3c 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -376,9 +376,11 @@ function initializeAllSettings() { createSetting('PreSpireNurseries', 'Nurseries pre-Spire', 'Set the maximum number of Nurseries to build for Spires. Overrides No Nurseries Until z and Max Nurseries so you can keep them seperate! Will build nurseries before z200 for Spire 1, but only on the zone of Spires 2+ to avoid unnecessary burning. Disable with -1.', 'value', -1, null, 'Spire'); //Line 2 - createSetting('BWraid', 'BW Raiding', 'Raids BW at zone specified in BW Raiding Z.', 'boolean', false, null, 'Spire'); - createSetting('Praidingzone', 'P Raiding Z', 'Raids Maps at zone specified. Example: 495, will raid Maps at z+6.', 'value', -1, null, 'Spire'); - //createSetting('BWraidingmax', 'Max BW to raid', 'Raids BWs until zone specified. Example: 515, will raid all BWs for all gear until 515. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to world. ', 'value', -1, null, 'Spire'); + createSetting('Praidingzone', 'P Raiding Z', 'Raids Maps for prestiges at zone specified. Example: 495, will raid Maps at 501. Once all gear is obtained from the map, it will revert back to regular farming. Extremely helpful for spire. Best used in poison zones.', 'value', -1, null, 'Spire'); + createSetting('BWraid', 'BW Raiding', 'Raids BW at zone specified in BW Raiding min/max.', 'boolean', false, null, 'Spire'); + createSetting('BWraidingmin', 'Max BW to raid', 'Raids BWs at zone specified. Example: 485, will raid all BWs for all gear starting from 485. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming. ', 'value', -1, null, 'Spire'); + createSetting('BWraidingmax', 'Max BW to raid', 'Raids BWs until zone specified. Example: 515, will raid all BWs for all gear until 515. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming. ', 'value', -1, null, 'Spire'); + //Combat From 1d5c52807a90d513dc45d29ca2fbbca489bc6d13 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 14:17:37 +0100 Subject: [PATCH 189/365] Update AutoTrimps2.js --- AutoTrimps2.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index f436634cf..6d52f8cab 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -208,7 +208,8 @@ function mainLoop() { //EXECUTE CORE LOGIC if (getPageSetting('ExitSpireCell') >0) exitSpireCell(); //"Exit Spire After Cell" (other.js) - if (getPageSetting('Praidingzone') >0) Praiding(); //Prestige Raiding (other.js) + if (getPageSetting('Praidingzone') >0) Praiding(); //Prestige Raiding (other.js) + if (getPageSetting('BWraid') BWraid(); //BW Raiding (other.js) if (getPageSetting('BuyUpgradesNew') != 0) buyUpgrades(); //"Buy Upgrades" (upgrades.js) var agu = getPageSetting('AutoGoldenUpgrades'); if (agu && agu!='Off') autoGoldenUpgradesAT(agu); //"Golden Upgrades" (other.js) From 5a6b896f379251e0b44f0c5f6ec600ceaec7f11e Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 14:22:54 +0100 Subject: [PATCH 190/365] Update other.js --- modules/other.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/modules/other.js b/modules/other.js index 6b9660b70..8b4a979a9 100644 --- a/modules/other.js +++ b/modules/other.js @@ -2,7 +2,8 @@ MODULES["other"] = {}; MODULES["other"].enableRoboTrimpSpam = true; //set this to false to stop Spam of "Activated Robotrimp MagnetoShriek Ability" var prestraid = false; var failpraid = false; - +var BWrmn = getPageSetting('BWraidingmin'); +var BWrmx = getPageSetting('BWraidingmax'); //Activate Robo Trimp (will activate on the first zone after liquification) function autoRoboTrimp() { //exit if the cooldown is active, or we havent unlocked robotrimp. @@ -206,7 +207,9 @@ function Praiding() { -//BWraidingmax -//function BWraidingmax() { - //getPageSetting('BWraidingmax') -//} +//BWraiding +function BWraid() { + getPageSetting('BWraidingmin'); + getPageSetting('BWraidingmax'); + debug('BWRmn ' + 'BWRmx'); +} From b431b429c5027d6f140b56cfcd71e39ac03a8c31 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 14:24:49 +0100 Subject: [PATCH 191/365] Update AutoTrimps2.js --- AutoTrimps2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index 6d52f8cab..b4c53d7eb 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -209,7 +209,7 @@ function mainLoop() { //EXECUTE CORE LOGIC if (getPageSetting('ExitSpireCell') >0) exitSpireCell(); //"Exit Spire After Cell" (other.js) if (getPageSetting('Praidingzone') >0) Praiding(); //Prestige Raiding (other.js) - if (getPageSetting('BWraid') BWraid(); //BW Raiding (other.js) + if (getPageSetting('BWraid')) BWraid(); //BW Raiding (other.js) if (getPageSetting('BuyUpgradesNew') != 0) buyUpgrades(); //"Buy Upgrades" (upgrades.js) var agu = getPageSetting('AutoGoldenUpgrades'); if (agu && agu!='Off') autoGoldenUpgradesAT(agu); //"Golden Upgrades" (other.js) From cbbc28f8184686af3f955d07bd1281487486b654 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 14:26:57 +0100 Subject: [PATCH 192/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 8b4a979a9..0ac763ff5 100644 --- a/modules/other.js +++ b/modules/other.js @@ -211,5 +211,5 @@ function Praiding() { function BWraid() { getPageSetting('BWraidingmin'); getPageSetting('BWraidingmax'); - debug('BWRmn ' + 'BWRmx'); + debug('Converted ' + BWrmn + ' tokens to ' + BWrmx, 'nature'); } From 6fb3b94ab836243d7df071daf9648fc16a8dec41 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 14:27:24 +0100 Subject: [PATCH 193/365] Update SettingsGUI.js --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index a90e2fd3c..675e5fa1e 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -378,7 +378,7 @@ function initializeAllSettings() { //Line 2 createSetting('Praidingzone', 'P Raiding Z', 'Raids Maps for prestiges at zone specified. Example: 495, will raid Maps at 501. Once all gear is obtained from the map, it will revert back to regular farming. Extremely helpful for spire. Best used in poison zones.', 'value', -1, null, 'Spire'); createSetting('BWraid', 'BW Raiding', 'Raids BW at zone specified in BW Raiding min/max.', 'boolean', false, null, 'Spire'); - createSetting('BWraidingmin', 'Max BW to raid', 'Raids BWs at zone specified. Example: 485, will raid all BWs for all gear starting from 485. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming. ', 'value', -1, null, 'Spire'); + createSetting('BWraidingmin', 'Min BW to raid', 'Raids BWs at zone specified. Example: 485, will raid all BWs for all gear starting from 485. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming. ', 'value', -1, null, 'Spire'); createSetting('BWraidingmax', 'Max BW to raid', 'Raids BWs until zone specified. Example: 515, will raid all BWs for all gear until 515. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming. ', 'value', -1, null, 'Spire'); From c77c8449c9497bc8a4fab6ac5adf0efa8c5439c0 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 14:57:46 +0100 Subject: [PATCH 194/365] Update other.js --- modules/other.js | 55 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/modules/other.js b/modules/other.js index 0ac763ff5..bcd5684c1 100644 --- a/modules/other.js +++ b/modules/other.js @@ -4,6 +4,7 @@ var prestraid = false; var failpraid = false; var BWrmn = getPageSetting('BWraidingmin'); var BWrmx = getPageSetting('BWraidingmax'); +var bwraided = false; //Activate Robo Trimp (will activate on the first zone after liquification) function autoRoboTrimp() { //exit if the cooldown is active, or we havent unlocked robotrimp. @@ -161,17 +162,17 @@ function exitSpireCell() { function Praiding() { if (game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { - if (getPageSetting('AutoMaps') == 1 && game.global.world == getPageSetting('Praidingzone') && !prestraid){ + if (getPageSetting('AutoMaps') == 1 && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { autoTrimpSettings["AutoMaps"].value = 0; - debug("Beginning Prestige Raiding..."); } - if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world == getPageSetting('Praidingzone') && !prestraid) { + debug("Beginning Prestige Raiding..."); + if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { mapsClicked(); } - if (game.options.menu.repeatUntil.enabled!=2 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { + if (game.options.menu.repeatUntil.enabled!=2 && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { game.options.menu.repeatUntil.enabled = 2; } - if (game.global.world == getPageSetting('Praidingzone') && game.global.preMapsActive && !prestraid) { + if (game.global.world == getPageSetting('Praidingzone') && game.global.preMapsActive && !prestraid && !failpraid) { plusPres(); if (buyMap() > 0) { buyMap(); @@ -189,14 +190,14 @@ function Praiding() { selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); } runMap(); - if (!game.global.repeatMap && game.global.world == getPageSetting('Praidingzone') && !prestraid) { + if (!game.global.repeatMap && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { repeatClicked(); } prestraid = true; failpraid = false; debug("...Successfully prestiged!"); } - if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world == getPageSetting('Praidingzone') && prestraid) { + if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world == getPageSetting('Praidingzone') && prestraid && !failpraid) { autoTrimpSettings["AutoMaps"].value = 1; } else if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { @@ -208,8 +209,42 @@ function Praiding() { //BWraiding +//BWrmn +//BWrmx function BWraid() { - getPageSetting('BWraidingmin'); - getPageSetting('BWraidingmax'); - debug('Converted ' + BWrmn + ' tokens to ' + BWrmx, 'nature'); + if (game.global.world == BWrmn && !bwraided && !failbwraid) { + if (getPageSetting('AutoMaps') == 1 && game.global.world == BWrmn && !bwraided && !failbwraid) { + autoTrimpSettings["AutoMaps"].value = 0; + } + debug("Beginning BW Raiding..."); + if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world == BWrmn && !bwraided && !failbwraid) { + mapsClicked(); + } + if (game.options.menu.repeatUntil.enabled!=2 && game.global.world == BWrmn && !bwraided && !failbwraid) { + game.options.menu.repeatUntil.enabled = 2; + } + if (game.global.world == BWrmn && game.global.preMapsActive && !bwraided && !failbwraid) { + //get bw map + } + /*else if cant find bw map{ + if (getPageSetting('AutoMaps') == 0 && game.global.world == BWrmn && !bwraided) { + autoTrimpSettings["AutoMaps"].value = 1; + failbwraid = true; + debug("Failed to BW raid. Looks like you don't have a BW to raid..."); + } + return; + */ + + } + + + + + + + + + + + From 06c0a2fbe3c647294bc317dc03f85e323070dc6c Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 15:22:07 +0100 Subject: [PATCH 195/365] Update other.js --- modules/other.js | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/modules/other.js b/modules/other.js index bcd5684c1..9d1a6e0fb 100644 --- a/modules/other.js +++ b/modules/other.js @@ -196,15 +196,16 @@ function Praiding() { prestraid = true; failpraid = false; debug("...Successfully prestiged!"); - } + if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world == getPageSetting('Praidingzone') && prestraid && !failpraid) { autoTrimpSettings["AutoMaps"].value = 1; } else if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { prestraid = false; - } + } } +} @@ -223,10 +224,11 @@ function BWraid() { if (game.options.menu.repeatUntil.enabled!=2 && game.global.world == BWrmn && !bwraided && !failbwraid) { game.options.menu.repeatUntil.enabled = 2; } - if (game.global.world == BWrmn && game.global.preMapsActive && !bwraided && !failbwraid) { - //get bw map + /*if (game.global.world == BWrmn && game.global.preMapsActive && !bwraided && !failbwraid) { + get bw map + failbwraid = false; } - /*else if cant find bw map{ + else if cant find bw map { if (getPageSetting('AutoMaps') == 0 && game.global.world == BWrmn && !bwraided) { autoTrimpSettings["AutoMaps"].value = 1; failbwraid = true; @@ -234,17 +236,20 @@ function BWraid() { } return; */ - - + //} + selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); + runMap(); + if (!game.global.repeatMap && game.global.world == BWrmn && !bwraided && !failbwraid) { + repeatClicked(); + } + bwraided = true; + failbwraid = false; + debug("...Successfully BW raided!"); + if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world == BWrmn && bwraided && !failbwraid) { + autoTrimpSettings["AutoMaps"].value = 1; + } +} + else if (bwraided == true && game.global.world !== BWrmn) { + bwraided = false; + } } - - - - - - - - - - - From 714222cf12630655d6331b53a2a9f4d048dd3f7d Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 19:02:32 +0100 Subject: [PATCH 196/365] Update SettingsGUI.js --- SettingsGUI.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 675e5fa1e..48eadac8b 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -253,9 +253,9 @@ function initializeAllSettings() { createSetting('AutoStartDaily', 'Auto Start Daily', 'With this on, the Auto Portal options will portal you into and auto-start the daily whenever available. Starts from the oldest available, and works forwards. Falls back to selected challenge when there are no more dailies available.', 'boolean', false, null, 'Core'); createSetting('AutoFinishDailyNew', 'Finish Daily Z Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option or set this to 999!', 'valueNegative', 999, null, 'Core'); createSetting('FinishC2', 'Finish Challenge2', 'Finish / Abandon Challenge2 (any) when this zone is reached, if you are running one. For manual use. Recommended: Zones ending with 0 for most Challenge2. Disable with -1. Does not affect Non-Challenge2 runs.', 'value', -1, null, 'Core'); - if (game.worldUnlocks.easterEgg) - createSetting('AutoEggs', 'AutoEggs', 'Click easter egg if it exists, upon entering a new zone. Warning: Quite overpowered. Please solemnly swear that you are up to no good.', 'boolean', false, null, 'Core'); //could really be removed?? - createSetting('AutoAllocatePerks', 'Auto Allocate Perks', 'Uses the AutoPerks ratio based preset system to automatically allocate your perks to spend whatever helium you have when you AutoPortal. Does not change Fixed Perks: siphonology, anticipation, meditation, relentlessness, range, agility, bait, trumps, packrat, capable. ', 'boolean', false, null, 'Core'); + if (game.worldUnlocks.easterEgg){ + createSetting('AutoEggs', 'AutoEggs', 'Click easter egg if it exists, upon entering a new zone. Warning: Quite overpowered. Please solemnly swear that you are up to no good.', 'boolean', false, null, 'Core');} + createSetting('AutoAllocatePerks', ['Auto Allocate Off', 'Auto Allocate On', 'Dump into Looting II'], 'Uses the AutoPerks ratio based preset system to automatically allocate your perks to spend whatever helium you have when you AutoPortal. Does not change Fixed Perks: siphonology, anticipation, meditation, relentlessness, range, agility, bait, trumps, packrat, capable. NEW: Dump into Looting II, dumps all loot gained from previous portal at specified zone', 'multitoggle', 0, null, 'Core'); document.getElementById('AutoAllocatePerks').parentNode.insertAdjacentHTML('afterend','
'); //NewLine3 For Autoportal, it would be nice to add a 5s countdown, like with magma spending. @@ -378,10 +378,10 @@ function initializeAllSettings() { //Line 2 createSetting('Praidingzone', 'P Raiding Z', 'Raids Maps for prestiges at zone specified. Example: 495, will raid Maps at 501. Once all gear is obtained from the map, it will revert back to regular farming. Extremely helpful for spire. Best used in poison zones.', 'value', -1, null, 'Spire'); createSetting('BWraid', 'BW Raiding', 'Raids BW at zone specified in BW Raiding min/max.', 'boolean', false, null, 'Spire'); - createSetting('BWraidingmin', 'Min BW to raid', 'Raids BWs at zone specified. Example: 485, will raid all BWs for all gear starting from 485. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming. ', 'value', -1, null, 'Spire'); - createSetting('BWraidingmax', 'Max BW to raid', 'Raids BWs until zone specified. Example: 515, will raid all BWs for all gear until 515. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming. ', 'value', -1, null, 'Spire'); - - + createSetting('BWraidingmin', 'Min BW to raid', 'Raids BWs at zone specified. Example: 485, will raid all BWs for all gear starting from 485. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming.', 'value', -1, null, 'Spire'); + createSetting('BWraidingmax', 'Max BW to raid', 'Raids BWs until zone specified. Example: 515, will raid all BWs for all gear until 515. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming.', 'value', -1, null, 'Spire'); + createSetting('lootdumpz', 'Loot Dump Z', 'What zone to dump all earned helium from previous portal at. E.g; z230, will dump all helium from last run into looting II at zone 230.', 'value', -1, null, 'Spire'); + createSetting('lootdumpa', 'Loot Dump Amount', 'What amount of helium to dump into Looting II. E.g; 1000, will dump 1000 helium into looting II until you can no longer afford to.', 'value', -1, null, 'Spire'); //Combat //Subsection1Line1 From 3856997662a230a5fd8cdb6fbfc340b5c587cc56 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 19:06:28 +0100 Subject: [PATCH 197/365] Update portal.js --- modules/portal.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/portal.js b/modules/portal.js index 49b44f56a..3b63a5851 100644 --- a/modules/portal.js +++ b/modules/portal.js @@ -113,7 +113,7 @@ function doPortal(challenge) { //Go into portal screen portalClicked(); //AutoPerks: do this first, because it reflashes the screen. - if (getPageSetting('AutoAllocatePerks') && (typeof MODULES["perks"] !== 'undefined' || typeof AutoPerks !== 'undefined')) + if (getPageSetting('AutoAllocatePerks')==1 && (typeof MODULES["perks"] !== 'undefined' || typeof AutoPerks !== 'undefined')) AutoPerks.clickAllocate(); //Auto Start Daily: if (getPageSetting('AutoStartDaily')) { From 5ebd38fd14f7ef1811b7a0703d0b6ba86c5baae1 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 19:23:11 +0100 Subject: [PATCH 198/365] Update other.js --- modules/other.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/modules/other.js b/modules/other.js index 9d1a6e0fb..daaf6887e 100644 --- a/modules/other.js +++ b/modules/other.js @@ -5,6 +5,7 @@ var failpraid = false; var BWrmn = getPageSetting('BWraidingmin'); var BWrmx = getPageSetting('BWraidingmax'); var bwraided = false; +var perked = false; //Activate Robo Trimp (will activate on the first zone after liquification) function autoRoboTrimp() { //exit if the cooldown is active, or we havent unlocked robotrimp. @@ -253,3 +254,25 @@ function BWraid() { bwraided = false; } } + +//AutoAllocate Looting II +function lootdump() { +if (game.global.world==lootdumpz && !perked && getPageSetting('AutoAllocatePerks')==1 && getPageSetting('lootdumpa') > 0 && getPageSetting('lootdumpz') > 0) { + viewPortalUpgrades(); + game.global.lastCustomAmt = getPageSetting('lootdumpa'); + numTab(5, true); + if (getPortalUpgradePrice("Looting_II")+game.resources.helium.totalSpentTemp <= game.resources.helium.respecMax) { + buyPortalUpgrade('Looting_II'); + activateClicked(); + debug('Bought ' + lootdumpa + ' Looting II'); + } + else { + perked = true; + cancelPortal(); + debug("Done buying Looting II"); + } + } +else if (perked == true && game.global.world !== getPageSetting('lootdumpz')) { + perked = false; + } +} From bde3a8db8cf6e6c85fccbcbf592652d8f51431ad Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 19:24:34 +0100 Subject: [PATCH 199/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index daaf6887e..cacc39d10 100644 --- a/modules/other.js +++ b/modules/other.js @@ -257,7 +257,7 @@ function BWraid() { //AutoAllocate Looting II function lootdump() { -if (game.global.world==lootdumpz && !perked && getPageSetting('AutoAllocatePerks')==1 && getPageSetting('lootdumpa') > 0 && getPageSetting('lootdumpz') > 0) { +if (game.global.world==lootdumpz && !perked && getPageSetting('AutoAllocatePerks')==2 && getPageSetting('lootdumpa') > 0 && getPageSetting('lootdumpz') > 0) { viewPortalUpgrades(); game.global.lastCustomAmt = getPageSetting('lootdumpa'); numTab(5, true); From 1ee6977c27532a91c62aee51ce0fc0df522c5c4a Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 19:26:45 +0100 Subject: [PATCH 200/365] Update AutoTrimps2.js --- AutoTrimps2.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index b4c53d7eb..99b9d617b 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -209,7 +209,8 @@ function mainLoop() { //EXECUTE CORE LOGIC if (getPageSetting('ExitSpireCell') >0) exitSpireCell(); //"Exit Spire After Cell" (other.js) if (getPageSetting('Praidingzone') >0) Praiding(); //Prestige Raiding (other.js) - if (getPageSetting('BWraid')) BWraid(); //BW Raiding (other.js) + if (getPageSetting('BWraid')) BWraid(); //BW Raiding (other.js) + if (getPageSetting('AutoAllocatePerks')==2) lootdump(); //Loot Dumping (other.js) if (getPageSetting('BuyUpgradesNew') != 0) buyUpgrades(); //"Buy Upgrades" (upgrades.js) var agu = getPageSetting('AutoGoldenUpgrades'); if (agu && agu!='Off') autoGoldenUpgradesAT(agu); //"Golden Upgrades" (other.js) From 68e53531966e0f15a6829b8c59a6591d313ff2c2 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 19:30:48 +0100 Subject: [PATCH 201/365] Update SettingsGUI.js --- SettingsGUI.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 48eadac8b..19ab42430 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -378,11 +378,14 @@ function initializeAllSettings() { //Line 2 createSetting('Praidingzone', 'P Raiding Z', 'Raids Maps for prestiges at zone specified. Example: 495, will raid Maps at 501. Once all gear is obtained from the map, it will revert back to regular farming. Extremely helpful for spire. Best used in poison zones.', 'value', -1, null, 'Spire'); createSetting('BWraid', 'BW Raiding', 'Raids BW at zone specified in BW Raiding min/max.', 'boolean', false, null, 'Spire'); + if (getPageSetting('BWraid')) { createSetting('BWraidingmin', 'Min BW to raid', 'Raids BWs at zone specified. Example: 485, will raid all BWs for all gear starting from 485. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming.', 'value', -1, null, 'Spire'); createSetting('BWraidingmax', 'Max BW to raid', 'Raids BWs until zone specified. Example: 515, will raid all BWs for all gear until 515. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming.', 'value', -1, null, 'Spire'); + } + if (getPageSetting('AutoAllocatePerks')==2) { createSetting('lootdumpz', 'Loot Dump Z', 'What zone to dump all earned helium from previous portal at. E.g; z230, will dump all helium from last run into looting II at zone 230.', 'value', -1, null, 'Spire'); createSetting('lootdumpa', 'Loot Dump Amount', 'What amount of helium to dump into Looting II. E.g; 1000, will dump 1000 helium into looting II until you can no longer afford to.', 'value', -1, null, 'Spire'); - + } //Combat //Subsection1Line1 createSetting('BetterAutoFight', ['Better AutoFight OFF', 'Better Auto Fight 1', 'Better Auto Fight 2', 'Better Auto Fight 3'], '4-Way Button, Recommended. Will automatically handle fighting.
BAF1 = Old Algo (Fights if dead, new squad ready, new squad breed timer target exceeded, and if breeding takes under 0.5 seconds
BAF2 = Newer, As with BAF1, but also solves DimGen looping, sends trimps immediately when breed target met, and deals with the consequences by firing geneticists
BAF3 = Uses vanilla autofight, and force fights when dead except in VM and Spire.
WARNING: If you autoportal with BetterAutoFight disabled, the game may sit there doing nothing until you click FIGHT. (not good for afk) ', 'multitoggle', 3, null, "Combat"); From 86823f6e57a03784b17a5e7ea8ba51db8d145571 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 19:36:20 +0100 Subject: [PATCH 202/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index cacc39d10..1b3f52931 100644 --- a/modules/other.js +++ b/modules/other.js @@ -257,7 +257,7 @@ function BWraid() { //AutoAllocate Looting II function lootdump() { -if (game.global.world==lootdumpz && !perked && getPageSetting('AutoAllocatePerks')==2 && getPageSetting('lootdumpa') > 0 && getPageSetting('lootdumpz') > 0) { +if (game.global.world==getPageSetting('lootdumpz') && !perked && getPageSetting('AutoAllocatePerks')==2 && getPageSetting('lootdumpa') > 0 && getPageSetting('lootdumpz') > 0) { viewPortalUpgrades(); game.global.lastCustomAmt = getPageSetting('lootdumpa'); numTab(5, true); From 23d5a2efbd7053b4256552b8776126763cb62a8b Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 19:51:19 +0100 Subject: [PATCH 203/365] Update SettingsGUI.js --- SettingsGUI.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 19ab42430..10e467b89 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -378,14 +378,11 @@ function initializeAllSettings() { //Line 2 createSetting('Praidingzone', 'P Raiding Z', 'Raids Maps for prestiges at zone specified. Example: 495, will raid Maps at 501. Once all gear is obtained from the map, it will revert back to regular farming. Extremely helpful for spire. Best used in poison zones.', 'value', -1, null, 'Spire'); createSetting('BWraid', 'BW Raiding', 'Raids BW at zone specified in BW Raiding min/max.', 'boolean', false, null, 'Spire'); - if (getPageSetting('BWraid')) { createSetting('BWraidingmin', 'Min BW to raid', 'Raids BWs at zone specified. Example: 485, will raid all BWs for all gear starting from 485. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming.', 'value', -1, null, 'Spire'); createSetting('BWraidingmax', 'Max BW to raid', 'Raids BWs until zone specified. Example: 515, will raid all BWs for all gear until 515. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming.', 'value', -1, null, 'Spire'); - } - if (getPageSetting('AutoAllocatePerks')==2) { createSetting('lootdumpz', 'Loot Dump Z', 'What zone to dump all earned helium from previous portal at. E.g; z230, will dump all helium from last run into looting II at zone 230.', 'value', -1, null, 'Spire'); createSetting('lootdumpa', 'Loot Dump Amount', 'What amount of helium to dump into Looting II. E.g; 1000, will dump 1000 helium into looting II until you can no longer afford to.', 'value', -1, null, 'Spire'); - } + //Combat //Subsection1Line1 createSetting('BetterAutoFight', ['Better AutoFight OFF', 'Better Auto Fight 1', 'Better Auto Fight 2', 'Better Auto Fight 3'], '4-Way Button, Recommended. Will automatically handle fighting.
BAF1 = Old Algo (Fights if dead, new squad ready, new squad breed timer target exceeded, and if breeding takes under 0.5 seconds
BAF2 = Newer, As with BAF1, but also solves DimGen looping, sends trimps immediately when breed target met, and deals with the consequences by firing geneticists
BAF3 = Uses vanilla autofight, and force fights when dead except in VM and Spire.
WARNING: If you autoportal with BetterAutoFight disabled, the game may sit there doing nothing until you click FIGHT. (not good for afk) ', 'multitoggle', 3, null, "Combat"); @@ -857,6 +854,10 @@ function updateCustomButtons() { getPageSetting('AutoStance')==3 ? turnOn("ScryUseinWind"): turnOff("ScryUseinWind"); getPageSetting('AutoStance')==3 ? turnOn("ScryUseinIce"): turnOff("ScryUseinIce"); getPageSetting('AutoStance')!=3 ? turnOn("IgnoreCrits") : turnOff("IgnoreCrits"); + getPageSetting('AutoAllocatePerks')==2 ? turnOn("lootdumpa"): turnOff("lootdumpa"); + getPageSetting('AutoAllocatePerks')==2 ? turnOn("lootdumpz"): turnOff("lootdumpz"); + getPageSetting('BWraid') ? turnOn("BWrmn"): turnOff("BWrmn"); + getPageSetting('BWraid') ? turnOn("BWrmx"): turnOff("BWrmx"); /*//Make Scryer settings a little more user friendly if (getPageSetting('ScryerUseinVoidMaps2') !=0) { setPageSetting("ScryerUseinMaps2", "2"); } if (getPageSetting('ScryerUseinSpire2') !=1 && isActiveSpireAT()) { setPageSetting("ScryerSkipCorrupteds2", "2"); } */ From e7e195c9efe6fbdfd47eed100c18621e6b8e855c Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 19:53:37 +0100 Subject: [PATCH 204/365] Update SettingsGUI.js --- SettingsGUI.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 10e467b89..0706becbe 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -856,8 +856,8 @@ function updateCustomButtons() { getPageSetting('AutoStance')!=3 ? turnOn("IgnoreCrits") : turnOff("IgnoreCrits"); getPageSetting('AutoAllocatePerks')==2 ? turnOn("lootdumpa"): turnOff("lootdumpa"); getPageSetting('AutoAllocatePerks')==2 ? turnOn("lootdumpz"): turnOff("lootdumpz"); - getPageSetting('BWraid') ? turnOn("BWrmn"): turnOff("BWrmn"); - getPageSetting('BWraid') ? turnOn("BWrmx"): turnOff("BWrmx"); + getPageSetting('BWraid')==true ? turnOn("BWrmn"): turnOff("BWrmn"); + getPageSetting('BWraid')==true ? turnOn("BWrmx"): turnOff("BWrmx"); /*//Make Scryer settings a little more user friendly if (getPageSetting('ScryerUseinVoidMaps2') !=0) { setPageSetting("ScryerUseinMaps2", "2"); } if (getPageSetting('ScryerUseinSpire2') !=1 && isActiveSpireAT()) { setPageSetting("ScryerSkipCorrupteds2", "2"); } */ From 9800419bca25cae64cb7fdb835017a3407d3585c Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 19:57:41 +0100 Subject: [PATCH 205/365] Update SettingsGUI.js --- SettingsGUI.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 0706becbe..0f589394f 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -856,8 +856,8 @@ function updateCustomButtons() { getPageSetting('AutoStance')!=3 ? turnOn("IgnoreCrits") : turnOff("IgnoreCrits"); getPageSetting('AutoAllocatePerks')==2 ? turnOn("lootdumpa"): turnOff("lootdumpa"); getPageSetting('AutoAllocatePerks')==2 ? turnOn("lootdumpz"): turnOff("lootdumpz"); - getPageSetting('BWraid')==true ? turnOn("BWrmn"): turnOff("BWrmn"); - getPageSetting('BWraid')==true ? turnOn("BWrmx"): turnOff("BWrmx"); + getPageSetting('BWraid')==true ? turnOn("BWraidingmin"): turnOff("BWraidingmin"); + getPageSetting('BWraid')==true ? turnOn("BWraidingmax"): turnOff("BWraidingmax"); /*//Make Scryer settings a little more user friendly if (getPageSetting('ScryerUseinVoidMaps2') !=0) { setPageSetting("ScryerUseinMaps2", "2"); } if (getPageSetting('ScryerUseinSpire2') !=1 && isActiveSpireAT()) { setPageSetting("ScryerSkipCorrupteds2", "2"); } */ From ac464960d9198c2c4e6745fab15b45e5b437ec8d Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 20:00:19 +0100 Subject: [PATCH 206/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 1b3f52931..faad8441d 100644 --- a/modules/other.js +++ b/modules/other.js @@ -264,7 +264,7 @@ if (game.global.world==getPageSetting('lootdumpz') && !perked && getPageSetting( if (getPortalUpgradePrice("Looting_II")+game.resources.helium.totalSpentTemp <= game.resources.helium.respecMax) { buyPortalUpgrade('Looting_II'); activateClicked(); - debug('Bought ' + lootdumpa + ' Looting II'); + debug('Bought ' + getPageSetting('lootdumpa') + ' Looting II'); } else { perked = true; From 6b716d9a0a0d6362ed74f330eb7610e0ad4284d1 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 20:03:44 +0100 Subject: [PATCH 207/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index faad8441d..ba3c7ae83 100644 --- a/modules/other.js +++ b/modules/other.js @@ -257,7 +257,7 @@ function BWraid() { //AutoAllocate Looting II function lootdump() { -if (game.global.world==getPageSetting('lootdumpz') && !perked && getPageSetting('AutoAllocatePerks')==2 && getPageSetting('lootdumpa') > 0 && getPageSetting('lootdumpz') > 0) { +if (game.global.world>=getPageSetting('lootdumpz') && !perked && getPageSetting('AutoAllocatePerks')==2 && getPageSetting('lootdumpa') > 0 && getPageSetting('lootdumpz') > 0) { viewPortalUpgrades(); game.global.lastCustomAmt = getPageSetting('lootdumpa'); numTab(5, true); From fb800436ec87bef6243b1f2d252994340e749741 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 20:05:05 +0100 Subject: [PATCH 208/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index ba3c7ae83..faad8441d 100644 --- a/modules/other.js +++ b/modules/other.js @@ -257,7 +257,7 @@ function BWraid() { //AutoAllocate Looting II function lootdump() { -if (game.global.world>=getPageSetting('lootdumpz') && !perked && getPageSetting('AutoAllocatePerks')==2 && getPageSetting('lootdumpa') > 0 && getPageSetting('lootdumpz') > 0) { +if (game.global.world==getPageSetting('lootdumpz') && !perked && getPageSetting('AutoAllocatePerks')==2 && getPageSetting('lootdumpa') > 0 && getPageSetting('lootdumpz') > 0) { viewPortalUpgrades(); game.global.lastCustomAmt = getPageSetting('lootdumpa'); numTab(5, true); From f3a4505121eae9fd71d657e9fd96625ea2e03da4 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 20:13:08 +0100 Subject: [PATCH 209/365] Update other.js --- modules/other.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/other.js b/modules/other.js index faad8441d..e3acda1e2 100644 --- a/modules/other.js +++ b/modules/other.js @@ -236,6 +236,16 @@ function BWraid() { debug("Failed to BW raid. Looks like you don't have a BW to raid..."); } return; + function findLastBionic() + { + for (var i = game.global.mapsOwnedArray.length -1; i>=0; i--) + { + if (game.global.mapsOwnedArray[i].location === "Bionic") + { + return game.global.mapsOwnedArray[i]; + } + } + } */ //} selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); From 4087f03a778d95b274c982a99a17a82699ca847d Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 21:03:50 +0100 Subject: [PATCH 210/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index e3acda1e2..15fe5f336 100644 --- a/modules/other.js +++ b/modules/other.js @@ -198,7 +198,7 @@ function Praiding() { failpraid = false; debug("...Successfully prestiged!"); - if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world == getPageSetting('Praidingzone') && prestraid && !failpraid) { + if (getPageSetting('AutoMaps') !== 1 && game.global.preMapsActive && prestraid && !failpraid) { autoTrimpSettings["AutoMaps"].value = 1; } else if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { From 46f4336c364786f0332d294cafef26606068a904 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 21:06:01 +0100 Subject: [PATCH 211/365] Update other.js --- modules/other.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index 15fe5f336..7d70bbdf9 100644 --- a/modules/other.js +++ b/modules/other.js @@ -193,9 +193,8 @@ function Praiding() { runMap(); if (!game.global.repeatMap && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { repeatClicked(); + prestraid = true; } - prestraid = true; - failpraid = false; debug("...Successfully prestiged!"); if (getPageSetting('AutoMaps') !== 1 && game.global.preMapsActive && prestraid && !failpraid) { From d8fd644b58673978d1198dad3d4c0525e7f2e668 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 21:08:00 +0100 Subject: [PATCH 212/365] Update other.js --- modules/other.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index 7d70bbdf9..5212999cc 100644 --- a/modules/other.js +++ b/modules/other.js @@ -193,10 +193,9 @@ function Praiding() { runMap(); if (!game.global.repeatMap && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { repeatClicked(); - prestraid = true; } debug("...Successfully prestiged!"); - + prestraid = true; if (getPageSetting('AutoMaps') !== 1 && game.global.preMapsActive && prestraid && !failpraid) { autoTrimpSettings["AutoMaps"].value = 1; } From 322de24da93e5cb11213bafb12d215cd35f8f7f5 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 21:12:09 +0100 Subject: [PATCH 213/365] Update other.js --- modules/other.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/other.js b/modules/other.js index 5212999cc..23a0e33e4 100644 --- a/modules/other.js +++ b/modules/other.js @@ -196,7 +196,7 @@ function Praiding() { } debug("...Successfully prestiged!"); prestraid = true; - if (getPageSetting('AutoMaps') !== 1 && game.global.preMapsActive && prestraid && !failpraid) { + if (!getPageSetting('AutoMaps') && game.global.preMapsActive && prestraid && !failpraid) { autoTrimpSettings["AutoMaps"].value = 1; } else if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { @@ -212,7 +212,7 @@ function Praiding() { //BWrmn //BWrmx function BWraid() { - if (game.global.world == BWrmn && !bwraided && !failbwraid) { + /*if (game.global.world == BWrmn && !bwraided && !failbwraid) { if (getPageSetting('AutoMaps') == 1 && game.global.world == BWrmn && !bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 0; } @@ -223,7 +223,7 @@ function BWraid() { if (game.options.menu.repeatUntil.enabled!=2 && game.global.world == BWrmn && !bwraided && !failbwraid) { game.options.menu.repeatUntil.enabled = 2; } - /*if (game.global.world == BWrmn && game.global.preMapsActive && !bwraided && !failbwraid) { + if (game.global.world == BWrmn && game.global.preMapsActive && !bwraided && !failbwraid) { get bw map failbwraid = false; } @@ -244,8 +244,8 @@ function BWraid() { } } } - */ - //} + + } selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); runMap(); if (!game.global.repeatMap && game.global.world == BWrmn && !bwraided && !failbwraid) { @@ -260,7 +260,7 @@ function BWraid() { } else if (bwraided == true && game.global.world !== BWrmn) { bwraided = false; - } + }*/ } //AutoAllocate Looting II From 4895213d677a4da4043de2f9cad3d114476995f4 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 21:16:36 +0100 Subject: [PATCH 214/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 23a0e33e4..c54e24910 100644 --- a/modules/other.js +++ b/modules/other.js @@ -197,7 +197,7 @@ function Praiding() { debug("...Successfully prestiged!"); prestraid = true; if (!getPageSetting('AutoMaps') && game.global.preMapsActive && prestraid && !failpraid) { - autoTrimpSettings["AutoMaps"].value = 1; + toggleAutoMaps(); } else if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { prestraid = false; From e3408c850f80a5f80ecb7d4bd083e01995ccd8d3 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 21:20:37 +0100 Subject: [PATCH 215/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index c54e24910..acb07c70f 100644 --- a/modules/other.js +++ b/modules/other.js @@ -196,7 +196,7 @@ function Praiding() { } debug("...Successfully prestiged!"); prestraid = true; - if (!getPageSetting('AutoMaps') && game.global.preMapsActive && prestraid && !failpraid) { + if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { toggleAutoMaps(); } else if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { From 7a7dde1f4b47b5ef861aa4ade184026f55025068 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 21:25:01 +0100 Subject: [PATCH 216/365] Update other.js --- modules/other.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index acb07c70f..3f58c7037 100644 --- a/modules/other.js +++ b/modules/other.js @@ -199,11 +199,10 @@ function Praiding() { if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { toggleAutoMaps(); } + } else if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { prestraid = false; } - - } } From 6312eea372308e4bcad5736a10dd12162cd2b436 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 13 May 2018 21:25:52 +0100 Subject: [PATCH 217/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 3f58c7037..11079b225 100644 --- a/modules/other.js +++ b/modules/other.js @@ -197,7 +197,7 @@ function Praiding() { debug("...Successfully prestiged!"); prestraid = true; if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { - toggleAutoMaps(); + autoTrimpSettings["AutoMaps"].value = 1; } } else if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { From ed5a6ed2c179e1066d03e55d5540ffb8edf5a3bd Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 10:07:21 +0100 Subject: [PATCH 218/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 11079b225..b9758ad07 100644 --- a/modules/other.js +++ b/modules/other.js @@ -152,7 +152,7 @@ function exitSpireCell() { function plusMapToRun(zone) { if (zone % 10 == 9) - return 6 + return 6; else if (zone % 10 <5) return 5 - zone % 10; else From 57e9a806cb6d466d7fb0694743bd71ca3152c816 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 10:09:25 +0100 Subject: [PATCH 219/365] Update other.js --- modules/other.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/other.js b/modules/other.js index b9758ad07..6e7309090 100644 --- a/modules/other.js +++ b/modules/other.js @@ -198,6 +198,7 @@ function Praiding() { prestraid = true; if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { autoTrimpSettings["AutoMaps"].value = 1; + debug("Turning AutoMaps back on"); } } else if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { From 1b46df3beba8841af25fc935199a71617ee6096f Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 10:14:12 +0100 Subject: [PATCH 220/365] Update other.js --- modules/other.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/other.js b/modules/other.js index 6e7309090..5a0ad66e3 100644 --- a/modules/other.js +++ b/modules/other.js @@ -201,6 +201,10 @@ function Praiding() { debug("Turning AutoMaps back on"); } } + else if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { + autoTrimpSettings["AutoMaps"].value = 1; + debug("Turning AutoMaps back on"); + } else if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { prestraid = false; } From d3a1c721f7e37c6f20cc2e1a3c8886885b420a9f Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 13:34:00 +0100 Subject: [PATCH 221/365] Update other.js --- modules/other.js | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/modules/other.js b/modules/other.js index 5a0ad66e3..0b0749e77 100644 --- a/modules/other.js +++ b/modules/other.js @@ -137,8 +137,7 @@ function exitSpireCell() { endSpire(); } - function plusPres() - { +function plusPres() { document.getElementById("biomeAdvMapsSelect").value = "Random"; document.getElementById('advExtraLevelSelect').value = plusMapToRun(game.global.world); document.getElementById('advSpecialSelect').value = "p"; @@ -147,17 +146,24 @@ function exitSpireCell() { document.getElementById("sizeAdvMapsRange").value = 9; document.getElementById('advPerfectCheckbox').checked = false; updateMapCost(); - } + } - function plusMapToRun(zone) -{ +function plusMapToRun(zone) { if (zone % 10 == 9) return 6; else if (zone % 10 <5) return 5 - zone % 10; else return 11 - zone % 10; -} + } + +function findLastBionic() { + for (var i = game.global.mapsOwnedArray.length -1; i>=0; i--) { + if (game.global.mapsOwnedArray[i].location === "Bionic") { + return game.global.mapsOwnedArray[i]; + } + } + } //Praiding @@ -228,26 +234,16 @@ function BWraid() { game.options.menu.repeatUntil.enabled = 2; } if (game.global.world == BWrmn && game.global.preMapsActive && !bwraided && !failbwraid) { - get bw map + findLastBionic(); failbwraid = false; } - else if cant find bw map { + else if (game.global.world == BWrmn && game.global.preMapsActive && !bwraided && !failbwraid) { if (getPageSetting('AutoMaps') == 0 && game.global.world == BWrmn && !bwraided) { autoTrimpSettings["AutoMaps"].value = 1; failbwraid = true; debug("Failed to BW raid. Looks like you don't have a BW to raid..."); } return; - function findLastBionic() - { - for (var i = game.global.mapsOwnedArray.length -1; i>=0; i--) - { - if (game.global.mapsOwnedArray[i].location === "Bionic") - { - return game.global.mapsOwnedArray[i]; - } - } - } } selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); @@ -261,7 +257,11 @@ function BWraid() { if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world == BWrmn && bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 1; } -} + } + else if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { + autoTrimpSettings["AutoMaps"].value = 1; + debug("Turning AutoMaps back on"); + } else if (bwraided == true && game.global.world !== BWrmn) { bwraided = false; }*/ From 2280664f7192c9944caa5fd1d3a3e0899ac9eb53 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 16:00:29 +0100 Subject: [PATCH 222/365] Update other.js --- modules/other.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/other.js b/modules/other.js index 0b0749e77..63f06250e 100644 --- a/modules/other.js +++ b/modules/other.js @@ -251,6 +251,7 @@ function BWraid() { if (!game.global.repeatMap && game.global.world == BWrmn && !bwraided && !failbwraid) { repeatClicked(); } + if (BWlevel == BWrmx + 15 && !bwraided && !failbwraid) { bwraided = true; failbwraid = false; debug("...Successfully BW raided!"); From 5cd3f13cbedf87c23da6e1f4fa9def480e97ff6d Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 17:52:20 +0100 Subject: [PATCH 223/365] Update other.js --- modules/other.js | 52 ++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/modules/other.js b/modules/other.js index 63f06250e..65e9cc6ca 100644 --- a/modules/other.js +++ b/modules/other.js @@ -222,50 +222,50 @@ function Praiding() { //BWrmn //BWrmx function BWraid() { - /*if (game.global.world == BWrmn && !bwraided && !failbwraid) { - if (getPageSetting('AutoMaps') == 1 && game.global.world == BWrmn && !bwraided && !failbwraid) { - autoTrimpSettings["AutoMaps"].value = 0; + if (game.global.world == BWrmn && !bwraided && !failbwraid) { + if (getPageSetting('AutoMaps') == 1 && game.global.world >= BWrmn && game.global.world <= BWrmx && !bwraided && !failbwraid) { + autoTrimpSettings["AutoMaps"].value = 0; } debug("Beginning BW Raiding..."); - if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world == BWrmn && !bwraided && !failbwraid) { - mapsClicked(); + if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world >= BWrmn && game.global.world <= BWrmx && !bwraided && !failbwraid) { + mapsClicked(); } - if (game.options.menu.repeatUntil.enabled!=2 && game.global.world == BWrmn && !bwraided && !failbwraid) { - game.options.menu.repeatUntil.enabled = 2; + if (game.options.menu.repeatUntil.enabled != 2 && game.global.world == BWrmn && !bwraided && !failbwraid) { + game.options.menu.repeatUntil.enabled = 2; } - if (game.global.world == BWrmn && game.global.preMapsActive && !bwraided && !failbwraid) { - findLastBionic(); + if (game.global.world >= BWrmn && game.global.world <= BWrmx && game.global.preMapsActive && !bwraided && !failbwraid) { + selectMap(findLastBionic()); failbwraid = false; } - else if (game.global.world == BWrmn && game.global.preMapsActive && !bwraided && !failbwraid) { - if (getPageSetting('AutoMaps') == 0 && game.global.world == BWrmn && !bwraided) { - autoTrimpSettings["AutoMaps"].value = 1; - failbwraid = true; - debug("Failed to BW raid. Looks like you don't have a BW to raid..."); - } - return; + else if (game.global.world >= BWrmn && game.global.world <= BWrmx && game.global.preMapsActive && !bwraided && !failbwraid) { + if (getPageSetting('AutoMaps') == 0 && game.global.world >= BWrmn && game.global.world <= BWrmx && !bwraided) { + autoTrimpSettings["AutoMaps"].value = 1; + failbwraid = true; + debug("Failed to BW raid. Looks like you don't have a BW to raid..."); + } + return; } - selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); runMap(); - if (!game.global.repeatMap && game.global.world == BWrmn && !bwraided && !failbwraid) { + if (!game.global.repeatMap && game.global.world >= BWrmn && game.global.world <= BWrmx && !bwraided && !failbwraid) { repeatClicked(); } - if (BWlevel == BWrmx + 15 && !bwraided && !failbwraid) { - bwraided = true; - failbwraid = false; - debug("...Successfully BW raided!"); - if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world == BWrmn && bwraided && !failbwraid) { + if (findLastBionic().level > BWrmx && !bwraided && !failbwraid) { + bwraided = true; + failbwraid = false; + debug("...Successfully BW raided!"); + if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world >= BWrmn && bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 1; } - } - else if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { + } + else if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 1; debug("Turning AutoMaps back on"); } else if (bwraided == true && game.global.world !== BWrmn) { bwraided = false; - }*/ + } + } } //AutoAllocate Looting II From c13c753a7b421328fff25dd5ed724e76c3dce15f Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 17:56:46 +0100 Subject: [PATCH 224/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 65e9cc6ca..d5bdcbfd9 100644 --- a/modules/other.js +++ b/modules/other.js @@ -222,7 +222,7 @@ function Praiding() { //BWrmn //BWrmx function BWraid() { - if (game.global.world == BWrmn && !bwraided && !failbwraid) { + if (game.global.world == BWrmn && !bwraided && !failbwraid && getPageSetting('BWraid')) { if (getPageSetting('AutoMaps') == 1 && game.global.world >= BWrmn && game.global.world <= BWrmx && !bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 0; } From cc6dcf5f33fd3200b8ae547756ccd11e29e371cf Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 17:57:46 +0100 Subject: [PATCH 225/365] Update SettingsGUI.js --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 0f589394f..e1f41830a 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -378,7 +378,7 @@ function initializeAllSettings() { //Line 2 createSetting('Praidingzone', 'P Raiding Z', 'Raids Maps for prestiges at zone specified. Example: 495, will raid Maps at 501. Once all gear is obtained from the map, it will revert back to regular farming. Extremely helpful for spire. Best used in poison zones.', 'value', -1, null, 'Spire'); createSetting('BWraid', 'BW Raiding', 'Raids BW at zone specified in BW Raiding min/max.', 'boolean', false, null, 'Spire'); - createSetting('BWraidingmin', 'Min BW to raid', 'Raids BWs at zone specified. Example: 485, will raid all BWs for all gear starting from 485. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming.', 'value', -1, null, 'Spire'); + createSetting('BWraidingz', 'Z to BW Raid', 'Raids BWs at zone specified. Example: 495, will raid all BWs for all gear starting from 495. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming.', 'value', -1, null, 'Spire'); createSetting('BWraidingmax', 'Max BW to raid', 'Raids BWs until zone specified. Example: 515, will raid all BWs for all gear until 515. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming.', 'value', -1, null, 'Spire'); createSetting('lootdumpz', 'Loot Dump Z', 'What zone to dump all earned helium from previous portal at. E.g; z230, will dump all helium from last run into looting II at zone 230.', 'value', -1, null, 'Spire'); createSetting('lootdumpa', 'Loot Dump Amount', 'What amount of helium to dump into Looting II. E.g; 1000, will dump 1000 helium into looting II until you can no longer afford to.', 'value', -1, null, 'Spire'); From d553661de472d904510d54fb287cf8390e458efa Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 18:06:03 +0100 Subject: [PATCH 226/365] Update other.js --- modules/other.js | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/modules/other.js b/modules/other.js index d5bdcbfd9..1da6b5ec7 100644 --- a/modules/other.js +++ b/modules/other.js @@ -221,24 +221,30 @@ function Praiding() { //BWraiding //BWrmn //BWrmx -function BWraid() { +function BWraiding() { +debug("BW works"); if (game.global.world == BWrmn && !bwraided && !failbwraid && getPageSetting('BWraid')) { - if (getPageSetting('AutoMaps') == 1 && game.global.world >= BWrmn && game.global.world <= BWrmx && !bwraided && !failbwraid) { +debug("zone = min bw"); + if (getPageSetting('AutoMaps') == 1 && game.global.world >= BWrmn && !bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 0; +debug("turning off automaps"); } debug("Beginning BW Raiding..."); - if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world >= BWrmn && game.global.world <= BWrmx && !bwraided && !failbwraid) { + if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world >= BWrmn && !bwraided && !failbwraid) { mapsClicked(); +debug("maps"); } if (game.options.menu.repeatUntil.enabled != 2 && game.global.world == BWrmn && !bwraided && !failbwraid) { game.options.menu.repeatUntil.enabled = 2; +debug("repeat settings"); } - if (game.global.world >= BWrmn && game.global.world <= BWrmx && game.global.preMapsActive && !bwraided && !failbwraid) { + if (game.global.world >= BWrmn && game.global.preMapsActive && !bwraided && !failbwraid) { selectMap(findLastBionic()); failbwraid = false; + debug("found bw"); } - else if (game.global.world >= BWrmn && game.global.world <= BWrmx && game.global.preMapsActive && !bwraided && !failbwraid) { - if (getPageSetting('AutoMaps') == 0 && game.global.world >= BWrmn && game.global.world <= BWrmx && !bwraided) { + else if (game.global.world >= BWrmn && game.global.preMapsActive && !bwraided && !failbwraid) { + if (getPageSetting('AutoMaps') == 0 && game.global.world >= BWrmn && !bwraided) { autoTrimpSettings["AutoMaps"].value = 1; failbwraid = true; debug("Failed to BW raid. Looks like you don't have a BW to raid..."); @@ -247,8 +253,10 @@ function BWraid() { } runMap(); - if (!game.global.repeatMap && game.global.world >= BWrmn && game.global.world <= BWrmx && !bwraided && !failbwraid) { + debug("bw running"); + if (!game.global.repeatMap && game.global.world >= BWrmn && !bwraided && !failbwraid) { repeatClicked(); +debug("repeat on"); } if (findLastBionic().level > BWrmx && !bwraided && !failbwraid) { bwraided = true; From 18d57a7bedf1073ac52f32396ff981500baf6644 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 18:06:39 +0100 Subject: [PATCH 227/365] Update AutoTrimps2.js --- AutoTrimps2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index 99b9d617b..11d519417 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -209,7 +209,7 @@ function mainLoop() { //EXECUTE CORE LOGIC if (getPageSetting('ExitSpireCell') >0) exitSpireCell(); //"Exit Spire After Cell" (other.js) if (getPageSetting('Praidingzone') >0) Praiding(); //Prestige Raiding (other.js) - if (getPageSetting('BWraid')) BWraid(); //BW Raiding (other.js) + if (getPageSetting('BWraid')==true) BWraiding(); //BW Raiding (other.js) if (getPageSetting('AutoAllocatePerks')==2) lootdump(); //Loot Dumping (other.js) if (getPageSetting('BuyUpgradesNew') != 0) buyUpgrades(); //"Buy Upgrades" (upgrades.js) var agu = getPageSetting('AutoGoldenUpgrades'); From 8eec211b0669147d1d6e8bfe9a987434eeb4230d Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 18:08:55 +0100 Subject: [PATCH 228/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 1da6b5ec7..2d76b01e1 100644 --- a/modules/other.js +++ b/modules/other.js @@ -2,7 +2,7 @@ MODULES["other"] = {}; MODULES["other"].enableRoboTrimpSpam = true; //set this to false to stop Spam of "Activated Robotrimp MagnetoShriek Ability" var prestraid = false; var failpraid = false; -var BWrmn = getPageSetting('BWraidingmin'); +var BWrmn = getPageSetting('BWraidingz'); var BWrmx = getPageSetting('BWraidingmax'); var bwraided = false; var perked = false; From aa0e93487f8dc3145d29519309427726f142b5c5 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 18:11:12 +0100 Subject: [PATCH 229/365] Update other.js --- modules/other.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/other.js b/modules/other.js index 2d76b01e1..7f8dd68cd 100644 --- a/modules/other.js +++ b/modules/other.js @@ -5,6 +5,7 @@ var failpraid = false; var BWrmn = getPageSetting('BWraidingz'); var BWrmx = getPageSetting('BWraidingmax'); var bwraided = false; +var failbwraid = false; var perked = false; //Activate Robo Trimp (will activate on the first zone after liquification) function autoRoboTrimp() { From bfc5a0e29af86c7eb07aba526c0eb9896653afde Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 18:23:43 +0100 Subject: [PATCH 230/365] Update other.js --- modules/other.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/modules/other.js b/modules/other.js index 7f8dd68cd..a97736bff 100644 --- a/modules/other.js +++ b/modules/other.js @@ -223,24 +223,19 @@ function Praiding() { //BWrmn //BWrmx function BWraiding() { -debug("BW works"); if (game.global.world == BWrmn && !bwraided && !failbwraid && getPageSetting('BWraid')) { -debug("zone = min bw"); if (getPageSetting('AutoMaps') == 1 && game.global.world >= BWrmn && !bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 0; -debug("turning off automaps"); } debug("Beginning BW Raiding..."); if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world >= BWrmn && !bwraided && !failbwraid) { mapsClicked(); -debug("maps"); } if (game.options.menu.repeatUntil.enabled != 2 && game.global.world == BWrmn && !bwraided && !failbwraid) { game.options.menu.repeatUntil.enabled = 2; -debug("repeat settings"); } if (game.global.world >= BWrmn && game.global.preMapsActive && !bwraided && !failbwraid) { - selectMap(findLastBionic()); + selectMap(findLastBionic().id); failbwraid = false; debug("found bw"); } From 199fe90ef99660654a17cb818f7731dcce42cd10 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 18:26:52 +0100 Subject: [PATCH 231/365] Update other.js --- modules/other.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/other.js b/modules/other.js index a97736bff..02d89ccb2 100644 --- a/modules/other.js +++ b/modules/other.js @@ -223,6 +223,7 @@ function Praiding() { //BWrmn //BWrmx function BWraiding() { +debug("bw works"); if (game.global.world == BWrmn && !bwraided && !failbwraid && getPageSetting('BWraid')) { if (getPageSetting('AutoMaps') == 1 && game.global.world >= BWrmn && !bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 0; From a15fdc2ec0989aaf816288fe52df4bf5645d8d2f Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 18:30:54 +0100 Subject: [PATCH 232/365] Update other.js --- modules/other.js | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/modules/other.js b/modules/other.js index 02d89ccb2..fd99393c5 100644 --- a/modules/other.js +++ b/modules/other.js @@ -2,8 +2,6 @@ MODULES["other"] = {}; MODULES["other"].enableRoboTrimpSpam = true; //set this to false to stop Spam of "Activated Robotrimp MagnetoShriek Ability" var prestraid = false; var failpraid = false; -var BWrmn = getPageSetting('BWraidingz'); -var BWrmx = getPageSetting('BWraidingmax'); var bwraided = false; var failbwraid = false; var perked = false; @@ -224,24 +222,24 @@ function Praiding() { //BWrmx function BWraiding() { debug("bw works"); - if (game.global.world == BWrmn && !bwraided && !failbwraid && getPageSetting('BWraid')) { - if (getPageSetting('AutoMaps') == 1 && game.global.world >= BWrmn && !bwraided && !failbwraid) { + if (game.global.world == getPageSetting('BWraidingz') && !bwraided && !failbwraid && getPageSetting('BWraid')) { + if (getPageSetting('AutoMaps') == 1 && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 0; } debug("Beginning BW Raiding..."); - if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world >= BWrmn && !bwraided && !failbwraid) { + if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { mapsClicked(); } - if (game.options.menu.repeatUntil.enabled != 2 && game.global.world == BWrmn && !bwraided && !failbwraid) { + if (game.options.menu.repeatUntil.enabled != 2 && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { game.options.menu.repeatUntil.enabled = 2; } - if (game.global.world >= BWrmn && game.global.preMapsActive && !bwraided && !failbwraid) { + if (game.global.world >= getPageSetting('BWraidingz') && game.global.preMapsActive && !bwraided && !failbwraid) { selectMap(findLastBionic().id); failbwraid = false; debug("found bw"); } - else if (game.global.world >= BWrmn && game.global.preMapsActive && !bwraided && !failbwraid) { - if (getPageSetting('AutoMaps') == 0 && game.global.world >= BWrmn && !bwraided) { + else if (game.global.world >= getPageSetting('BWraidingz') && game.global.preMapsActive && !bwraided && !failbwraid) { + if (getPageSetting('AutoMaps') == 0 && game.global.world >= getPageSetting('BWraidingz') && !bwraided) { autoTrimpSettings["AutoMaps"].value = 1; failbwraid = true; debug("Failed to BW raid. Looks like you don't have a BW to raid..."); @@ -251,15 +249,15 @@ debug("bw works"); } runMap(); debug("bw running"); - if (!game.global.repeatMap && game.global.world >= BWrmn && !bwraided && !failbwraid) { + if (!game.global.repeatMap && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { repeatClicked(); debug("repeat on"); } - if (findLastBionic().level > BWrmx && !bwraided && !failbwraid) { + if (findLastBionic().level > getPageSetting('BWraidingz') && !bwraided && !failbwraid) { bwraided = true; failbwraid = false; debug("...Successfully BW raided!"); - if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world >= BWrmn && bwraided && !failbwraid) { + if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world >= getPageSetting('BWraidingz') && bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 1; } } @@ -267,7 +265,7 @@ debug("repeat on"); autoTrimpSettings["AutoMaps"].value = 1; debug("Turning AutoMaps back on"); } - else if (bwraided == true && game.global.world !== BWrmn) { + else if (bwraided == true && game.global.world !== getPageSetting('BWraidingz')) { bwraided = false; } } From effeac33b749718768f0f205784f893c088ff953 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 18:33:22 +0100 Subject: [PATCH 233/365] Update other.js --- modules/other.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/modules/other.js b/modules/other.js index fd99393c5..cd2081f45 100644 --- a/modules/other.js +++ b/modules/other.js @@ -221,7 +221,6 @@ function Praiding() { //BWrmn //BWrmx function BWraiding() { -debug("bw works"); if (game.global.world == getPageSetting('BWraidingz') && !bwraided && !failbwraid && getPageSetting('BWraid')) { if (getPageSetting('AutoMaps') == 1 && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 0; @@ -236,7 +235,6 @@ debug("bw works"); if (game.global.world >= getPageSetting('BWraidingz') && game.global.preMapsActive && !bwraided && !failbwraid) { selectMap(findLastBionic().id); failbwraid = false; - debug("found bw"); } else if (game.global.world >= getPageSetting('BWraidingz') && game.global.preMapsActive && !bwraided && !failbwraid) { if (getPageSetting('AutoMaps') == 0 && game.global.world >= getPageSetting('BWraidingz') && !bwraided) { @@ -248,10 +246,8 @@ debug("bw works"); } runMap(); - debug("bw running"); if (!game.global.repeatMap && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { repeatClicked(); -debug("repeat on"); } if (findLastBionic().level > getPageSetting('BWraidingz') && !bwraided && !failbwraid) { bwraided = true; From 7a6af2bec9af33ba0aecdcb85017f1244a9f1dd6 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 18:42:03 +0100 Subject: [PATCH 234/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index cd2081f45..dd1d33b69 100644 --- a/modules/other.js +++ b/modules/other.js @@ -249,7 +249,7 @@ function BWraiding() { if (!game.global.repeatMap && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { repeatClicked(); } - if (findLastBionic().level > getPageSetting('BWraidingz') && !bwraided && !failbwraid) { + if (findLastBionic().level > getPageSetting('BWraidingmax') && !bwraided && !failbwraid) { bwraided = true; failbwraid = false; debug("...Successfully BW raided!"); From d41bc9b61145e1020bc12b63d7ad26eb81323825 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 18:45:46 +0100 Subject: [PATCH 235/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index dd1d33b69..7a9eab951 100644 --- a/modules/other.js +++ b/modules/other.js @@ -225,7 +225,6 @@ function BWraiding() { if (getPageSetting('AutoMaps') == 1 && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 0; } - debug("Beginning BW Raiding..."); if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { mapsClicked(); } @@ -235,6 +234,7 @@ function BWraiding() { if (game.global.world >= getPageSetting('BWraidingz') && game.global.preMapsActive && !bwraided && !failbwraid) { selectMap(findLastBionic().id); failbwraid = false; + debug("Beginning BW Raiding..."); } else if (game.global.world >= getPageSetting('BWraidingz') && game.global.preMapsActive && !bwraided && !failbwraid) { if (getPageSetting('AutoMaps') == 0 && game.global.world >= getPageSetting('BWraidingz') && !bwraided) { From 0ff3d7a5d3a421f5abf598c0de3a0c8770b4968b Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 18:51:57 +0100 Subject: [PATCH 236/365] Update SettingsGUI.js --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index e1f41830a..efca54356 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -856,7 +856,7 @@ function updateCustomButtons() { getPageSetting('AutoStance')!=3 ? turnOn("IgnoreCrits") : turnOff("IgnoreCrits"); getPageSetting('AutoAllocatePerks')==2 ? turnOn("lootdumpa"): turnOff("lootdumpa"); getPageSetting('AutoAllocatePerks')==2 ? turnOn("lootdumpz"): turnOff("lootdumpz"); - getPageSetting('BWraid')==true ? turnOn("BWraidingmin"): turnOff("BWraidingmin"); + getPageSetting('BWraid')==true ? turnOn("BWraidingz"): turnOff("BWraidingz"); getPageSetting('BWraid')==true ? turnOn("BWraidingmax"): turnOff("BWraidingmax"); /*//Make Scryer settings a little more user friendly if (getPageSetting('ScryerUseinVoidMaps2') !=0) { setPageSetting("ScryerUseinMaps2", "2"); } From 17425bff45b63a191d3f92d633034cda64cf670c Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 22:13:03 +0100 Subject: [PATCH 237/365] Update perks.js --- modules/perks.js | 30 +++--------------------------- 1 file changed, 3 insertions(+), 27 deletions(-) diff --git a/modules/perks.js b/modules/perks.js index fc4c4120a..a7d913bfa 100644 --- a/modules/perks.js +++ b/modules/perks.js @@ -26,19 +26,6 @@ head.appendChild(queuescript); //-------------------------------------- //Ratio Presets - Perk proportions: // (in perk order): [looting,toughness,power,motivation,pheromones,artisanistry,carpentry,resilience,coordinated,resourceful,overkill,cunning,curious]; -var preset_ZXV = [20, 0.5, 1, 1.5, 0.5, 1.5, 8, 1, 25, 2, 3, 1, 1]; -var preset_ZXVnew = [50, 0.75, 1, 3, 0.75, 3, 10, 1.5, 60, 2, 5, 1, 1]; -var preset_ZXV3 = [100, 1, 3, 3, 1, 3, 40, 2, 100, 1, 3, 1, 1]; -var preset_TruthEarly = [30, 4, 4, 4, 4, 2, 24, 8, 60, 2, 3, 1, 1]; -var preset_TruthLate = [120, 4, 4, 4, 4, 2, 24, 8, 60, 2, 3, 1, 1]; -var preset_nsheetz = [42, 1.75, 5, 4, 1.5, 5, 29, 3.5, 100, 1, 5, 1, 1]; -var preset_nsheetzNew= [160, 1.5, 5, 2.5, 1.5, 3.5, 18, 3, 100, 1, 10, 1, 1]; -var preset_HiderHehr = [90, 4, 12, 10, 1, 8, 8, 1, 20, 0.1, 3, 1, 1]; -var preset_HiderBalance = [75, 4, 8, 4, 1, 4, 24, 1, 75, 0.5, 3, 1, 1]; -var preset_HiderMore = [20, 4, 10, 12, 1, 8, 8, 1, 40, 0.1, 0.5, 1, 1]; -var preset_genBTC = [100, 8, 8, 4, 4, 5, 18, 8, 14, 1, 1, 1, 1]; -var preset_genBTC2 = [96, 19, 15.4, 8, 8, 7, 14, 19, 11, 1, 1, 1, 1]; -var preset_Zek450 = [450, 0.9, 48, 3.35, 1, 2.8, 7.8, 1.95, 4, 0.04, 1, 120, 175]; // var preset_space = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; // @@ -49,23 +36,12 @@ var preset_Zek229 = [11.2, 0.58, 2.37, 1.464, 0.3, 2.02, 12.2, 0.58, 37, 0.22, 2 var preset_Zek299 = [16.8, 3, 1.9, 1.1, 1.2, 1, 17.1, 3, 100, 0.06, 0.8, 0, 0]; var preset_Zek399 = [135, 6.1, 18.5, 6.5, 2.5, 6, 17, 6.1, 25, 0.08, 1, 0, 0]; var preset_Zek449 = [245, 5.85, 29, 1.95, 2.8, 6, 6.1, 5.85, 15, 0.05, 1, 57, 0]; +var preset_Zek450 = [450, 0.9, 48, 3.35, 1, 2.8, 7.8, 1.95, 4, 0.04, 1, 120, 175]; //gather these into an array of objects. this is one important object. -var presetList = [preset_ZXV,preset_ZXVnew,preset_ZXV3,preset_TruthEarly,preset_TruthLate,preset_nsheetz,preset_nsheetzNew,preset_HiderHehr,preset_HiderBalance,preset_HiderMore,preset_genBTC,preset_genBTC2,preset_space,preset_Zek059,preset_Zek100,preset_Zek180,preset_Zek229,preset_Zek299,preset_Zek399,preset_Zek449,preset_Zek450,preset_space]; +var presetList = [preset_space,preset_Zek059,preset_Zek100,preset_Zek180,preset_Zek229,preset_Zek299,preset_Zek399,preset_Zek449,preset_Zek450,preset_space]; //Specific ratios labeled above must be given the matching ID below. //Ratio preset dropdown list var presetListHtml = "\ -\ -\ -\ -\ -\ -\ -\ -\ -\ -\ -\ -\ \ \ \ @@ -74,7 +50,7 @@ var presetListHtml = "\ \ \ \ -\ +\ \ "; //Custom Creation for all perk customRatio boxes in Trimps Perk Window From a6cbfd8e0ab305fb2f6aedaf31c59e81dcc7ba5c Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 14 May 2018 22:24:49 +0100 Subject: [PATCH 238/365] Update other.js --- modules/other.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/modules/other.js b/modules/other.js index 7a9eab951..dcabf38f1 100644 --- a/modules/other.js +++ b/modules/other.js @@ -209,10 +209,10 @@ function Praiding() { else if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { autoTrimpSettings["AutoMaps"].value = 1; debug("Turning AutoMaps back on"); - } - else if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { + if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { prestraid = false; - } + } + } } @@ -260,13 +260,12 @@ function BWraiding() { else if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 1; debug("Turning AutoMaps back on"); - } - else if (bwraided == true && game.global.world !== getPageSetting('BWraidingz')) { + if (bwraided == true && game.global.world !== getPageSetting('BWraidingz')) { bwraided = false; - } - } -} - + } + } + } + } //AutoAllocate Looting II function lootdump() { if (game.global.world==getPageSetting('lootdumpz') && !perked && getPageSetting('AutoAllocatePerks')==2 && getPageSetting('lootdumpa') > 0 && getPageSetting('lootdumpz') > 0) { From 58a13964f7cdfb5163ea88d4a0d58dfd0bcc9778 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Tue, 15 May 2018 09:02:02 +0100 Subject: [PATCH 239/365] Update perks.js --- modules/perks.js | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/modules/perks.js b/modules/perks.js index a7d913bfa..d51a01460 100644 --- a/modules/perks.js +++ b/modules/perks.js @@ -26,6 +26,21 @@ head.appendChild(queuescript); //-------------------------------------- //Ratio Presets - Perk proportions: // (in perk order): [looting,toughness,power,motivation,pheromones,artisanistry,carpentry,resilience,coordinated,resourceful,overkill,cunning,curious]; +var preset_ZXV = [20, 0.5, 1, 1.5, 0.5, 1.5, 8, 1, 25, 2, 3, 1, 1]; +var preset_ZXVnew = [50, 0.75, 1, 3, 0.75, 3, 10, 1.5, 60, 2, 5, 1, 1]; +var preset_ZXV3 = [100, 1, 3, 3, 1, 3, 40, 2, 100, 1, 3, 1, 1]; +var preset_TruthEarly = [30, 4, 4, 4, 4, 2, 24, 8, 60, 2, 3, 1, 1]; +var preset_TruthLate = [120, 4, 4, 4, 4, 2, 24, 8, 60, 2, 3, 1, 1]; +var preset_nsheetz = [42, 1.75, 5, 4, 1.5, 5, 29, 3.5, 100, 1, 5, 1, 1]; +var preset_nsheetzNew= [160, 1.5, 5, 2.5, 1.5, 3.5, 18, 3, 100, 1, 10, 1, 1]; +var preset_HiderHehr = [90, 4, 12, 10, 1, 8, 8, 1, 20, 0.1, 3, 1, 1]; +var preset_HiderBalance = [75, 4, 8, 4, 1, 4, 24, 1, 75, 0.5, 3, 1, 1]; +var preset_HiderMore = [20, 4, 10, 12, 1, 8, 8, 1, 40, 0.1, 0.5, 1, 1]; +var preset_genBTC = [100, 8, 8, 4, 4, 5, 18, 8, 14, 1, 1, 1, 1]; +var preset_genBTC2 = [96, 19, 15.4, 8, 8, 7, 14, 19, 11, 1, 1, 1, 1]; +var preset_Zek4501 = [300, 1, 30, 2, 4, 2, 9, 8, 17, 0.1, 1, 320, 1]; +var preset_Zek4502 = [350, 1, 40, 2, 3, 2, 5, 8, 2, 0.1, 1, 300, 20]; +var preset_Zek450 = [450, 0.9, 48, 3.35, 1, 2.8, 7.8, 1.95, 4, 0.04, 1, 120, 175]; // var preset_space = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; // @@ -36,12 +51,26 @@ var preset_Zek229 = [11.2, 0.58, 2.37, 1.464, 0.3, 2.02, 12.2, 0.58, 37, 0.22, 2 var preset_Zek299 = [16.8, 3, 1.9, 1.1, 1.2, 1, 17.1, 3, 100, 0.06, 0.8, 0, 0]; var preset_Zek399 = [135, 6.1, 18.5, 6.5, 2.5, 6, 17, 6.1, 25, 0.08, 1, 0, 0]; var preset_Zek449 = [245, 5.85, 29, 1.95, 2.8, 6, 6.1, 5.85, 15, 0.05, 1, 57, 0]; -var preset_Zek450 = [450, 0.9, 48, 3.35, 1, 2.8, 7.8, 1.95, 4, 0.04, 1, 120, 175]; //gather these into an array of objects. this is one important object. -var presetList = [preset_space,preset_Zek059,preset_Zek100,preset_Zek180,preset_Zek229,preset_Zek299,preset_Zek399,preset_Zek449,preset_Zek450,preset_space]; +var presetList = [preset_ZXV,preset_ZXVnew,preset_ZXV3,preset_TruthEarly,preset_TruthLate,preset_nsheetz,preset_nsheetzNew,preset_HiderHehr,preset_HiderBalance,preset_HiderMore,preset_genBTC,preset_genBTC2,preset_Zek4501,preset_Zek4502,preset_Zek450,preset_space,preset_Zek059,preset_Zek100,preset_Zek180,preset_Zek229,preset_Zek299,preset_Zek399,preset_Zek449,preset_Zek450,preset_space]; //Specific ratios labeled above must be given the matching ID below. //Ratio preset dropdown list var presetListHtml = "\ +\ +\ +\ +\ +\ +\ +\ +\ +\ +\ +\ +\ +\ +\ +\ \ \ \ @@ -50,7 +79,7 @@ var presetListHtml = "\ \ \ \ -\ +\ \ "; //Custom Creation for all perk customRatio boxes in Trimps Perk Window From 4982d74c19363510f7d1fb8a015ace6aacfcc913 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 25 May 2018 08:51:44 +0100 Subject: [PATCH 240/365] Update other.js --- modules/other.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index dcabf38f1..35f8c8bf4 100644 --- a/modules/other.js +++ b/modules/other.js @@ -256,6 +256,7 @@ function BWraiding() { if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && game.global.world >= getPageSetting('BWraidingz') && bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 1; } + } } else if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 1; @@ -264,7 +265,7 @@ function BWraiding() { bwraided = false; } } - } + } //AutoAllocate Looting II function lootdump() { From 279cd83fb2c1eed74b7a3af4eeefea59fd407ccb Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 28 May 2018 19:13:14 +0100 Subject: [PATCH 241/365] Update battlecalc.js --- modules/battlecalc.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/battlecalc.js b/modules/battlecalc.js index c365db94c..7ae10f099 100644 --- a/modules/battlecalc.js +++ b/modules/battlecalc.js @@ -218,6 +218,14 @@ function getBattleStats(what,form,crit) { if (what == "attack" && Fluffy.isActive()){ var amt = Fluffy.getDamageModifier(); currentCalc *= amt; + //Amal attack + if (what == "attack" && game.jobs.Amalgamator.owned > 0){ + var amt = game.jobs.Amalgamator.getDamageMult(); + currentCalc *= amt; + //Amal health + if (what == "health" && game.jobs.Amalgamator.owned > 0){ + var amt = game.jobs.Amalgamator.getHealthMult(); + currentCalc *= amt; } if (crit) { var critChance = getPlayerCritChance(); From b537c6ef6269ee6d065a84b068c0822170edd42b Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 28 May 2018 19:17:19 +0100 Subject: [PATCH 242/365] Update battlecalc.js --- modules/battlecalc.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/battlecalc.js b/modules/battlecalc.js index 7ae10f099..2da81db9e 100644 --- a/modules/battlecalc.js +++ b/modules/battlecalc.js @@ -218,10 +218,12 @@ function getBattleStats(what,form,crit) { if (what == "attack" && Fluffy.isActive()){ var amt = Fluffy.getDamageModifier(); currentCalc *= amt; + } //Amal attack if (what == "attack" && game.jobs.Amalgamator.owned > 0){ var amt = game.jobs.Amalgamator.getDamageMult(); currentCalc *= amt; + } //Amal health if (what == "health" && game.jobs.Amalgamator.owned > 0){ var amt = game.jobs.Amalgamator.getHealthMult(); @@ -281,7 +283,7 @@ function calcOurDmg(number,maxormin,disableStances,disableFlucts) { //number = b number *= ((vpAmt / 100) + 1); } if (game.global.totalSquaredReward > 0){ - number *= ((game.global.totalSquaredReward / 100) + 1) + number *= ((game.global.totalSquaredReward / 100) + 1); } if (game.talents.magmamancer.purchased){ number *= game.jobs.Magmamancer.getBonusPercent(); @@ -295,6 +297,12 @@ function calcOurDmg(number,maxormin,disableStances,disableFlucts) { //number = b if (Fluffy.isActive()){ number *= Fluffy.getDamageModifier(); } + if (game.jobs.Amalgamator.owned > 0){ + number *= game.jobs.Amalgamator.getDamageMult(); + } + if (game.jobs.Amalgamator.owned > 0){ + number *= game.jobs.Amalgamator.getHealthMult(); + } number *= (1 + (1 - game.empowerments.Ice.getCombatModifier())); if (game.global.challengeActive == "Daily"){ @@ -405,7 +413,7 @@ function calcDailyAttackMod(number) { number *= dailyModifiers.badMapStrength.getMult(game.global.dailyChallenge.badMapStrength.strength); } if (typeof game.global.dailyChallenge.bloodthirst !== 'undefined'){ - number *= dailyModifiers.bloodthirst.getMult(game.global.dailyChallenge.bloodthirst.strength, game.global.dailyChallenge.bloodthirst.stacks) + number *= dailyModifiers.bloodthirst.getMult(game.global.dailyChallenge.bloodthirst.strength, game.global.dailyChallenge.bloodthirst.stacks); } } return number; From 687384c1a5b152cc6c4b3183369ccf42385f0c91 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 28 May 2018 19:31:26 +0100 Subject: [PATCH 243/365] Update .user.js --- .user.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.user.js b/.user.js index d1709a7dd..a826c40d4 100644 --- a/.user.js +++ b/.user.js @@ -1,22 +1,22 @@ // ==UserScript== -// @name AutoTrimps-kfro -// @version 1.0-kfro -// @namespace https://KFrowde.github.io/AutoTrimps -// @updateURL https://KFrowde.github.io/AutoTrimps/.user.js +// @name AutoTrimps-Zorn192 +// @version 1.0-Zorn192 +// @namespace https://Zorn192.github.io/AutoTrimps +// @updateURL https://Zorn192.github.io/AutoTrimps/.user.js // @description Automate all the trimps! -// @author zininzinin, spindrjr, Ishkaru, genBTC +// @author zininzinin, spindrjr, Ishkaru, genBTC, Zorn192 // @include *trimps.github.io* // @include *kongregate.com/games/GreenSatellite/trimps -// @connect *KFrowde.github.io/AutoTrimps* +// @connect *Zorn192.github.io/AutoTrimps* // @connect *trimps.github.io* // @connect self // @grant none // ==/UserScript== var script = document.createElement('script'); -script.id = 'AutoTrimps-KFrowde'; +script.id = 'AutoTrimps-Zorn192'; //This can be edited to point to your own Github Repository URL. -script.src = 'https://kfrowde.github.io/AutoTrimps/AutoTrimps2.js'; +script.src = 'https://Zorn192.github.io/AutoTrimps/AutoTrimps2.js'; //script.setAttribute('crossorigin',"use-credentials"); script.setAttribute('crossorigin',"anonymous"); document.head.appendChild(script); From ef3083699f63a891b11325ef0c265f2b3bba3e9c Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 28 May 2018 19:32:18 +0100 Subject: [PATCH 244/365] Update .user.js --- .user.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.user.js b/.user.js index a826c40d4..2a7663279 100644 --- a/.user.js +++ b/.user.js @@ -1,10 +1,10 @@ // ==UserScript== -// @name AutoTrimps-Zorn192 -// @version 1.0-Zorn192 +// @name AutoTrimps-Zek +// @version 1.0-Zek // @namespace https://Zorn192.github.io/AutoTrimps // @updateURL https://Zorn192.github.io/AutoTrimps/.user.js // @description Automate all the trimps! -// @author zininzinin, spindrjr, Ishkaru, genBTC, Zorn192 +// @author zininzinin, spindrjr, Ishkaru, genBTC, Zeker0 // @include *trimps.github.io* // @include *kongregate.com/games/GreenSatellite/trimps // @connect *Zorn192.github.io/AutoTrimps* @@ -14,7 +14,7 @@ // ==/UserScript== var script = document.createElement('script'); -script.id = 'AutoTrimps-Zorn192'; +script.id = 'AutoTrimps-Zek'; //This can be edited to point to your own Github Repository URL. script.src = 'https://Zorn192.github.io/AutoTrimps/AutoTrimps2.js'; //script.setAttribute('crossorigin',"use-credentials"); From 9812ec5d3f78091412533538d2dde988e1f38b95 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 28 May 2018 19:32:56 +0100 Subject: [PATCH 245/365] Delete HiderTrimp.js --- sparecode/HiderTrimp.js | 208 ---------------------------------------- 1 file changed, 208 deletions(-) delete mode 100644 sparecode/HiderTrimp.js diff --git a/sparecode/HiderTrimp.js b/sparecode/HiderTrimp.js deleted file mode 100644 index 348c3df11..000000000 --- a/sparecode/HiderTrimp.js +++ /dev/null @@ -1,208 +0,0 @@ - -//original globals -var buildcounter = 0; -var autoTSettings = {}; -var version = "0.37b.17T2"; - -//setup talk button -document.getElementById("buildingsQueue").style = "width: 70%; float: left;"; -document.getElementById("queueContainer").insertAdjacentHTML('beforeend', '

Talk
'); -letMeTalk = document.getElementById("talkingBtn"); -letMeTalk.setAttribute("onmouseover", 'tooltip(\"Talk\", \"customText\", event, \"It knows a lot about how Trimps works.\")'); -letMeTalk.setAttribute("onmouseout", 'tooltip("hide")'); -//setup talk window -document.getElementById("boneWrapper").insertAdjacentHTML('beforebegin', ''); -document.getElementById("autotrimp").insertAdjacentHTML('beforeend', ''); - -//setup paint button -document.getElementById("queueContainer").insertAdjacentHTML('beforeend', '
Paint
'); -letMePaint = document.getElementById("paintingBtn"); -letMePaint.setAttribute("onmouseover", 'tooltip(\"Paint\", \"customText\", event, \"It can paint things.\")'); -letMePaint.setAttribute("onmouseout", 'tooltip("hide")'); -//setup paint window -document.getElementById("queueContainer").insertAdjacentHTML('beforebegin', ''); -//HiderTryThatFailed//document.getElementById("boneWrapper").insertAdjacentHTML('beforebegin', ''); -//beforebegin //afterbegin //beforeend //afterend - -function getNiceThingsDone() { - var zp = document.getElementById("zonePic").value; - var pp = document.getElementById("prePic").value; - var vp = document.getElementById("voidPic").value; - var mp = document.getElementById("mapPic").value; - var sp = document.getElementById("spirePic").value; - if (zp.length > 5 || pp.length > 5 || vp.length > 5 || mp.length > 5 || sp.length > 5) { - //bring the art. (mp.length > 5) - if (zp.length > 5 && !game.global.preMapsActive && !game.global.mapsActive && !game.global.spireActive) { - document.getElementById("trimps").insertAdjacentHTML('afterend', '
'); - } else if (pp.length > 5 && game.global.preMapsActive) { - document.getElementById("trimps").insertAdjacentHTML('afterend', '
'); - } else if (vp.length > 5 && game.global.mapsActive && getCurrentMapObject().location == "Void") { - document.getElementById("trimps").insertAdjacentHTML('afterend', '
'); - } else if (mp.length > 5 && game.global.mapsActive && getCurrentMapObject().location != "Void") { - document.getElementById("trimps").insertAdjacentHTML('afterend', '
'); - } else if (sp.length > 5 && game.global.world >= getPageSetting('IgnoreSpiresUntil') && (game.global.world == 200 || game.global.world == 300 || game.global.world == 400 || game.global.world == 500 || game.global.world == 600) && game.global.spireActive) { - document.getElementById("trimps").insertAdjacentHTML('afterend', '
'); - } - if ((sp.length > 5 || zp.length > 5) && game.resources.trimps.soldiers != 0 && !game.global.preMapsActive && !game.global.mapsActive && (new Date().getTime() - game.global.zoneStarted) > 1600 && game.global.gridArray.length != 0) { - var cells = document.getElementById("grid").getElementsByClassName("battleCell cellColorBeaten"); var oldstyle = cells[0].getAttribute('style'); for (var i=0; i < cells.length; i++) cells[i].setAttribute('style', oldstyle + '; background-color: rgba(0,0,0,0.3);'); - } - if ((mp.length > 5 || vp.length > 5) && game.resources.trimps.soldiers != 0 && game.global.mapsActive && (new Date().getTime() - game.global.mapStarted) > 1600 && game.global.mapGridArray.length != 0) { - var cells = document.getElementById("mapGrid").getElementsByClassName("battleCell cellColorBeaten"); var oldstyle = cells[0].getAttribute('style'); for (var i=0; i < cells.length; i++) cells[i].setAttribute('style', oldstyle + '; background-color: rgba(0,0,0,0.3);'); - } - } - //bring the light. - var BR0 = document.getElementById("BR").value*1; - var BG0 = document.getElementById("BG").value*1; - var BB0 = document.getElementById("BB").value*1; - var CR0 = document.getElementById("CR").value*1; - var CG0 = document.getElementById("CG").value*1; - var CB0 = document.getElementById("CB").value*1; - if ((BR0 > 0 && BG0 > 0 && BB0 > 0) || (CR0 > 0 && CG0 > 0 && CB0 > 0)) { - var colB = "background: rgb("+BR0+"," +BG0+","+ BB0+");"; - var colC = "background: rgb("+CR0+"," +CG0+","+ CB0+");"; - //document.getElementById("innerWrapper").style = "background: rgb(BR, BG, BB);"; - document.getElementById("innerWrapper").style = colB; - document.getElementById("battleContainer").style = colC; - document.getElementById("gridContainer").style = colC; - document.getElementById("science").style = colC; - document.getElementById("selectedMapContainer").style = colC; - document.getElementById("helium").style = colC; - document.getElementById("achievementWrapper").style = colC; - document.getElementById("buyContainer").style = colC; - document.getElementById("logContainer").style = colC; - document.getElementById("queueContainer").style = colC; - document.getElementById("wood").style = colC; - document.getElementById("fragments").style = colC; - document.getElementById("heirloomWrapper").style = colC; - document.getElementById("food").style = colC; - document.getElementById("metal").style = colC; - document.getElementById("gems").style = colC; - document.getElementById("trimps").style = colC; - } -} - -//setup options -function createInputSetting(pic,div) { - var picInput = document.createElement("Input"); - picInput.id = pic + "URL"; - picInput.setAttribute('style', 'text-align: center; width: 60px; color: black;'); - picInput.setAttribute('class', 'picInput'); - var perk1label = document.createElement("Label"); - picLable.id = pic + 'Label'; - picLable.innerHTML = pic; - picLable.setAttribute('style', 'margin-right: 1vw; width: 120px; color: white;'); - //add to the div. - div.appendChild(picInput); - div.appendChild(picLable); -} - -//Add new css rule -//document.styleSheets[2].insertRule(".settingBtn3 {background-color: #337AB7;}", 84); - -var getPercent = 0; -var reactPercent = 0; -function getStats() { - reactPercent = 0; - getPercent = (game.stats.heliumHour.value() / (game.global.totalHeliumEarned - (game.global.heliumLeftover + game.resources.helium.owned)))*100; - if (getPercent.toFixed(3) > 0.54) { - reactPercent = " An amazing result, share it with others, they will appriciate it."; - } else if (getPercent.toFixed(3) > 0.53) { - reactPercent = " GRATZ, A NEW WORLD RECORD!"; - } else if (getPercent.toFixed(3) > 0.52) { - reactPercent = " Only a few ever got this far."; - } else if (getPercent.toFixed(3) > 0.50) { - reactPercent = " it's not shameful to give up."; - } else if (getPercent.toFixed(3) > 0.40) { - reactPercent = " It's the final push."; - } else if (getPercent.toFixed(3) > 0.30) { - reactPercent = " Keep it comming..."; - } else if (getPercent.toFixed(3) <= 0.30) { - reactPercent = " Did you just portal?"; - } - return getPercent.toFixed(3) + '%'; //return -} - -var getGigaDelta = false; -var reactGigaDelta = false; -function getStats2() { - reactGigaDelta = true; - getGigaDelta = (getPageSetting('FirstGigastation') > 40 || getPageSetting('DeltaGigastation') > 2); - if (getGigaDelta == true) { - reactGigaDelta = "First Gigastation must be under 41 and Min Warpstation must be under two, if you don't know how it works, why don't you click on the chat and ask?"; - } else if (getGigaDelta == false) { - reactGigaDelta = "You know the Truth."; - } - return getGigaDelta; -} - -var getAutoPortal = false; -var reactAutoPortal = false; -function getStats3() { - reactAutoPortal = true; - getAutoPortal = (getPageSetting('HeliumHrBuffer') > 0 || autoTrimpSettings.AutoPortal.selected != "Helium Per Hour"); - if (getAutoPortal == true) { - reactAutoPortal = "The Helium/Hr Buffer must be set to 0 and Auto Portal is there in order to help you get better Helium per hour, if you don't know how it works, why don't you click on the chat and ask?"; - } else if (getAutoPortal == false) { - reactAutoPortal = "You know the Truth."; - } - return getAutoPortal; -} - -//setup convo array -var conversation = []; -conversation[0] = {Q:"Hello.",R1:"Tell me the Truth.",L1:1,R2:"How am i doing so far?",L2:5,R3:"Tell me what to do.",L3:3}; -conversation[1] = {Q:"" +reactGigaDelta,R1:"Be more honest please.",L1:6,R2:"What can go wrong in the Don't Touch Zone?",L2:4,R3:"I know the Truth.",L3:0}; -conversation[2] = {Q:"OK.",R1:"Again.",L1:0,R2:"How am i doing so far?",L2:5,R3:"What can go wrong in the Don't Touch Zone?",L3:4}; -conversation[3] = {Q:"Please set Auto Portal to Helium Per Hour and set First Gigastation to 40 (or less). Make sure that Min Warpstation is set to two (or less). And notice that some of the Void Maps will be done before your Void Maps settings, so please use it and set the Void Maps to no more then 10 Zones before you predict that you will Auto Portal. Have a nice AutoAutoTrimps experience.",R1:"Wow, HelpfulTrimp!",L1:0}; -conversation[4] = {Q:"You.",R1:"Meh.",L1:0}; -conversation[5] = {Q:"Your current Helium per hour gain is " + getStats() + "" +reactPercent,R1:"Cool.",L1:0,R2:"What can go wrong in the Don't Touch Zone?",L2:4,R3:"I know the Truth.",L3:0}; -conversation[6] = {Q:"" +reactAutoPortal,R1:"Please be much more honest.",L1:7,R2:"What can go wrong in the Don't Touch Zone?",L2:4,R3:"I know the Truth.",L3:0}; -conversation[7] = {Q:"I am not a real Trimp.",R1:"I knew the Truth.",L1:0}; -updateConvo(0); - -/* -conversation[0] = {Q:"Hello.",R1:"What?!?!",L1:3,R2:"Oh.",L2:1}; -conversation[1] = {Q:"What do you want to change? Click the buttons below.",R1:"Nothing.",L1:2,R2:"That's it.",L2:2}; -conversation[2] = {Q:"Ok.",R1:"Hello?",L1:0}; -conversation[3] = {Q:"I figured you'd find me eventually. Before you ask...yes, I can talk. No, none of the other trimps seem to be able to.",R1:"What else do you know?",L1:4}; -conversation[4] = {Q:"Not much more than you, unfortunately. Whatever brought you here is also what made me...smarter than the average trimp. Before you got here, I wasn't anymore self-aware than any other trimp.",R1:"What are we doing here?",L1:5}; -conversation[5] = {Q:"I don't know--I don't even know where here is. This is all new to me too.",R1:"Well, what do you suggest we do?",L1:6}; -conversation[6] = {Q:"Keep going. Maybe we'll find some answers. Since we're friends now, I've picked up a few tricks that will help us.",R1:"Like what?",L1:7}; -conversation[7] = {Q:"I can tell the trimps to build storage buildings before they get full. I can also buy Gyms and Tributes as soon as we can afford them, and read some upgrade books to you and the trimps when you're not available.",R1:"Which upgrade books?",L1:8, R2:"What else?", L2:9}; -conversation[8] = {Q:"The upgrades I can read are: Speedfarming, Speedlumber, Speedminer, Speedscience, (all the Mega versions too), Efficiency, TrainTacular, Gymystic, Potency, Egg, UberHut, UberHouse, UberMansion, UberHotel, UberResort, and Bounty",R1:"Ok, cool",L1:9}; -conversation[9] = {Q:"I can also highlight the housing that makes the most use of our gems, and the equipment that makes the best use of our metal.",R1:"Cool, what else?",L1:10}; -conversation[10] = {Q:"I'll bring us back to the world if we idle on the premap screen too long and I'll send you back to science-ing if you stay building on an empty queue. I can also unteach Shieldblock.",R1:"Why unteach Shieldblock?",L1:11, R2:"Anything else?",L2:12}; -conversation[11] = {Q:"As we learn more and more Gymystic, our shields becomes less and less useful for blocking. The extra health comes in real handy post z60.",R1:"I get it.",L1:12}; -conversation[12] = {Q:"I can help you respec the portal perks if you've already done it this round, and I can automatically flip between Dominance and Heap formations depending on the enemy we're facing.",R1:"Ok.",L1:13}; -conversation[13] = {Q:"That's it for now, but I'll let you know if I pick up any more tricks. Use the buttons below to let me know what you'd like done.",R1:"Ok.",L1:2}; -updateConvo(0); -*/ - - -//only functions below here -function updateConvo (place) { - conversation[1] = {Q:"" +reactGigaDelta,R1:"Be more honest please.",L1:6,R2:"What can go wrong in the Don't Touch Zone?",L2:4,R3:"I know the Truth.",L3:0}; - conversation[5] = {Q:"Your current Helium per hour gain is " + getStats() + "" +reactPercent,R1:"Cool.",L1:0,R2:"What can go wrong in the Don't Touch Zone?",L2:4,R3:"I know the Truth.",L3:0}; - conversation[6] = {Q:"" +reactAutoPortal,R1:"Please be much more honest.",L1:7,R2:"What can go wrong in the Don't Touch Zone?",L2:4,R3:"I know the Truth.",L3:0}; - document.getElementById("q").innerHTML = conversation[place].Q; - document.getElementById("1").innerHTML = conversation[place].R1; - document.getElementById("1").onclick = (function() { var test = conversation[place].L1; return function() {updateConvo(test + '');}})(); - if ("R2" in conversation[place]) {document.getElementById("2").innerHTML = conversation[place].R2;} - else {document.getElementById("2").innerHTML = "";} - if ("L2" in conversation[place]) {document.getElementById("2").onclick = (function() { var test = conversation[place].L2; return function() {updateConvo(test + '');}})();} - if ("R3" in conversation[place]) {document.getElementById("3").innerHTML = conversation[place].R3;} - else {document.getElementById("3").innerHTML = "";} - if ("L3" in conversation[place]) {document.getElementById("3").onclick = (function() { var test = conversation[place].L3; return function() {updateConvo(test + '');}})();} -} - -function talk() { - getStats(); - getStats2(); - getStats3(); - document.getElementById("autotrimp").style.display = "block"; -} - -function paint() { - getNiceThingsDone(); - document.getElementById("paintTrimp").style.display = "block"; -} From 7c93e493c60d20fa343fa6b7e5ca951615097845 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 28 May 2018 19:34:04 +0100 Subject: [PATCH 246/365] Update README.md --- README.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d495e29df..88a17b34c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,4 @@ -# AutoTrimps + genBTC -![Donate](https://blockchain.info/Resources/buttons/donate_64.png) -
1genbtcPLjAEk6RnfC66chYniFKfP7vASNo one has donated bitcoin yet - be the first and I will be ever eternally grateful
-Automation script for the idle incremental game Trimps, originally based on the zininzinin fork and modified by genBTC (genr8_ on discord)
+# AutoTrimps + Zek [![Join the chat at https://gitter.im/AutoTrimps/Lobby](https://badges.gitter.im/AutoTrimps/Lobby.svg)](https://gitter.im/AutoTrimps/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) ## Discussion / Discord Channel @@ -9,7 +6,8 @@ Automation script for the idle incremental game Trimps, originally based on the Discord is a chat program. Come to talk about AutoTrimps, for help, or suggestions for new features : https://discord.gg/0VbWe0dxB9kIfV2C (same one as zininzinin) ## Current Version (full changes below) - Ongoing Development! -- This version has beta changes by genBTC, forked from GenBTC. Including Autostance 3, Update to Swiffy Overlay, and Merging of buttons. Please tell me about bugs on Discord +- Too many to list +- This version has beta changes by Zek, forked from GenBTC + Kfro. Including Autostance 3, Update to Swiffy Overlay, and Merging of buttons. Please tell me about bugs on Discord - Mar 24, BATTLECALC CHANGES: - BattleCalc.js - getBattleStats() updated for the stuff added to AutoStance 1 a while ago, Life,C2,StillRowing, Copied from game code. - Mar 24, EQUIPMENT CHANGES: From df2e49cfc0d391ec9ccd69730c029f03bb9830ec Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 28 May 2018 19:34:49 +0100 Subject: [PATCH 247/365] Delete install.user.js --- install.user.js | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 install.user.js diff --git a/install.user.js b/install.user.js deleted file mode 100644 index 9f127fb66..000000000 --- a/install.user.js +++ /dev/null @@ -1,19 +0,0 @@ -// ==UserScript== -// @name AutoTrimps-genBTC -// @namespace https://github.com/genbtc/AutoTrimps -// @version 2.1.6.9-genbtc-3-23-2018 -// @updateURL https://github.com/genbtc/AutoTrimps/install.user.js -// @description Automate all the trimps! -// @author zininzinin, spindrjr, Ishkaru, genBTC -// @include *trimps.github.io* -// @include *kongregate.com/games/GreenSatellite/trimps -// @grant none -// ==/UserScript== - -var script = document.createElement('script'); -script.id = 'AutoTrimps-script'; -//This can be edited to be your own Github Repository URL. -script.src = 'https://kfrowde.github.io/AutoTrimps/AutoTrimps2.js'; -//script.setAttribute('crossorigin',"use-credentials"); -script.setAttribute('crossorigin',"anonymous"); -document.head.appendChild(script); From 78c2fa96f690664dda0c263c7c6cd2c2b20653ec Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 28 May 2018 19:35:18 +0100 Subject: [PATCH 248/365] Delete user.js --- user.js | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 user.js diff --git a/user.js b/user.js deleted file mode 100644 index 3cf8251f3..000000000 --- a/user.js +++ /dev/null @@ -1,26 +0,0 @@ -// ==UserScript== -// @name AutoTrimps-genBTC -// @namespace https://github.com/genbtc/AutoTrimps -// @version 2.1.6.9-genbtc-3-23-2018 -// @updateURL https://github.com/genbtc/AutoTrimps/user.js -// @description Automate all the trimps! -// @author zininzinin, spindrjr, Ishkaru, genBTC -// @include *trimps.github.io* -// @include *kongregate.com/games/GreenSatellite/trimps -// @grant none -// ==/UserScript== - -var script = document.createElement('script'); -script.id = 'AutoTrimps-script'; -//This can be edited to point to your own Github Repository URL. -script.src = 'https://kfrowde.github.io/AutoTrimps/AutoTrimps2.js'; -//script.setAttribute('crossorigin',"use-credentials"); -//script.setAttribute('crossorigin',"anonymous"); -document.head.appendChild(script); - -// This File is Deprecated, please use .user.js instead (with the leading dot) so TamperMonkey/Greasemonkey can detect it as a script automatically. -// Other than that they are identical and no change is required on your part if everything is working already. - -//You can use the following to auto-load your own forked repo as a local directory served from a local HTTPS webserver. -//the other bookmarklet wont load locally - the script.id will tell it to pull the rest of modules from the given URL. -//javascript:with(document)(script = createElement('script'), script.src='https://localhost:4443/AutoTrimps2.js', script.id='AutoTrimps-script',head.appendChild(script))._ From 7a5d0e4d53c1d415f7db4cd0ee990e5bda26b40b Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 28 May 2018 19:38:54 +0100 Subject: [PATCH 249/365] Update AutoTrimps2.js --- AutoTrimps2.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index 11d519417..04b3c1390 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -3,19 +3,19 @@ // @version 2.1.6.9b-genbtc-4-2-2018 // @updateURL https://github.com/genbtc/AutoTrimps/AutoTrimps2.js // @description Automate all the trimps! -// @author zininzinin, spindrjr, belaith, ishakaru, genBTC, Unihedron, coderPatsy +// @author zininzinin, spindrjr, belaith, ishakaru, genBTC, Unihedron, coderPatsy, Kfro, Zeker0 // @include *trimps.github.io* // @include *kongregate.com/games/GreenSatellite/trimps // @grant none // ==/UserScript== -var ATversion = '2.1.6.9b-genbtc-4-2-2018 + KFrowde'; +var ATversion = '2.1.6.9b-genbtc-4-2-2018 + KFrowde + Zeker0'; //////////////////////////////////////////////////////////////////////////////// //Main Loader Initialize Function (loads first, load everything else)/////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////// var atscript = document.getElementById('AutoTrimps-script') - , basepath = 'https://Kfrowde.github.io/AutoTrimps/' + , basepath = 'https://Zorn192.github.io/AutoTrimps/' , modulepath = 'modules/' ; //This should redirect the script to wherever its being mirrored from. @@ -62,9 +62,10 @@ function initializeAutoTrimps() { var changelogList = []; //changelogList.push({date: " ", version: " ", description: "", isNew: true}); //TEMPLATE +changelogList.push({date: "28/05/2018", version: "v2.2", description: "Added single use prestige raiding, BW raiding, looting II dump, amals are now calcd properly. ", isNew: true}); changelogList.push({date: "4/2", version: "v2.1.6.9b", description: "Import Export, Modules Load code Improvements. Multiple Buttons/Settings Were Combined. AutoPerks code was changed but still functions the same, except for a new algorithm that reduces the time to allocate for high helium players to near-instantaneous. Please test new algo with MODULES[\"perks\"].useAlgo2=true; .You can also clear all perks then allocate and have it work now. AutoMaps no longer considered as being in Lead challenge during Chall^2. ", isNew: true}); -changelogList.push({date: "3/23", version: "v2.1.6.9", description: "Game's Map at Zone can be used with AT now, to run maps forever. AutoMaps setting was combined with RunUniqueMaps (variable has changed from boolean false,true to a value 0,1,2). Settings file has been migrated as such. New: Map SpecialMod is sort of working, at least. Geneticist Infinity bugfix. New AGU Settings for 60% Void (fixed). Many Graphs fixes. AutoMaps changes. Equipment Cap, see README at GitHub DarkTheme fix. Scientists Fix. Zek450 Perks Preset Changed. Ongoing Development...", isNew: false}); -changelogList.push({date: "3/24", version: "v2.1.6.5-stable", description: "Set up Stable Repository for the faint of heart.", isNew: false}); +//changelogList.push({date: "3/23", version: "v2.1.6.9", description: "Game's Map at Zone can be used with AT now, to run maps forever. AutoMaps setting was combined with RunUniqueMaps (variable has changed from boolean false,true to a value 0,1,2). Settings file has been migrated as such. New: Map SpecialMod is sort of working, at least. Geneticist Infinity bugfix. New AGU Settings for 60% Void (fixed). Many Graphs fixes. AutoMaps changes. Equipment Cap, see README at GitHub DarkTheme fix. Scientists Fix. Zek450 Perks Preset Changed. Ongoing Development...", isNew: false}); +//changelogList.push({date: "3/24", version: "v2.1.6.5-stable", description: "Set up Stable Repository for the faint of heart.", isNew: false}); //changelogList.push({date: "3/22", version: "v2.1.6.8", description: "Settings GUI, make better. Import/export improved. Graph buttons: Cycle Up/Down. Internal code fixes. New Graph: Nurseries", isNew: false}); //changelogList.push({date: "3/20", version: "v2.1.6.7", description: "Entirely Re-Arranged Settings Layout. Enjoy! New: Display Tab: EnhanceGrid + Go AFK Mode. GUI: Pinned AT Tab menu bar to top when scrolling. Minimize/Maxi/Close Buttons. ShowChangeLog Button. New Graph: FluffyXP&Xp/Hr (starts@300)", isNew: false}); //changelogList.push({date: "3/13", version: "v2.1.6.6", description: "Geneticist management changes. Equipment code improvements. ATscriptLoad improvements. attempt to track errors.", isNew: false}); From d0e396852fb2459d4a403b016b2dc644e69da7d3 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 28 May 2018 20:03:14 +0100 Subject: [PATCH 250/365] Update heirlooms.js --- modules/heirlooms.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/modules/heirlooms.js b/modules/heirlooms.js index 9c4dd20de..b245fec4b 100644 --- a/modules/heirlooms.js +++ b/modules/heirlooms.js @@ -326,6 +326,22 @@ function evaluateHeirloomMods(loom, location, upgrade) { } } break; + + case 'plaguebringer': + tempEff = loom.mods[m][1]/100; + eff += tempEff; + if(upgrade){ + steps = game.heirlooms.Shield.plaguebringer.steps[loom.rarity]; + tempEff = (steps[2]/100)/((game.heirlooms.Shield.plaguebringer.currentBonus/100) + 1); + tempEff = tempEff / getModUpgradeCost(loom, m); + if(tempEff > bestUpgrade.effect) { + bestUpgrade.effect = tempEff; + bestUpgrade.name = 'plaguebringer'; + bestUpgrade.index = m; + } + } + break; + case 'MinerSpeed': tempEff = 0.75*loom.mods[m][1]/100; eff += tempEff; @@ -439,11 +455,17 @@ function evaluateHeirloomMods(loom, location, upgrade) { tempEff = (av * ccb)/(cmb * ccb + 1 - ccb); eff += tempEff; } + else if(!checkForMod('plaguebringer', index, location)){ + steps = game.heirlooms[loom.type].plaguebringer.steps[loom.rarity]; + av = steps[0] + ((steps[1] - steps[0])/2); + tempEff = av/100; + eff += tempEff; + } } if(loom.type == 'Staff') { steps = game.heirlooms.defaultSteps[loom.rarity]; av = steps[0] + ((steps[1] - steps[0])/2); - if(!checkForMod('MinerSpeed', index, location) || !checkForMod('metalDrop', index, location) || !checkForMod('DragimpSpeed', index, location) || !checkForMod('gemsDrop', index, location)){ + if(!checkForMod('MinerSpeed', index, location) || !checkForMod('metalDrop', index, location) || !checkForMod('fragmentsDrop', index, location) || !checkForMod('ExplorerSpeed', index, location) || !checkForMod('FluffyExp', index, location)){ eff += 0.75*av/100; } else if(!checkForMod('FarmerSpeed', index, location) || !checkForMod('LumberjackSpeed', index, location)) { From 683356ae50594a428acc9524ee0f39b5e0df8ac3 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 28 May 2018 20:04:49 +0100 Subject: [PATCH 251/365] Update heirlooms.js --- modules/heirlooms.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/modules/heirlooms.js b/modules/heirlooms.js index b245fec4b..7bb29cb3b 100644 --- a/modules/heirlooms.js +++ b/modules/heirlooms.js @@ -425,6 +425,19 @@ function evaluateHeirloomMods(loom, location, upgrade) { bestUpgrade.index = m; } } + case 'FluffyExp': + tempEff = 0.5*loom.mods[m][1]/100; + eff += tempEff; + if(upgrade) { + steps = game.heirlooms.defaultSteps[loom.rarity]; + tempEff = (0.5*steps[2]/100)/((game.heirlooms.Staff.FluffyExp.currentBonus/100) + 1); + tempEff = tempEff / getModUpgradeCost(loom, m); + if(tempEff > bestUpgrade.effect) { + bestUpgrade.effect = tempEff; + bestUpgrade.name = 'FluffyExp'; + bestUpgrade.index = m; + } + } break; case 'empty': var av; From 18e1567d03341fdbeb048569931a0529e85a9182 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 28 May 2018 21:55:30 +0100 Subject: [PATCH 252/365] Update other.js --- modules/other.js | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/modules/other.js b/modules/other.js index 35f8c8bf4..897b83c00 100644 --- a/modules/other.js +++ b/modules/other.js @@ -164,13 +164,11 @@ function findLastBionic() { } } -//Praiding - function Praiding() { if (game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { - if (getPageSetting('AutoMaps') == 1 && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { - autoTrimpSettings["AutoMaps"].value = 0; - } + //if (getPageSetting('AutoMaps') == 1 && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { + //autoTrimpSettings["AutoMaps"].value = 0; + //} debug("Beginning Prestige Raiding..."); if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { mapsClicked(); @@ -185,8 +183,8 @@ function Praiding() { failpraid = false; } else if (buyMap() < 0) { - if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { - autoTrimpSettings["AutoMaps"].value = 1; + //if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { + //autoTrimpSettings["AutoMaps"].value = 1; failpraid = true; debug("Failed to prestige raid. Looks like you can't afford to.."); } @@ -194,21 +192,20 @@ function Praiding() { } selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); - } + runMap(); if (!game.global.repeatMap && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { repeatClicked(); } debug("...Successfully prestiged!"); prestraid = true; - if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { - autoTrimpSettings["AutoMaps"].value = 1; - debug("Turning AutoMaps back on"); - } - } - else if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { - autoTrimpSettings["AutoMaps"].value = 1; - debug("Turning AutoMaps back on"); + //if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { + //autoTrimpSettings["AutoMaps"].value = 1; + //debug("Turning AutoMaps back on"); + //} + //else if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { + //autoTrimpSettings["AutoMaps"].value = 1; + //debug("Turning AutoMaps back on"); if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { prestraid = false; } From e7a9969c6f37ed0e757bfa7b5d7a8976f502402d Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 28 May 2018 21:59:46 +0100 Subject: [PATCH 253/365] Update AutoTrimps2.js --- AutoTrimps2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index 04b3c1390..c4280b275 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -209,7 +209,7 @@ function mainLoop() { //EXECUTE CORE LOGIC if (getPageSetting('ExitSpireCell') >0) exitSpireCell(); //"Exit Spire After Cell" (other.js) - if (getPageSetting('Praidingzone') >0) Praiding(); //Prestige Raiding (other.js) + //if (getPageSetting('Praidingzone') >0) Praiding(); //Prestige Raiding (other.js) if (getPageSetting('BWraid')==true) BWraiding(); //BW Raiding (other.js) if (getPageSetting('AutoAllocatePerks')==2) lootdump(); //Loot Dumping (other.js) if (getPageSetting('BuyUpgradesNew') != 0) buyUpgrades(); //"Buy Upgrades" (upgrades.js) From aabe0c8eec52fc6115d356c5ad8d61246dc160ac Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 28 May 2018 22:00:11 +0100 Subject: [PATCH 254/365] Update maps.js --- modules/maps.js | 41 +++-------------------------------------- 1 file changed, 3 insertions(+), 38 deletions(-) diff --git a/modules/maps.js b/modules/maps.js index a1921c94c..e2b912430 100644 --- a/modules/maps.js +++ b/modules/maps.js @@ -761,6 +761,9 @@ function autoMap() { //run the Advanced Special Modifier script, bring if (getPageSetting('AdvMapSpecialModifier')) testMapSpecialModController(); + //run praiding + if (game.global.world == getPageSetting('Praidingzone')) + Praiding(); //if we can't afford the map we designed, pick our highest existing map //TODO Debug Output the mods we made. @@ -931,41 +934,3 @@ function mapTimeEstimater() { mapTimeEstimate = 0; return mapTimeEstimate; } - -/* //NEW KFrowde + Sliverz -//Set up Vars -var plusMapVoidLastZone = null; -var plusMapVoid = (voidMapLevelSetting > 0) && (game.global.totalVoidMaps > 0) && (game.global.world == voidMapLevelSettingZone); //Sanity check -var plusMapVoidInput = getPageSetting('PlusMapVoidToggle') -//Check that you should do this, check you've enabled it between the correct values, check that it hasn't already run this zone -if ((plusMapVoid) && (plusMapVoidInput > 0 && plusMapVoidInput <= 10) && (plusMapVoidLastZone === null || plusMapVoidLastZone !== game.global.world)) { - document.getElementById("biomeAdvMapsSelect").value = "Random"; - document.getElementById('advExtraLevelSelect').value = plusMapVoidInput; - document.getElementById('advSpecialSelect').value = "p"; - document.getElementById("lootAdvMapsRange").value = 0; - document.getElementById("difficultyAdvMapsRange").value = 9; - document.getElementById("sizeAdvMapsRange").value = 9; - document.getElementById('advPerfectCheckbox').checked = false; - updateMapCost(); - buyMap(); - selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); - runMap(); - plusMapVoidLastZone = game.global.world; //This stops it from looping -}/* - -/* -function plusFivePres(){ - document.getElementById("biomeAdvMapsSelect").value = "Random"; - document.getElementById('advExtraLevelSelect').value = 5; - document.getElementById('advSpecialSelect').value = "p"; - document.getElementById("lootAdvMapsRange").value = 0; - document.getElementById("difficultyAdvMapsRange").value = 9; - document.getElementById("sizeAdvMapsRange").value = 9; - document.getElementById('advPerfectCheckbox').checked = false; - updateMapCost(); - } -plusFivePres(); -buyMap(); -selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); -runMap(); -*/ From a95cf374770e81a9ca94ae939290786eb2833530 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 28 May 2018 22:07:51 +0100 Subject: [PATCH 255/365] Update maps.js --- modules/maps.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/modules/maps.js b/modules/maps.js index e2b912430..988c2cca5 100644 --- a/modules/maps.js +++ b/modules/maps.js @@ -761,9 +761,6 @@ function autoMap() { //run the Advanced Special Modifier script, bring if (getPageSetting('AdvMapSpecialModifier')) testMapSpecialModController(); - //run praiding - if (game.global.world == getPageSetting('Praidingzone')) - Praiding(); //if we can't afford the map we designed, pick our highest existing map //TODO Debug Output the mods we made. From a8346ad984d4efc0e3980cfd5a1eba0790dd8606 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 28 May 2018 22:09:01 +0100 Subject: [PATCH 256/365] Update AutoTrimps2.js --- AutoTrimps2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index c4280b275..04b3c1390 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -209,7 +209,7 @@ function mainLoop() { //EXECUTE CORE LOGIC if (getPageSetting('ExitSpireCell') >0) exitSpireCell(); //"Exit Spire After Cell" (other.js) - //if (getPageSetting('Praidingzone') >0) Praiding(); //Prestige Raiding (other.js) + if (getPageSetting('Praidingzone') >0) Praiding(); //Prestige Raiding (other.js) if (getPageSetting('BWraid')==true) BWraiding(); //BW Raiding (other.js) if (getPageSetting('AutoAllocatePerks')==2) lootdump(); //Loot Dumping (other.js) if (getPageSetting('BuyUpgradesNew') != 0) buyUpgrades(); //"Buy Upgrades" (upgrades.js) From 6a9124cba8aa010bacc16d12a66e12e9198b2907 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 28 May 2018 22:09:51 +0100 Subject: [PATCH 257/365] Update other.js --- modules/other.js | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/modules/other.js b/modules/other.js index 897b83c00..35f8c8bf4 100644 --- a/modules/other.js +++ b/modules/other.js @@ -164,11 +164,13 @@ function findLastBionic() { } } +//Praiding + function Praiding() { if (game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { - //if (getPageSetting('AutoMaps') == 1 && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { - //autoTrimpSettings["AutoMaps"].value = 0; - //} + if (getPageSetting('AutoMaps') == 1 && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { + autoTrimpSettings["AutoMaps"].value = 0; + } debug("Beginning Prestige Raiding..."); if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { mapsClicked(); @@ -183,8 +185,8 @@ function Praiding() { failpraid = false; } else if (buyMap() < 0) { - //if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { - //autoTrimpSettings["AutoMaps"].value = 1; + if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { + autoTrimpSettings["AutoMaps"].value = 1; failpraid = true; debug("Failed to prestige raid. Looks like you can't afford to.."); } @@ -192,20 +194,21 @@ function Praiding() { } selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); - + } runMap(); if (!game.global.repeatMap && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { repeatClicked(); } debug("...Successfully prestiged!"); prestraid = true; - //if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { - //autoTrimpSettings["AutoMaps"].value = 1; - //debug("Turning AutoMaps back on"); - //} - //else if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { - //autoTrimpSettings["AutoMaps"].value = 1; - //debug("Turning AutoMaps back on"); + if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { + autoTrimpSettings["AutoMaps"].value = 1; + debug("Turning AutoMaps back on"); + } + } + else if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { + autoTrimpSettings["AutoMaps"].value = 1; + debug("Turning AutoMaps back on"); if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { prestraid = false; } From f1cc93f8fbf0f9ea3663773fdb7347d560b4ebda Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Wed, 30 May 2018 12:45:12 +0100 Subject: [PATCH 258/365] Update SettingsGUI.js --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index efca54356..52397de2f 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -435,7 +435,7 @@ function initializeAllSettings() { //Heirloom Settings createSetting('AutoHeirloomsNew', ['AutoHeirlooms Off', 'AutoHeirlooms 1', 'AutoHeirlooms 2'], 'AutoHeirlooms 1 = Automatically evaluate and carry the best heirlooms, and recommend upgrades for equipped items. AutoHeirlooms will only change carried items when the heirlooms window is not open. Carried items will be compared and swapped with the types that are already carried. If a carry spot is empty, it will be filled with the best shield (if available). Evaluation is based ONLY on the following mods (listed in order of priority, high to low): Void Map Drop Chance/Trimp Attack, Crit Chance/Crit Damage, Miner Efficiency/Metal Drop, Gem Drop/Dragimp Efficiency, Farmer/Lumberjack Efficiency. For the purposes of carrying, rarity trumps all of the stat evaluations. Empty mod slots are valued at the average value of the best missing mod.
AutoHeirlooms 2 = New algorithm for Heirlooms. CAUTION: Turning this on will immediately re-sort your heirlooms according to the new algorithm, and turning it off again DOES revert to the original algorithm even though it may NOT have a visible result on your heirlooms. (fyi: This lack of action highlights one of the problems with the old one.', 'multitoggle', 0, null, 'Heirlooms'); createSetting('AutoUpgradeHeirlooms', 'Auto Upgrade Heirlooms', 'Automatically buys the upgrades the script advises for the Equipped shield and staff, until we are out of nullifium.', 'boolean', false, null, 'Heirlooms'); - + createSetting('loomprotect', 'Heirloom Protection','Will protect and carry any plagued heirlooms you pick up, this is a temporary solution until autoheirlooms is fixed. ', 'boolean', false, null, 'Heirlooms'); //Golden Upgrade Strategies: From e9c0410397141e079b7d95a93280c62f8e9eb299 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Wed, 30 May 2018 12:47:13 +0100 Subject: [PATCH 259/365] Update AutoTrimps2.js --- AutoTrimps2.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index 04b3c1390..3a24b8015 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -208,7 +208,8 @@ function mainLoop() { setScienceNeeded(); //determine how much science is needed //EXECUTE CORE LOGIC - if (getPageSetting('ExitSpireCell') >0) exitSpireCell(); //"Exit Spire After Cell" (other.js) + if (getPageSetting('ExitSpireCell') >0) exitSpireCell(); //"Exit Spire After Cell" (other.js) + if (getPageSetting('loomprotect') == true) protectloom(); //"Exit Spire After Cell" (other.js) if (getPageSetting('Praidingzone') >0) Praiding(); //Prestige Raiding (other.js) if (getPageSetting('BWraid')==true) BWraiding(); //BW Raiding (other.js) if (getPageSetting('AutoAllocatePerks')==2) lootdump(); //Loot Dumping (other.js) From 2dc16c83bd4079e76234309e80cfaf586c49da75 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Wed, 30 May 2018 12:48:19 +0100 Subject: [PATCH 260/365] Update heirlooms.js --- modules/heirlooms.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/heirlooms.js b/modules/heirlooms.js index 7bb29cb3b..3fb5d8af6 100644 --- a/modules/heirlooms.js +++ b/modules/heirlooms.js @@ -556,3 +556,7 @@ function generateHeirloomIcon(heirloom, location, number){ html += locText + ', this)"> '; return html; } + +function protectloom() { + +} From 44a4a0d677bed6cb8a4473cc38992be9a11ef98c Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Wed, 30 May 2018 13:35:20 +0100 Subject: [PATCH 261/365] Update heirlooms.js --- modules/heirlooms.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/heirlooms.js b/modules/heirlooms.js index 3fb5d8af6..2c2e3c9a2 100644 --- a/modules/heirlooms.js +++ b/modules/heirlooms.js @@ -558,5 +558,13 @@ function generateHeirloomIcon(heirloom, location, number){ } function protectloom() { + if (getPageSetting('loomprotect') == true && game.global.heirloomsCarried.length < game.global.maxCarriedHeirlooms) { + for (var index in game.global.heirloomsExtra) { + var aLoom = game.global.heirloomsExtra[index]; + var data = {'location': 'heirloomsExtra', 'index': index, 'rarity': theLoom.rarity}; + } } + + + From 6f8a3f77471243894b6281a669457db10e85d474 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Wed, 30 May 2018 18:03:21 +0100 Subject: [PATCH 262/365] Update AutoTrimps2.js --- AutoTrimps2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index 3a24b8015..e2a2983c3 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -209,7 +209,7 @@ function mainLoop() { //EXECUTE CORE LOGIC if (getPageSetting('ExitSpireCell') >0) exitSpireCell(); //"Exit Spire After Cell" (other.js) - if (getPageSetting('loomprotect') == true) protectloom(); //"Exit Spire After Cell" (other.js) + //if (getPageSetting('loomprotect') == true) protectloom(); //"Exit Spire After Cell" (other.js) if (getPageSetting('Praidingzone') >0) Praiding(); //Prestige Raiding (other.js) if (getPageSetting('BWraid')==true) BWraiding(); //BW Raiding (other.js) if (getPageSetting('AutoAllocatePerks')==2) lootdump(); //Loot Dumping (other.js) From 5fda8aa4200951fff9f82505406dc00cbe9ef101 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Wed, 30 May 2018 18:03:53 +0100 Subject: [PATCH 263/365] Update SettingsGUI.js --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 52397de2f..772588177 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -435,7 +435,7 @@ function initializeAllSettings() { //Heirloom Settings createSetting('AutoHeirloomsNew', ['AutoHeirlooms Off', 'AutoHeirlooms 1', 'AutoHeirlooms 2'], 'AutoHeirlooms 1 = Automatically evaluate and carry the best heirlooms, and recommend upgrades for equipped items. AutoHeirlooms will only change carried items when the heirlooms window is not open. Carried items will be compared and swapped with the types that are already carried. If a carry spot is empty, it will be filled with the best shield (if available). Evaluation is based ONLY on the following mods (listed in order of priority, high to low): Void Map Drop Chance/Trimp Attack, Crit Chance/Crit Damage, Miner Efficiency/Metal Drop, Gem Drop/Dragimp Efficiency, Farmer/Lumberjack Efficiency. For the purposes of carrying, rarity trumps all of the stat evaluations. Empty mod slots are valued at the average value of the best missing mod.
AutoHeirlooms 2 = New algorithm for Heirlooms. CAUTION: Turning this on will immediately re-sort your heirlooms according to the new algorithm, and turning it off again DOES revert to the original algorithm even though it may NOT have a visible result on your heirlooms. (fyi: This lack of action highlights one of the problems with the old one.', 'multitoggle', 0, null, 'Heirlooms'); createSetting('AutoUpgradeHeirlooms', 'Auto Upgrade Heirlooms', 'Automatically buys the upgrades the script advises for the Equipped shield and staff, until we are out of nullifium.', 'boolean', false, null, 'Heirlooms'); - createSetting('loomprotect', 'Heirloom Protection','Will protect and carry any plagued heirlooms you pick up, this is a temporary solution until autoheirlooms is fixed. ', 'boolean', false, null, 'Heirlooms'); + //createSetting('loomprotect', 'Heirloom Protection','Will protect and carry any plagued heirlooms you pick up, this is a temporary solution until autoheirlooms is fixed. ', 'boolean', false, null, 'Heirlooms'); //Golden Upgrade Strategies: From 69e6b4912de9ebfeef27158e75380736b924488c Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 2 Jun 2018 12:47:43 +0100 Subject: [PATCH 264/365] Update other.js --- modules/other.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/other.js b/modules/other.js index 35f8c8bf4..04e10ecd4 100644 --- a/modules/other.js +++ b/modules/other.js @@ -209,10 +209,11 @@ function Praiding() { else if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { autoTrimpSettings["AutoMaps"].value = 1; debug("Turning AutoMaps back on"); - if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { + } + if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { prestraid = false; - } - } + } + } From 2880d616e88f837f2d2acc6e71ff8e52e294ff54 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 2 Jun 2018 20:58:16 +0100 Subject: [PATCH 265/365] Delete perky.js --- modules/perky.js | 791 ----------------------------------------------- 1 file changed, 791 deletions(-) delete mode 100644 modules/perky.js diff --git a/modules/perky.js b/modules/perky.js deleted file mode 100644 index 758bc44b1..000000000 --- a/modules/perky.js +++ /dev/null @@ -1,791 +0,0 @@ -// ==UserScript== -// @name Trimps - Autoperks - PERKY -// @namespace http://tampermonkey.net/ -// @version 0.5 -// @description try to take over the world! -// @author OG: Grimy -> Altizar -> Zeker0 -> genBTC -// @match https://trimps.github.io/* -// @include *trimps.github.io* -// @include *kongregate.com/games/GreenSatellite/trimps -// @grant GM_xmlhttpRequest -// ==/UserScript== - -//Create blank AutoPerks object -MODULES["perks"] = {}; -var AutoPerks = {}; - -var AutoPerks = { - data: { - he_left: 0, - zone: 60, - targetzone: 60, - perks: null, - weight: { - helium: 0, - attack: 0, - health: 0, - xp: 0, - trimps: 0 - }, - fluffy: { - xp: 0, - prestige: 0 - }, - mod: { - storage: 0.125, - soldiers: 0, - dg: 0, - tent_city: false, - whip: false, - magn: false, - taunt: false, - ven: false, - chronojest: 0, - prod: 0, - loot: 0, - breed_timer: 0 - } - }, - preset: "z450", - fixed: "", - Perk: /** @class */ (function () { - function Perk(base_cost, increment, cap, free, scaling) { - if (scaling === void 0) { - scaling = 30; - } - this.base_cost = base_cost; - this.increment = increment; - this.cap = cap; - this.free = free; - this.scaling = scaling; - this.locked = true; - this.level = 0; - this.pack = 1; - this.must = 0; - this.spent = 0; - } - // Compute the current cost of a perk, based on its current level. - Perk.prototype.cost = function () { - return this.increment - ? this.pack * - (this.base_cost + - this.increment * (this.level + (this.pack - 1) / 2)) - : Math.ceil(this.level / 2 + this.base_cost * AutoPerky.mult(this, this.scaling)); - }; - return Perk; - })(), - unlocks: "", - notation: 2, - perks: null, - presets: { - early: ["5", "4", "3"], - broken: ["7", "3", "1"], - mid: ["16", "5", "1"], - corruption: ["25", "7", "1"], - magma: ["35", "4", "3"], - z280: ["42", "6", "1"], - z400: ["88", "10", "1"], - z450: ["500", "50", "1"], - spire: ["0", "1", "1"], - nerfed: ["0", "4", "3"], - tent: ["5", "4", "3"], - scientist: ["0", "1", "3"], - carp: ["0", "0", "0"], - trapper: ["0", "7", "1"], - coord: ["0", "40", "1"], - trimp: ["0", "99", "1"], - metal: ["0", "7", "1"], - c2: ["0", "7", "1"], - custom: ["1", "1", "1"] - }, - notations: [ - [], - ( - "KMBTQaQiSxSpOcNoDcUdDdTdQadQidSxdSpdOdNdVUvDvTvQavQivSxvSpvOvNvTgUtgDtgTtgQatg" + - "QitgSxtgSptgOtgNtgQaaUqaDqaTqaQaqaQiqaSxqaSpqaOqaNqaQiaUqiDqiTqiQaqiQiqiSxqiSpqi" + - "OqiNqiSxaUsxDsxTsxQasxQisxSxsxSpsxOsxNsxSpaUspDspTspQaspQispSxspSpspOspNspOgUog" + - "DogTogQaogQiogSxogSpogOogNogNaUnDnTnQanQinSxnSpnOnNnCtUc" - ).split(/(?=[A-Z])/), - [], - ( - "a b c d e f g h i j k l m n o p q r s t u v w x y z" + - " aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az" + - " ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz" + - " ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx" - ).split(" "), - "KMBTQaQiSxSpOcNoDcUdDdTdQadQidSxdSpdOdNdVUvDvTvQavQivSxvSpvOvNvTg".split( - /(?=[A-Z])/ - ) - ], - add: function (perk, x) { - return 1 + perk.level * x / 100; - }, - mult: function (perk, x) { - return Math.pow(1 + x / 100, perk.level); - }, - mastery: function (name) { - if (!game.talents[name]) { - throw "unknown mastery: " + name; - } - return game.talents[name].purchased; - }, - parse_suffixes: function (str) { - str = str.replace(/\*.*|[^--9+a-z]/gi, ""); - var suffixes = AutoPerky.notations[AutoPerky.notation === "3" ? 3 : 1]; - for (var i = suffixes.length; i > 0; --i) { - str = str.replace(new RegExp(suffixes[i - 1] + "$", "i"), "E" + 3 * i); - } - return +str; - }, - parse_perks: function (fixed, unlocks) { - var perks = { - Looting_II: new AutoPerky.Perk(100e3, 10e3, Infinity, 1e4), - Carpentry_II: new AutoPerky.Perk(100e3, 10e3, Infinity, 1e4), - Motivation_II: new AutoPerky.Perk(50e3, 1e3, Infinity, 1e4), - Power_II: new AutoPerky.Perk(20e3, 500, Infinity, 1e4), - Toughness_II: new AutoPerky.Perk(20e3, 500, Infinity, 1e4), - Capable: new AutoPerky.Perk(1e8, 0, 10, 1e4, 900), - Cunning: new AutoPerky.Perk(1e11, 0, Infinity, 1e4), - Curious: new AutoPerky.Perk(1e14, 0, Infinity, 1e4), - Overkill: new AutoPerky.Perk(1e6, 0, 30, 1e4), - Resourceful: new AutoPerky.Perk(50e3, 0, Infinity, 1e6), - Coordinated: new AutoPerky.Perk(150e3, 0, Infinity, 1e4), - Siphonology: new AutoPerky.Perk(100e3, 0, 3, 1e4), - Anticipation: new AutoPerky.Perk(1000, 0, 10, 1e4), - Resilience: new AutoPerky.Perk(100, 0, Infinity, 1e4), - Meditation: new AutoPerky.Perk(75, 0, 7, 1e4), - Relentlessness: new AutoPerky.Perk(75, 0, 10, 1e4), - Carpentry: new AutoPerky.Perk(25, 0, Infinity, 1e4), - Artisanistry: new AutoPerky.Perk(15, 0, Infinity, 1e4), - Range: new AutoPerky.Perk(1, 0, 10, 1e4), - Agility: new AutoPerky.Perk(4, 0, 20, 1e4), - Bait: new AutoPerky.Perk(4, 0, Infinity, 1e7), - Trumps: new AutoPerky.Perk(3, 0, Infinity, 1e8), - Pheromones: new AutoPerky.Perk(3, 0, Infinity, 1e6), - Packrat: new AutoPerky.Perk(3, 0, Infinity, 1e7), - Motivation: new AutoPerky.Perk(2, 0, Infinity, 1e4), - Power: new AutoPerky.Perk(1, 0, Infinity, 1e4), - Toughness: new AutoPerky.Perk(1, 0, Infinity, 1e4), - Looting: new AutoPerky.Perk(1, 0, Infinity, 1e4) - }; - if (!unlocks.match(/>/)) { - unlocks = unlocks.replace(/(?=,|$)/g, ">0"); - } - var list = (unlocks + "," + fixed).split(/,/).filter(x => x); - for (var key in list) { - var item = list[key]; - var m = (m = item.match(/(\S+) *([<=>])=?(.*)/)); - if (!m) { - throw "Enter a list of perk levels, such as “power=42, toughness=51”."; - } - var tier2 = m[1].match(/2$|II$/); - var name = m[1].replace(/[ _]?(2|II)/i, "").replace(/^OK/i, "O").replace(/^Looty/i, "L"); - var regex = new RegExp(`^${name}[a-z]*${tier2 ? "_II" : ""}$`, "i"); - var matches = Object.keys(perks).filter(p => p.match(regex)); - if (matches.length > 1) { - throw `Ambiguous perk abbreviation: ${m[1]}.`; - } - if (matches.length < 1) { - throw `Unknown perk: ${m[1]}.`; - } - let level = m[3]; - if (!isFinite(level)) { - throw `Invalid number: ${m[3]}.`; - } - perks[matches[0]].locked = false; - if (m[2] != ">") { - perks[matches[0]].cap = parseInt(level); - } - if (m[2] != "<") { - perks[matches[0]].must = parseInt(level); - } - } - return perks; - }, - select_preset: function (name, manually) { - if (manually === void 0) { - manually = true; - } - this.data.weight = { - helium: parseInt(this.presets[name][0]), - attack: parseInt(this.presets[name][1]), - health: parseInt(this.presets[name][2]), - xp: Math.floor((+this.presets[name][0] + +this.presets[name][1] + +this.presets[name][2]) / 5), - trimps: 0 - }; - }, - read_data: function () { - this.data.zone = this.data.targetzone; - this.unlocks = Object.keys(game.portal).filter(function (perk) { - return !game.portal[perk].locked; - }).join(","); - this.data.perks = this.parse_perks(this.fixed, this.unlocks); - var preset = this.preset; - this.select_preset(preset); - if (preset == "trapper" && (!game || game.global.challengeActive != "Trapper")) { - throw "This preset requires a save currently running Trapper². Start a new run using “Trapper² (initial)”, export, and try again."; - } - this.update_dg(); - //extra settings - var zone = this.data.targetzone; - var helium = game.global.viewingUpgrades ? game.global.heliumLeftover : game.global.heliumLeftover + game.resources.helium.owned; - for (var perk in game.portal) { - helium += game.portal[perk].heliumSpent; - } - var unlocks = Object.keys(game.portal).filter(function (perk) { - return !game.portal[perk].locked; - }); - if (!game.global.canRespecPerks) { - unlocks = unlocks.map(function (perk) { - return perk + ">" + game.portal[perk].level; - }); - } - // Income - var tt = this.mastery("turkimp4") ? 1 : this.mastery("turkimp3") ? 0.6 : this.mastery("turkimp2") ? 0.4 : this.mastery("turkimp") ? 0.3 : 0.25; - var prod = 1 + tt; - var loot = 1 + 0.333 * tt; - var spires = Math.min(Math.floor((zone - 101) / 100), game.global.spiresCompleted); - loot *= zone < 100 ? 0.7 : 1 + (this.mastery("stillRowing") ? 0.3 : 0.2) * spires; - var chronojest = 27 * game.unlocks.imps.Jestimp + 15 * game.unlocks.imps.Chronoimp; - var cache = zone < 60 ? 0 : zone < 85 ? 7 : zone < 160 ? 10 : zone < 185 ? 14 : 20; - chronojest += (this.mastery("mapLoot2") ? 5 : 4) * cache; - for (var _i = 0, _a = game.global.StaffEquipped.mods || []; _i < _a.length; _i++) { - var mod = _a[_i]; - if (mod[0] === "MinerSpeed") { - prod *= 1 + 0.01 * mod[1]; - } else if (mod[0] === "metalDrop") { - loot *= 1 + 0.01 * mod[1]; - } - } - this.data.he_left = helium + (game.global.canRespecPerks ? 0 : game.resources.helium.owned); - this.data.fluffy = { - xp: game ? game.global.fluffyExp : 0, - prestige: game ? game.global.fluffyPrestige : 0 - }; - this.data.mod = { - storage: 0.125, - soldiers: 0, - dg: preset == "nerfed" ? 0 : this.data.mod.dg, - tent_city: preset == "tent", - whip: game.unlocks.imps.Whipimp, - magn: game.unlocks.imps.Magnimp, - taunt: game.unlocks.imps.Tauntimp, - ven: game.unlocks.imps.Venimp, - chronojest: chronojest, - prod: prod, - loot: loot, - breed_timer: 45 - }; - if (preset == "nerfed") { - this.data.he_left = 1e8; - this.data.zone = 200; - this.data.mod.dg = 0; - } - if (preset == "trapper") { - this.data.mod.soldiers = game.resources.trimps.owned; - this.data.mod.prod = 0; - this.data.perks.Pheromones.cap = 0; - this.data.perks.Anticipation.cap = 0; - } - if (preset == "spire") { - this.data.mod.prod = this.data.mod.loot = 0; - this.data.perks.Overkill.cap = 0; - this.data.zone = game.global.world; - } - if (preset == "carp") { - this.data.mod.prod = this.data.mod.loot = 0; - this.data.weight.trimps = 1e6; - } - if (preset == "metal") { - this.data.mod.prod = 0; - } - if (preset == "trimp") { - this.data.mod.soldiers = 1; - } - if (preset == "nerfed") { - this.data.perks.Overkill.cap = 1; - } - if (preset == "scientist") { - this.data.perks.Coordinated.cap = 0; - } - }, - update_dg: function () { - var max_zone = this.data.targetzone / 2 + 115; - var eff = 500e6 + 50e6 * game.generatorUpgrades.Efficiency.upgrades; - var capa = 3 + 0.4 * game.generatorUpgrades.Capacity.upgrades; - var max_fuel = game.permanentGeneratorUpgrades.Storage.owned ? capa * 1.5 : capa; - var supply = 230 + 2 * game.generatorUpgrades.Supply.upgrades; - var overclock = game.generatorUpgrades.Overclocker.upgrades; - overclock = overclock && 1 - 0.5 * Math.pow(0.99, overclock - 1); - var burn = game.permanentGeneratorUpgrades.Slowburn.owned ? 0.4 : 0.5; - var cells = this.mastery("magmaFlow") ? 18 : 16; - var accel = this.mastery("quickGen") ? 1.03 : 1.02; - var hs2 = this.mastery("hyperspeed2") ? (game.global.highestLevelCleared + 1) / 2 : 0; - var bs = 0.5 * this.mastery("blacksmith") + 0.25 * this.mastery("blacksmith2") + 0.15 * this.mastery("blacksmith3"); - bs *= game.global.highestLevelCleared + 1; - var housing = 0; - var fuel = 0; - var time = 0; - function tick(mult) { - housing += mult * eff * Math.sqrt(Math.min(capa, fuel)); - fuel -= burn; - } - for (var zone = 230; zone <= max_zone; ++zone) { - fuel += cells * (0.01 * Math.min(zone, supply) - 2.1); - var tick_time = Math.ceil(60 / Math.pow(accel, Math.floor((zone - 230) / 3))); - time += zone > bs ? 28 : zone > hs2 ? 20 : 15; - while (time >= tick_time) { - time -= tick_time; - tick(1); - } - while (fuel > max_fuel) { - tick(overclock); - } - housing *= 1.009; - } - while (fuel >= burn) { - tick(1); - } - this.data.mod.dg = housing; - }, - optimize: function (data) { - var he_left = data.he_left, - zone = data.zone, - fluffy = data.fluffy, - perks = data.perks, - weight = data.weight, - mod = data.mod; - var Looting_II = perks.Looting_II, - Carpentry_II = perks.Carpentry_II, - Motivation_II = perks.Motivation_II, - Power_II = perks.Power_II, - Toughness_II = perks.Toughness_II, - Capable = perks.Capable, - Cunning = perks.Cunning, - Curious = perks.Curious, - Overkill = perks.Overkill, - Resourceful = perks.Resourceful, - Coordinated = perks.Coordinated, - Siphonology = perks.Siphonology, - Anticipation = perks.Anticipation, - Resilience = perks.Resilience, - Meditation = perks.Meditation, - Relentlessness = perks.Relentlessness, - Carpentry = perks.Carpentry, - Artisanistry = perks.Artisanistry, - Range = perks.Range, - Agility = perks.Agility, - Bait = perks.Bait, - Trumps = perks.Trumps, - Pheromones = perks.Pheromones, - Packrat = perks.Packrat, - Motivation = perks.Motivation, - Power = perks.Power, - Toughness = perks.Toughness, - Looting = perks.Looting; - for (var name in perks) { - if (name.endsWith("_II")) { - perks[name].pack = Math.pow(10, Math.max(0, Math.floor(Math.log(he_left) / Math.log(100) - 4.2))); - } - } - for (var _i = 0, _a = ["whip", "magn", "taunt", "ven"]; _i < _a.length; _i++) { - var name = _a[_i]; - mod[name] = Math.pow(1.003, zone * 99 * 0.03 * mod[name]); - } - var books = Math.pow(1.25, zone) * Math.pow(zone > 100 ? 1.28 : 1.2, Math.max(zone - 59, 0)); - var gigas = Math.max(0, Math.min(zone - 60, zone / 2 - 25, zone / 3 - 12, zone / 5, zone / 10 + 17, 39)); - var base_housing = Math.pow(1.25, Math.min(zone / 2, 30) + gigas); - var mystic = zone >= 25 ? Math.floor(Math.min(zone / 5, 9 + zone / 25, 15)) : 0; - var tacular = (20 + zone - zone % 5) / 100; - var base_income = 600 * mod.whip * books; - var base_helium = Math.pow(zone - 19, 2); - var max_tiers = zone / 5 + +((zone - 1) % 10 < 5); - var exponents = { - cost: Math.pow(1.069, 0.85 * (zone < 60 ? 57 : 53)), - attack: Math.pow(1.19, 13), - health: Math.pow(1.19, 14), - block: Math.pow(1.19, 10) - }; - var equip_cost = { - attack: 211 * (weight.attack + weight.health) / weight.attack, - health: 248 * (weight.attack + weight.health) / weight.health, - block: 5 * (weight.attack + weight.health) / weight.health - }; - // Number of ticks it takes to one-shot an enemy. - function ticks() { - return 1 + +(Agility.level < 3) + Math.ceil(10 * AutoPerky.mult(Agility, -5)); - } - var moti = function () { - return AutoPerky.add(Motivation, 5) * AutoPerky.add(Motivation_II, 1); - }; - var looting = function () { - return AutoPerky.add(Looting, 5) * AutoPerky.add(Looting_II, 0.25); - }; - function income(ignore_prod) { - var storage = mod.storage * AutoPerky.mult(Resourceful, -5) / AutoPerky.add(Packrat, 20); - var loot = looting() * mod.magn / ticks(); - var prod = ignore_prod ? 0 : moti() * AutoPerky.add(Meditation, 1) * mod.prod; - var chronojest = mod.chronojest * 0.1 * prod * loot; - return (base_income * (prod + loot * mod.loot + chronojest) * (1 - storage)); - } - // Max population - var trimps = mod.tent_city - ? function () { - var carp = AutoPerky.mult(Carpentry, 10) * AutoPerky.add(Carpentry_II, 0.25); - var territory = AutoPerky.add(Trumps, 20); - return 10 * (mod.taunt + territory * (mod.taunt - 1) * 111) * carp; - } - : function () { - var carp = AutoPerky.mult(Carpentry, 10) * AutoPerky.add(Carpentry_II, 0.25); - var bonus = 3 + Math.max(Math.log(income() / base_income * carp / AutoPerky.mult(Resourceful, -5)), 0); - var territory = AutoPerky.add(Trumps, 20) * zone; - return (10 * (base_housing * bonus + territory) * carp * mod.taunt + mod.dg * carp); - }; - function equip(stat) { - var cost = equip_cost[stat] * AutoPerky.mult(Artisanistry, -5); - var levels = 1.136; - var tiers = Math.log(1 + income() * trimps() / cost) / Math.log(exponents.cost); - if (tiers > max_tiers + 0.45) { - levels = Math.log(1 + Math.pow(exponents.cost, tiers - max_tiers) * 0.2) / Math.log(1.2); - tiers = max_tiers; - } - return levels * Math.pow(exponents[stat], tiers); - } - // Number of buildings of a given kind that can be built with the current income. - // cost: base cost of the buildings - // exp: cost increase for each new level of the building - function building(cost, exp) { - cost *= 4 * AutoPerky.mult(Resourceful, -5); - return Math.log(1 + income(true) * trimps() * (exp - 1) / cost) / Math.log(exp); - } - // Number of zones spent in the Magma - function magma() { - return Math.max(zone - 229, 0); - } - // function mancers() { - // let tributes = building(10000, 1.05); - // let mancers = Math.log(loot * Math.pow(1.05, tributes) / 1e62) / Math.log(1.01); - // return magma() ? 1 + 0.6 * (1 - Math.pow(0.9999, mancers)) : 1; - // } - // Breed speed - function breed() { - var nurseries = building(2e6, 1.06) / (1 + 0.1 * Math.min(magma(), 20)); - var potency = 0.0085 * (zone >= 60 ? 0.1 : 1) * Math.pow(1.1, Math.floor(zone / 5)); - return potency * Math.pow(1.01, nurseries) * AutoPerky.add(Pheromones, 10) * mod.ven; - } - var group_size = []; - for (var coord = 0; coord <= Math.log(1 + he_left / 500e3) / Math.log(1.3); ++coord) { - var ratio = 1 + 0.25 * Math.pow(0.98, coord); - var result = 1; - for (var i = 0; i < 100; ++i) { - result = Math.ceil(result * ratio); - } - group_size[coord] = result / Math.pow(ratio, 100); - } - // Theoretical fighting group size (actual size is lower because of Coordinated) - function soldiers() { - var ratio = 1 + 0.25 * AutoPerky.mult(Coordinated, -2); - var pop = (mod.soldiers || trimps()) / 3; - if (mod.soldiers > 1) - pop += 36000 * AutoPerky.add(Bait, 100); - var coords = Math.log(pop / group_size[Coordinated.level]) / Math.log(ratio); - var available = zone - 1 + (magma() ? 100 : 0); - return group_size[0] * Math.pow(1.25, Math.min(coords, available)); - } - // Total attack - function attack() { - var attack = (0.15 + equip("attack")) * Math.pow(0.8, magma()); - attack *= AutoPerky.add(Power, 5) * AutoPerky.add(Power_II, 1); - attack *= AutoPerky.add(Relentlessness, 5 * AutoPerky.add(Relentlessness, 30)); - attack *= Math.pow(1 + Siphonology.level, 0.1) * AutoPerky.add(Range, 1); - attack *= AutoPerky.add(Anticipation, 6); - return soldiers() * attack; - } - // Total survivability (accounts for health and block) - function health() { - var health = (0.6 + equip("health")) * Math.pow(0.8, magma()); - health *= AutoPerky.add(Toughness, 5) * AutoPerky.add(Toughness_II, 1) * AutoPerky.mult(Resilience, 10); - // block - var gyms = building(400, 1.185); - var trainers = (gyms * Math.log(1.185) - Math.log(1 + gyms)) / Math.log(1.1) + 25 - mystic; - var block = 0.04 * gyms * Math.pow(1 + mystic / 100, gyms) * (1 + tacular * trainers); - // target number of attacks to survive - var attacks = 60; - if (zone < 70) { - // number of ticks needed to repopulate an army - var timer = - Math.log(1 + soldiers() * breed() / AutoPerky.add(Bait, 100)) / Math.log(1 + breed()); - attacks = timer / ticks(); - } else { - var ratio = 1 + 0.25 * AutoPerky.mult(Coordinated, -2); - var available = zone - 1 + (magma() ? 100 : 0); - var required = group_size[Coordinated.level] * Math.pow(ratio, available); - var fighting = Math.min(required / trimps(), 1 / 3); - var target_speed = fighting > 1e-9 ? (Math.pow(0.5 / (0.5 - fighting), 0.1 / mod.breed_timer) - 1) * 10 : fighting / mod.breed_timer; - var geneticists = Math.log(breed() / target_speed) / -Math.log(0.98); - health *= Math.pow(1.01, geneticists); - } - health /= attacks; - if (zone < 60) { - block += equip("block"); - } else { - block = Math.min(block, 4 * health); - } - return soldiers() * (block + health); - } - // XP earned by Fluffy over the run - fluffy.base = 0; - for (var z = 301; z < zone; ++z) { - fluffy.base += 50 * Math.pow(1.015, z - 300); - } - function xp() { - var total = fluffy.base * AutoPerky.add(Cunning, 25) * AutoPerky.add(Curious, 60); - var cap = Capable.level == 10 ? Infinity : 1000 * Math.pow(5, fluffy.prestige) * (AutoPerky.mult(Capable, 300) - 1) / 3; - return Math.max(1, Math.min(total, cap - fluffy.xp) + Math.min(total * 7, cap - fluffy.xp)); - } - var agility = function () { - return 1 / AutoPerky.mult(Agility, -5); - }; - var helium = function () { - return base_helium * looting() + 45; - }; - var overkill = function () { - return Math.max(0.2, Overkill.level); - }; - var stats = { - agility: agility, - helium: helium, - xp: xp, - attack: attack, - health: health, - overkill: overkill, - trimps: trimps - }; - function score() { - var result = 0; - for (var i in weight) { - if (!weight[i]) { - continue; - } - var stat = stats[i](); - if (!isFinite(stat)) { - throw Error(i + " is " + stat); - } - result += weight[i] * Math.log(stat); - } - return result; - } - function best_perk() { - var best; - var max = 0; - var baseline = score(); - for (var name in perks) { - var perk = perks[name]; - if (perk.locked || perk.level >= perk.cap || perk.cost() > he_left) { - continue; - } - perk.level += perk.pack; - var gain = score() - baseline; - perk.level -= perk.pack; - var efficiency = gain / perk.cost(); - if (efficiency >= max) { - max = efficiency; - best = perk; - } - } - return best; - } - mod.loot *= 20.8; // TODO: check that this is correct - weight.agility = (weight.helium + weight.attack) / 2; - weight.overkill = 0.25 * weight.attack * (2 - Math.pow(0.9, weight.helium / weight.attack)); - //Disable Bait if we are above z110 - if (zone > 110 && mod.soldiers <= 1 && Bait.must == 0) { - Bait.cap = 0; - } - if (!Capable.must) { - Capable.must = Math.ceil(Math.log(0.003 * fluffy.xp / Math.pow(5, fluffy.prestige) + 1) / Math.log(4)); - } - // Dirty fix - Capable.must = Math.min(Capable.must, 10, Math.floor(Math.log(he_left) / Math.log(10) - 7.5)); - for (var name in perks) { - var perk = perks[name]; - while (perk.level < perk.must) { - var cost = perk.cost(); - he_left -= cost; - perk.level += perk.pack; - perk.spent += cost; - } - } - if (he_left < 0) { - throw game && game.global.canRespecPerks ? "You don’t have enough Helium to afford your Fixed Perks." : "You don’t have a respec available."; - } - // Main loop - for (var best = void 0; (best = best_perk()); ) { - var spent = 0; - while (best.level < best.cap && (best.level < best.must || spent < he_left / best.free)) { - he_left -= best.cost(); - spent += best.cost(); - best.level += best.pack; - if (best.level == 1000 * best.pack) { - best.pack *= 10; - } - } - best.spent += spent; - } - for (var perk in perks) { - //console.log(perk, "=", perks[perk].level, "=", perks[perk].must); - } - return [he_left, perks]; - }, - init: function () { - var ratio = JSON.parse(localStorage.getItem("AutoperkCustomRatio")); - if (ratio !== null && ratio !== undefined && ratio.length === 3) { - this.presets["custom"] = ratio; - } - this.buildButtons(); - }, - run: function () { - this.inputs = this.read_data(); - this.optimize(this.data); - }, - clickAllocate: function () { - AutoPerky.run(); - this.applyCalculations(this.data.perks); - }, - applyCalculations: function (perks) { - var preBuyAmt = game.global.buyAmt; - if (game.global.canRespecPerks) { - respecPerks(); - } - if (game.global.respecActive) { - clearPerks(); - for (var i in perks) { - if (!game.portal[i].locked) { - game.global.buyAmt = perks[i].level; - buyPortalUpgrade(i); - } - } - } - game.global.buyAmt = preBuyAmt; - numTab(1, true); //selects the 1st number of the buy-amount tab-bar (Always 1) - cancelTooltip(); //displays the last perk we bought's tooltip without this. idk why. - }, - createInput: function (perkname, div) { - var perk1input = document.createElement("Input"); - perk1input.id = perkname + "Ratio"; - var oldstyle = "text-align: center; width: 60px;"; - if (game.options.menu.darkTheme.enabled != 2) { - perk1input.setAttribute("style", oldstyle + " color: black;"); - } else { - perk1input.setAttribute("style", oldstyle); - } - perk1input.setAttribute("class", "perkRatios"); - var perk1label = document.createElement("Label"); - perk1label.id = perkname + "Label"; - perk1label.innerHTML = perkname; - perk1label.setAttribute("style", "margin-right: 1vw; width: 120px; color: white;"); - //add to the div. - perk1input.setAttribute("onchange", "AutoPerky.saveRatios()"); - div.appendChild(perk1input); - div.appendChild(perk1label); - }, - saveRatios: function () { - if (this.preset === "custom") { - this.presets[this.preset][0] = parseInt(document.getElementById("HeliumRatio").value); - this.presets[this.preset][1] = parseInt(document.getElementById("AttackRatio").value); - this.presets[this.preset][2] = parseInt(document.getElementById("HealthRatio").value); - safeSetItems("AutoperkCustomRatio", JSON.stringify(this.presets[this.preset])); - } - if (this.fixed != document.getElementById("FixedRatio").value) { - this.fixed = document.getElementById("FixedRatio").value; - safeSetItems("AutoperkFixedPerks", this.fixed); - } - var loadZone = parseInt(document.getElementById("TargetRatio").value); - if (loadZone > 0) { - this.data.targetzone = loadZone; - safeSetItems("AutoperkTargetZone", this.data.targetzone); - } - }, - setDefaultRatios: function () { - if (this.preset !== document.getElementById("ratioPreset").value) { - var ratioSet = document.getElementById("ratioPreset").selectedIndex; - if (Number.isInteger(ratioSet)) { - safeSetItems("AutoperkSelectedRatioPresetID", ratioSet); - } - this.preset = document.getElementById("ratioPreset").value; - } - document.getElementById("HeliumRatio").value = this.presets[this.preset][0]; - document.getElementById("AttackRatio").value = this.presets[this.preset][1]; - document.getElementById("HealthRatio").value = this.presets[this.preset][2]; - if (this.preset === "custom") { - document.getElementById("HeliumRatio").disabled = false; - document.getElementById("AttackRatio").disabled = false; - document.getElementById("HealthRatio").disabled = false; - } else { - document.getElementById("HeliumRatio").disabled = true; - document.getElementById("AttackRatio").disabled = true; - document.getElementById("HealthRatio").disabled = true; - } - document.getElementById("FixedRatio").value = this.fixed; - document.getElementById("TargetRatio").value = this.data.targetzone; - }, - buildButtons: function () { - var buttonbar = document.getElementById("portalBtnContainer"); - var customRatios = document.createElement("DIV"); - customRatios.id = 'customRatios'; - this.createInput("Helium", customRatios); - this.createInput("Attack", customRatios); - this.createInput("Health", customRatios); - this.createInput("Target", customRatios); - this.createInput("Fixed", customRatios); - var loadFixed = localStorage.getItem("AutoperkFixedPerks"); - if (loadFixed !== null) { - this.fixed = loadFixed; - } - var loadZone = parseInt(localStorage.getItem("AutoperkTargetZone")); - if (loadZone > 0) { - this.data.targetzone = loadZone; - } else { - this.data.targetzone = - game.stats.highestVoidMap.valueTotal || game.global.highestLevelCleared; - } - //Create Allocator button and add it to Trimps Perk Window - var allocatorBtn1 = document.createElement("DIV"); - allocatorBtn1.id = "allocatorBTN1"; - allocatorBtn1.setAttribute("class", "btn inPortalBtn settingsBtn settingBtntrue"); - allocatorBtn1.setAttribute("onclick", "AutoPerky.clickAllocate();"); - allocatorBtn1.textContent = "Allocate Perks"; - buttonbar.appendChild(allocatorBtn1); - buttonbar.setAttribute("style", "margin-bottom: 0.8vw;"); - - var ratioPreset = document.createElement("select"); - ratioPreset.id = "ratioPreset"; - var oldstyle = "text-align: center; width: 110px;"; - if (game.options.menu.darkTheme.enabled != 2) - ratioPreset.setAttribute("style", oldstyle + " color: black;"); - else - ratioPreset.setAttribute("style", oldstyle); - //Populate dump perk dropdown list : - // var AutoPerky.presetList = [preset_ZXV,preset_ZXVnew,preset_ZXV3,preset_TruthEarly,preset_TruthLate,preset_nsheetz,preset_nsheetzNew,preset_HiderHehr,preset_HiderBalance,preset_HiderMore,preset_genBTC,preset_genBTC2]; - var html = ""; - for (var key in this.presets) { - html += '"; - } - //Specific ratios labeled above are configured down in the bottom of this file.Lines 543-556 - ratioPreset.innerHTML = html; - //load the last ratio used - var loadLastPreset = localStorage.getItem("AutoperkSelectedRatioPresetID"); - if (loadLastPreset != null) - ratioPreset.selectedIndex = loadLastPreset; // First element is zxv (default) ratio. - else - ratioPreset.selectedIndex = 0; - ratioPreset.setAttribute("onchange", "AutoPerky.setDefaultRatios()"); - //Add the presets dropdown to UI Line 1 - customRatios.appendChild(ratioPreset); - document.getElementById("portalWrapper").appendChild(customRatios); - document.getElementById("FixedRatio").style["width"] = "480px"; - this.setDefaultRatios(); - } -}; - -AutoPerky.init(); \ No newline at end of file From 9f6f5a4ab1e33416c8032faa1cc0c766b5ec5b95 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 2 Jun 2018 20:59:00 +0100 Subject: [PATCH 266/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 04e10ecd4..8a63af1b1 100644 --- a/modules/other.js +++ b/modules/other.js @@ -262,10 +262,10 @@ function BWraiding() { else if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 1; debug("Turning AutoMaps back on"); + } if (bwraided == true && game.global.world !== getPageSetting('BWraidingz')) { bwraided = false; } - } } //AutoAllocate Looting II From 9a55a1b5d97baa52d2b03ccd564e8377da8733ae Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 3 Jun 2018 14:36:31 +0100 Subject: [PATCH 267/365] Update SettingsGUI.js --- SettingsGUI.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 772588177..cbec829ab 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -435,8 +435,6 @@ function initializeAllSettings() { //Heirloom Settings createSetting('AutoHeirloomsNew', ['AutoHeirlooms Off', 'AutoHeirlooms 1', 'AutoHeirlooms 2'], 'AutoHeirlooms 1 = Automatically evaluate and carry the best heirlooms, and recommend upgrades for equipped items. AutoHeirlooms will only change carried items when the heirlooms window is not open. Carried items will be compared and swapped with the types that are already carried. If a carry spot is empty, it will be filled with the best shield (if available). Evaluation is based ONLY on the following mods (listed in order of priority, high to low): Void Map Drop Chance/Trimp Attack, Crit Chance/Crit Damage, Miner Efficiency/Metal Drop, Gem Drop/Dragimp Efficiency, Farmer/Lumberjack Efficiency. For the purposes of carrying, rarity trumps all of the stat evaluations. Empty mod slots are valued at the average value of the best missing mod.
AutoHeirlooms 2 = New algorithm for Heirlooms. CAUTION: Turning this on will immediately re-sort your heirlooms according to the new algorithm, and turning it off again DOES revert to the original algorithm even though it may NOT have a visible result on your heirlooms. (fyi: This lack of action highlights one of the problems with the old one.', 'multitoggle', 0, null, 'Heirlooms'); createSetting('AutoUpgradeHeirlooms', 'Auto Upgrade Heirlooms', 'Automatically buys the upgrades the script advises for the Equipped shield and staff, until we are out of nullifium.', 'boolean', false, null, 'Heirlooms'); - //createSetting('loomprotect', 'Heirloom Protection','Will protect and carry any plagued heirlooms you pick up, this is a temporary solution until autoheirlooms is fixed. ', 'boolean', false, null, 'Heirlooms'); - //Golden Upgrade Strategies: createSetting('AutoGoldenUpgrades', 'AutoGoldenUpgrades', 'IMPORTANT SETTING. Automatically Buy the specified Golden Upgrades as they become available. Faster than vanilla. NOTE: Void setting unlocks more settings: goldStrat, goldAlternating, goldZone and goldNoBattle. New: Void also has a \\"Max then Helium\\" setting so you can get the perfect 60% Voids then Helium. More buttons will become visible when you make selections.', 'dropdown', 'Void', ["Off", "Helium", "Battle", "Void"], 'Golden'); From 559c35908ebfcb6c3b8849111b46ed5fa53905aa Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 3 Jun 2018 18:46:40 +0100 Subject: [PATCH 268/365] Update SettingsGUI.js --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index cbec829ab..c12b0aced 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -433,7 +433,7 @@ function initializeAllSettings() { //Heirloom Settings - createSetting('AutoHeirloomsNew', ['AutoHeirlooms Off', 'AutoHeirlooms 1', 'AutoHeirlooms 2'], 'AutoHeirlooms 1 = Automatically evaluate and carry the best heirlooms, and recommend upgrades for equipped items. AutoHeirlooms will only change carried items when the heirlooms window is not open. Carried items will be compared and swapped with the types that are already carried. If a carry spot is empty, it will be filled with the best shield (if available). Evaluation is based ONLY on the following mods (listed in order of priority, high to low): Void Map Drop Chance/Trimp Attack, Crit Chance/Crit Damage, Miner Efficiency/Metal Drop, Gem Drop/Dragimp Efficiency, Farmer/Lumberjack Efficiency. For the purposes of carrying, rarity trumps all of the stat evaluations. Empty mod slots are valued at the average value of the best missing mod.
AutoHeirlooms 2 = New algorithm for Heirlooms. CAUTION: Turning this on will immediately re-sort your heirlooms according to the new algorithm, and turning it off again DOES revert to the original algorithm even though it may NOT have a visible result on your heirlooms. (fyi: This lack of action highlights one of the problems with the old one.', 'multitoggle', 0, null, 'Heirlooms'); + createSetting('AutoHeirloomsNew', ['AutoHeirlooms Off', 'AutoHeirlooms 1', 'AutoHeirlooms 2'], 'Use Autoheirlooms 1. ', 'multitoggle', 0, null, 'Heirlooms'); createSetting('AutoUpgradeHeirlooms', 'Auto Upgrade Heirlooms', 'Automatically buys the upgrades the script advises for the Equipped shield and staff, until we are out of nullifium.', 'boolean', false, null, 'Heirlooms'); //Golden Upgrade Strategies: From 25ee13b63a07af4e0b9b579671907860894ca669 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 3 Jun 2018 18:50:19 +0100 Subject: [PATCH 269/365] Update SettingsGUI.js --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index c12b0aced..76be2dcd9 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -339,7 +339,7 @@ function initializeAllSettings() { //AutoMaps + VoidMaps settings: - createSetting('AutoMaps', ["Auto Maps Off","Auto Maps On","Auto Maps No Unique"], 'Recommended. Automatically run maps to progress. Very Important. Has multiple modes: Prestige, Voids, Want more Damage, Want more Health, Want Health & Damage, and Farming.Prestige takes precedence and does equal level maps until it gets what is needed as per Autotrimps Prestige dropdown setting. Voids is self explanatory: use the Void Difficulty Check setting to control the amount of farming. If \'want more damage\', it will only do 10 maps for 200% mapbonus damage bonus. If \'Farming\', it does maps beyond 10 if the displayed number is over >16x. \'Want more health[or and damage]\' is basically just a status message telling you need more health, theres not much that can be done besides tell AutoLevelEquipment to keep buying stuff. If you \'want health\' but your damage is OK to continue, invest in more HP perks.
Unique Maps are run automatically unless disabled.
Uniques Required to auto-run The Wall and Dimension of Anger. Also Required for challenges: Electricity, Mapocalypse, Meditate, and Crushed (etc) to complete their AutoPortal.

Maps/Levels:
The Block - 12
The Wall - 16
Dimension of Anger - 21
Trimple Of Doom - 34
The Prison - 82
Bionic Wonderland (only during Crushed) @ 127
NOTE: This should generally be on.
NOTE: Run Bionic Before Spire prevents the setting of Unique.
NOTICE: This does NOT auto-run all your Bionics according to your lack of Robotrimp status or whether you pass a certain level (yet).', 'multitoggle', 1, null, "Maps"); + createSetting('AutoMaps', ["Auto Maps Off","Auto Maps On","Auto Maps No Unique"], 'Automaps. The no unique setting will not run unique maps such as dimensions of anger. Recommended ON. ', 'multitoggle', 1, null, "Maps"); createSetting('DynamicSiphonology', 'Dynamic Siphonology', 'Recommended Always ON. Use the right level of siphonology based on your damage output. IE: Only uses siphonology if you are weak. With this OFF it means it ALWAYS uses the lowest siphonology map you can create. Siphonology is a perk you get at level 115-125ish, and means you receive map bonus stacks for running maps below your current zone - Up to 3 zones below (1 per perk level).', 'boolean', true, null, 'Maps'); //Should always be on? createSetting('PreferMetal', 'Prefer Metal Maps', 'Always prefer metal maps, intended for manual use, such as pre-spire farming. Remember to turn it back off after you\'re done farming!', 'boolean', false, null, 'Maps'); //rarely better tbh createSetting('MaxMapBonusAfterZone', 'Max MapBonus After', 'Always gets Max Map Bonus from this zone on. (inclusive and after).
NOTE: Set -1 to disable entirely (default). Set 0 to use it always.
Advanced:User can set a lower number than the default 10 maps with the AT hidden console command: MODULES[\\"maps\\"].maxMapBonusAfterZ = 9;', 'value', '-1', null, 'Maps'); From 049c409b834aae211715bbd87c60158f8682f774 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 3 Jun 2018 19:08:08 +0100 Subject: [PATCH 270/365] Update heirlooms.js --- modules/heirlooms.js | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/modules/heirlooms.js b/modules/heirlooms.js index 2c2e3c9a2..7bb29cb3b 100644 --- a/modules/heirlooms.js +++ b/modules/heirlooms.js @@ -556,15 +556,3 @@ function generateHeirloomIcon(heirloom, location, number){ html += locText + ', this)"> '; return html; } - -function protectloom() { - if (getPageSetting('loomprotect') == true && game.global.heirloomsCarried.length < game.global.maxCarriedHeirlooms) { - for (var index in game.global.heirloomsExtra) { - var aLoom = game.global.heirloomsExtra[index]; - var data = {'location': 'heirloomsExtra', 'index': index, 'rarity': theLoom.rarity}; - } - -} - - - From 431e98e0bca6dc102efdba49400cdc02795bb0a3 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 3 Jun 2018 19:14:52 +0100 Subject: [PATCH 271/365] Update perks.js --- modules/perks.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/perks.js b/modules/perks.js index d51a01460..74255d181 100644 --- a/modules/perks.js +++ b/modules/perks.js @@ -156,7 +156,7 @@ AutoPerks.displayGUI = function() { //Add the dump perk dropdown to UI Line 2 apGUI.$ratiosLine2.appendChild(apGUI.$dumpperklabel); apGUI.$ratiosLine2.appendChild(apGUI.$dumpperk); - //Toggle Algorithm 2 checkbox + /*Toggle Algorithm 2 checkbox apGUI.$toggleAlgo2 = document.createElement("DIV"); apGUI.$toggleAlgo2.setAttribute('style', 'display: inline; text-align: left; margin-left: 1vw;'); apGUI.$toggleAlgo2.innerHTML = '\ @@ -165,7 +165,7 @@ AutoPerks.displayGUI = function() { $buttonbar.appendChild(apGUI.$toggleAlgo2); var $fastAllocate = document.getElementById("fastAllocate"); $fastAllocate.setAttribute("onmouseover", 'tooltip(\"FastAllocate\", \"customText\", event, \"Bulk buys thousands of Tier2 Perks at once to save time. Caution - May overshoot. Recommended for High Helium amounts above 1 Qi only.\")'); - $fastAllocate.setAttribute("onmouseout", 'tooltip("hide")'); + $fastAllocate.setAttribute("onmouseout", 'tooltip("hide")');*/ //Create ratioPreset dropdown apGUI.$ratioPresetLabel = document.createElement("Label"); apGUI.$ratioPresetLabel.id = 'Ratio Preset Label'; @@ -338,7 +338,7 @@ AutoPerks.clickAllocate = function() { // determine how to spend helium var result; - if (MODULES["perks"].useAlgo2) + if (getPageSetting('fastallocate')==true) result = AutoPerks.spendHelium2(remainingHelium); else result = AutoPerks.spendHelium(remainingHelium); From e0cde23374ce29cc4b362418cc57b8fd27d15e51 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 3 Jun 2018 19:21:15 +0100 Subject: [PATCH 272/365] Update SettingsGUI.js --- SettingsGUI.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 76be2dcd9..835e28a74 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -253,8 +253,8 @@ function initializeAllSettings() { createSetting('AutoStartDaily', 'Auto Start Daily', 'With this on, the Auto Portal options will portal you into and auto-start the daily whenever available. Starts from the oldest available, and works forwards. Falls back to selected challenge when there are no more dailies available.', 'boolean', false, null, 'Core'); createSetting('AutoFinishDailyNew', 'Finish Daily Z Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option or set this to 999!', 'valueNegative', 999, null, 'Core'); createSetting('FinishC2', 'Finish Challenge2', 'Finish / Abandon Challenge2 (any) when this zone is reached, if you are running one. For manual use. Recommended: Zones ending with 0 for most Challenge2. Disable with -1. Does not affect Non-Challenge2 runs.', 'value', -1, null, 'Core'); - if (game.worldUnlocks.easterEgg){ - createSetting('AutoEggs', 'AutoEggs', 'Click easter egg if it exists, upon entering a new zone. Warning: Quite overpowered. Please solemnly swear that you are up to no good.', 'boolean', false, null, 'Core');} + createSetting('AutoEggs', 'AutoEggs', 'Click easter egg if it exists, upon entering a new zone. Warning: Quite overpowered. Please solemnly swear that you are up to no good.', 'boolean', false, null, 'Core'); + createSetting('fastallocate', 'Fast Allocate', 'Turn on if your helium is above 500Qa. Not recommended for low amounts of helium. ', 'boolean', false, null, 'Core'); createSetting('AutoAllocatePerks', ['Auto Allocate Off', 'Auto Allocate On', 'Dump into Looting II'], 'Uses the AutoPerks ratio based preset system to automatically allocate your perks to spend whatever helium you have when you AutoPortal. Does not change Fixed Perks: siphonology, anticipation, meditation, relentlessness, range, agility, bait, trumps, packrat, capable. NEW: Dump into Looting II, dumps all loot gained from previous portal at specified zone', 'multitoggle', 0, null, 'Core'); document.getElementById('AutoAllocatePerks').parentNode.insertAdjacentHTML('afterend','
'); @@ -847,6 +847,7 @@ function updateCustomButtons() { //if ShieldBlock is for sure, remove ShieldBlock from settingsbox (achievement=12 means z100). //(game.achievements.zones.finished < 12) ? turnOn("BuyShieldblock") : function(){turnOff("BuyShieldblock");setPageSetting("BuyShieldblock",false);}(); //if AS3 is not selected, remove Windstack settingsbox + !game.worldUnlocks.easterEgg.locked ? turnOn("AutoEggs"): turnOff("AutoEggs"); getPageSetting('AutoStance')==3 ? turnOn("WindStackingMin"): turnOff("WindStackingMin"); getPageSetting('AutoStance')==3 ? turnOn("ScryUseinPoison"): turnOff("ScryUseinPoison"); getPageSetting('AutoStance')==3 ? turnOn("ScryUseinWind"): turnOff("ScryUseinWind"); From 56ea86399acb1607b268e5bc23e995387b8acfaf Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 3 Jun 2018 19:28:30 +0100 Subject: [PATCH 273/365] Update SettingsGUI.js --- SettingsGUI.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 835e28a74..b30817d12 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -253,7 +253,8 @@ function initializeAllSettings() { createSetting('AutoStartDaily', 'Auto Start Daily', 'With this on, the Auto Portal options will portal you into and auto-start the daily whenever available. Starts from the oldest available, and works forwards. Falls back to selected challenge when there are no more dailies available.', 'boolean', false, null, 'Core'); createSetting('AutoFinishDailyNew', 'Finish Daily Z Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option or set this to 999!', 'valueNegative', 999, null, 'Core'); createSetting('FinishC2', 'Finish Challenge2', 'Finish / Abandon Challenge2 (any) when this zone is reached, if you are running one. For manual use. Recommended: Zones ending with 0 for most Challenge2. Disable with -1. Does not affect Non-Challenge2 runs.', 'value', -1, null, 'Core'); - createSetting('AutoEggs', 'AutoEggs', 'Click easter egg if it exists, upon entering a new zone. Warning: Quite overpowered. Please solemnly swear that you are up to no good.', 'boolean', false, null, 'Core'); + if (!game.worldUnlocks.easterEgg.locked) { + createSetting('AutoEggs', 'AutoEggs', 'Click easter egg if it exists, upon entering a new zone. Warning: Quite overpowered. Please solemnly swear that you are up to no good.', 'boolean', false, null, 'Core');} createSetting('fastallocate', 'Fast Allocate', 'Turn on if your helium is above 500Qa. Not recommended for low amounts of helium. ', 'boolean', false, null, 'Core'); createSetting('AutoAllocatePerks', ['Auto Allocate Off', 'Auto Allocate On', 'Dump into Looting II'], 'Uses the AutoPerks ratio based preset system to automatically allocate your perks to spend whatever helium you have when you AutoPortal. Does not change Fixed Perks: siphonology, anticipation, meditation, relentlessness, range, agility, bait, trumps, packrat, capable. NEW: Dump into Looting II, dumps all loot gained from previous portal at specified zone', 'multitoggle', 0, null, 'Core'); document.getElementById('AutoAllocatePerks').parentNode.insertAdjacentHTML('afterend','
'); @@ -847,7 +848,6 @@ function updateCustomButtons() { //if ShieldBlock is for sure, remove ShieldBlock from settingsbox (achievement=12 means z100). //(game.achievements.zones.finished < 12) ? turnOn("BuyShieldblock") : function(){turnOff("BuyShieldblock");setPageSetting("BuyShieldblock",false);}(); //if AS3 is not selected, remove Windstack settingsbox - !game.worldUnlocks.easterEgg.locked ? turnOn("AutoEggs"): turnOff("AutoEggs"); getPageSetting('AutoStance')==3 ? turnOn("WindStackingMin"): turnOff("WindStackingMin"); getPageSetting('AutoStance')==3 ? turnOn("ScryUseinPoison"): turnOff("ScryUseinPoison"); getPageSetting('AutoStance')==3 ? turnOn("ScryUseinWind"): turnOff("ScryUseinWind"); From 462e84df60793a80b13b26d48c13c0066871b59f Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 3 Jun 2018 19:33:43 +0100 Subject: [PATCH 274/365] Update perks.js --- modules/perks.js | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/modules/perks.js b/modules/perks.js index 74255d181..a35bdf665 100644 --- a/modules/perks.js +++ b/modules/perks.js @@ -12,8 +12,7 @@ //Create blank AutoPerks object var AutoPerks = {}; MODULES["perks"] = {}; -MODULES["perks"].showDetails = true; //show which individual perks are spent; -MODULES["perks"].useAlgo2 = false; //use algorithm 2 instead. +MODULES["perks"].showDetails = true; //show which individual perks are spent; //use algorithm 2 instead. //Import the FastPriorityQueue.js general Library (not AT specific, but needed for perk queue) var head = document.getElementsByTagName('head')[0]; @@ -156,16 +155,6 @@ AutoPerks.displayGUI = function() { //Add the dump perk dropdown to UI Line 2 apGUI.$ratiosLine2.appendChild(apGUI.$dumpperklabel); apGUI.$ratiosLine2.appendChild(apGUI.$dumpperk); - /*Toggle Algorithm 2 checkbox - apGUI.$toggleAlgo2 = document.createElement("DIV"); - apGUI.$toggleAlgo2.setAttribute('style', 'display: inline; text-align: left; margin-left: 1vw;'); - apGUI.$toggleAlgo2.innerHTML = '\ - \ - Fast Allocate!'; - $buttonbar.appendChild(apGUI.$toggleAlgo2); - var $fastAllocate = document.getElementById("fastAllocate"); - $fastAllocate.setAttribute("onmouseover", 'tooltip(\"FastAllocate\", \"customText\", event, \"Bulk buys thousands of Tier2 Perks at once to save time. Caution - May overshoot. Recommended for High Helium amounts above 1 Qi only.\")'); - $fastAllocate.setAttribute("onmouseout", 'tooltip("hide")');*/ //Create ratioPreset dropdown apGUI.$ratioPresetLabel = document.createElement("Label"); apGUI.$ratioPresetLabel.id = 'Ratio Preset Label'; @@ -706,9 +695,6 @@ AutoPerks.getPercent = function(spentHelium, totalHelium) { frac = (frac* 100).toPrecision(2); return frac + "%"; } -AutoPerks.toggleFastAllocate = function() { - MODULES["perks"].useAlgo2 = !MODULES["perks"].useAlgo2; -} AutoPerks.FixedPerk = function(name, base, level, max, fluffy) { this.id = -1; From e505bd092a2033fd71df1154603e5d4bcc0f5b71 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 3 Jun 2018 19:34:29 +0100 Subject: [PATCH 275/365] Update GraphsOnly.user.js --- GraphsOnly.user.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GraphsOnly.user.js b/GraphsOnly.user.js index 30f097dec..115c9d99d 100644 --- a/GraphsOnly.user.js +++ b/GraphsOnly.user.js @@ -21,10 +21,10 @@ function safeSetItems(name,data) { } } //This can be edited to point to your own Github Repository URL. -var basepath = 'https://genbtc.github.io/AutoTrimps/'; +var basepath = 'https://Zorn192.github.io/AutoTrimps/'; var script = document.createElement('script'); script.id = 'AutoTrimps-Graphs'; script.src = basepath + 'Graphs.js'; //script.setAttribute('crossorigin',"use-credentials"); script.setAttribute('crossorigin',"anonymous"); -document.head.appendChild(script); \ No newline at end of file +document.head.appendChild(script); From 7a34888f610a0e422b1c94bc10742c8df3a1cd87 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 3 Jun 2018 19:35:02 +0100 Subject: [PATCH 276/365] Update GraphsOnly.user.js --- GraphsOnly.user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GraphsOnly.user.js b/GraphsOnly.user.js index 115c9d99d..186d5f043 100644 --- a/GraphsOnly.user.js +++ b/GraphsOnly.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name AutoTrimpsV2+genBTC-GraphsOnly -// @namespace https://github.com/genbtc/AutoTrimps +// @namespace https://github.com/Zorn192/AutoTrimps // @version 2.1.6.9-genbtc-3-23-2018 // @updateURL https://github.com/genbtc/AutoTrimps/GraphsOnly.user.js // @description Graphs Module (only) from AutoTrimps From 4ae43e7839581d8fa16acdefd1f2927679e780c3 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 3 Jun 2018 19:37:47 +0100 Subject: [PATCH 277/365] Delete v2.1.5.1 --- docs/v2.1.5.1 | 72 --------------------------------------------------- 1 file changed, 72 deletions(-) delete mode 100644 docs/v2.1.5.1 diff --git a/docs/v2.1.5.1 b/docs/v2.1.5.1 deleted file mode 100644 index 1600aadd9..000000000 --- a/docs/v2.1.5.1 +++ /dev/null @@ -1,72 +0,0 @@ -v2.1.5.1 - 12/23/2016 -AutoTrimps2.js: -internals: fix module load order bug -move automaps re-enable after portal to mainCleanup -NEW: make AT use betterautofight on Zone 1 before Battle upgrade even when better autofight is disabled -internals: Change ATrunning variable - -docs/TODO.md: -Add a conversation about Void map difficulty so I dont forget - -Graphs.js -NEW: Add Magmite Graph -dont push updates if the game is paused. fix import on pause Clear Time problem -Change Loot Sources graph to 60 datapoints, every 15 seconds. -internals: refactor time graph functions -Change Dark Essence graph to be Total owned, not gained that run. -internals: refactor code for Dark Essence per Hour graph, adjust 0's zone alignment -internals: tried to change Loot Sources from having 0.5 tick lengths on the x-axis but failed. - -Autofight.js - Refactor; -betterAutoFight2 use lowLevelFight when scientist 1 is incomplete, not complete. -IMPORTANT: betterAutoFight2 dont use #3 when VoidMap is first ran (so it waits and loads your full Anticipation stacks) - -Automaps.js -add MODULE variable for SpireFarm199Maps -NEW: add a more efficient health check to make sure you can in fact kill the enemy on that specific cell you're on and you arent stuck on it due to it being fast and lack of health etc. -TODO: Account for magmated voidmaps. -TODO: Account for dailymods in voidmaps. -NEW: Change entire system of map sliders: - fixed bug where it was picking Metal maps at low level. - start all map sliders on 9/9/9 and decrement cost if needed based on priority that is assigned based on which situation. - -Autostance.js -Fix rare case when your enemyHealth == baseDamage -Fix some bugs in Autostance2 with Crit -Start fixing the scryer checkOnly thing but didnt finish. -NEW: (mentioned in automaps) autoStanceCheck now handles individual cell health checks that follow all the autostance rules (for automap) - -Battlecalc.js -Allow functions to be called with variables to disable stance correction and min/max damage range fluctuation. - -Buildings 1 & 2.js -Fix Green highlighting -NEW: Delay buying Gyms if we NEED gymystic - -Equipment.js -NEW: Skip buying shields (w/ shieldblock) if we NEED gymystic -Uncap Equipment levels during Metal Challenge - -Gather.js -Change Trapping Behavior, make it identical between gather1 and gather2. -Make sure watch challenge doesnt get stuck. - -Jobs.js -Only try to buy jobs (and therefore print message) if we can afford them. (reduce spam) -Add Auto Worker Ratios for Metal Challenge (acts somewhat weird but better than nothing) - -Other.js -TODO: coding the Auto Dimensional Generator (determined which functions to use) -TODO: start coding for Overclocker upgrade (need help/advice) - -Portal.js -NEW: AutoFinishDailyZone : Finish Daily by this # of zones earlier/later than your regular Custom AutoPortal zone or your Helium Dont Portal Before zone - -Utils.js -moved to mainLoop in AutoTrimps2.js - -SettingsGUI.js -Change wording to "Better" Auto Fight -AutoFinishDailyZone -TODO: Start coding the importModuleVars stuff for "Import your custom MODULES variables " -Create a way to make negative value boxes. \ No newline at end of file From 202275c25237c74a59fff7af1bba77992805640a Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 3 Jun 2018 19:37:58 +0100 Subject: [PATCH 278/365] Delete main-doc.txt --- docs/main-doc.txt | 283 ---------------------------------------------- 1 file changed, 283 deletions(-) delete mode 100644 docs/main-doc.txt diff --git a/docs/main-doc.txt b/docs/main-doc.txt deleted file mode 100644 index 6a3cb24b1..000000000 --- a/docs/main-doc.txt +++ /dev/null @@ -1,283 +0,0 @@ -AutoTrimps - A Highly Extensive Idle Clicker Game Script - -Code Execution Structure,Behavior/Explanation: -============================================== -A script bootstrap file userscript "install.user.js" is ran by Tampermonkeyed/Greasemonkeyed and installed into permanence on the browser extension. This loads AutoTrimps2.js. First it loads utils.js for some tools, then it loads the Settings UI and then it Loads the Graphs, This loads all the 17 submodules *.js files in the modules/ dir, in a particular order as listed. From that point, a timeout/interval loop is set up to launch the Main Game and Re-run the "Main Loop" every 100ms (10x a second) in sync with the Game Loop. Also the Graphs has its own identical tick count and loop. Each module function is called during the "Main Loop" generally one by one, sequentially, in a particular order, each cycle. There is no future state, just current. The past state is limited to anything we explicitly choose to keep around like in the graphs db or other variables. -The main files are: AutoTrimps2.js, SettingsGUI.js, Graphs.js - Keep reading for details. The separate modules are documented below. - -MODULES (2018): -=============== -battlecalc.js -breedtimer.js -buildings.js -client-server.js -dimgen.js (not used anymore?) -dynprestige.js -equipment.js -fight.js -gather.js -heirlooms.js -import-export.js -jobs.js -magmite.js -maps.js -other.js -perks.js -portal.js -query.js -scryer.js -stance.js -upgrades.js -utils.js - -EXTERNAL FILES: -================ -FastPriorityQueue.js - AutoPerks - uses a 3rd party library for data queues -HighCharts.js - Graphs - uses a 3rd party library to draw the graphs... -tabs.css - User Interface - mandatory css styles for the settings tab or to rewrite or style the UI -dark-graph.css - Graphs - needed some tweaks to work for dark theme. - -GUI: -===== -Consists of SettingsGUI.js is the Settings section + styles of tabs.css - -SETTINGS: -========= -AlwaysArmorLvl2 -AutoFight -AutoGoldenUpgrades -AutoHeirlooms -AutoHeirlooms2 -AutoMaps -AutoPortal -AutoRoboTrimp -AutoStance -AutoUpgradeHeirlooms -BreedFire -BuyArmor -BuyArmorUpgrades -BuyBuildings -BuyJobs -BuyShieldblock -BuyStorage -BuyUpgrades -BuyWeapons -BuyWeaponUpgrades -CapEquip -CorruptionCalc -CustomAutoPortal -DefaultAutoTrimps -DelayArmorWhenNeeded -DeltaGigastation -DisableFarm -DynamicPrestige -DynamicSiphonology -ExitSpireCell -ExportAutoTrimps -FarmerRatio -FarmWhenNomStacks7 -FirstGigastation -GeneticistTimer -HeliumHourChallenge -HeliumHrBuffer -HireScientists -ImportAutoTrimps -LimitEquipment -LumberjackRatio -ManageBreedtimer -ManualGather -MaxCollector -MaxExplorers -MaxGateway -MaxGym -MaxHotel -MaxHouse -MaxHut -MaxMansion -MaxNursery -MaxResort -MaxTox -MaxTrainers -MaxTribute -MaxWormhole -MinerRatio -MinutestoFarmBeforeSpire -PauseScript -Prestige -RunBionicBeforeSpire -RunNewVoids -RunNewVoidsUntil -RunUniqueMaps -ScryerMaxZone -ScryerMinZone -ScryerSkipBoss2 -ScryerSkipCorrupteds2 -ScryerUseinMaps2 -ScryerUseinSpire2 -ScryerUseinVoidMaps2 -ScryerUseWhenOverkill -TrainerCaptoTributes -TrapTrimps -UseScryerStance -VoidCheck -VoidMaps -WaitTill60 -WarpstationCap -WarpstationWall -WorkerRatios - -GRAPHS - Graphs.js is the graphs section: + dark-graph.css (maybe need to darkify the css on the perks too window) -======= -HeliumPerHour -Helium -HeliumPerHour Instant -HeliumPerHour Delta -HeHr % / LifetimeHe -He % / LifetimeHe -Clear Time -Cumulative Clear Time -Run Time -Map Bonus -Void Maps -Void Map History -Loot Sources -Coords -Gigas -UnusedGigas -Lastwarp -Trimps -Nullifium Gained -DarkEssence -DarkEssencePerHour -OverkillCells -Magmite -Magmamancers - -AutoTrimps2.js Detailed Main Function Documentation (from 2016): -=================================================== -The main loop consists of the following subroutines, all of which are enable-able/disable-able by their buttons.: - workerRatios(); //"Auto Worker Ratios" - buyUpgrades(); //"Buy Upgrades" - autoGoldenUpgrades(); //"AutoGoldenUpgrades" (genBTC settings area) - buyStorage(); //"Buy Storage" - buyBuildings(); //"Buy Buildings" - buyJobs(); //"Buy Jobs" - manualLabor(); //"Auto Gather/Build" - autoMap(); //"Auto Maps" - manageGenes(); //"Genetecist Timer" / "Manage Breed Timer" - autoPortal(); //"Auto Portal" (hidden until level 60) - autoHeirlooms2(); or autoHeirlooms(); //"Auto Heirlooms 2" (genBTC settings area) or //"Auto Heirlooms" - toggleAutoTrap(); //"Trap Trimps" - autoRoboTrimp(); //"AutoRoboTrimp" (genBTC settings area) - autoNull(); //"Auto Upgrade Heirlooms" (genBTC settings area) - autoLevelEquipment(); //"Buy Armor", "Buy Armor Upgrades", "Buy Weapons","Buy Weapons Upgrades" - autoStance(); //"Auto Stance" - betterAutoFight(); //"Better Auto Fight" - prestigeChanging2(); //"Dynamic Prestige" (genBTC settings area) - userscripts(); //Runs any user provided scripts - by copying and pasting a function named userscripts() into the Chrome Dev console. (F12) - - -Version Numbered Files (files needing version string during minor upgrades): -====================== -.user.js -user.js -install.user.js -AutoTrimps2.js -Graphs.js -TODO: Should invent a tool/script to advance the version numbers, generate changelogs, auto-link docs. - -HOWTO = Become an AutoTrimps developer -====================================== -The script is setup to be able to be bootstrapped from Tampermonkey/Greasemonkey. -If you paste the AutoTrimps2.js into your Tampermonkey window directly, you can attempt to run a local developer copy and edit it in the tampermonkey edit window. This pulls from a repo and loads all the sub-modules .js files. -The point to understand is HTTPS and SSL is required. It has to be served over an actual HTTPS web-server so chrome can successfully load the secure content resources since https://trimps.github.io is technically the origin and any non-secure javascript resources will be flagged,denied and not-executed... -Simply, You can fork the project on github, find&replace my github URL with yours and upload all your changes to your own repo. And every time you make a change you will have to re-upload / defeat caching / reload to host the file. But this is non-ideal from a "agile" or "live" developer POV. -A better way is to set up a local HTTPS server, mirror my github repo to a local folder, and tell the webserver to run out of that folder, serving it up on https://localhost:4443 or some port number. -So instead of downloading Apache or a full complicated webserver or something, download python - or most computers these days have Python installed. You can use python to be a simple HTTP server with the following scripts, applicable to either Python2.x or Python3.x. -There are multiple ways to achieve the webserver, but this is the best way i've found (if it doesnt do HTTPS it wont work). -These scripts let you open a folder, double click the script, and start serving files out of that local dir instantly over HTTPS. -//(make sure you generate a self-signed .PEM cert to serve.) - this Cert is what provides the necessary SSL functionality - -# generate the cert with the following command (should be an openssl binary exe somewhere on the system) -# openssl req -new -x509 -keyout AutoTrimps.pem -out AutoTrimps.pem -days 365 -nodes -# run as follows: -# python https.py -# then in your browser, visit: -# https://localhost:4443 -# - -Choose the right version of https.py for your System: ----------------------------------------- -https.py = HTTPS Localhost Self serve - With Python 2: ----------------------------------------- -import BaseHTTPServer, SimpleHTTPServer -import ssl -httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler) -httpd.socket = ssl.wrap_socket (httpd.socket, certfile='./AutoTrimps.pem', server_side=True) -httpd.serve_forever() - ----------------------------------------- -https.py = HTTPS Localhost Self serve - With Python 3: ----------------------------------------- -import logging -import os -import sys -import http.server -import socketserver -import ssl -logging.info('Server running...') -httpd = socketserver.TCPServer(('localhost', 4443), http.server.SimpleHTTPRequestHandler) -httpd.socket = ssl.wrap_socket(httpd.socket, certfile='./AutoTrimps.pem', server_side=True) -httpd.serve_forever() - -//(make sure you generate a self-signed .PEM cert to serve.) - this Cert is what provides the necessary SSL functionality - -Make this batch script to double click to easily run the .py file from windows explorer without going to command line (mac/linux make a .sh file im sure you know how): --------------------- -SIMPLEHTTPSERVER.BAT --------------------- -@echo off -cd C:\Users\EOFL\Documents\GitHub\AutoTrimps -rem Infinite loop, counting from 1 to 10 with increment of 0. (just makes it restart on errors) -for /L %%n in (1,0,10) do ( - C:\Python36\python.exe https.py -) - - -HOWTO = Add A Button -===================== -All the buttons are created in SettingsGUI.js @ line 410 - with a function createSetting(): -This function takes 7 parameters and can make about 6 types of buttons: (boolean, value, valueNegative, dropdown, infoclick, multitoggle). The visual style will match similar. First determine the type of button, then copy a similar button. This explains the parameters: -function createSetting(id, name, description, type, defaultValue, list, container) -id = settings variable name -name = text on the button -description = tooltip when hovering inside the button. -type = boolean, value, valueNegative, dropdown, infoclick, multitoggle -defaultValue = pick the most common desirable setting -list = Only for dropdowns, the list of choices in ["one", "two", "three"] form -container = IMPORTANT: this will position the button in any of the tabbable sections "Main, Gear, Maps, Settings, Scryer" etc. - - These container tabs are what we will learn next: - -HOWTO = Add a New Tab (to the settings area.) -============================================= -All the tabs are created in SettingsGUI.js @ line 143 - the function is: initializeAllTabs(): -Inside there, follow the existing pattern and create a new line in the form of: - createTabs("Tab Name", "Tab Sub Heading"); - -Then you can use this new "Tab Name" as the container variable when you createSetting() and the button will go in there. - -HOWTO = Add a New Script Module -=============================== -AutoTrimps2.js is the module loader. Line 32: -var ATmodules = ['query', 'import-export', 'upgrades', 'heirlooms', 'buildings', 'jobs', 'equipment', 'gather', 'stance', 'battlecalc', 'maps', 'breedtimer', 'dynprestige', 'fight', 'scryer', 'magmite', 'portal', 'other', 'client-server', 'perks']; -They refer to .js files of the same name in the "modules" directory. -All you have to do is create a new file in modules/ named something.js and add ,'something' to the end of that list. -The script will then load it on startup, so it either has to run itself self-sufficiently, or you need to use ATs userscripts functionality to run it, something like this: -function userscripts() -{ - runModuleWhatever.FunctionFromThatModuleFile(); -} -Any function named userscripts will execute 10 times per second at the final portion of each game cycle. -This way means you can add your own code without contaminating AutoTrimps files directly. -Some Files contain/require game-code overwrites that need to be periodically checked and maintained. These are undocumented. Some are for the GUI and some are in utils.js maybe some for the heirlooms, and also graph loot... \ No newline at end of file From bfb72c22cdc5a28507475d288def7535e7951639 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 3 Jun 2018 19:38:04 +0100 Subject: [PATCH 279/365] Delete dailymodifiers.txt --- docs/dailymodifiers.txt | 94 ----------------------------------------- 1 file changed, 94 deletions(-) delete mode 100644 docs/dailymodifiers.txt diff --git a/docs/dailymodifiers.txt b/docs/dailymodifiers.txt deleted file mode 100644 index 951395309..000000000 --- a/docs/dailymodifiers.txt +++ /dev/null @@ -1,94 +0,0 @@ -badHealth = enemy, health -badMapHealth = enemy, health -badMapStrength = enemy, attack -badStrength = enemy, attack -bloodthirst = enemy, stacks -bogged = self, health, drain -crits = enemy, crit -dedication = gathering -dysfunctional = breeding -evenTrimpBuff = self,+attack -explosive = enemy, attack, drainy -famine = gathering, loot -karma = loot, stacks -large = housing -maxDamage = self,attack -minDamage = self,attack -oddTrimpNerf = self,-attack -plague = -health, stacks -rampage = self, +attack, stacks -slippery= dodge -toxic = breeding, stacks -weakness= self, -attack, stacks - -Main.js @ line 5455 -var dailyModifiers = -{ - minDamage: { - description : "Trimp min damage reduced by X % (additive)." - }, - maxDamage: { - description : "Trimp max damage increased by X % (additive)." - }, - plague: { - //Half of electricity - description : "Enemies stack a debuff with each attack, damaging Trimps for X% of total health per turn per stack, resets on Trimp death." - }, - weakness: { - description : "Enemies stack a debuff with each attack, reducing Trimp attack by X% per stack. Stacks cap at 9 and reset on Trimp death." - }, - large: { - description : "All housing can store X% fewer Trimps" - }, - dedication: { - description : "Gain X% more resources from gathering" - }, - famine: { - description : "Gain X% less Metal, Food, Wood, and Gems from all sources" - }, - badStrength: { - description : "Enemy attack increased by X%." - }, - badHealth: { - description : "Enemy health increased by X%." - }, - badMapStrength: { - description : "Enemy attack in maps increased by X%." - }, - badMapHealth: { - description : "Enemy health in maps increased by X%." - }, - crits: { - description : "Enemies have a 25% chance to crit for X% of normal damage" - }, - bogged: { - description : "Your Trimps lose X% of their max health after each attack." - }, - dysfunctional: { - description : "Your Trimps breed X% slower" - }, - oddTrimpNerf: { - description : "Trimps have X% less attack on odd numbered zones" - }, - evenTrimpBuff: { - description : "Trimps have X% more attack on even numbered zones" - }, - karma: { - description : 'Gain a stack after killing an enemy, increasing all non Helium loot by X%. Stacks cap at Y, and reset after clearing a zone.' - }, - toxic: { - description : "Gain a stack after killing an enemy, reducing breed speed by X% (compounding). Stacks cap at Y, and reset after clearing a zone." - }, - bloodthirst: { - description : "Enemies gain a stack of Bloodthirst whenever Trimps die.Every X stacks, enemies will heal to full and gain an additive 50 % attack.Stacks cap at Y, and reset after killing an enemy." - }, - explosive: { - description : " Enemies instantly deal % of their attack damage when killed if (str > 15) UNLESS your block is as high as your maximum health " - }, - slippery: { - description : " Enemies have a % chance to dodge your attacks on odd ? / ?even zones." - }, - rampage: { - description : "Gain a stack after killing an enemy, increasing Trimp attack by % (additive). Stacks cap at ? , and reset when your Trimps die." - }, -} From 5f9b2353960156494357bccc2b9c8f6d29f10248 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 3 Jun 2018 19:38:11 +0100 Subject: [PATCH 280/365] Delete TODO.md --- docs/TODO.md | 136 --------------------------------------------------- 1 file changed, 136 deletions(-) delete mode 100644 docs/TODO.md diff --git a/docs/TODO.md b/docs/TODO.md deleted file mode 100644 index 7bd8d4d26..000000000 --- a/docs/TODO.md +++ /dev/null @@ -1,136 +0,0 @@ -Document Code Structure: (for other developers): see main-doc.txt ----------------- -Main-Documentation (main-doc.txt) -TODO List (this file - TODO.md) -Update README.md/changelog(.json?)/version # (manually for now) -Code Comments (getting better) - -Near Future: ------------------------- -WebSite https://autotrimps.site - even just a link to github, or link to tutorials on how to install. --GRAPHS! -TODO 1: Add notes or labels to graph runs. (to indicate which settings we used) -TODO 1: HighCharts annotations module for "notes" comments to indicate which graph runs were what. -TODO: IMPLEMENTING A STANDARD FOR CLOUD GRAPH STATISTICS: - -now : Highest zone, helium, bones, Perk preset/ratios. - -next: ATSettings, MODULES, which graphs were clicked on. - - -new TODO LIST: 3/3/2018 and 3/4/2018 extended to 3/7 still working on it as of 3/20. -------------------------------------- -XXXX: AutoPerks - background thread / web worker -XXXX: AutoPerks - allocate speed improvement, shortcuts, (36 million iterations and 15 seconds @ 720Qa HE) - - maybe slow due to OO structure and repeated resolutions for pass2. -TODO: Perky - implement Altizar Perky new Perk manager interface -TODO: SPAM tab - more granular settings. maybe every module could have its own toggle? - working on it. -TODO: "Map Special Modifier": Special Modifiers, Perfect Sliders (way more fragments), Extra Zones (+0 to +10) - with a save config option - if you create a config with FA and +5 zones, and save it, next time you/the script creates a map, it will remember the setting - so if you want you can use the script to create 3 setups (there are 3 slots to save your config) - + maps should be only created at poison zones and when they will provide new equipment - prestigious when you need prestiges, lmc when you need more lvls in your eq - perfect sliders when you can afford it - make perfect sliders like if you're able to afford 3x the cost of it in frags, just buy it. otherwise no. and it will be rarer that way but still useful - another valid idea is burn out all your frags on perfect near the end i guess -TODO: (from old TODO LIST: 8/17/2016) BionicW toggle that can let AT do Bionic Wonderland maps if they haven't ever been done before? - (in the same vein, check for "Speed" achievements for unique maps and do them if they're not done yet and possible) -TODO: for alfa166: "Bionic OverBurner" :smiley: Make it Configurable to run BW 470 one time at z480 to unlock and run BW485, (with the +5 map kit) -TODO: Make a more configurable Auto Spend Nulli function for 2018 -TODO: Should invent a tool/script to plug in the version numbers, changelogs, docs. -TODO: Instead of hard-coded changelog, Break changelog out into a seperate file and HTTPRequest it, parse it and run it through a standardized display function. - Pull external .JSON Changelog and stuff from this site's API (obviously have to create a new server endpoint PHP script) -TODO: Modular Structured load of the modules/*.js files is less than robust now. Check status of each loaded, tally a count, double check success. - -FAR: In this way, the tracking and loading of modules can be timestamped and version controlled for itemization and aggregate cloud managed. -FAR TODO: Cloud management of Save Files (already uploading save files and naming them. just need to download) -FAR TODO: Cloud distributed graphs. Show similar users graphs? (STARTED) - -Could just upload all the graphs after every run (how to detect full run?) -FAR TODO: Theoretically the graphs database can be used as a pro-active future prediction model and conditions can be inferred from past runs. - Example: If Helium per/hour is ABOUT to go down based on previous cached runs (during the ambiguity period of about a few zones), portal earlier. - Think like Grace %% setting but automatic. -FAR TODO: Analysis of the Userbase and custom settings, even make queries to ask server for better decision making based on global multi-client probability state -TODO: Develop an internal utility for me to Scrape/Grep/Grok the .json analytics files already on the server. -FAR TODO: Import/Export/Append Graphs. is delete working on refresh? -FAR TODO: Graphs encoding vs. storage is wasteful of space. We need more. Compress data or RLE it -TODO: Structure of Graphs.js is very wonky and can be re-sorted, nested somehow. -TODO: GUI javascript warning message "Are you sure?" OK/cancel template. -TODO: Bundle a newbie profile into the profiles-defaults. -TODO: Keep generating content in this file very late at night, that nobody can see or care about - real smart use of my time. - - -Bugs To Fix: ----------------- -Last github pull request is from 2016 = needs to be cleared. Has useful code that could be imported into Settings file for version comparisons and settings migrations/in-place upgrades. -All Issues from January to February have been resolved. -Any Issues remaining from prior 2017 should be disregarded. -BUG 1: Bone Portal messes with graphs / Importing a savedgame in progress produces bad graphs -BUG 2: The graphs still can miss time and have gaps/skips and has zone innacuracies, additionally it can fail to track Trimps data entirely during background window Javascript AFK/idle/catchup mode. -BUG 2: Overkill and certain graphs can skip progress and get mis-aligned if the script was paused or was backgrounded. - - -Done Did: ----------- -Done: Visible Version Status Number in UI / Startup popup messages -Done: Essence graph -Done: Renamed Module names: Some stuff is named auto, some stuff isnt. Its AutoTrimps so isn't everything auto? Redundant? -Done: Renamed NewUI2.js as SettingsGUI - needs new name, some love. -Done: Add autotrimps.site data json upload capability (thanks to Swiffy) -Done: BUG 1: Liquification - the Auto-Skip-tons-of-zones-in-beginning - causes overkill graph to be off by a LOT. -Not actually a thing: "Max Magmamancers By Zone #" so we can buy them at the start, to gain 5% attack for the first 10 minutes, usually for cases when the void zone which is the same as the portal zone, and you want to stack that level up with all you've got. - -5% Attack is only given after 5 minutes. Misunderstanding. -Done: AutoTrimps Presets dropdown list to name, save, reload different profiles -Done: Partially: Split SettingsGUI.js up into front-end DOM+GUI, back-end functions for Settings/Modules/Profiles, and createSettings+descriptions. -Done: Fluffy XP Graph -Done: Pin the ATSettings Tab MenuBar + Minimize,Maximize,Close buttons. -Done: TODO: Graphs, make 2 arrows to cycle sequentially through the graphs without using the dropdown everytime. -Done: TODO: Put changelog show/hide popup Button into settings -Done: PrintChangelog: print changelog function should be refactored: another function should be made to create a DOM element for all the changelog lines, scrape the API data into it, and then print tooltip with header/footer. - -Other Improvements: ------------------- -AUTOMAPS: -Rewrite the automaps way of deciding/picking/buying/running maps. (convo below) ---------------------------------------------------------------------------------- --: Decide whether map stacks can help speed you up or not: -If you're more limited by you being dead and your lack of health, than damage output, its probably more likely to not be worth it. -also if you don't have the overkill perk increasing damage can get inefficient when damage output is wasted -so keeping a good "survivability to damage output" ratio is better than optimizing "damage output" -keep a count of how long you were dead and how long you were doing damage -if you're never dead, then the damage boost from map stacks is USUALLY worth it. (cant say for sure but im pretty sure) -I still think you'd have to run 1 full map to know for sure if its worth it. then extrapolate that out times 10 --: Summary: -never dead -> damage boost helps when not "early game when you're ripping through bad guys" -almost never alive, frequently dead -> if more damage output than damage taken (and enough hp to react to fast guys), go on, otherwise farm -occasionally dead and dies faster than breeding -> needs more damage -occasionally dead and dies slower than breeding -> advance -Also while doing this, determine more refined rules for entering the 3 modes: want dmg/want health/farming - --:230+ regular maps should really be treated differently from corruption -they don't have block pierce, and no special abilities --it doesnt go into the map bonus mode soon enough because of the fact that its gauging the zone on non-corrupted enemies - //we will get at least 85 toxstacks from the 1st voidmap UNLESS we have overkill, then we dont get enough. - //if a new fight group is available and anticipation stacks aren't 30, abandon and grab a new group - - -VOIDMAPS: -Void Map Farming - based on how much damage you do rather than your health/survival ---------------------------------------------------------------------------------- --:Voidmaps: - //TODO: Account for magmated voidmaps. (not /2) - //TODO: Account for daily. --:On Voids Diff: -if you have enough HP to survive poisonous without genetecists, i guess its easy -poison is really bad before you get geneticists for example -before you have geneticists poisonous is just awful -if you block everything, heinous is awful -if you almost block everything, destructive is awful -and then the double hit is somewhere in the middle -yeah i think they shift a lot depending on how strong you are -if you're strong enough that doing voids at 190 is a joke but can't do them later after you finish corrupted for example -for me right now I usually block close to 100% of the damage, which is why destruction and heinous are worst -poison is completely trivial when the maps are already easy -destruction = % damage, heinous = crit -if you're trying to do the void maps before you're actually strong though poison is a killer -yea thats a good point, people doing them at the challenge boundary vs at the end of their run -I also thing the difficulty check should consider block, if it doesn't already do that -i always found poison to be the most obnoxious of them early on because when you don't even have geneticists to fire to make breeding faster again it just takes sooo long -for a large part of the game I only did VMs when I could completely block everything, which made them trivial From 559ee4d83f0e6507c6e49c7dc9ea4a81c0679933 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 3 Jun 2018 19:38:16 +0100 Subject: [PATCH 281/365] Delete SettingsTooltipDocumentation.txt --- docs/SettingsTooltipDocumentation.txt | 71 --------------------------- 1 file changed, 71 deletions(-) delete mode 100644 docs/SettingsTooltipDocumentation.txt diff --git a/docs/SettingsTooltipDocumentation.txt b/docs/SettingsTooltipDocumentation.txt deleted file mode 100644 index 289452cc1..000000000 --- a/docs/SettingsTooltipDocumentation.txt +++ /dev/null @@ -1,71 +0,0 @@ -Auto Gather/Build - Automatically gathers resources (and uses Turkimp on metal). Auto speed-builds your build queue and auto-researches science on demand. -Better Auto Fight - Will automatically handle fighting. It gives you autofight before you get the Battle upgrade in Zone 1.. .CAUTION: If you autoportal with BetterAutoFight disabled, the game sits there doing nothing until you click FIGHT. (not good for afk) -Auto Stance - Automatically swap stances to avoid death. -Trap Trimps - Automatically trap trimps when needed, including building traps. -Buy Storage - Will buy storage when resource is almost full. (like AutoStorage, even anticipates Jestimp) -Buy Jobs - Buys jobs based on ratios configured below. CAUTION: you cannot manually assign jobs with this. Toggle if you need to. -Buy Buildings - Will buy non storage buildings as soon as they are available -Buy Upgrades - Autobuy non equipment Upgrades -Buy Armor - Auto-Buy/Level-Up the most cost efficient armor available. -Buy Armor Upgrades - (Prestiges) & Gymystic. Will buy the most efficient armor upgrade available. -Buy Weapons - Auto-Buy/Level-Up the most cost efficient weapon available. -Buy Weapon Upgrades - (Prestiges) Will buy the most efficient weapon upgrade available. -Buy Shield Block - Will buy the shield block upgrade. CAUTION: If you are progressing past zone 60, you probably don't want this :) -Run Unique Maps - Relies on AutoMaps to choose to run Unique maps. Required for AutoPortal. Also needed for challenges: Electricity, Mapocalypse, Meditate, and Crushed (etc). Needed to auto-run The Wall and Dimension of Anger. -Auto Heirlooms - Automatically evaluate and carry the best heirlooms, and recommend upgrades for equipped items. AutoHeirlooms will only change carried items when the heirlooms window is not open. Carried items will be compared and swapped with the types that are already carried. If a carry spot is empty, it will be filled with the best shield (if available). Evaluation is based ONLY on the following mods (listed in order of priority, high to low): Void Map Drop Chance/Trimp Attack, Crit Chance/Crit Damage, Miner Efficiency/Metal Drop, Gem Drop/Dragimp Efficiency, Farmer/Lumberjack Efficiency. For the purposes of carrying, rarity trumps all of the stat evaluations. Empty mod slots are valued at the average value of the best missing mod. -Hire Scientists - Enable or disable hiring of scientists. Math: ScientistRatio=(FarmerRatio+LumberjackRatio+MinerRatio)/25 and stops hiring scientists after 250k Farmers. -Manage Breed Timer - Automatically manage the breed timer by purchasing Genetecists. Sets ideal anticpation stacks. If not using AutoStance, this will probably be undesirable... Picks appropriate times for various challenges (3.5s,11s,30s). Delays purchasing potency and nurseries if trying to raise the timer. EFFECTIVELY LOCKS THE BREED TIMER -Geneticist Timer - Breed time in seconds to shoot for using geneticists. Disable with -1 (and Disable ManageBreedTimer) to disable the Hiring/Firing of genetecists (and potency upgrades). CANNOT CHANGE WITH MANAGE BREED TIMER OPTION ON -Farmer Ratio - -Lumberjack Ratio - -Miner Ratio - -Max Explorers - Map the planet!! -Max Trainers - Fist bump me bro -Max Huts - -Max Houses - -Max Mansions - -Max Hotels - -Max Resorts - -Max Gateways - WARNING: Not recommended to raise above 25 -Max Wormholes - WARNING: Wormholes cost helium! Values below 0 do nothing. -Max Collectors - -First Gigastation - How many warpstations to buy before your first gigastation -Delta Gigastation - How many extra warpstations to buy for each gigastation. Supports fractional values. For example 2.5 will buy +2/+3/+2/+3... -Max Gyms - -Max Tributes - -Max Nurseries - -Void Maps - The zone at which you want all your void maps to be cleared (Cell 96). 0 is off -Prestige - Acquire prestiges through the selected item (inclusive) as soon as they are available in maps. Forces equip first mode. Automap must be enabled. THIS IS AN IMPORTANT SETTING related to speed climbing and should probably always be on something. If you find the script getting stuck somewhere, particularly where you should easily be able to kill stuff, setting this to an option lower down in the list will help ensure you are more powerful at all times, but will spend more time acquiring the prestiges in maps. -Auto Portal - Automatically portal. Will NOT auto-portal if you have a challenge active, the challenge setting dictates which challenge it will select for the next run. All challenge settings will portal right after the challenge ends, regardless. Helium Per Hour portals at cell 1 of the first level where your He/Hr went down even slightly compared to the current runs Best He/Hr. Take note, there is a Buffer option in the genBTC settings, which is like a grace percentage of how low it can dip without triggering. CAUTION: Selecting He/hr may immediately portal you if its lower. -Challenge for Helium per Hour and Custom - Automatically portal into this challenge when using helium per hour or custom autoportal. Custom portals after cell 100 of the zone specified. -Custom Portal - Automatically portal AFTER clearing this level.(ie: setting to 200 would portal when you first reach level 201) -Limit Equipment - Limit levels of equipment bought to:(level 11 - the prestige level). At or Above Prestige X (10), your equipment will remain at level 1. In other words, do not level equipment after ~level ~51, and only buy Prestiges. CAUTION: may reduce He/hr performance in many cases. -Breed Fire - Fire Lumberjacks and Miners to speed up breeding when needed. (Not genetecists). -Max Toxicity Stacks - Get maximum toxicity stacks before killing the improbability in each zone 60 and above. Generally only recommended for 1 run to maximize bone portal value. This setting will revert to disabled after a successful Max-Tox run + Toxicity Autoportal. -Run New Voids - Run new void maps acquired after the set void map zone. Runs them at Cell 95 by default, unless you set a decimal value indicating the cell, like: 187.75 CAUTION: May severely slow you down by trying to do too-high level voidmaps. Use the adjacent RunNewVoidsUntil setting to limit this. -Void Difficulty Check - How many hits to be able to take from a void map boss in dominance stance before we attempt the map. Higher values will get you stronger (by farming for health) before attempting. 2 should be fine. -Disable Farming - Disables the farming section of the automaps algorithm. This will cause it to always return to the zone upon reaching 10 map stacks. TROUBLESHOOTING: Save and Refresh when you toggle this, if necessary. INFO: The new Trimps 3.22 map-buttons greatly eliminate the usefulness of this. ALSO: NO LONGER DISABLES SIPHONOLOGY. -PauseAutoTrimps - PauseAutoTrimps(notincludingthegraphsmodule) -Warpstation Cap - Do not level Warpstations past Basewarp+DeltaGiga **. Without this, if a Giga wasnt available, it would level infinitely (wastes metal better spent on prestiges instead.) **The script bypasses this cap each time a new giga is bought, when it insta-buys as many as it can afford (since AT keeps available metal/gems to a low, overbuying beyond the cap to what is affordable at that first moment is not a bad thing). -Cap Equip to 10 - Do not level equipment past 10. Similar to LimitEquipment, Helps for early game when the script wants to level your tier2s to 40+, but unlike LimitEquipment, does not impact Zone 60+. -Skip Gear Level 58&59 - Dont Buy Gear during level 58 and 59, wait till level 60, when cost drops down to 10%. -Delay Armor - Delay buying armor prestige upgrades during Want More Damage or Farming automap-modes. -Dynamic Siphonology - Use the right level of siphonology based on your damage output. -Farm on >7 NomStacks - On Improbability(cell 100). Meant to be used with DisableFarming (otherwise farming would take care of this, but its slower). If Improbability already has 5 NomStacks, stack 30 Anticipation. If the Improbability has >7 NomStacks on it, get +200% dmg from MapBonus. If we still cant kill it, enter Farming mode at 30 stacks, Even with DisableFarming On! (exits when we get under 20x) -AutoRoboTrimp - Use RoboTrimps ability starting at this level, and every 5 levels thereafter. (set to 0 to disable) -He/Hr Portal Buffer % - When using the He/Hr Autoportal, it will portal if your He/Hr drops by this amount of % lower than your best for current run, default is 0% (ie: set to 5 to portal at 95% of your best) -Run New Voids Until - Put a cap on what zone new voids will run at, until this zone, inclusive. -Always Buy Lvl 2 Armor - Always Buy the 2nd point of Armor even if we dont need the HP. Its the most cost effective level, and the HP _need_ script isnt always adequate. -Dynamic Prestige - EXPERIMENTAL: Skip getting prestiges at first, and Gradually work up to the desired Prestige setting you have set. Runs with Dagger to save a significant amount of time until we need better gear, then starts increasing the prestige setting near the end of the run. ---NEW ALGORITHM 7/23/2016--- Examines which prestiges you have, how many missing ones youd need to achieve the desired target and starts running 5 maps or 2 maps every zone, Until the target prestige is reached. Example: For mace, starts getting the prerequisite prestiges 10 zones away from max, then more and more, finally reaching the desired prestige by the last final zone (also goes for 9 mapbonus on the last zone). IMPORTANT NOTE PLEASE READ: Final Zone Number is inherently tied to the AutoPortal setting. When using the Helium per Hour setting, it uses the zone we portaled at last run (game.global.lastPortal). If the AutoPortal is set to a challenge, it will use the last zone of the challenge. CAUTION: EXPERIMENTAL, please come to Discord chat if you have problems. -undefined - undefined -Run Bionic Before Spire - Run the Bionic Wonderlands I through VI and then repeatedly farms VI(level 200) before attempting Spire, for the purpose of farming. WARNING: The point at which it stops farming has yet to be fully decided upon or set in stone, so it currently runs Bionic VI until it runs out of new prestige item rewards, then runs Bionic VII until it runs out of prestige items from that one, and then attempts the spire. This amounts to somewhere around 144 minutes. DO NOT USE WITH HE/HR PORTAL. Not meant to be used every time, He/Hr suffers. -Cap Trainers to a % of Tributes - Only Buy a Trainer when its cost is LESS than X% of cost of a tribute. This setting can work in combination with the other one, or set the other one to -1 and this will take full control. Default: -1 (Disabled). 50% is close to the point where the cap does nothing. You can go as low as you want but recommended is 10% to 1%. (example: Trainer cost of 5001, Tribute cost of 100000, @ 5%, it would NOT buy the trainer.) -PrestigeBackup - Acquire prestiges through the selected item (inclusive) as soon as they are available in maps. Forces equip first mode. Automap must be enabled. THIS IS AN IMPORTANT SETTING related to speed climbing and should probably always be on something. If you find the script getting stuck somewhere, particularly where you should easily be able to kill stuff, setting this to an option lower down in the list will help ensure you are more powerful at all times, but will spend more time acquiring the prestiges in maps. -Auto Heirlooms2 - New algorithm for Heirlooms. While enabled, the old AutoHeirlooms algorithm will be disabled (the button will stay lit or you can turn that one off). CAUTION: Turning this on will immediately re-sort your heirlooms according to the new algorithm, and turning it off again DOES revert to the original algorithm even though it may NOT have a visible result on your heirlooms. (fyi: This lack of action highlights one of the problems with the old one.) -AutoGoldenUpgrades - Automatically Buy the specified Golden Upgrades as they become available. -Auto Upgrade Heirlooms - Automatically buy the upgrade the script advises for the Equipped shield and staff, until we are out of nullifium. -Minutes to Farm Before Spire - Farm level 200 maps for X minutes before continuing to beat spire (0 to disable) -Auto Maps - Automatically run maps to progress. Very Important. -Auto Worker Ratios - Automatically changes worker ratios based on current progress. WARNING: overrides worker ratio settings. Settings: 1/1/1 up to 300k trimps, 3/3/5 up to 3mil trimps, then 3/1/4 above 3 mil trimps, then 1/1/10 above 1000 tributes, then 1/2/22 above 1500 tributes. Uses 1/40/8 in Spire since we get plenty of metal from that. -Warpstation Wall - Do not level Warpstations if it costs over 1/4th of the current metal we own. (Experimental) -Exit Spire After Cell - Exits the Spire after completing cell X. example: 40 for Row 4. (0 to disable) \ No newline at end of file From 6be8a305f99ff1648b8155e426e0b49b307eba98 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 3 Jun 2018 19:38:20 +0100 Subject: [PATCH 282/365] Delete AutoPerks EfficiencyQueue.txt --- docs/AutoPerks EfficiencyQueue.txt | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 docs/AutoPerks EfficiencyQueue.txt diff --git a/docs/AutoPerks EfficiencyQueue.txt b/docs/AutoPerks EfficiencyQueue.txt deleted file mode 100644 index 9a0337c6a..000000000 --- a/docs/AutoPerks EfficiencyQueue.txt +++ /dev/null @@ -1,29 +0,0 @@ -How AutoPerks Works: ----------------------- -Get list of Ratio'ed Perks. -Create an Efficiency queue of each of the 16 perks. - - Current Level - - Current Price @ that level - - Current Stat Increase @ that Level. - - Current Efficiency (price / stat increase). -Then the list of 16 perks is sorted by Efficiency, and the 1st one on the list is purchased. -Repeat ad nauseum 36 million iterations. - -for (var e in effQueue.array) { console.log("Effiency@ " + effQueue.array[e].efficiency + " Perk name: " + effQueue.array[e].name);} - -Effiency@ 30.00000000000003 Perk name: power -Effiency@ 4.0000000000000036 Perk name: toughness -Effiency@ 3.200000000000003e-9 Perk name: cunning -Effiency@ 1.3333333333333346 Perk name: pheromones -Effiency@ 1.0000000000000009 Perk name: motivation -Effiency@ 0.36 Perk name: carpentry -Effiency@ 0.13333333333333333 Perk name: artisanistry -Effiency@ 0.08 Perk name: resilience -Effiency@ 0.00030000000000000024 Perk name: power_II -Effiency@ 0.00014999999999999682 Perk name: looting_II -Effiency@ 0.00011333333333333333 Perk name: coordinated -Effiency@ 0.00004000000000000004 Perk name: toughness_II -Effiency@ 0.000008000000000000006 Perk name: motivation_II -Effiency@ 0.000002249999999999952 Perk name: carpentry_II -Effiency@ 0.000002 Perk name: resourceful -Effiency@ 0.000001 Perk name: overkill \ No newline at end of file From 33d5008b0813a0550b29923b97a1bc94cd873a4f Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 4 Jun 2018 21:42:50 +0100 Subject: [PATCH 283/365] Update heirlooms.js --- modules/heirlooms.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/heirlooms.js b/modules/heirlooms.js index 7bb29cb3b..6baca205f 100644 --- a/modules/heirlooms.js +++ b/modules/heirlooms.js @@ -328,7 +328,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { break; case 'plaguebringer': - tempEff = loom.mods[m][1]/100; + tempEff = loom.mods[m][1]/10; eff += tempEff; if(upgrade){ steps = game.heirlooms.Shield.plaguebringer.steps[loom.rarity]; From eee2a40abf90f1efc3e1d3c69c1d19f8483e5515 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 4 Jun 2018 21:45:48 +0100 Subject: [PATCH 284/365] Update heirlooms.js --- modules/heirlooms.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/heirlooms.js b/modules/heirlooms.js index 6baca205f..fcaa70f0c 100644 --- a/modules/heirlooms.js +++ b/modules/heirlooms.js @@ -328,7 +328,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { break; case 'plaguebringer': - tempEff = loom.mods[m][1]/10; + tempEff = loom.mods[m][1]/1; eff += tempEff; if(upgrade){ steps = game.heirlooms.Shield.plaguebringer.steps[loom.rarity]; @@ -426,7 +426,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { } } case 'FluffyExp': - tempEff = 0.5*loom.mods[m][1]/100; + tempEff = 0.5*loom.mods[m][1]/1; eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; @@ -447,13 +447,13 @@ function evaluateHeirloomMods(loom, location, upgrade) { if(!checkForMod('trimpAttack', index, location)){ steps = game.heirlooms[loom.type].trimpAttack.steps[loom.rarity]; av = steps[0] + ((steps[1] - steps[0])/2); - tempEff = av/100; + tempEff = av/10; eff += tempEff; } else if(!checkForMod('voidMaps', index, location)){ steps = game.heirlooms[loom.type].voidMaps.steps[loom.rarity]; av = steps[0] + ((steps[1] - steps[0])/2); - tempEff = (steps[2]/100); + tempEff = (steps[2]/10); eff += tempEff; } else if(!checkForMod('critChance', index, location)){ @@ -471,7 +471,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { else if(!checkForMod('plaguebringer', index, location)){ steps = game.heirlooms[loom.type].plaguebringer.steps[loom.rarity]; av = steps[0] + ((steps[1] - steps[0])/2); - tempEff = av/100; + tempEff = av/1; eff += tempEff; } } @@ -479,7 +479,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; av = steps[0] + ((steps[1] - steps[0])/2); if(!checkForMod('MinerSpeed', index, location) || !checkForMod('metalDrop', index, location) || !checkForMod('fragmentsDrop', index, location) || !checkForMod('ExplorerSpeed', index, location) || !checkForMod('FluffyExp', index, location)){ - eff += 0.75*av/100; + eff += 0.75*av/10; } else if(!checkForMod('FarmerSpeed', index, location) || !checkForMod('LumberjackSpeed', index, location)) { eff += 0.5*av/100; From c0aff5a1e68bb7aeb8998d4533d8961e65652d94 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 4 Jun 2018 21:48:18 +0100 Subject: [PATCH 285/365] Update heirlooms.js --- modules/heirlooms.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/heirlooms.js b/modules/heirlooms.js index fcaa70f0c..d95be4928 100644 --- a/modules/heirlooms.js +++ b/modules/heirlooms.js @@ -328,7 +328,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { break; case 'plaguebringer': - tempEff = loom.mods[m][1]/1; + tempEff = loom.mods[m][1]*100; eff += tempEff; if(upgrade){ steps = game.heirlooms.Shield.plaguebringer.steps[loom.rarity]; @@ -371,7 +371,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { } break; case 'DragimpSpeed': - tempEff = 0.75*loom.mods[m][1]/100; + tempEff = 0.75*loom.mods[m][1]/10000; eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; @@ -385,7 +385,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { } break; case 'gemsDrop': - tempEff = 0.75*loom.mods[m][1]/100; + tempEff = 0.75*loom.mods[m][1]/10000; eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; @@ -399,7 +399,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { } break; case 'FarmerSpeed': - tempEff = 0.5*loom.mods[m][1]/100; + tempEff = 0.5*loom.mods[m][1]/10000; eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; @@ -413,7 +413,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { } break; case 'LumberjackSpeed': - tempEff = 0.5*loom.mods[m][1]/100; + tempEff = 0.5*loom.mods[m][1]/10000; eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; @@ -426,7 +426,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { } } case 'FluffyExp': - tempEff = 0.5*loom.mods[m][1]/1; + tempEff = 0.5*loom.mods[m][1]*100; eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; From 5b5f1b6ebf0fffa255b7767b82b5c2825b2b698c Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 4 Jun 2018 21:53:08 +0100 Subject: [PATCH 286/365] Update heirlooms.js --- modules/heirlooms.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/heirlooms.js b/modules/heirlooms.js index d95be4928..90e44c22e 100644 --- a/modules/heirlooms.js +++ b/modules/heirlooms.js @@ -328,11 +328,11 @@ function evaluateHeirloomMods(loom, location, upgrade) { break; case 'plaguebringer': - tempEff = loom.mods[m][1]*100; + tempEff = loom.mods[m][1]*1000000; eff += tempEff; if(upgrade){ steps = game.heirlooms.Shield.plaguebringer.steps[loom.rarity]; - tempEff = (steps[2]/100)/((game.heirlooms.Shield.plaguebringer.currentBonus/100) + 1); + tempEff = (steps[2]/10)/((game.heirlooms.Shield.plaguebringer.currentBonus/100) + 1); tempEff = tempEff / getModUpgradeCost(loom, m); if(tempEff > bestUpgrade.effect) { bestUpgrade.effect = tempEff; @@ -375,7 +375,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; - tempEff = (0.75*steps[2]/100)/((game.heirlooms.Staff.DragimpSpeed.currentBonus/100) + 1); + tempEff = (0.75*steps[2]/10000)/((game.heirlooms.Staff.DragimpSpeed.currentBonus/100) + 1); tempEff = tempEff / getModUpgradeCost(loom, m); if(tempEff > bestUpgrade.effect) { bestUpgrade.effect = tempEff; @@ -389,7 +389,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; - tempEff = (0.75*steps[2]/100)/((game.heirlooms.Staff.gemsDrop.currentBonus/100) + 1); + tempEff = (0.75*steps[2]/10000)/((game.heirlooms.Staff.gemsDrop.currentBonus/100) + 1); tempEff = tempEff / getModUpgradeCost(loom, m); if(tempEff > bestUpgrade.effect) { bestUpgrade.effect = tempEff; @@ -403,7 +403,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; - tempEff = (0.5*steps[2]/100)/((game.heirlooms.Staff.FarmerSpeed.currentBonus/100) + 1); + tempEff = (0.5*steps[2]/10000)/((game.heirlooms.Staff.FarmerSpeed.currentBonus/100) + 1); tempEff = tempEff / getModUpgradeCost(loom, m); if(tempEff > bestUpgrade.effect) { bestUpgrade.effect = tempEff; @@ -417,7 +417,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; - tempEff = (0.5*steps[2]/100)/((game.heirlooms.Staff.LumberjackSpeed.currentBonus/100) + 1); + tempEff = (0.5*steps[2]/10000)/((game.heirlooms.Staff.LumberjackSpeed.currentBonus/100) + 1); tempEff = tempEff / getModUpgradeCost(loom, m); if(tempEff > bestUpgrade.effect) { bestUpgrade.effect = tempEff; @@ -426,11 +426,11 @@ function evaluateHeirloomMods(loom, location, upgrade) { } } case 'FluffyExp': - tempEff = 0.5*loom.mods[m][1]*100; + tempEff = 0.5*loom.mods[m][1]*100000; eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; - tempEff = (0.5*steps[2]/100)/((game.heirlooms.Staff.FluffyExp.currentBonus/100) + 1); + tempEff = (0.5*steps[2]/10)/((game.heirlooms.Staff.FluffyExp.currentBonus/100) + 1); tempEff = tempEff / getModUpgradeCost(loom, m); if(tempEff > bestUpgrade.effect) { bestUpgrade.effect = tempEff; From 42848026b670495c98723f2d23c911cae5061662 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 4 Jun 2018 21:55:42 +0100 Subject: [PATCH 287/365] Update heirlooms.js --- modules/heirlooms.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/heirlooms.js b/modules/heirlooms.js index 90e44c22e..b5dbf0cda 100644 --- a/modules/heirlooms.js +++ b/modules/heirlooms.js @@ -332,7 +332,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { eff += tempEff; if(upgrade){ steps = game.heirlooms.Shield.plaguebringer.steps[loom.rarity]; - tempEff = (steps[2]/10)/((game.heirlooms.Shield.plaguebringer.currentBonus/100) + 1); + tempEff = (steps[2]/1)/((game.heirlooms.Shield.plaguebringer.currentBonus/100) + 1); tempEff = tempEff / getModUpgradeCost(loom, m); if(tempEff > bestUpgrade.effect) { bestUpgrade.effect = tempEff; @@ -371,7 +371,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { } break; case 'DragimpSpeed': - tempEff = 0.75*loom.mods[m][1]/10000; + tempEff = 0.75*loom.mods[m][1]/1000; eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; @@ -385,7 +385,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { } break; case 'gemsDrop': - tempEff = 0.75*loom.mods[m][1]/10000; + tempEff = 0.75*loom.mods[m][1]/1000; eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; @@ -399,7 +399,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { } break; case 'FarmerSpeed': - tempEff = 0.5*loom.mods[m][1]/10000; + tempEff = 0.5*loom.mods[m][1]/1000; eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; @@ -413,7 +413,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { } break; case 'LumberjackSpeed': - tempEff = 0.5*loom.mods[m][1]/10000; + tempEff = 0.5*loom.mods[m][1]/1000; eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; @@ -430,7 +430,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; - tempEff = (0.5*steps[2]/10)/((game.heirlooms.Staff.FluffyExp.currentBonus/100) + 1); + tempEff = (0.5*steps[2]/1)/((game.heirlooms.Staff.FluffyExp.currentBonus/100) + 1); tempEff = tempEff / getModUpgradeCost(loom, m); if(tempEff > bestUpgrade.effect) { bestUpgrade.effect = tempEff; From d0a6c349f47c25b8760d47f8f2e21c92de550714 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 4 Jun 2018 21:59:15 +0100 Subject: [PATCH 288/365] Update heirlooms.js --- modules/heirlooms.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/heirlooms.js b/modules/heirlooms.js index b5dbf0cda..2276597ec 100644 --- a/modules/heirlooms.js +++ b/modules/heirlooms.js @@ -371,11 +371,11 @@ function evaluateHeirloomMods(loom, location, upgrade) { } break; case 'DragimpSpeed': - tempEff = 0.75*loom.mods[m][1]/1000; + tempEff = 0.75*loom.mods[m][1]/100; eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; - tempEff = (0.75*steps[2]/10000)/((game.heirlooms.Staff.DragimpSpeed.currentBonus/100) + 1); + tempEff = (0.75*steps[2]/100)/((game.heirlooms.Staff.DragimpSpeed.currentBonus/100) + 1); tempEff = tempEff / getModUpgradeCost(loom, m); if(tempEff > bestUpgrade.effect) { bestUpgrade.effect = tempEff; @@ -385,11 +385,11 @@ function evaluateHeirloomMods(loom, location, upgrade) { } break; case 'gemsDrop': - tempEff = 0.75*loom.mods[m][1]/1000; + tempEff = 0.75*loom.mods[m][1]/100; eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; - tempEff = (0.75*steps[2]/10000)/((game.heirlooms.Staff.gemsDrop.currentBonus/100) + 1); + tempEff = (0.75*steps[2]/100)/((game.heirlooms.Staff.gemsDrop.currentBonus/100) + 1); tempEff = tempEff / getModUpgradeCost(loom, m); if(tempEff > bestUpgrade.effect) { bestUpgrade.effect = tempEff; @@ -399,11 +399,11 @@ function evaluateHeirloomMods(loom, location, upgrade) { } break; case 'FarmerSpeed': - tempEff = 0.5*loom.mods[m][1]/1000; + tempEff = 0.5*loom.mods[m][1]/100; eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; - tempEff = (0.5*steps[2]/10000)/((game.heirlooms.Staff.FarmerSpeed.currentBonus/100) + 1); + tempEff = (0.5*steps[2]/100)/((game.heirlooms.Staff.FarmerSpeed.currentBonus/100) + 1); tempEff = tempEff / getModUpgradeCost(loom, m); if(tempEff > bestUpgrade.effect) { bestUpgrade.effect = tempEff; @@ -413,11 +413,11 @@ function evaluateHeirloomMods(loom, location, upgrade) { } break; case 'LumberjackSpeed': - tempEff = 0.5*loom.mods[m][1]/1000; + tempEff = 0.5*loom.mods[m][1]/100; eff += tempEff; if(upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; - tempEff = (0.5*steps[2]/10000)/((game.heirlooms.Staff.LumberjackSpeed.currentBonus/100) + 1); + tempEff = (0.5*steps[2]/100)/((game.heirlooms.Staff.LumberjackSpeed.currentBonus/100) + 1); tempEff = tempEff / getModUpgradeCost(loom, m); if(tempEff > bestUpgrade.effect) { bestUpgrade.effect = tempEff; @@ -479,7 +479,7 @@ function evaluateHeirloomMods(loom, location, upgrade) { steps = game.heirlooms.defaultSteps[loom.rarity]; av = steps[0] + ((steps[1] - steps[0])/2); if(!checkForMod('MinerSpeed', index, location) || !checkForMod('metalDrop', index, location) || !checkForMod('fragmentsDrop', index, location) || !checkForMod('ExplorerSpeed', index, location) || !checkForMod('FluffyExp', index, location)){ - eff += 0.75*av/10; + eff += 0.75*av/100; } else if(!checkForMod('FarmerSpeed', index, location) || !checkForMod('LumberjackSpeed', index, location)) { eff += 0.5*av/100; From 559a5d4244fd32b6099286bcba47f42e55364de9 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 4 Jun 2018 22:48:55 +0100 Subject: [PATCH 289/365] Update battlecalc.js --- modules/battlecalc.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/battlecalc.js b/modules/battlecalc.js index 2da81db9e..436b1a507 100644 --- a/modules/battlecalc.js +++ b/modules/battlecalc.js @@ -226,7 +226,7 @@ function getBattleStats(what,form,crit) { } //Amal health if (what == "health" && game.jobs.Amalgamator.owned > 0){ - var amt = game.jobs.Amalgamator.getHealthMult(); + var amt = game.jobs.Amalgamator.owned; currentCalc *= amt; } if (crit) { @@ -301,7 +301,7 @@ function calcOurDmg(number,maxormin,disableStances,disableFlucts) { //number = b number *= game.jobs.Amalgamator.getDamageMult(); } if (game.jobs.Amalgamator.owned > 0){ - number *= game.jobs.Amalgamator.getHealthMult(); + number *= game.jobs.Amalgamator.owned; } number *= (1 + (1 - game.empowerments.Ice.getCombatModifier())); From eef316cef6372b6e75a27261ddd4e6d1a51f0334 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 4 Jun 2018 22:58:11 +0100 Subject: [PATCH 290/365] Update battlecalc.js --- modules/battlecalc.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/battlecalc.js b/modules/battlecalc.js index 436b1a507..1e137313b 100644 --- a/modules/battlecalc.js +++ b/modules/battlecalc.js @@ -226,8 +226,8 @@ function getBattleStats(what,form,crit) { } //Amal health if (what == "health" && game.jobs.Amalgamator.owned > 0){ - var amt = game.jobs.Amalgamator.owned; - currentCalc *= amt; + var amt = game.jobs.Amalgamator.getHealthMult(); + currentCalc *= (1 + (amt / 100)); } if (crit) { var critChance = getPlayerCritChance(); @@ -301,7 +301,7 @@ function calcOurDmg(number,maxormin,disableStances,disableFlucts) { //number = b number *= game.jobs.Amalgamator.getDamageMult(); } if (game.jobs.Amalgamator.owned > 0){ - number *= game.jobs.Amalgamator.owned; + number *= ((game.jobs.Amalgamator.getHealthMult() / 100) + 1); } number *= (1 + (1 - game.empowerments.Ice.getCombatModifier())); From 664cbe92bda51742be87e2ac7d5251f09b1f3890 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Tue, 5 Jun 2018 09:59:45 +0100 Subject: [PATCH 291/365] Update AutoTrimps2.js --- AutoTrimps2.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index e2a2983c3..bdb51bea1 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -62,14 +62,10 @@ function initializeAutoTrimps() { var changelogList = []; //changelogList.push({date: " ", version: " ", description: "", isNew: true}); //TEMPLATE +changelogList.push({date: "05/06/2018", version: "v2.3", description: "Updated Heirloom calc, should be 4.8 ready. Ratios will be updated soon. ", isNew: true}); changelogList.push({date: "28/05/2018", version: "v2.2", description: "Added single use prestige raiding, BW raiding, looting II dump, amals are now calcd properly. ", isNew: true}); -changelogList.push({date: "4/2", version: "v2.1.6.9b", description: "Import Export, Modules Load code Improvements. Multiple Buttons/Settings Were Combined. AutoPerks code was changed but still functions the same, except for a new algorithm that reduces the time to allocate for high helium players to near-instantaneous. Please test new algo with MODULES[\"perks\"].useAlgo2=true; .You can also clear all perks then allocate and have it work now. AutoMaps no longer considered as being in Lead challenge during Chall^2. ", isNew: true}); +//changelogList.push({date: "4/2", version: "v2.1.6.9b", description: "Import Export, Modules Load code Improvements. Multiple Buttons/Settings Were Combined. AutoPerks code was changed but still functions the same, except for a new algorithm that reduces the time to allocate for high helium players to near-instantaneous. Please test new algo with MODULES[\"perks\"].useAlgo2=true; .You can also clear all perks then allocate and have it work now. AutoMaps no longer considered as being in Lead challenge during Chall^2. ", isNew: true}); //changelogList.push({date: "3/23", version: "v2.1.6.9", description: "Game's Map at Zone can be used with AT now, to run maps forever. AutoMaps setting was combined with RunUniqueMaps (variable has changed from boolean false,true to a value 0,1,2). Settings file has been migrated as such. New: Map SpecialMod is sort of working, at least. Geneticist Infinity bugfix. New AGU Settings for 60% Void (fixed). Many Graphs fixes. AutoMaps changes. Equipment Cap, see README at GitHub DarkTheme fix. Scientists Fix. Zek450 Perks Preset Changed. Ongoing Development...", isNew: false}); -//changelogList.push({date: "3/24", version: "v2.1.6.5-stable", description: "Set up Stable Repository for the faint of heart.", isNew: false}); -//changelogList.push({date: "3/22", version: "v2.1.6.8", description: "Settings GUI, make better. Import/export improved. Graph buttons: Cycle Up/Down. Internal code fixes. New Graph: Nurseries", isNew: false}); -//changelogList.push({date: "3/20", version: "v2.1.6.7", description: "Entirely Re-Arranged Settings Layout. Enjoy! New: Display Tab: EnhanceGrid + Go AFK Mode. GUI: Pinned AT Tab menu bar to top when scrolling. Minimize/Maxi/Close Buttons. ShowChangeLog Button. New Graph: FluffyXP&Xp/Hr (starts@300)", isNew: false}); -//changelogList.push({date: "3/13", version: "v2.1.6.6", description: "Geneticist management changes. Equipment code improvements. ATscriptLoad improvements. attempt to track errors.", isNew: false}); -//changelogList.push({date: "3/7", version: "v2.1.6.5", description: "Save/Reload Profiles in Import/Export. Magmamancer graph. Magmite/Magma Spam disableable.", isNew: false}); function assembleChangelog(date,version,description,isNew) { return (isNew) From df40c8f64d8e39f88ec68e49d02cd2bacc0eafd9 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Tue, 5 Jun 2018 10:03:35 +0100 Subject: [PATCH 292/365] Update other.js --- modules/other.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/other.js b/modules/other.js index 8a63af1b1..603d2b0e6 100644 --- a/modules/other.js +++ b/modules/other.js @@ -277,6 +277,7 @@ if (game.global.world==getPageSetting('lootdumpz') && !perked && getPageSetting( if (getPortalUpgradePrice("Looting_II")+game.resources.helium.totalSpentTemp <= game.resources.helium.respecMax) { buyPortalUpgrade('Looting_II'); activateClicked(); + cancelPortal(); debug('Bought ' + getPageSetting('lootdumpa') + ' Looting II'); } else { From c19149148c8c6c2360b168e1812365f2bcd3021c Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Tue, 5 Jun 2018 16:40:49 +0100 Subject: [PATCH 293/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 603d2b0e6..21fcedd51 100644 --- a/modules/other.js +++ b/modules/other.js @@ -222,7 +222,7 @@ function Praiding() { //BWrmn //BWrmx function BWraiding() { - if (game.global.world == getPageSetting('BWraidingz') && !bwraided && !failbwraid && getPageSetting('BWraid')) { + if (game.global.world == getPageSetting('BWraidingz') && !bwraided && !failbwraid && getPageSetting('BWraid') || prestraid) { if (getPageSetting('AutoMaps') == 1 && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 0; } From f9b3d7e740ea7c9818a741bb49ca339a06eaf650 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Tue, 5 Jun 2018 16:53:12 +0100 Subject: [PATCH 294/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 21fcedd51..d1deb2f72 100644 --- a/modules/other.js +++ b/modules/other.js @@ -222,7 +222,7 @@ function Praiding() { //BWrmn //BWrmx function BWraiding() { - if (game.global.world == getPageSetting('BWraidingz') && !bwraided && !failbwraid && getPageSetting('BWraid') || prestraid) { + if (game.global.world == getPageSetting('BWraidingz') && !bwraided && !failbwraid && getPageSetting('BWraid') && prestraid || !prestraid) { if (getPageSetting('AutoMaps') == 1 && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 0; } From 426d1675a3f7f6aa3589fae03920f4aa519fc3fb Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Tue, 5 Jun 2018 16:55:25 +0100 Subject: [PATCH 295/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index d1deb2f72..603d2b0e6 100644 --- a/modules/other.js +++ b/modules/other.js @@ -222,7 +222,7 @@ function Praiding() { //BWrmn //BWrmx function BWraiding() { - if (game.global.world == getPageSetting('BWraidingz') && !bwraided && !failbwraid && getPageSetting('BWraid') && prestraid || !prestraid) { + if (game.global.world == getPageSetting('BWraidingz') && !bwraided && !failbwraid && getPageSetting('BWraid')) { if (getPageSetting('AutoMaps') == 1 && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 0; } From 259a611f2ed387f3460e924157a15b7a54b63a86 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Tue, 5 Jun 2018 17:08:15 +0100 Subject: [PATCH 296/365] Update other.js --- modules/other.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index 603d2b0e6..27932bc8b 100644 --- a/modules/other.js +++ b/modules/other.js @@ -5,6 +5,7 @@ var failpraid = false; var bwraided = false; var failbwraid = false; var perked = false; +var prestraidon = false; //Activate Robo Trimp (will activate on the first zone after liquification) function autoRoboTrimp() { //exit if the cooldown is active, or we havent unlocked robotrimp. @@ -167,7 +168,8 @@ function findLastBionic() { //Praiding function Praiding() { - if (game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { + if (game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { + prestraidon = true; if (getPageSetting('AutoMaps') == 1 && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { autoTrimpSettings["AutoMaps"].value = 0; } @@ -201,6 +203,7 @@ function Praiding() { } debug("...Successfully prestiged!"); prestraid = true; + prestraidon = false; if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { autoTrimpSettings["AutoMaps"].value = 1; debug("Turning AutoMaps back on"); @@ -212,6 +215,7 @@ function Praiding() { } if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { prestraid = false; + prestraidon = false; } } @@ -222,7 +226,7 @@ function Praiding() { //BWrmn //BWrmx function BWraiding() { - if (game.global.world == getPageSetting('BWraidingz') && !bwraided && !failbwraid && getPageSetting('BWraid')) { + if (!prestraidon && game.global.world == getPageSetting('BWraidingz') && !bwraided && !failbwraid && getPageSetting('BWraid')) { if (getPageSetting('AutoMaps') == 1 && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { autoTrimpSettings["AutoMaps"].value = 0; } From dd08bcd74afc2fdb7bae5aed7417a4cd1ef0db47 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Tue, 5 Jun 2018 17:18:02 +0100 Subject: [PATCH 297/365] Update AutoTrimps2.js --- AutoTrimps2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index bdb51bea1..48c5b5097 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -207,7 +207,7 @@ function mainLoop() { if (getPageSetting('ExitSpireCell') >0) exitSpireCell(); //"Exit Spire After Cell" (other.js) //if (getPageSetting('loomprotect') == true) protectloom(); //"Exit Spire After Cell" (other.js) if (getPageSetting('Praidingzone') >0) Praiding(); //Prestige Raiding (other.js) - if (getPageSetting('BWraid')==true) BWraiding(); //BW Raiding (other.js) + if (getPageSetting('BWraid')==true){setTimeout(BWraiding(), 3000);} //BW Raiding (other.js) if (getPageSetting('AutoAllocatePerks')==2) lootdump(); //Loot Dumping (other.js) if (getPageSetting('BuyUpgradesNew') != 0) buyUpgrades(); //"Buy Upgrades" (upgrades.js) var agu = getPageSetting('AutoGoldenUpgrades'); From ca0582741a3f2c1bda3b777569bdc884eefb637b Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Tue, 5 Jun 2018 17:36:27 +0100 Subject: [PATCH 298/365] Update other.js --- modules/other.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index 27932bc8b..eca864b01 100644 --- a/modules/other.js +++ b/modules/other.js @@ -251,8 +251,11 @@ function BWraiding() { } runMap(); - if (!game.global.repeatMap && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { - repeatClicked(); + if (!game.global.repeatMap && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid && findLastBionic().level > getPageSetting('BWraidingz')) { + game.global.repeatMap = true; + } + else if (!game.global.repeatMap && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid && findLastBionic().level <= getPageSetting('BWraidingz')) { + game.global.repeatMap = false; } if (findLastBionic().level > getPageSetting('BWraidingmax') && !bwraided && !failbwraid) { bwraided = true; From 208461ef30a8ad0d7f93bc45579b9cd05aeb2bc5 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Tue, 5 Jun 2018 18:01:01 +0100 Subject: [PATCH 299/365] Update other.js --- modules/other.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/other.js b/modules/other.js index eca864b01..1d6f6dac0 100644 --- a/modules/other.js +++ b/modules/other.js @@ -251,11 +251,11 @@ function BWraiding() { } runMap(); - if (!game.global.repeatMap && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid && findLastBionic().level > getPageSetting('BWraidingz')) { - game.global.repeatMap = true; + if (!game.global.repeatMap && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid && getCurrentMapObject().level > getPageSetting('BWraidingz')) { + repeatClicked(); } - else if (!game.global.repeatMap && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid && findLastBionic().level <= getPageSetting('BWraidingz')) { - game.global.repeatMap = false; + else if (game.global.repeatMap && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid && getCurrentMapObject().level <= getPageSetting('BWraidingz')) { + repeatClicked(); } if (findLastBionic().level > getPageSetting('BWraidingmax') && !bwraided && !failbwraid) { bwraided = true; From 34084886e18a0affbba9a7adfff4bf160ad7bed6 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Wed, 6 Jun 2018 13:57:19 +0100 Subject: [PATCH 300/365] Update battlecalc.js --- modules/battlecalc.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/battlecalc.js b/modules/battlecalc.js index 1e137313b..2da81db9e 100644 --- a/modules/battlecalc.js +++ b/modules/battlecalc.js @@ -227,7 +227,7 @@ function getBattleStats(what,form,crit) { //Amal health if (what == "health" && game.jobs.Amalgamator.owned > 0){ var amt = game.jobs.Amalgamator.getHealthMult(); - currentCalc *= (1 + (amt / 100)); + currentCalc *= amt; } if (crit) { var critChance = getPlayerCritChance(); @@ -301,7 +301,7 @@ function calcOurDmg(number,maxormin,disableStances,disableFlucts) { //number = b number *= game.jobs.Amalgamator.getDamageMult(); } if (game.jobs.Amalgamator.owned > 0){ - number *= ((game.jobs.Amalgamator.getHealthMult() / 100) + 1); + number *= game.jobs.Amalgamator.getHealthMult(); } number *= (1 + (1 - game.empowerments.Ice.getCombatModifier())); From 11f22bdc918e3ee84368ae457efaaef256715db4 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Wed, 6 Jun 2018 14:34:38 +0100 Subject: [PATCH 301/365] Update README.md --- README.md | 196 +----------------------------------------------------- 1 file changed, 1 insertion(+), 195 deletions(-) diff --git a/README.md b/README.md index 88a17b34c..b24f297b0 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ took a break ***Option 1***: Install TamperMonkey (Chrome) or GreaseMonkey (Firefox) -**EASY INSTALL click here: https://github.com/genbtc/AutoTrimps/raw/gh-pages/.user.js** (the Monkeys will detect this and prompt you to install it) +**EASY INSTALL click here: https://github.com/Zorn192/AutoTrimps/raw/gh-pages/.user.js** (the Monkeys will detect this and prompt you to install it) Overly detailed Chrome/TamperMonkey Instructions: - Open the TamperMonkey dashboard and go to utilities – in the URL box paste https://github.com/genbtc/AutoTrimps/raw/gh-pages/.user.js and click IMPORT @@ -81,200 +81,6 @@ Feel free to submit any bugs/suggestions as issues here on github. The fact that it works at all is misleading new players into thinking its perfect. Its not. If your highest zone is under z60, you have not unlocked the stats required, and have not experienced the full meta with its various paradigm shifts. If you are just starting, my advice is to play along naturally and use AutoTrimps as a tool, not a crutch. Play with the settings as if it was the game, Dont expect to go unattended, if AT chooses wrong, and make the RIGHT choice yourself. Additionally, its not coded to run one-time challenges for you, only repeatable ones for helium. During this part of the game, content is king - automating literally removes the fun of the game. If you find that many flaws in the automation exist for you, level up. Keep in mind the challenge of maintaining the code is that it has to work for everyone. AT cant see the future and doesnt run simulations, it exists only in the present moment. Post any suggestions on how it can be better, or volunteer to adapt the code, or produce some sort of low-level player guide with what youve learned. Happy scripting! -genBTC -## Current feature changes by genBTC -- Current as of : -- *** 11/7/2017, v2.1.5.7 Merge DerSkagg PullRequest In*** -- New AutoGoldenUpgrades - After max void golden upgrades, alternate between buying helium and battle upgrades. Or Choose a Zone to switch over completely at. -- *** 8/26/2017, v2.1.5.6 Merge Unihedro Branch In*** -- Uni changes include: Dont buy Coords, Trimple Z#, Scryer Suicide Z#, Safety First, Forced Prestige Z#, Prefer Metal Maps, Nursery Count Pre-Spire, Finish Challenge2, DontCare/PowerSaving/DontRushVoids, Prestige Skip 2, Auto Eggs. -- See his branch here @ https://github.com/Unihedro/AutoTrimps -- Past Changes: -- *** April Unihedro Branch Changes *** -- 4/17 v2.1.5.5u3 - fix improvedautostorage hijack -- Fixed a certain specific stupid bug caused by how graph overwrites some functions unnecessarily -- 4/16 v2.1.5.5u2 - do more map stacks if not enoughHealth -- No longer forces Buy Storage off -- 4/15 v2.1.5.5u1 - new settings BuyOvclock -- 4/14 v2.1.5.4u6 - Improved nurseries map and betterautostorage -- 4/14 v2.1.5.4u5 - Auto Eggs
, some more 4.3 support -- 4/12 v2.1.5.4u4 - AutoTrimps lifecycle changes -- 4/11 v2.1.5.4u3 - fixed spire farming, autogen supply zone -- 4/10 v2.1.5.4u2 - PrestigeSkip2 -- 4/09 v2.1.5.4u1 - Magma: AutoGen, AutoGen2 -- 4/08 v2.1.5.3u6 - ForcePresZ -- 4/07 + 4/06: -- U5: FinishC2, PowerSaving -- U4: PreferMetal, PreSpireNurseries -- U3: LinearZ, SupplyWall, OneTimeOnly -- U2: TrimpleZ, ScryerDieZ, IgnoreCrits -- U1: Don't buy Coords / Skip challenge maps -- ***1/10/2017*** -- new setting Buy Warp to Hit Coord (genbtc page) -- AutoStance support for Plague/Bogged Daily -- Update Map Sliders decisions - less loot% reduction -- ***12/23/2016*** -- v2.1.5.2-genbtc-12-23-2016+Modular -- ***12/20*** -- Gear tab to Settings UI. Customize your equip level cap. -- Internally Disable Farm mode if we have nothing left to farm for (no prestiges,capped equip) to prevent infinite farming. -- ***12/19*** -- Skip prestige if >=2 unbought prestiges (maps settings) -- Bug Fixes + redo geneticists buying again. -- NEW: Add Map Bonus Graph -- ***12/18*** -- Fixed: dynamic prestige not reverting to dagger after the target zone is reached -- Graphs - clear time, removed #2s, (essence graph might be messed up but its fixed now) -- Change forceAbandonTrimps "sitting around breeding forever when not on full anti stacks" from 60 seconds to 31. -- Fix BAF2 #4 for players without geneticists. -- Buildings cost efficiency + jobs low level fixes -- Some low level jobs and Buildings fixes. -- ***12/14*** -- NEW: AutoAllocatePerks (genbtc settings) - uses AutoPerks ratio system to Auto Spend Helium during AutoPortal -- ***12/12*** -- Fix: HeHrBuffer will now portal midzone if you exceed 5x your buffer -- ***12/10*** -- New: AutoStartDaily option (read tooltip) -- New way to buy geneticists (fast) -- ***12/9*** -- Fixed: DynamicPrestige=-1 wasnt disabling it -- Fixed: needPrestige conflicting with needFarmSpire -- ***12/8*** -- FarmWithNomStacks changes (read tooltip) -- Nom stacks now calced by Autostance1 -- Default VoidDifficultyCheck is now defaulting to 6 -- ***12/6*** -- AutoMagmiteSpender now has a new cost efficiency algorithm.(read new tooltip) -- AT now does its Nursery map for Blacksmithery owners at z50 not z60, to prevent breeding time-stalls.(+fixed bug) -- ***12/4*** -- Completely rewrite lots of the Graphs.js code. -- Converted the codebase into individual files, to help people find stuff. -- For automaps, Not enough Health doesnt do 10 maps anymore, it only does 1. -- Adjust enoughHealth calculation for people without D stance. -- Add a farm lower level zones option (maps settings tab). -- ***12/2*** -- Changed Automaps farming/damage/health calculations. AutoMaps farms above 16x now. (10x in Lead, 10x in Nom with the Farm on >7 NOMstacks option). -- Hover over the Farming/Advancing/WantMoreDamage status area to see the precise number now. Read the AutoMaps tooltip in settings for slightly more information. -- Add dailymods: weakness, rampage, oddtrimpnerf, eventrimpbuff, badStrength, badMapStrength, bloodthirst to Autostance1. (and AS2 has minDmg, maxDmg too) -- ***11/29*** -- Puts a 5 second pause in between cycling AutoMagmiteSpender from "on portal" to "always" so you can switch it to "off" without it spending all your magmite. -- Make multi-toggle tooltip title give the name of all 3 options to be more descriptive. -- new calcBadGuyDmg function, used in DynamicGyms. -- stop using stopScientistsatFarmers and use MaxScientists instead. -- hire 1 miner,farmer,lumber each cycle even if our breed timer is low to do something tiny, so earlygame isnt stuck on 0 -- fix/re-arrange lazy Trainers duplicate code -- exit autostance if Formations isnt done (like level <60) -- Lead damage stacks were wrongly on 0.0005, its 0.0003. -- Trimpicide Mod #1: consider Titimp = forceAbandon and kill titimp if theres less than 5 seconds left on it or, we stand to gain more than 5 antistacks. -- Trimpicide Mod #2: if we're sitting around breeding for >60s while being over 5 anti stacks away from target. -- Include beta autostance2 code that im working on so I dont have a bunch of crazy local commits. -- ***11/26*** -- Patch corruption detection, and Scryer tooltips -- Dynamic Gyms - dont buy gyms if your block is higher than enemy attack -- Auto Magmamancer management after 10 mins -- Auto Finish Daily on portal (genbtc settings) -- Gym Wall (genbtc settings) -- ***11/23*** -- Auto Magmite Spender can now be toggled to Always Run -- AutoTrimpicide/Force-Abandon is now toggleable -- New Better AutoFight #2(optional) -- New Hover tooltips: Screenshot beta0.1, more to come -- ***11/22*** -- Auto Spend Magmite before portaling - (setting in genBTC page)- Part 1 buys any permanent one-and-done upgrades in order from most expensive to least. Part 2 then finds/buys the cheapest non-permanent multi-upgrade and repeats itself until you cant buy anymore. -- Buy 2 buildings instead of 1 if we have the mastery -- Entirely remove high lumberjack ratio during Spire. -- During Magma with 3000+ Tributes, switch to 1/12/12 auto-worker-ratios instead of 1/2/22. -- Add a 10 second timeout Popup window that can postpone Autoportal when clicked. -- Added a No Nurseries Until setting, in genBTC page -- ***11/20*** -- Fixed spire map bug -- Added new ratios to AutoPerks (ZXV3,truth_late) -- AutoFight if timer is <0.5 not <0.1 now -- ***11/19*** -- Doesnt run the 10 maps for Mapbonus before Spire now. Please increase/adjust your MinutesBeforeSpire Timer accordingly (the 10 maps were never accounted for in that timer). -- Re-arranged all the categories in the settings window and updated tooltips -- Kill your trimps (AutoTrimpicide) for Anti-Stacks more often - -## Gap in Changelog exists here. - -## Prior feature changes by genBTC (up to date as of 8/5/2016): -- Minutes to Farm Before Spire - force some time to be spent so you can for sure complete Spire (recommended: 3-10 minutes) -- Auto Upgrade Heirlooms - spends ALL your nullifium on the recommended upgrades -- Auto Golden Upgrades = Buys all the Golden Helium, Battle, or Voids when available. -- Always Runs 10 maps for 200% map bonus before attempting Spire (happens after the first death if you don't select "Map At Spire" in regular Trimps settings) -- AutoHeirlooms2 - new algorithm to sort/carry/recycle the Heirlooms (the original had a bug) -- Cap Trainers to a % of Tributes - Only buy a trainer when its cost is less than X% of the cost of a tribute. Prevents from competing with food resources, if you care. -- Run Bionic Before Spire - meant as a one time function (like max tox is) to farm the Bionic Wonderland maps for a LONG time(2 hours-ish) before entering Spire. (not HE/hr efficient) -- Dynamic Prestige: Skip prestiges at the beginning of the run which saves time, and delay them until the end when you need them most and can provide resources from farming too) -- Helium per Hour Portal "Buffer" - now you can customize how much He/Hr is allowed to drop before portaling -- Auto Robo Trimp - activate the MagnetoShriek ability on the bosses every 5 levels starting from the level you specify. (recommended set to 60) - -## Individual changes (from pinned messages on the Discord channel) -- 7/30 Patch heirlooms2 not carrying all protected heirlooms due to some indexing bug -- 7/28 Add 3 new graphs. Update Graphs, fix He/hr shifted by 1 bug. -- 7/27 Works on level 1 fresh new games a lot better, and added a new function Auto Upgrade Heirlooms which spends ALL your nullifium on the advised upgrade automatically -Also bugfix Adjust storage buying so that the script cannot buy a storage building before it is unlocked at level 1 and 70% -- 7/23 Important Fix for Heirloom2 and fix tooltips. -Reason: It was trying too hard to maintain equal shield/staff amounts, now it will not leave any better heirlooms (rarity/mods) in the temporary "extras" pile. -- 7/23 ~~Automatically gets 10 map stacks During Spire.~~ -- 7/22 Add new feature: Auto Golden Upgrades (in genBTC advanced settings) -- 7/22 Brand new AutoHeirlooms2 algorithm & Dynamic Prestige Algorithm (by Hyppy) -There is a new setting in the genBTC settings called "AutoHeirlooms2" and this will override the original. -I have not immediately switched over because Heirlooms are sensitive and I dont want to be responsible for anyone's heirlooms losses -So when you enable this new setting for the new algorithm, Take notice of what is going on, and manually "Protect" button any heirlooms you need to before portal-recycling -This image is a quick documentation of the heirloom carry bug, and the fix: https://puu.sh/qb6zj/903364c3d2.png -- 7/21 Fix helium per hour portal bug. -- 7/20 Dynamic Prestige now works with Helium Per Hour Autoportal setting! It uses the Last Run's portal zone in this situation. -- 7/17 Add Corruption handling for 2 of the corruption types (Strong and Tough). -- 7/16 Dynamic Prestige has been altered, if you are having a bug, reload, toggle your prestige dropdown setting to something else, and back, and portal to start a fresh run. -- 7/16 Added a new "Protect Heirloom" button in the Heirlooms dialog: Mark certain heirlooms from being auto-recycled on portal if/when a better one is found by the AutoHeirloom script. -- 7/6 New EasyMode Worker Ratios, >1000 tributes = 1/1/10 and >1500 tributes = 1/2/22 - -## Feature changes added by genBTC since before 4/27/2016 and Trimps version 3.22: -- Change Genetecist Timer to 10 sec instead of 11sec. (was commonly showing 11.4s because it rounds. that is too much) -- 'Farm on >7 NomStacks': During Nom, take precautions not to get too many stacks. (On Improbability(cell 100). Meant to be used with DisableFarming (otherwise farming would take care of this, but its slower). If Improbability already has 5 NomStacks, stack 30 Anticipation. If the Improbability has >7 NomStacks on it, get +200% dmg from MapBonus. If we still cant kill it, enter Farming mode at 30 stacks, Even with DisableFarming On!') -- Dynamic Siphonology - only when needed based on (Enemyhealth / baseDamage) -Created a new setting in the advanced options. "Dynamic Siphonology". -It will switch to the proper Map-level as soon as the current map is completed. -So you can choose original behavior of always using the lowest level map, -or the modified behavior, which increases the map level based on your damage. -The old behavior of "no siphonology at all when using DisableFarming" is no longer applied, under any circumstance. -- Skip Gear Level 58&59: Dont Buy Gear during level 58 and 59, wait till level 60, when cost drops down to 10%. -- Cap Equip to 10: Do not level equipment past 10. Similar to LimitEquipment, Helps for early game when the script wants to level your tier2s to 40+, but unlike LimitEquipment, should not impact Zone 60+. -- Delay Armor When needed: Delay buying armor prestige upgrades during Want More Damage or Farming automap-modes. -- Add console debug messages to the map selection/buying/running section. -- Put a numerical status on the "Farming"&"Want more Damage" UI indicator. -This way you can see things progressing, instead of wondering what is going on. -The number pertains to Enemy Health / Base Damage(non-stance). Above 16 means farm. Below 10 means stop farming. -- Farm @ cell 61 (megamining) not 82 (megafarming). -- Farm if enemyHealth divided by baseDamage (in X stance) is between 10 and 16. (Used to be 10 and 15). -Means it will farm very slightly less. -- Take Map Bonus +%Damage into account for farming decisions. (so you can farm less.) -- Stop from firing all scientists when it reaches the threshhold. (250k farmers) -Farmers will be maintained at the current level, not fired entirely. I -- Add WarpStation Cap (deltaGiga+baseWarp) feature. -Stop making warpstations if we are past the deltagiga + base -warpstations (and no giga upgrade is available). Will also remove the -green highlight around the icon. This will save you metal to use on -weapons,armor, etc. -NOTE: (the cap will ONLY work on incremental buys, it will not come into -effect when the game uses a gigastation and immediately BULK-buys as -many warpstations as it can afford. In this way it can buy over the cap. I think this is actually preferrable.) -- Add an Export/Import/Reset AutoTrimps settings buttons. -- Add a seperate "genBTC's settings UI" button, -- Better Tooltip Help - -**Voidmaps and Toxicity changes:** - -- Voidmaps: Do voids @ cell 96 Instead of 98. (to prevent overkill). Before, it only applied to Tox runs. -- Voidmap + Max-Tox runs: If we need to do a voidmap and have already more than 1415 stacks, (smallest voidmap is 85 cells) consider tox-stack finished. -- For normal-tox: Instead of starting the voidmap at 1400 stacks, start at (1500-theVoidmap.size) in case its an 85 cell voidmap. -- Regular Tox-Run: Avoid another non-unique map cycle due to having the amount of tox stacks we need. -- Max-Tox Run: During a Toxicity + Max Tox run AutoPortal, unset the MaxTox setting from the settings page, so we dont' run 2 Max-Tox's in a row (will go back to normal Tox run). - -## Original zininzinin version's historical changes -See changelog at the original version's github page: https://github.com/zininzinin/AutoTrimps/blob/c8eac4c80d0a1a5ebe36bc44c7655c335a2dea7b/README.md#recent-changes - - ## Easy explanation of Colors for EquipUpgrades / prestiges highlights - white - Upgrade is not available - yellow - Upgrade is not affordable From d12622a86caeb2253cc611df230a1b8bbfb2a212 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Wed, 6 Jun 2018 14:36:29 +0100 Subject: [PATCH 302/365] Update README.md --- README.md | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index b24f297b0..810183f9a 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,9 @@ Discord is a chat program. Come to talk about AutoTrimps, for help, or suggestio ## Current Version (full changes below) - Ongoing Development! - Too many to list - This version has beta changes by Zek, forked from GenBTC + Kfro. Including Autostance 3, Update to Swiffy Overlay, and Merging of buttons. Please tell me about bugs on Discord + +Zek - New changes will be posted here^ + - Mar 24, BATTLECALC CHANGES: - BattleCalc.js - getBattleStats() updated for the stuff added to AutoStance 1 a while ago, Life,C2,StillRowing, Copied from game code. - Mar 24, EQUIPMENT CHANGES: @@ -39,12 +42,12 @@ took a break ## Script Installation **Please backup your game via export before and during use to prevent losing your save due to corruption!** -***Option 1***: Install TamperMonkey (Chrome) or GreaseMonkey (Firefox) +***Your only Option***: Install TamperMonkey (Chrome) or GreaseMonkey (Firefox) **EASY INSTALL click here: https://github.com/Zorn192/AutoTrimps/raw/gh-pages/.user.js** (the Monkeys will detect this and prompt you to install it) Overly detailed Chrome/TamperMonkey Instructions: -- Open the TamperMonkey dashboard and go to utilities – in the URL box paste https://github.com/genbtc/AutoTrimps/raw/gh-pages/.user.js and click IMPORT +- Open the TamperMonkey dashboard and go to utilities – in the URL box paste https://github.com/Zorn192/AutoTrimps/raw/gh-pages/.user.js and click IMPORT - Alternatively, paste the contents of `.user.js` into a user script (pay attention, it says .user.js - this contains 4 lines of code that loads AutoTrimps2.js) - The script should automatically load everytime you go to https://trimps.github.io or the game on Kongregate - You will know you have the script loaded if you see the Automation and Graphs buttons in the game menu at the bottom @@ -54,26 +57,7 @@ Overly detailed Chrome/TamperMonkey Instructions: FireFox/GreaseMonkey instructions: - GreaseMonkey identifies userscripts by visiting a URL that ends with ".user.js" in them: -- Visit this URL, and Agree to install the userscript: https://github.com/genbtc/AutoTrimps/raw/gh-pages/.user.js - -***Option 2***: Via a Bookmark (does not work with Kongregate - maybe it does now that I added an include kongregate line to the file) -- Create new bookmark and set its target to: -```js -javascript:with(document)(head.appendChild(createElement('script')).src='https://genbtc.github.io/AutoTrimps/AutoTrimps2.js')._ -``` -- This bookmark button has to be clicked manually after you go to https://trimps.github.io - -***Option 3***: Paste into console (last resort for debugging, dont do this) - -Chrome Instructions -- You can copy and paste the entire contents of AutoTrimps2.js into the Dev Console (F12 in chrome) of the page. (make sure the dropdown box to the left of "Preserve Log" is set to "top" - or "mainFrame (indexKong.html)" for kongregate. - -Firefox Instructions -- Push Ctrl+Shift+K to go into console and look for the "Select an iframe" icon, and choose http://trimps.github.io/indexKong.html - -Notes: -If you would like to use only the graphs module, replace `AutoTrimps2.js` with `Graphs.js` in the bookmark or your userscript. -Feel free to submit any bugs/suggestions as issues here on github. +- Visit this URL, and Agree to install the userscript: https://github.com/Zorn192/AutoTrimps/raw/gh-pages/.user.js ***LowLevelPlayer Notes:*** From 151f8276fe3ea54446d90d0a03e3acb12a954b24 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Wed, 6 Jun 2018 19:49:30 +0100 Subject: [PATCH 303/365] Update other.js --- modules/other.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/other.js b/modules/other.js index 1d6f6dac0..3b6de3145 100644 --- a/modules/other.js +++ b/modules/other.js @@ -250,7 +250,9 @@ function BWraiding() { return; } + if (findLastBionic().level <= getPageSetting('BWraidingmax') && !bwraided && !failbwraid) { runMap(); + } if (!game.global.repeatMap && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid && getCurrentMapObject().level > getPageSetting('BWraidingz')) { repeatClicked(); } From 410c00aa2f31f75dce17859829728c4748408402 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Wed, 6 Jun 2018 20:51:07 +0100 Subject: [PATCH 304/365] Update battlecalc.js --- modules/battlecalc.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/battlecalc.js b/modules/battlecalc.js index 2da81db9e..c35b51f98 100644 --- a/modules/battlecalc.js +++ b/modules/battlecalc.js @@ -383,6 +383,9 @@ function calcBadGuyDmg(enemy,attack,daily,maxormin,disableFlucts) { } else if (game.global.challengeActive == "Corrupted"){ number *= 3; + } + else if (game.global.challengeActive == "Obliterated"){ + number = (number == -1) ? 1e12 : (1e12 * number); } if (daily) number = calcDailyAttackMod(number); From 6655a9cd2dd903969387958f145be8507f79fc98 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Wed, 6 Jun 2018 20:53:06 +0100 Subject: [PATCH 305/365] Update battlecalc.js --- modules/battlecalc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/battlecalc.js b/modules/battlecalc.js index c35b51f98..49e5b0fa8 100644 --- a/modules/battlecalc.js +++ b/modules/battlecalc.js @@ -385,7 +385,7 @@ function calcBadGuyDmg(enemy,attack,daily,maxormin,disableFlucts) { number *= 3; } else if (game.global.challengeActive == "Obliterated"){ - number = (number == -1) ? 1e12 : (1e12 * number); + number *= (number == -1) ? 1e12 : (1e12 * number); } if (daily) number = calcDailyAttackMod(number); From d259c53035f9123a885b25c609194b0d8013e9e7 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Wed, 6 Jun 2018 20:55:06 +0100 Subject: [PATCH 306/365] Update battlecalc.js --- modules/battlecalc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/battlecalc.js b/modules/battlecalc.js index 49e5b0fa8..75f9b501e 100644 --- a/modules/battlecalc.js +++ b/modules/battlecalc.js @@ -385,7 +385,7 @@ function calcBadGuyDmg(enemy,attack,daily,maxormin,disableFlucts) { number *= 3; } else if (game.global.challengeActive == "Obliterated"){ - number *= (number == -1) ? 1e12 : (1e12 * number); + number *= 10; } if (daily) number = calcDailyAttackMod(number); From 9f4d7aa4d3fd37ad15461e0572116392aa8da599 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Wed, 6 Jun 2018 21:01:40 +0100 Subject: [PATCH 307/365] Update battlecalc.js --- modules/battlecalc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/battlecalc.js b/modules/battlecalc.js index 75f9b501e..c8c6916e9 100644 --- a/modules/battlecalc.js +++ b/modules/battlecalc.js @@ -385,7 +385,7 @@ function calcBadGuyDmg(enemy,attack,daily,maxormin,disableFlucts) { number *= 3; } else if (game.global.challengeActive == "Obliterated"){ - number *= 10; + number *= 1e12; } if (daily) number = calcDailyAttackMod(number); From 713fc167f9177281fa82a8e558a3d3440716589a Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Thu, 7 Jun 2018 12:31:54 +0100 Subject: [PATCH 308/365] Update SettingsGUI.js --- SettingsGUI.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index b30817d12..174d72454 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -243,10 +243,10 @@ function initializeAllSettings() { createSetting('ManualGather2', ['Manual Gather/Build', 'Auto Gather/Build', 'Auto Gather/Build #2', 'Science Research OFF'], 'Controls what YOU do. Manual does nothing
The Decision between AutoGather 1 or 2 is up to you, and they should be similar. Auto Gathering of Food,Wood,Metal(w/turkimp) & Science. Auto speed-Builds your build queue.
You can disable science researching for the achievement: Reach Z120 without using manual research.', 'multitoggle', 1, null, "Core"); createSetting('BuyUpgradesNew', ['Manual Upgrades', 'Buy All Upgrades', 'Upgrades no Coords'], 'Autobuys non-equipment upgrades (equipment is controlled in the Gear tab). The second option does NOT buy coordination (use this ONLY if you know what you\'re doing).', 'multitoggle', 1, null, "Core"); //createSetting('ManageBreedtimerNew', ['Manual Breed Timer', 'Auto Breed Timer', 'Auto No Patience'], 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges, and accounts for the patience mastery.
[ON](Yellow): The same as above, but ignores patience and will not set a breed timer longer than 30s.
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'multitoggle', 1, null, "Core"); //This replaces the two settings below, but do we really need an option to ignore patience?? - createSetting('ManageBreedtimer', 'Auto Breed Timer', 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges (0, 3.5s, 10s, 30s).
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'boolean', true, null, "Core"); - createSetting('GeneticistTimer', 'Geneticist Timer', 'Manages the breed timer by hiring/firing Geneticists for the purpose of setting the ideal anticpation stacks. Disable with -1 to disable the Hiring/Firing of geneticists.
Info: Potency and Nursery buying behavior is adjusted dynamically (and disabling no longer disables potency). The Automatic Genetecist Hiring Process can best be summarized by: Buy/Wait/Die,Repeat. (if you do not die, no action is taken). Also self-kills (trimpicide) aka force abandon when your anti-stacks aren\'t maxed out (conservatively).

Controlled automatically (locked) when Auto Breed Timer is on.', 'value', '30', null, "Core"); - createSetting('UsePatience', 'Enable Patience', 'Sets the default breed timer to 45 seconds if you have the Patience mastery.', 'boolean', true, null, 'Core'); - createSetting('BreedFire', 'Breed Fire', 'OPTIONAL. Fire Lumberjacks and Miners to speed up breeding when needed. Basically trades wood/metal to cut the wait between deaths down. Disclaimer: May heavily negatively impact wood-gathering. ', 'boolean', false, null, 'Core'); + //createSetting('ManageBreedtimer', 'Auto Breed Timer', 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges (0, 3.5s, 10s, 30s).
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'boolean', true, null, "Core"); + //createSetting('GeneticistTimer', 'Geneticist Timer', 'Manages the breed timer by hiring/firing Geneticists for the purpose of setting the ideal anticpation stacks. Disable with -1 to disable the Hiring/Firing of geneticists.
Info: Potency and Nursery buying behavior is adjusted dynamically (and disabling no longer disables potency). The Automatic Genetecist Hiring Process can best be summarized by: Buy/Wait/Die,Repeat. (if you do not die, no action is taken). Also self-kills (trimpicide) aka force abandon when your anti-stacks aren\'t maxed out (conservatively).

Controlled automatically (locked) when Auto Breed Timer is on.', 'value', '30', null, "Core"); + //createSetting('UsePatience', 'Enable Patience', 'Sets the default breed timer to 45 seconds if you have the Patience mastery.', 'boolean', true, null, 'Core'); + //createSetting('BreedFire', 'Breed Fire', 'OPTIONAL. Fire Lumberjacks and Miners to speed up breeding when needed. Basically trades wood/metal to cut the wait between deaths down. Disclaimer: May heavily negatively impact wood-gathering. ', 'boolean', false, null, 'Core'); createSetting('TrapTrimps', 'Trap Trimps', 'Automatically trap trimps when needed, including building traps. (when you turn this off, you may aswell turn off the in-game autotraps button, think of the starving trimps that could eat that food!)', 'boolean', true, null, "Core"); //Line2 @@ -257,7 +257,10 @@ function initializeAllSettings() { createSetting('AutoEggs', 'AutoEggs', 'Click easter egg if it exists, upon entering a new zone. Warning: Quite overpowered. Please solemnly swear that you are up to no good.', 'boolean', false, null, 'Core');} createSetting('fastallocate', 'Fast Allocate', 'Turn on if your helium is above 500Qa. Not recommended for low amounts of helium. ', 'boolean', false, null, 'Core'); createSetting('AutoAllocatePerks', ['Auto Allocate Off', 'Auto Allocate On', 'Dump into Looting II'], 'Uses the AutoPerks ratio based preset system to automatically allocate your perks to spend whatever helium you have when you AutoPortal. Does not change Fixed Perks: siphonology, anticipation, meditation, relentlessness, range, agility, bait, trumps, packrat, capable. NEW: Dump into Looting II, dumps all loot gained from previous portal at specified zone', 'multitoggle', 0, null, 'Core'); + createSetting('lootdumpz', 'Loot Dump Z', 'What zone to dump all earned helium from previous portal at. E.g; z230, will dump all helium from last run into looting II at zone 230.', 'value', -1, null, 'Core'); + createSetting('lootdumpa', 'Loot Dump Amount', 'What amount of helium to dump into Looting II. E.g; 1000, will dump 1000 helium into looting II until you can no longer afford to.', 'value', -1, null, 'Core'); document.getElementById('AutoAllocatePerks').parentNode.insertAdjacentHTML('afterend','
'); + //NewLine3 For Autoportal, it would be nice to add a 5s countdown, like with magma spending. createSetting('AutoPortal', 'AutoPortal', 'Automatically portal. Will NOT auto-portal if you have a challenge active, the challenge setting dictates which challenge it will select for the next run. All challenge settings will portal right after the challenge ends, regardless. Helium Per Hour only portals at cell 1 of the first level where your He/Hr went down even slightly compared to the current runs Best He/Hr. Take note, there is a Buffer option, which is like a grace percentage of how low it can dip without triggering. Setting a buffer will portal mid-zone if you exceed 5x of the buffer. CAUTION: Selecting He/hr may immediately portal you if its lower-(use Pause AutoTrimps button to pause the script first to avoid this)', 'dropdown', 'Off', ['Off', 'Helium Per Hour', 'Balance', 'Decay', 'Electricity', 'Life', 'Crushed', 'Nom', 'Toxicity', 'Watch', 'Lead', 'Corrupted', 'Custom'], "Core"); @@ -381,9 +384,10 @@ function initializeAllSettings() { createSetting('BWraid', 'BW Raiding', 'Raids BW at zone specified in BW Raiding min/max.', 'boolean', false, null, 'Spire'); createSetting('BWraidingz', 'Z to BW Raid', 'Raids BWs at zone specified. Example: 495, will raid all BWs for all gear starting from 495. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming.', 'value', -1, null, 'Spire'); createSetting('BWraidingmax', 'Max BW to raid', 'Raids BWs until zone specified. Example: 515, will raid all BWs for all gear until 515. Will skip lower BWs if you have enough damage. Once all gear is obtained, will return to regular farming.', 'value', -1, null, 'Spire'); - createSetting('lootdumpz', 'Loot Dump Z', 'What zone to dump all earned helium from previous portal at. E.g; z230, will dump all helium from last run into looting II at zone 230.', 'value', -1, null, 'Spire'); - createSetting('lootdumpa', 'Loot Dump Amount', 'What amount of helium to dump into Looting II. E.g; 1000, will dump 1000 helium into looting II until you can no longer afford to.', 'value', -1, null, 'Spire'); + + + //Combat //Subsection1Line1 createSetting('BetterAutoFight', ['Better AutoFight OFF', 'Better Auto Fight 1', 'Better Auto Fight 2', 'Better Auto Fight 3'], '4-Way Button, Recommended. Will automatically handle fighting.
BAF1 = Old Algo (Fights if dead, new squad ready, new squad breed timer target exceeded, and if breeding takes under 0.5 seconds
BAF2 = Newer, As with BAF1, but also solves DimGen looping, sends trimps immediately when breed target met, and deals with the consequences by firing geneticists
BAF3 = Uses vanilla autofight, and force fights when dead except in VM and Spire.
WARNING: If you autoportal with BetterAutoFight disabled, the game may sit there doing nothing until you click FIGHT. (not good for afk) ', 'multitoggle', 3, null, "Combat"); From 6a7d8fd5a2389a109d4672d1a8919d704d6d8803 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Thu, 7 Jun 2018 12:33:48 +0100 Subject: [PATCH 309/365] Update AutoTrimps2.js --- AutoTrimps2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index 48c5b5097..f3975559e 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -222,7 +222,7 @@ function mainLoop() { if (getPageSetting('ManualGather2')<=1) manualLabor(); //"Auto Gather/Build" (gather.js) else if (getPageSetting('ManualGather2')==2) manualLabor2(); //"Auto Gather/Build #2" (") getPageSetting('AutoMaps') > 0 ? autoMap() : updateAutoMapsStatus(); //"Auto Maps" (automaps.js) - if (getPageSetting('GeneticistTimer') >= 0) autoBreedTimer(); //"Geneticist Timer" / "Auto Breed Timer" (autobreedtimer.js) + //if (getPageSetting('GeneticistTimer') >= 0) autoBreedTimer(); //"Geneticist Timer" / "Auto Breed Timer" (autobreedtimer.js) if (autoTrimpSettings.AutoPortal.selected != "Off") autoPortal(); //"Auto Portal" (hidden until level 40) (portal.js) if (getPageSetting('TrapTrimps') && game.global.trapBuildAllowed && game.global.trapBuildToggled == false) toggleAutoTrap(); //"Trap Trimps" if (aWholeNewWorld && getPageSetting('AutoRoboTrimp')) autoRoboTrimp(); //"AutoRoboTrimp" (other.js) From 151b0b7e1fae591ef22afef1371c0e99570252d2 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Thu, 7 Jun 2018 12:38:08 +0100 Subject: [PATCH 310/365] Update SettingsGUI.js --- SettingsGUI.js | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index 174d72454..c8008c7a8 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -242,24 +242,17 @@ function initializeAllSettings() { //Line1: createSetting('ManualGather2', ['Manual Gather/Build', 'Auto Gather/Build', 'Auto Gather/Build #2', 'Science Research OFF'], 'Controls what YOU do. Manual does nothing
The Decision between AutoGather 1 or 2 is up to you, and they should be similar. Auto Gathering of Food,Wood,Metal(w/turkimp) & Science. Auto speed-Builds your build queue.
You can disable science researching for the achievement: Reach Z120 without using manual research.', 'multitoggle', 1, null, "Core"); createSetting('BuyUpgradesNew', ['Manual Upgrades', 'Buy All Upgrades', 'Upgrades no Coords'], 'Autobuys non-equipment upgrades (equipment is controlled in the Gear tab). The second option does NOT buy coordination (use this ONLY if you know what you\'re doing).', 'multitoggle', 1, null, "Core"); - //createSetting('ManageBreedtimerNew', ['Manual Breed Timer', 'Auto Breed Timer', 'Auto No Patience'], 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges, and accounts for the patience mastery.
[ON](Yellow): The same as above, but ignores patience and will not set a breed timer longer than 30s.
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'multitoggle', 1, null, "Core"); //This replaces the two settings below, but do we really need an option to ignore patience?? - //createSetting('ManageBreedtimer', 'Auto Breed Timer', 'Genetecist management is controlled by the Timer setting box to the right, not this.
Explanation:
[ON](Green): All this does is auto-choose the appropriate timer for various challenges (0, 3.5s, 10s, 30s).
[OFF](Red): You set the Timer yourself! Even if this is red, it still tampers with genetecists if the timer is >= 0.
Note: Using AutoStance is recommended to survive the full 30 seconds or else Auto will probably be undesirable.', 'boolean', true, null, "Core"); - //createSetting('GeneticistTimer', 'Geneticist Timer', 'Manages the breed timer by hiring/firing Geneticists for the purpose of setting the ideal anticpation stacks. Disable with -1 to disable the Hiring/Firing of geneticists.
Info: Potency and Nursery buying behavior is adjusted dynamically (and disabling no longer disables potency). The Automatic Genetecist Hiring Process can best be summarized by: Buy/Wait/Die,Repeat. (if you do not die, no action is taken). Also self-kills (trimpicide) aka force abandon when your anti-stacks aren\'t maxed out (conservatively).

Controlled automatically (locked) when Auto Breed Timer is on.', 'value', '30', null, "Core"); - //createSetting('UsePatience', 'Enable Patience', 'Sets the default breed timer to 45 seconds if you have the Patience mastery.', 'boolean', true, null, 'Core'); - //createSetting('BreedFire', 'Breed Fire', 'OPTIONAL. Fire Lumberjacks and Miners to speed up breeding when needed. Basically trades wood/metal to cut the wait between deaths down. Disclaimer: May heavily negatively impact wood-gathering. ', 'boolean', false, null, 'Core'); createSetting('TrapTrimps', 'Trap Trimps', 'Automatically trap trimps when needed, including building traps. (when you turn this off, you may aswell turn off the in-game autotraps button, think of the starving trimps that could eat that food!)', 'boolean', true, null, "Core"); - - //Line2 - createSetting('AutoStartDaily', 'Auto Start Daily', 'With this on, the Auto Portal options will portal you into and auto-start the daily whenever available. Starts from the oldest available, and works forwards. Falls back to selected challenge when there are no more dailies available.', 'boolean', false, null, 'Core'); - createSetting('AutoFinishDailyNew', 'Finish Daily Z Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option or set this to 999!', 'valueNegative', 999, null, 'Core'); - createSetting('FinishC2', 'Finish Challenge2', 'Finish / Abandon Challenge2 (any) when this zone is reached, if you are running one. For manual use. Recommended: Zones ending with 0 for most Challenge2. Disable with -1. Does not affect Non-Challenge2 runs.', 'value', -1, null, 'Core'); - if (!game.worldUnlocks.easterEgg.locked) { - createSetting('AutoEggs', 'AutoEggs', 'Click easter egg if it exists, upon entering a new zone. Warning: Quite overpowered. Please solemnly swear that you are up to no good.', 'boolean', false, null, 'Core');} createSetting('fastallocate', 'Fast Allocate', 'Turn on if your helium is above 500Qa. Not recommended for low amounts of helium. ', 'boolean', false, null, 'Core'); createSetting('AutoAllocatePerks', ['Auto Allocate Off', 'Auto Allocate On', 'Dump into Looting II'], 'Uses the AutoPerks ratio based preset system to automatically allocate your perks to spend whatever helium you have when you AutoPortal. Does not change Fixed Perks: siphonology, anticipation, meditation, relentlessness, range, agility, bait, trumps, packrat, capable. NEW: Dump into Looting II, dumps all loot gained from previous portal at specified zone', 'multitoggle', 0, null, 'Core'); createSetting('lootdumpz', 'Loot Dump Z', 'What zone to dump all earned helium from previous portal at. E.g; z230, will dump all helium from last run into looting II at zone 230.', 'value', -1, null, 'Core'); createSetting('lootdumpa', 'Loot Dump Amount', 'What amount of helium to dump into Looting II. E.g; 1000, will dump 1000 helium into looting II until you can no longer afford to.', 'value', -1, null, 'Core'); - document.getElementById('AutoAllocatePerks').parentNode.insertAdjacentHTML('afterend','
'); + + //Line2 + createSetting('AutoStartDaily', 'Auto Start Daily', 'With this on, the Auto Portal options will portal you into and auto-start the daily whenever available. Starts from the oldest available, and works forwards. Falls back to selected challenge when there are no more dailies available.', 'boolean', false, null, 'Core'); + createSetting('AutoFinishDailyNew', 'Finish Daily Z Mod', 'The Helium Don\'t Portal Before and Custom AutoPortal settings will Auto-Finish the daily whenever they trigger and then portal you. This allows you to modify this # of zones ealier/later than your regular zone. Negative numbers mean you will portal EARLIER than normal. Positive numbers will DELAY portalling until a later zone. 0 does not mod your normal AutoPortal setting. When used with the He/Hr AutoPortal, this does not FORCE it to end early, only ALLOW it to if your He/Hr drops. To disable AutoPortal during a Daily, turn off the AutoPortal option or set this to 999!', 'valueNegative', 999, null, 'Core'); + createSetting('FinishC2', 'Finish Challenge2', 'Finish / Abandon Challenge2 (any) when this zone is reached, if you are running one. For manual use. Recommended: Zones ending with 0 for most Challenge2. Disable with -1. Does not affect Non-Challenge2 runs.', 'value', -1, null, 'Core'); + document.getElementById('FinishC2').parentNode.insertAdjacentHTML('afterend','
'); //NewLine3 For Autoportal, it would be nice to add a 5s countdown, like with magma spending. @@ -455,7 +448,9 @@ function initializeAllSettings() { createSetting('AutoPoison', 'Poison', 'Spend/convert Poison tokens', 'dropdown', 'Off', ['Off', 'Empowerment', 'Transfer', 'Convert to Wind', 'Convert to Ice', 'Convert to Both'], 'Nature'); createSetting('AutoWind', 'Wind', 'Spend/convert Wind tokens', 'dropdown', 'Off', ['Off', 'Empowerment', 'Transfer', 'Convert to Poison', 'Convert to Ice', 'Convert to Both'], 'Nature'); createSetting('AutoIce', 'Ice', 'Spend/convert Ice tokens', 'dropdown', 'Off', ['Off', 'Empowerment', 'Transfer', 'Convert to Poison', 'Convert to Wind', 'Convert to Both'], 'Nature'); - + if (!game.worldUnlocks.easterEgg.locked) { + createSetting('AutoEggs', 'AutoEggs', 'Click easter egg if it exists, upon entering a new zone. Warning: Quite overpowered. Please solemnly swear that you are up to no good.', 'boolean', false, null, 'Core');} + //Display settings: From 3fbcd655b3f12cb13bc2c3eb871bbb6b8ba937c6 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Thu, 7 Jun 2018 14:30:02 +0100 Subject: [PATCH 311/365] Update other.js --- modules/other.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/other.js b/modules/other.js index 3b6de3145..3c6fd9a79 100644 --- a/modules/other.js +++ b/modules/other.js @@ -190,6 +190,7 @@ function Praiding() { if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { autoTrimpSettings["AutoMaps"].value = 1; failpraid = true; + prestraidon = false; debug("Failed to prestige raid. Looks like you can't afford to.."); } return; From 19b863d56b31733ad7a526ecb971b3c2a232646d Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Thu, 7 Jun 2018 15:06:10 +0100 Subject: [PATCH 312/365] Update maps.js --- modules/maps.js | 543 ++++++++++++++++++++++++------------------------ 1 file changed, 275 insertions(+), 268 deletions(-) diff --git a/modules/maps.js b/modules/maps.js index 988c2cca5..8c8adba9f 100644 --- a/modules/maps.js +++ b/modules/maps.js @@ -1,32 +1,32 @@ MODULES["maps"] = {}; //These can be changed (in the console) if you know what you're doing: MODULES["maps"].enoughDamageCutoff = 4; //above this the game will do maps for map bonus stacks -MODULES["maps"].farmingCutoff = 16; //above this the game will farm. -MODULES["maps"].numHitsSurvived = 8; //survive X hits in D stance or not enough Health. +MODULES["maps"].farmingCutoff = 16; //above this the game will farm. +MODULES["maps"].numHitsSurvived = 8; //survive X hits in D stance or not enough Health. MODULES["maps"].LeadfarmingCutoff = 10; //lead has its own farmingCutoff -MODULES["maps"].NomfarmingCutoff = 10; //nom has its own farmingCutoff -MODULES["maps"].NurseryMapLevel = 50; //with blacksmithery, run map for nursery on this level +MODULES["maps"].NomfarmingCutoff = 10; //nom has its own farmingCutoff +MODULES["maps"].NurseryMapLevel = 50; //with blacksmithery, run map for nursery on this level //if FarmWhenNomStacks7 setting is on = [x, y, z]; -MODULES["maps"].NomFarmStacksCutoff = [7,30,100]; +MODULES["maps"].NomFarmStacksCutoff = [7, 30, 100]; //[x] get maxMapBonus (10) if we go above (7) stacks on Improbability (boss) //[y] go into maps on (30) stacks on Improbability (boss), farm until we fall under the 'NomfarmingCutoff' (10) //[z] restarts your voidmap if you hit (100) stacks -MODULES["maps"].MapTierZone = [72,47,16]; //descending order for these. +MODULES["maps"].MapTierZone = [72, 47, 16]; //descending order for these. // .MapTier?Sliders = [size,difficulty,loot,biome]; -MODULES["maps"].MapTier0Sliders = [9,9,9,'Mountain']; //Zone 72+ (old: 9/9/9 Metal) -MODULES["maps"].MapTier1Sliders = [9,9,9,'Depths']; //Zone 47-72 (old: 9/9/4 Metal) -MODULES["maps"].MapTier2Sliders = [9,9,9,'Random']; //Zone 16-47 (old: 9/9/0 Random) -MODULES["maps"].MapTier3Sliders = [9,9,9,'Random']; //Zone 6-16 (old: 9/0/0 Random) -MODULES["maps"].preferGardens = !getPageSetting('PreferMetal'); //prefer run Garden maps instead of ^^ if we have Decay done -MODULES["maps"].maxMapBonus = 10; //cap how many maps are run during Want More Damage mode -MODULES["maps"].wantHealthMapBonus = 10;//cap how many maps are run during Want More Health mode -MODULES["maps"].SpireFarm199Maps = true; //this will farm spire on 199 maps instead of 200 maps when Map Reducer is bought -MODULES["maps"].watchChallengeMaps = [15, 25, 35, 50]; //during 'watch' challenge, run maps on these levels: +MODULES["maps"].MapTier0Sliders = [9, 9, 9, 'Mountain']; //Zone 72+ (old: 9/9/9 Metal) +MODULES["maps"].MapTier1Sliders = [9, 9, 9, 'Depths']; //Zone 47-72 (old: 9/9/4 Metal) +MODULES["maps"].MapTier2Sliders = [9, 9, 9, 'Random']; //Zone 16-47 (old: 9/9/0 Random) +MODULES["maps"].MapTier3Sliders = [9, 9, 9, 'Random']; //Zone 6-16 (old: 9/0/0 Random) +MODULES["maps"].preferGardens = !getPageSetting('PreferMetal'); //prefer run Garden maps instead of ^^ if we have Decay done +MODULES["maps"].maxMapBonus = 10; //cap how many maps are run during Want More Damage mode +MODULES["maps"].wantHealthMapBonus = 10; //cap how many maps are run during Want More Health mode +MODULES["maps"].SpireFarm199Maps = true; //this will farm spire on 199 maps instead of 200 maps when Map Reducer is bought +MODULES["maps"].watchChallengeMaps = [15, 25, 35, 50]; //during 'watch' challenge, run maps on these levels: MODULES["maps"].shouldFarmCell = 59; -MODULES["maps"].SkipNumUnboughtPrestiges = 2; //exceeding this number of unbought prestiges will trigger a skip of prestige mode. +MODULES["maps"].SkipNumUnboughtPrestiges = 2; //exceeding this number of unbought prestiges will trigger a skip of prestige mode. MODULES["maps"].UnearnedPrestigesRequired = 2; -MODULES["maps"].maxMapBonusAfterZ = MODULES["maps"].maxMapBonus; //Max Map Bonus After Zone uses this many stacks - //- init as default value (10). user can set if they want. +MODULES["maps"].maxMapBonusAfterZ = MODULES["maps"].maxMapBonus; //Max Map Bonus After Zone uses this many stacks +//- init as default value (10). user can set if they want. //Initialize Global Vars (dont mess with these ones, nothing good can come from it). var stackingTox = false; @@ -57,15 +57,17 @@ function autoMap() { // if(game.options.menu.alwaysAbandon.enabled == 1) toggleSetting('alwaysAbandon'); //if we are prestige mapping, force equip first mode var prestige = autoTrimpSettings.Prestige.selected; - if(prestige != "Off" && game.options.menu.mapLoot.enabled != 1) toggleSetting('mapLoot'); + if (prestige != "Off" && game.options.menu.mapLoot.enabled != 1) toggleSetting('mapLoot'); //Control in-map right-side-buttons for people who can't control themselves. If you wish to use these buttons manually, turn off autoMaps temporarily. - if(game.options.menu.repeatUntil.enabled == 2) toggleSetting('repeatUntil'); - if(game.options.menu.exitTo.enabled != 0) toggleSetting('exitTo'); - if(game.options.menu.repeatVoids.enabled != 0) toggleSetting('repeatVoids'); + if (game.options.menu.repeatUntil.enabled == 2) toggleSetting('repeatUntil'); + if (game.options.menu.exitTo.enabled != 0) toggleSetting('exitTo'); + if (game.options.menu.repeatVoids.enabled != 0) toggleSetting('repeatVoids'); //exit and do nothing if we are prior to zone 6 (maps haven't been unlocked): - if (!game.global.mapsUnlocked || !(baseDamage > 0)) { //if we have no damage, why bother running anything? (this fixes weird bugs) - enoughDamage = true; enoughHealth = true; shouldFarm = false; - updateAutoMapsStatus(); //refresh the UI status (10x per second) + if (!game.global.mapsUnlocked || !(baseDamage > 0)) { //if we have no damage, why bother running anything? (this fixes weird bugs) + enoughDamage = true; + enoughHealth = true; + shouldFarm = false; + updateAutoMapsStatus(); //refresh the UI status (10x per second) return; } //if we are in mapology and we have no credits, exit @@ -81,19 +83,19 @@ function autoMap() { //Add your daily zone mod onto the void maps level var dailyVoidMod = getPageSetting('AutoFinishDailyNew'); if ((game.global.challengeActive == "Daily") && (getPageSetting('AutoFinishDailyNew') != 999) && (getPageSetting('DailyVoidMod'))) { - (voidMapLevelSetting += dailyVoidMod); + (voidMapLevelSetting += dailyVoidMod); } //decimal void maps are possible, using string function to avoid false float precision (0.29999999992). javascript can compare ints to strings anyway. - var voidMapLevelSettingZone = (voidMapLevelSetting+"").split(".")[0]; - var voidMapLevelSettingMap = (voidMapLevelSetting+"").split(".")[1]; + var voidMapLevelSettingZone = (voidMapLevelSetting + "").split(".")[0]; + var voidMapLevelSettingMap = (voidMapLevelSetting + "").split(".")[1]; if (voidMapLevelSettingMap === undefined || (game.global.challengeActive == 'Lead' && !challSQ)) voidMapLevelSettingMap = 90; - if (voidMapLevelSettingMap.length == 1) voidMapLevelSettingMap += "0"; //entering 187.70 becomes 187.7, this will bring it back to 187.70 + if (voidMapLevelSettingMap.length == 1) voidMapLevelSettingMap += "0"; //entering 187.70 becomes 187.7, this will bring it back to 187.70 var voidsuntil = getPageSetting('RunNewVoidsUntilNew'); needToVoid = voidMapLevelSetting > 0 && game.global.totalVoidMaps > 0 && game.global.lastClearedCell + 1 >= voidMapLevelSettingMap && - (game.global.world == voidMapLevelSettingZone || - (game.global.world >= voidMapLevelSettingZone && getPageSetting('RunNewVoidsUntilNew') != 0 && (voidsuntil == -1 || game.global.world <= (voidsuntil + voidMapLevelSettingZone)))); - if(game.global.totalVoidMaps == 0 || !needToVoid) + (game.global.world == voidMapLevelSettingZone || + (game.global.world >= voidMapLevelSettingZone && getPageSetting('RunNewVoidsUntilNew') != 0 && (voidsuntil == -1 || game.global.world <= (voidsuntil + voidMapLevelSettingZone)))); + if (game.global.totalVoidMaps == 0 || !needToVoid) doVoids = false; //NEW KFrowde + Sliverz This has several issues: 1 - Buys fuckloads of maps, 2 - enters a BW map instead of the one that you want @@ -103,31 +105,31 @@ function autoMap() { var plusMapVoidInput = getPageSetting('PlusMapVoidToggle') //Check that you should do this, check you've enabled it between the correct values, check that it hasn't already run this zone if ((plusMapVoid) && (plusMapVoidInput > 0 && plusMapVoidInput <= 10) && (plusMapVoidLastZone === null || plusMapVoidLastZone !== game.global.world)) { - document.getElementById("biomeAdvMapsSelect").value = "Random"; - document.getElementById('advExtraLevelSelect').value = plusMapVoidInput; - document.getElementById('advSpecialSelect').value = "p"; - document.getElementById("lootAdvMapsRange").value = 0; - document.getElementById("difficultyAdvMapsRange").value = 9; - document.getElementById("sizeAdvMapsRange").value = 9; - document.getElementById('advPerfectCheckbox').checked = false; - updateMapCost(); - buyMap(); - selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); - runMap(); - plusMapVoidLastZone = game.global.world; //This should have stopped it from looping + document.getElementById("biomeAdvMapsSelect").value = "Random"; + document.getElementById('advExtraLevelSelect').value = plusMapVoidInput; + document.getElementById('advSpecialSelect').value = "p"; + document.getElementById("lootAdvMapsRange").value = 0; + document.getElementById("difficultyAdvMapsRange").value = 9; + document.getElementById("sizeAdvMapsRange").value = 9; + document.getElementById('advPerfectCheckbox').checked = false; + updateMapCost(); + buyMap(); + selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length - 1].id); + runMap(); + plusMapVoidLastZone = game.global.world; //This should have stopped it from looping } // if force prestige, check if we are behind any first - if ((getPageSetting('ForcePresZ') >= 0) && ((game.global.world+extraMapLevels) >= getPageSetting('ForcePresZ'))) { - const prestigeList = ['Supershield','Dagadder','Megamace','Polierarm','Axeidic','Greatersword','Harmbalest','Bootboost','Hellishmet','Pantastic','Smoldershoulder','Bestplate','GambesOP']; - needPrestige = prestigeList.some(pres => game.mapUnlocks[pres].last <= (game.global.world+extraMapLevels) - 5); + if ((getPageSetting('ForcePresZ') >= 0) && ((game.global.world + extraMapLevels) >= getPageSetting('ForcePresZ'))) { + const prestigeList = ['Supershield', 'Dagadder', 'Megamace', 'Polierarm', 'Axeidic', 'Greatersword', 'Harmbalest', 'Bootboost', 'Hellishmet', 'Pantastic', 'Smoldershoulder', 'Bestplate', 'GambesOP']; + needPrestige = prestigeList.some(pres => game.mapUnlocks[pres].last <= (game.global.world + extraMapLevels) - 5); } else - //calculate if we are behind on unlocking prestiges - needPrestige = prestige != "Off" && game.mapUnlocks[prestige] && game.mapUnlocks[prestige].last <= (game.global.world+extraMapLevels) - 5 && game.global.challengeActive != "Frugal"; + //calculate if we are behind on unlocking prestiges + needPrestige = prestige != "Off" && game.mapUnlocks[prestige] && game.mapUnlocks[prestige].last <= (game.global.world + extraMapLevels) - 5 && game.global.challengeActive != "Frugal"; //dont need prestige if we are caught up, and have (2) unbought prestiges: skippedPrestige = false; - if (needPrestige && (getPageSetting('PrestigeSkip1_2')==1 || getPageSetting('PrestigeSkip1_2')==2)) { - var prestigeList = ['Dagadder','Megamace','Polierarm','Axeidic','Greatersword','Harmbalest','Bootboost','Hellishmet','Pantastic','Smoldershoulder','Bestplate','GambesOP']; + if (needPrestige && (getPageSetting('PrestigeSkip1_2') == 1 || getPageSetting('PrestigeSkip1_2') == 2)) { + var prestigeList = ['Dagadder', 'Megamace', 'Polierarm', 'Axeidic', 'Greatersword', 'Harmbalest', 'Bootboost', 'Hellishmet', 'Pantastic', 'Smoldershoulder', 'Bestplate', 'GambesOP']; var numUnbought = 0; for (var i in prestigeList) { var p = prestigeList[i]; @@ -140,22 +142,22 @@ function autoMap() { } } // Don't need prestige if there aren't many weapon prestiges left - if ((needPrestige || skippedPrestige) && (getPageSetting('PrestigeSkip1_2')==1 || getPageSetting('PrestigeSkip1_2')==3)) { - const prestigeList = ['Dagadder','Megamace','Polierarm','Axeidic','Greatersword','Harmbalest']; - const numLeft = prestigeList.filter(pres => game.mapUnlocks[pres].last <= (game.global.world+extraMapLevels) - 5); + if ((needPrestige || skippedPrestige) && (getPageSetting('PrestigeSkip1_2') == 1 || getPageSetting('PrestigeSkip1_2') == 3)) { + const prestigeList = ['Dagadder', 'Megamace', 'Polierarm', 'Axeidic', 'Greatersword', 'Harmbalest']; + const numLeft = prestigeList.filter(pres => game.mapUnlocks[pres].last <= (game.global.world + extraMapLevels) - 5); const shouldSkip = numLeft <= customVars.UnearnedPrestigesRequired; if (shouldSkip != skippedPrestige) { // not both conditions are met / is met but not already skipped: unskip it / do skip it - needPrestige = !needPrestige; - skippedPrestige = !skippedPrestige; + needPrestige = !needPrestige; + skippedPrestige = !skippedPrestige; } } -//START CALCULATING DAMAGES: + //START CALCULATING DAMAGES: var AutoStance = getPageSetting('AutoStance'); //calculate crits (baseDamage was calced in function autoStance) this is a weighted average of nonCrit + Crit. (somewhere in the middle) - ourBaseDamage = (baseDamage * (1-getPlayerCritChance()) + (baseDamage * getPlayerCritChance() * getPlayerCritDamageMult())); + ourBaseDamage = (baseDamage * (1 - getPlayerCritChance()) + (baseDamage * getPlayerCritChance() * getPlayerCritDamageMult())); //calculate with map bonus - var mapbonusmulti = 1 + (0.20*game.global.mapBonus); + var mapbonusmulti = 1 + (0.20 * game.global.mapBonus); //(autostance2 has mapbonusmulti built in) ourBaseDamage2 = ourBaseDamage; //keep a version without mapbonus ourBaseDamage *= mapbonusmulti; @@ -163,46 +165,46 @@ function autoMap() { //get average enemyhealth and damage for the next zone, cell 50, snimp type and multiply it by a max range fluctuation of 1.2 var enemyDamage; var enemyHealth; - if (AutoStance<=1) { + if (AutoStance <= 1) { enemyDamage = getEnemyMaxAttack(game.global.world + 1, 50, 'Snimp', 1.2); enemyDamage = calcDailyAttackMod(enemyDamage); //daily mods: badStrength,badMapStrength,bloodthirst } else { - enemyDamage = calcBadGuyDmg(null,getEnemyMaxAttack(game.global.world + 1, 50, 'Snimp', 1.0),true,true); //(enemy,attack,daily,maxormin,[disableFlucts]) + enemyDamage = calcBadGuyDmg(null, getEnemyMaxAttack(game.global.world + 1, 50, 'Snimp', 1.0), true, true); //(enemy,attack,daily,maxormin,[disableFlucts]) } - enemyHealth = getEnemyMaxHealth(game.global.world + 1,50); - if(game.global.challengeActive == "Toxicity") { + enemyHealth = getEnemyMaxHealth(game.global.world + 1, 50); + if (game.global.challengeActive == "Toxicity") { enemyHealth *= 2; } //Corruption Zone Proportionality Farming Calculator: var corrupt = game.global.world >= mutations.Corruption.start(true); if (getPageSetting('CorruptionCalc') && corrupt) { - var cptnum = getCorruptedCellsNum(); //count corrupted cells + var cptnum = getCorruptedCellsNum(); //count corrupted cells var cpthlth = getCorruptScale("health"); //get corrupted health mod - var cptpct = cptnum / 100; //percentage of zone which is corrupted. - var hlthprop = cptpct * cpthlth; //Proportion of cells corrupted * health of a corrupted cell - if (hlthprop >= 1) //dont allow sub-1 numbers to make the number less + var cptpct = cptnum / 100; //percentage of zone which is corrupted. + var hlthprop = cptpct * cpthlth; //Proportion of cells corrupted * health of a corrupted cell + if (hlthprop >= 1) //dont allow sub-1 numbers to make the number less enemyHealth *= hlthprop; - var cptatk = getCorruptScale("attack"); //get corrupted attack mod - var atkprop = cptpct * cptatk; //Proportion of cells corrupted * attack of a corrupted cell + var cptatk = getCorruptScale("attack"); //get corrupted attack mod + var atkprop = cptpct * cptatk; //Proportion of cells corrupted * attack of a corrupted cell if (atkprop >= 1) enemyDamage *= atkprop; //console.log("enemy dmg:" + enemyDamage + " enemy hp:" + enemyHealth + " base dmg: " + ourBaseDamage); } // enter farming if it takes over 4 hits in D stance (16) (and exit if under.) - if(!getPageSetting('DisableFarm')) { + if (!getPageSetting('DisableFarm')) { shouldFarm = enemyHealth > (ourBaseDamage * customVars.farmingCutoff); - if(game.options.menu.repeatUntil.enabled == 1) toggleSetting('repeatUntil'); //turn repeat forever on if farming is on. + if (game.options.menu.repeatUntil.enabled == 1) toggleSetting('repeatUntil'); //turn repeat forever on if farming is on. } //Lead specific farming calcuation section: - if((game.global.challengeActive == 'Lead' && !challSQ)) { + if ((game.global.challengeActive == 'Lead' && !challSQ)) { ourBaseDamage /= mapbonusmulti; - if (AutoStance<=1) + if (AutoStance <= 1) enemyDamage *= (1 + (game.challenges.Lead.stacks * 0.04)); enemyHealth *= (1 + (game.challenges.Lead.stacks * 0.04)); //if the zone is odd: (skip the +2 calc for the last level. - if (game.global.world % 2 == 1 && game.global.world != 179){ - //calculate for the next level in advance (since we only farm on odd, and evens are very tough) + if (game.global.world % 2 == 1 && game.global.world != 179) { + //calculate for the next level in advance (since we only farm on odd, and evens are very tough) if (AutoStance <= 1) { enemyDamage = getEnemyMaxAttack(game.global.world + 1, 99, 'Snimp', 1.2); enemyDamage = calcDailyAttackMod(enemyDamage); //daily mods: badStrength,badMapStrength,bloodthirst @@ -216,7 +218,7 @@ function autoMap() { ourBaseDamage *= mapbonusmulti; } //let people disable this if they want. - if(!getPageSetting('DisableFarm')) { + if (!getPageSetting('DisableFarm')) { shouldFarm = enemyHealth > (ourBaseDamage * customVars.LeadfarmingCutoff); } } @@ -224,37 +226,37 @@ function autoMap() { var pierceMod = (game.global.brokenPlanet && !game.global.mapsActive) ? getPierceAmt() : 0; const FORMATION_MOD_1 = game.upgrades.Dominance.done ? 2 : 1; //asks if we can survive x number of hits in either D stance or X stance. - enoughHealth = (baseHealth/FORMATION_MOD_1 > customVars.numHitsSurvived * (enemyDamage - baseBlock/FORMATION_MOD_1 > 0 ? enemyDamage - baseBlock/FORMATION_MOD_1 : enemyDamage * pierceMod)); + enoughHealth = (baseHealth / FORMATION_MOD_1 > customVars.numHitsSurvived * (enemyDamage - baseBlock / FORMATION_MOD_1 > 0 ? enemyDamage - baseBlock / FORMATION_MOD_1 : enemyDamage * pierceMod)); enoughDamage = (ourBaseDamage * customVars.enoughDamageCutoff > enemyHealth); //remove this in the meantime until it works for everyone. -/* if (!wantToScry) { - //enough health if we can survive 8 hits in D stance (health/2 and block/2) - enoughHealth = (baseHealth/2 > 8 * (enemyDamage - baseBlock/2 > 0 ? enemyDamage - baseBlock/2 : enemyDamage * pierceMod)); - //enough damage if we can one-shot the enemy in D (ourBaseDamage*4) - enoughDamage = (ourBaseDamage * 4) > enemyHealth; - scryerStuck = false; - } else { - //enough health if we can pass all the tests in autostance2 under the best of the worst conditions. - //enough damage if we can one-shot the enemy in S (ourBaseDamage/2) - var result = autoStanceCheck(true); - enoughHealth = result[0]; - enoughDamage = result[1]; - scryerStuck = !enoughHealth; - } */ + /* if (!wantToScry) { + //enough health if we can survive 8 hits in D stance (health/2 and block/2) + enoughHealth = (baseHealth/2 > 8 * (enemyDamage - baseBlock/2 > 0 ? enemyDamage - baseBlock/2 : enemyDamage * pierceMod)); + //enough damage if we can one-shot the enemy in D (ourBaseDamage*4) + enoughDamage = (ourBaseDamage * 4) > enemyHealth; + scryerStuck = false; + } else { + //enough health if we can pass all the tests in autostance2 under the best of the worst conditions. + //enough damage if we can one-shot the enemy in S (ourBaseDamage/2) + var result = autoStanceCheck(true); + enoughHealth = result[0]; + enoughDamage = result[1]; + scryerStuck = !enoughHealth; + } */ //Health:Damage ratio: (status) HDratio = enemyHealth / ourBaseDamage; - updateAutoMapsStatus(); //refresh the UI status (10x per second) + updateAutoMapsStatus(); //refresh the UI status (10x per second) -//BEGIN AUTOMAPS DECISIONS: + //BEGIN AUTOMAPS DECISIONS: //variables for doing maps var selectedMap = "world"; var shouldFarmLowerZone = false; shouldDoMaps = false; //prevents map-screen from flickering on and off during startup when base damage is 0. - if (ourBaseDamage > 0){ + if (ourBaseDamage > 0) { shouldDoMaps = !enoughDamage || shouldFarm || scryerStuck; } //Check our graph history and - Estimate = The zone should take around this long in milliseconds. @@ -274,24 +276,24 @@ function autoMap() { //FarmWhenNomStacks7 var restartVoidMap = false; - if(game.global.challengeActive == 'Nom' && getPageSetting('FarmWhenNomStacks7')) { + if (game.global.challengeActive == 'Nom' && getPageSetting('FarmWhenNomStacks7')) { //Get maxMapBonus (10) if we go above (7) stacks on Improbability (boss) - if (game.global.gridArray[99].nomStacks > customVars.NomFarmStacksCutoff[0]){ + if (game.global.gridArray[99].nomStacks > customVars.NomFarmStacksCutoff[0]) { if (game.global.mapBonus != customVars.maxMapBonus) shouldDoMaps = true; } //Go into maps on (30) stacks on Improbability (boss), farm until we fall under (10) H:D ratio - if (game.global.gridArray[99].nomStacks == customVars.NomFarmStacksCutoff[1]){ + if (game.global.gridArray[99].nomStacks == customVars.NomFarmStacksCutoff[1]) { shouldFarm = (HDratio > customVars.NomfarmingCutoff); shouldDoMaps = true; } //If we ever hit (100) nomstacks in the world, farm. - if(!game.global.mapsActive && game.global.gridArray[game.global.lastClearedCell + 1].nomStacks >= customVars.NomFarmStacksCutoff[2]) { + if (!game.global.mapsActive && game.global.gridArray[game.global.lastClearedCell + 1].nomStacks >= customVars.NomFarmStacksCutoff[2]) { shouldFarm = (HDratio > customVars.NomfarmingCutoff); shouldDoMaps = true; } //If we ever hit (100) nomstacks in a map (likely a voidmap), farm, (exit the voidmap and prevent void from running, until situation is clear) - if(game.global.mapsActive && game.global.mapGridArray[game.global.lastClearedMapCell + 1].nomStacks >= customVars.NomFarmStacksCutoff[2]) { + if (game.global.mapsActive && game.global.mapGridArray[game.global.lastClearedMapCell + 1].nomStacks >= customVars.NomFarmStacksCutoff[2]) { shouldFarm = (HDratio > customVars.NomfarmingCutoff); shouldDoMaps = true; restartVoidMap = true; @@ -306,14 +308,13 @@ function autoMap() { var prestigeitemsleft; if (game.global.mapsActive) { prestigeitemsleft = addSpecials(true, true, getCurrentMapObject()); - } - else if (lastMapWeWereIn) { + } else if (lastMapWeWereIn) { prestigeitemsleft = addSpecials(true, true, lastMapWeWereIn); } //check if we have unbought+available prestiges - var prestigeList = ['Dagadder','Megamace','Polierarm','Axeidic','Greatersword','Harmbalest']; + var prestigeList = ['Dagadder', 'Megamace', 'Polierarm', 'Axeidic', 'Greatersword', 'Harmbalest']; var numUnbought = 0; - for (var i=0,len=prestigeList.length; i < len; i++) { + for (var i = 0, len = prestigeList.length; i < len; i++) { var p = prestigeList[i]; if (game.upgrades[p].allowed - game.upgrades[p].done > 0) numUnbought++; @@ -327,24 +328,23 @@ function autoMap() { } //stack tox stacks if we are doing max tox, or if we need to clear our void maps - if(game.global.challengeActive == 'Toxicity' && game.global.lastClearedCell > 93 && game.challenges.Toxicity.stacks < 1500 && ((getPageSetting('MaxTox') && game.global.world > 59) || needToVoid)) { + if (game.global.challengeActive == 'Toxicity' && game.global.lastClearedCell > 93 && game.challenges.Toxicity.stacks < 1500 && ((getPageSetting('MaxTox') && game.global.world > 59) || needToVoid)) { shouldDoMaps = true; //we will get at least 85 toxstacks from the 1st voidmap (unless we have overkill) -// if (!game.portal.Overkill.locked && game.stats.cellsOverkilled.value) + // if (!game.portal.Overkill.locked && game.stats.cellsOverkilled.value) stackingTox = !(needToVoid && game.challenges.Toxicity.stacks > 1415); //force abandon army - if(!game.global.mapsActive && !game.global.preMapsActive) { + if (!game.global.mapsActive && !game.global.preMapsActive) { mapsClicked(); mapsClicked(); } - } - else stackingTox = false; + } else stackingTox = false; //during 'watch' challenge, run maps on these levels: var watchmaps = customVars.watchChallengeMaps; var shouldDoWatchMaps = false; - if (game.global.challengeActive == 'Watch' && watchmaps.indexOf(game.global.world) > -1 && game.global.mapBonus < 1){ + if (game.global.challengeActive == 'Watch' && watchmaps.indexOf(game.global.world) > -1 && game.global.mapBonus < 1) { shouldDoMaps = true; shouldDoWatchMaps = true; } @@ -361,8 +361,8 @@ function autoMap() { // but not when 3A. home detector is purchased, or 3B. we don't need nurseries if (game.buildings.Nursery.locked && game.talents.blacksmith.purchased && !(game.talents.housing.purchased || (getPageSetting('PreSpireNurseries') < 0 ? - !(getPageSetting('MaxNursery') && game.global.world >= getPageSetting('NoNurseriesUntil')) : - !getPageSetting('PreSpireNurseries'))) && game.global.world >= customVars.NurseryMapLevel) { + !(getPageSetting('MaxNursery') && game.global.world >= getPageSetting('NoNurseriesUntil')) : + !getPageSetting('PreSpireNurseries'))) && game.global.world >= customVars.NurseryMapLevel) { shouldDoMaps = true; shouldDoWatchMaps = true; //TODO coding: this is overloaded - not ideal. } @@ -381,18 +381,18 @@ function autoMap() { //Lower Farming Zone = Lowers the zone used during Farming mode. Starts 10 zones below current and Finds the minimum map level you can successfully one-shot var siphlvl = shouldFarmLowerZone ? game.global.world - 10 : game.global.world - game.portal.Siphonology.level; var maxlvl = game.talents.mapLoot.purchased ? game.global.world - 1 : game.global.world; - maxlvl += extraMapLevels; // extraMapLevels : advanced slider - if (getPageSetting('DynamicSiphonology') || shouldFarmLowerZone){ + maxlvl += extraMapLevels; // extraMapLevels : advanced slider + if (getPageSetting('DynamicSiphonology') || shouldFarmLowerZone) { for (siphlvl; siphlvl < maxlvl; siphlvl++) { //check HP vs damage and find how many siphonology levels we need. - var maphp = getEnemyMaxHealth(siphlvl) * 1.1; // 1.1 mod is for all maps (taken out of the function) - var cpthlth = getCorruptScale("health")/2; //get corrupted health mod + var maphp = getEnemyMaxHealth(siphlvl) * 1.1; // 1.1 mod is for all maps (taken out of the function) + var cpthlth = getCorruptScale("health") / 2; //get corrupted health mod if (mutations.Magma.active()) maphp *= cpthlth; - var mapdmg = ourBaseDamage2 * (game.unlocks.imps.Titimp ? 2 : 1); // *2 for titimp. (ourBaseDamage2 has no mapbonus in it) + var mapdmg = ourBaseDamage2 * (game.unlocks.imps.Titimp ? 2 : 1); // *2 for titimp. (ourBaseDamage2 has no mapbonus in it) if (game.upgrades.Dominance.done && !getPageSetting('ScryerUseinMaps2')) - mapdmg*=4; //dominance stance and not-scryer stance in maps. - if (mapdmg < maphp){ + mapdmg *= 4; //dominance stance and not-scryer stance in maps. + if (mapdmg < maphp) { break; } } @@ -403,7 +403,7 @@ function autoMap() { if (!game.global.mapsOwnedArray[map].noRecycle) { obj[map] = game.global.mapsOwnedArray[map].level; //Get matching map for our siphonology level - if(game.global.mapsOwnedArray[map].level == siphlvl) + if (game.global.mapsOwnedArray[map].level == siphlvl) siphonMap = map; } } @@ -419,86 +419,96 @@ function autoMap() { selectedMap = "create"; //Look through all the maps we have and figure out, find and Run Uniques if we need to - var runUniques = (getPageSetting('AutoMaps')==1); + var runUniques = (getPageSetting('AutoMaps') == 1); if (runUniques) { - for (var map in game.global.mapsOwnedArray) { - var theMap = game.global.mapsOwnedArray[map]; - if (theMap.noRecycle) { - if (theMap.name == 'The Wall' && game.upgrades.Bounty.allowed == 0 && !game.talents.bounty.purchased) { - var theMapDifficulty = Math.ceil(theMap.difficulty / 2); - if(game.global.world < 15 + theMapDifficulty) continue; - selectedMap = theMap.id; - break; - } - if (theMap.name == 'Dimension of Anger' && document.getElementById("portalBtn").style.display == "none" && !game.talents.portal.purchased) { - var theMapDifficulty = Math.ceil(theMap.difficulty / 2); - if(game.global.world < 20 + theMapDifficulty) continue; - selectedMap = theMap.id; - break; - } - var dont = game.global.runningChallengeSquared; - if(theMap.name == 'The Block' && !game.upgrades.Shieldblock.allowed && ((game.global.challengeActive == "Scientist" || game.global.challengeActive == "Trimp") && !dont || getPageSetting('BuyShieldblock'))) { - var theMapDifficulty = Math.ceil(theMap.difficulty / 2); - if(game.global.world < 11 + theMapDifficulty) continue; - selectedMap = theMap.id; - break; - } - var treasure = getPageSetting('TrimpleZ'); - if (theMap.name == 'Trimple Of Doom' && (!dont && (game.global.challengeActive == "Meditate" || game.global.challengeActive == "Trapper") && game.mapUnlocks.AncientTreasure.canRunOnce && game.global.world >= treasure)) { - var theMapDifficulty = Math.ceil(theMap.difficulty / 2); - if ((game.global.world < 33 + theMapDifficulty) || treasure > -33 && treasure < 33) continue; - selectedMap = theMap.id; - if (treasure < 0) // need to reset - setPageSetting('TrimpleZ', 0); - break; - } - if (!dont) { - //run the prison only if we are 'cleared' to run level 80 + 1 level per 200% difficulty. Could do more accurate calc if needed - if(theMap.name == 'The Prison' && (game.global.challengeActive == "Electricity" || game.global.challengeActive == "Mapocalypse")) { - var theMapDifficulty = Math.ceil(theMap.difficulty / 2); - if(game.global.world < 80 + theMapDifficulty) continue; - selectedMap = theMap.id; - break; - } - if(theMap.name == 'Bionic Wonderland' && game.global.challengeActive == "Crushed" ) { - var theMapDifficulty = Math.ceil(theMap.difficulty / 2); - if(game.global.world < 125 + theMapDifficulty) continue; - selectedMap = theMap.id; - break; - } - } - //Bionic Before Spire - mandates preReq of UniqueMaps. run Bionics before spire to farm. - if (getPageSetting('RunBionicBeforeSpire') && (game.global.world == 200) && theMap.name.includes('Bionic Wonderland')){ - //this is how to check if a bionic is green or not. - var bionicnumber = 1 + ((theMap.level - 125) / 15); - //if numbers match, map is green, so run it. (do the pre-requisite bionics one at a time in order) - if (bionicnumber == game.global.bionicOwned && bionicnumber < 6){ - selectedMap = theMap.id; - break; - } - if (shouldDoSpireMaps && theMap.name == 'Bionic Wonderland VI'){ - selectedMap = theMap.id; - break; - } - } //TODO Spire II+?? - //other unique maps here - } - } + for (var map in game.global.mapsOwnedArray) { + var theMap = game.global.mapsOwnedArray[map]; + if (theMap.noRecycle) { + if (theMap.name == 'The Wall' && game.upgrades.Bounty.allowed == 0 && !game.talents.bounty.purchased) { + var theMapDifficulty = Math.ceil(theMap.difficulty / 2); + if (game.global.world < 15 + theMapDifficulty) continue; + selectedMap = theMap.id; + break; + } + if (theMap.name == 'Dimension of Anger' && document.getElementById("portalBtn").style.display == "none" && !game.talents.portal.purchased) { + var theMapDifficulty = Math.ceil(theMap.difficulty / 2); + if (game.global.world < 20 + theMapDifficulty) continue; + selectedMap = theMap.id; + break; + } + var dont = game.global.runningChallengeSquared; + if (theMap.name == 'The Block' && !game.upgrades.Shieldblock.allowed && ((game.global.challengeActive == "Scientist" || game.global.challengeActive == "Trimp") && !dont || getPageSetting('BuyShieldblock'))) { + var theMapDifficulty = Math.ceil(theMap.difficulty / 2); + if (game.global.world < 11 + theMapDifficulty) continue; + selectedMap = theMap.id; + break; + } + var treasure = getPageSetting('TrimpleZ'); + if (theMap.name == 'Trimple Of Doom' && (!dont && (game.global.challengeActive == "Meditate" || game.global.challengeActive == "Trapper") && game.mapUnlocks.AncientTreasure.canRunOnce && game.global.world >= treasure)) { + var theMapDifficulty = Math.ceil(theMap.difficulty / 2); + if ((game.global.world < 33 + theMapDifficulty) || treasure > -33 && treasure < 33) continue; + selectedMap = theMap.id; + if (treasure < 0) // need to reset + setPageSetting('TrimpleZ', 0); + break; + } + if (!dont) { + //run the prison only if we are 'cleared' to run level 80 + 1 level per 200% difficulty. Could do more accurate calc if needed + if (theMap.name == 'The Prison' && (game.global.challengeActive == "Electricity" || game.global.challengeActive == "Mapocalypse")) { + var theMapDifficulty = Math.ceil(theMap.difficulty / 2); + if (game.global.world < 80 + theMapDifficulty) continue; + selectedMap = theMap.id; + break; + } + if (theMap.name == 'Bionic Wonderland' && game.global.challengeActive == "Crushed") { + var theMapDifficulty = Math.ceil(theMap.difficulty / 2); + if (game.global.world < 125 + theMapDifficulty) continue; + selectedMap = theMap.id; + break; + } + } + //Bionic Before Spire - mandates preReq of UniqueMaps. run Bionics before spire to farm. + if (getPageSetting('RunBionicBeforeSpire') && (game.global.world == 200) && theMap.name.includes('Bionic Wonderland')) { + //this is how to check if a bionic is green or not. + var bionicnumber = 1 + ((theMap.level - 125) / 15); + //if numbers match, map is green, so run it. (do the pre-requisite bionics one at a time in order) + if (bionicnumber == game.global.bionicOwned && bionicnumber < 6) { + selectedMap = theMap.id; + break; + } + if (shouldDoSpireMaps && theMap.name == 'Bionic Wonderland VI') { + selectedMap = theMap.id; + break; + } + } //TODO Spire II+?? + //other unique maps here + } + } } -//VOIDMAPS: + //VOIDMAPS: //Only proceed if we needToVoid right now. if (needToVoid) { //voidArray: make an array with all our voidmaps, so we can sort them by real-world difficulty level var voidArray = []; //values are easiest to hardest. (hardest has the highest value) - var prefixlist = {'Deadly':10, 'Heinous':11, 'Poisonous':20, 'Destructive':30}; + var prefixlist = { + 'Deadly': 10, + 'Heinous': 11, + 'Poisonous': 20, + 'Destructive': 30 + }; var prefixkeys = Object.keys(prefixlist); - var suffixlist = {'Descent':7.077, 'Void':8.822, 'Nightmare':9.436, 'Pit':10.6}; + var suffixlist = { + 'Descent': 7.077, + 'Void': 8.822, + 'Nightmare': 9.436, + 'Pit': 10.6 + }; var suffixkeys = Object.keys(suffixlist); for (var map in game.global.mapsOwnedArray) { var theMap = game.global.mapsOwnedArray[map]; - if(theMap.location == 'Void') { + if (theMap.location == 'Void') { for (var pre in prefixkeys) { if (theMap.name.includes(prefixkeys[pre])) theMap.sortByDiff = 1 * prefixlist[prefixkeys[pre]]; @@ -517,7 +527,7 @@ function autoMap() { for (var map in voidArraySorted) { var theMap = voidArraySorted[map]; //if we are on toxicity, don't clear until we will have max stacks at the last cell. - if(game.global.challengeActive == 'Toxicity' && game.challenges.Toxicity.stacks < (1500 - theMap.size)) break; + if (game.global.challengeActive == 'Toxicity' && game.challenges.Toxicity.stacks < (1500 - theMap.size)) break; doVoids = true; //check to make sure we won't get 1-shot in nostance by boss var eAttack = getEnemyMaxAttack(game.global.world, theMap.size, 'Voidsnimp', theMap.difficulty); @@ -526,44 +536,43 @@ function autoMap() { //TODO: Account for magmated voidmaps. (not /2) //TODO: Account for daily. var ourHealth = baseHealth; - if(game.global.challengeActive == 'Balance') { + if (game.global.challengeActive == 'Balance') { var stacks = game.challenges.Balance.balanceStacks ? (game.challenges.Balance.balanceStacks > theMap.size) ? theMap.size : game.challenges.Balance.balanceStacks : false; eAttack *= 2; - if(stacks) { - for (i = 0; i < stacks; i++ ) { + if (stacks) { + for (i = 0; i < stacks; i++) { ourHealth *= 1.01; } } } - if(game.global.challengeActive == 'Toxicity') eAttack *= 5; + if (game.global.challengeActive == 'Toxicity') eAttack *= 5; //break to prevent finishing map to finish a challenge? //continue to check for doable map? var diff = parseInt(getPageSetting('VoidCheck')) > 0 ? parseInt(getPageSetting('VoidCheck')) : 2; - var ourBlock = getBattleStats("block", true); //use block tooltip (after death block) instead of current army block. - if(ourHealth/diff < eAttack - ourBlock) { + var ourBlock = getBattleStats("block", true); //use block tooltip (after death block) instead of current army block. + if (ourHealth / diff < eAttack - ourBlock) { shouldFarm = true; - voidCheckPercent = Math.round((ourHealth/diff)/(eAttack-ourBlock)*100); - abandonVoidMap(); //exit/restart if below <95% health, we have ForceAbandon on, and its not due to randomly losing anti stacks + voidCheckPercent = Math.round((ourHealth / diff) / (eAttack - ourBlock) * 100); + abandonVoidMap(); //exit/restart if below <95% health, we have ForceAbandon on, and its not due to randomly losing anti stacks break; - } - else { + } else { voidCheckPercent = 0; - if(getPageSetting('DisableFarm')) + if (getPageSetting('DisableFarm')) shouldFarm = shouldFarm || false; } //only go into the voidmap if we need to. if (!restartVoidMap) selectedMap = theMap.id; //Restart the voidmap if we hit (100) nomstacks on the final boss - if(game.global.mapsActive && getCurrentMapObject().location == "Void" && game.global.challengeActive == "Nom" && getPageSetting('FarmWhenNomStacks7')) { - if(game.global.mapGridArray[theMap.size-1].nomStacks >= customVars.NomFarmStacksCutoff[2]) { + if (game.global.mapsActive && getCurrentMapObject().location == "Void" && game.global.challengeActive == "Nom" && getPageSetting('FarmWhenNomStacks7')) { + if (game.global.mapGridArray[theMap.size - 1].nomStacks >= customVars.NomFarmStacksCutoff[2]) { mapsClicked(true); } } break; } } -//MAPS CREATION pt1: + //MAPS CREATION pt1: //map if we don't have health/dmg or we need to clear void maps or if we are prestige mapping, and our set item has a new prestige available if (shouldDoMaps || doVoids || needPrestige) { //selectedMap = world here if we haven't set it to create yet, meaning we found appropriate high level map, or siphon map @@ -575,13 +584,13 @@ function autoMap() { selectedMap = game.global.mapsOwnedArray[highestMap].id; else selectedMap = "create"; - //if needPrestige, TRY to find current level map as the highest level map we own. + //if needPrestige, TRY to find current level map as the highest level map we own. } else if (needPrestige || (extraMapLevels > 0)) { if ((game.global.world + extraMapLevels) == game.global.mapsOwnedArray[highestMap].level) selectedMap = game.global.mapsOwnedArray[highestMap].id; else selectedMap = "create"; - //if shouldFarm is true, use a siphonology adjusted map, as long as we aren't trying to prestige + //if shouldFarm is true, use a siphonology adjusted map, as long as we aren't trying to prestige } else if (siphonMap != -1) selectedMap = game.global.mapsOwnedArray[siphonMap].id; //if we dont' have an appropriate max level map, or a siphon map, we need to make one @@ -590,21 +599,21 @@ function autoMap() { } //if selectedMap != world, it already has a map ID and will be run below } -//LEAD EVEN ZONE EXIT + //LEAD EVEN ZONE EXIT //don't map on even worlds if on Lead Challenge, except if person is dumb and wants to void on even - if((game.global.challengeActive == 'Lead' && !challSQ) && !doVoids && (game.global.world % 2 == 0 || game.global.lastClearedCell < customVars.shouldFarmCell)) { - if(game.global.preMapsActive) + if ((game.global.challengeActive == 'Lead' && !challSQ) && !doVoids && (game.global.world % 2 == 0 || game.global.lastClearedCell < customVars.shouldFarmCell)) { + if (game.global.preMapsActive) mapsClicked(); return; //exit } -//REPEAT BUTTON: + //REPEAT BUTTON: //Repeat Button Management (inside a map): if (!game.global.preMapsActive && game.global.mapsActive) { //Set the repeatBionics flag (farm bionics before spire), for the repeat button management code. var repeatBionics = getPageSetting('RunBionicBeforeSpire') && game.global.bionicOwned >= 6; //if we are doing the right map, and it's not a norecycle (unique) map, and we aren't going to hit max map bonus //or repeatbionics is true and there are still prestige items available to get - var doDefaultMapBonus = game.global.mapBonus < customVars.maxMapBonus-1; + var doDefaultMapBonus = game.global.mapBonus < customVars.maxMapBonus - 1; if (selectedMap == game.global.currentMapId && (!getCurrentMapObject().noRecycle && (doDefaultMapBonus || vanillaMapatZone || doMaxMapBonus || shouldFarm || stackingTox || needPrestige || shouldDoSpireMaps) || repeatBionics)) { var targetPrestige = autoTrimpSettings.Prestige.selected; //make sure repeat map is on @@ -612,11 +621,11 @@ function autoMap() { repeatClicked(); } //if we aren't here for dmg/hp, and we see the prestige we are after on the last cell of this map, and it's the last one available, turn off repeat to avoid an extra map cycle - if (!shouldDoMaps && (game.global.mapGridArray[game.global.mapGridArray.length - 1].special == targetPrestige && game.mapUnlocks[targetPrestige].last >= (game.global.world+extraMapLevels - 9 ))) { + if (!shouldDoMaps && (game.global.mapGridArray[game.global.mapGridArray.length - 1].special == targetPrestige && game.mapUnlocks[targetPrestige].last >= (game.global.world + extraMapLevels - 9))) { repeatClicked(); } //avoid another map cycle due to having the amount of tox stacks we need. - if (stackingTox && (game.challenges.Toxicity.stacks + game.global.mapGridArray.length - (game.global.lastClearedMapCell + 1) >= 1500)){ + if (stackingTox && (game.challenges.Toxicity.stacks + game.global.mapGridArray.length - (game.global.lastClearedMapCell + 1) >= 1500)) { repeatClicked(); } //turn off repeat maps if we doing Watch maps. @@ -641,31 +650,30 @@ function autoMap() { mapsClicked(true); } } -//FORCE EXIT WORLD->MAPS - //clicks the maps button, once or twice (inside the world): + //FORCE EXIT WORLD->MAPS + //clicks the maps button, once or twice (inside the world): } else if (!game.global.preMapsActive && !game.global.mapsActive) { if (selectedMap != "world") { //if we should not be in the world, and the button is not already clicked, click map button once (and wait patiently until death) - if (!game.global.switchToMaps){ + if (!game.global.switchToMaps) { mapsClicked(); } //Get Impatient/Abandon if: (need prestige / _NEED_ to do void maps / on lead in odd world.) AND (a new army is ready, OR _need_ to void map OR lead farming and we're almost done with the zone) (handle shouldDoWatchMaps elsewhere below) if ((!getPageSetting('PowerSaving') || (getPageSetting('PowerSaving') == 2) && doVoids) && game.global.switchToMaps && !shouldDoWatchMaps && (needPrestige || doVoids || - ((game.global.challengeActive == 'Lead' && !challSQ) && game.global.world % 2 == 1) || - (!enoughDamage && enoughHealth && game.global.lastClearedCell < 9) || - (shouldFarm && game.global.lastClearedCell >= customVars.shouldFarmCell) || - (scryerStuck)) - && - ( - (game.resources.trimps.realMax() <= game.resources.trimps.owned + 1) - || ((game.global.challengeActive == 'Lead' && !challSQ) && game.global.lastClearedCell > 93) - || (doVoids && game.global.lastClearedCell > 93) - ) - ){ + ((game.global.challengeActive == 'Lead' && !challSQ) && game.global.world % 2 == 1) || + (!enoughDamage && enoughHealth && game.global.lastClearedCell < 9) || + (shouldFarm && game.global.lastClearedCell >= customVars.shouldFarmCell) || + (scryerStuck)) && + ( + (game.resources.trimps.realMax() <= game.resources.trimps.owned + 1) || + ((game.global.challengeActive == 'Lead' && !challSQ) && game.global.lastClearedCell > 93) || + (doVoids && game.global.lastClearedCell > 93) + ) + ) { //output stuck message if (scryerStuck) { - debug("Got perma-stuck on cell " + (game.global.lastClearedCell+2) + " during scryer stance. Are your scryer settings correct? Entering map to farm to fix it."); + debug("Got perma-stuck on cell " + (game.global.lastClearedCell + 2) + " during scryer stance. Are your scryer settings correct? Entering map to farm to fix it."); } mapsClicked(); } @@ -674,19 +682,18 @@ function autoMap() { if (shouldDoWatchMaps) { mapsClicked(); } -//MAPS CREATION pt2: + //MAPS CREATION pt2: } else if (game.global.preMapsActive) { if (selectedMap == "world") { - mapsClicked(); //go back - } - else if (selectedMap == "create") { + mapsClicked(); //go back + } else if (selectedMap == "create") { var $mapLevelInput = document.getElementById("mapLevelInput"); $mapLevelInput.value = needPrestige ? game.global.world : siphlvl; //choose spire level 199 or 200 if (preSpireFarming && MODULES["maps"].SpireFarm199Maps) $mapLevelInput.value = game.talents.mapLoot.purchased ? game.global.world - 1 : game.global.world; - var decrement; //['size','diff','loot'] - var tier; //taken from MODULES vars at the top of this file. + var decrement; //['size','diff','loot'] + var tier; //taken from MODULES vars at the top of this file. //instead of normal map locations, use Plentiful (Gardens) if the Decay challenge has been completed. (for +25% better loot) var useGardens = (customVars.preferGardens && game.global.decayDone); if (game.global.world >= customVars.MapTierZone[0]) { @@ -704,7 +711,7 @@ function autoMap() { } else { //Zone 6-16 (old: 9/0/0 Random): tier = customVars.MapTier3Sliders; - decrement = ['diff','loot']; + decrement = ['diff', 'loot']; } //NEW: start all maps off on 9/9/9 sliders and decrement from there. sizeAdvMapsRange.value = tier[0]; @@ -717,7 +724,7 @@ function autoMap() { //recalculate cost. updateMapCost(); //if we are "Farming" for resources, make sure it's Plentiful OR metal (and always aim for lowest difficulty) - if(shouldFarm || !enoughDamage || !enoughHealth || game.global.challengeActive == 'Metal') { + if (shouldFarm || !enoughDamage || !enoughHealth || game.global.challengeActive == 'Metal') { biomeAdvMapsSelect.value = useGardens ? "Plentiful" : "Mountain"; updateMapCost(); } @@ -727,7 +734,7 @@ function autoMap() { if (shouldFarm) decrement.push('size'); } - //Decrement 1 - use priorities first: + //Decrement 1 - use priorities first: //if we STILL cant afford the map, lower the loot slider (less loot) while (decrement.indexOf('loot') > -1 && lootAdvMapsRange.value > 0 && updateMapCost(true) > game.resources.fragments.owned) { lootAdvMapsRange.value -= 1; @@ -742,7 +749,7 @@ function autoMap() { while (decrement.indexOf('size') > -1 && sizeAdvMapsRange.value > 0 && updateMapCost(true) > game.resources.fragments.owned) { sizeAdvMapsRange.value -= 1; } - //Decrement 2 - if its still too expensive: + //Decrement 2 - if its still too expensive: //if we STILL cant afford the map, lower the loot slider (less loot) while (lootAdvMapsRange.value > 0 && updateMapCost(true) > game.resources.fragments.owned) { lootAdvMapsRange.value -= 1; @@ -758,31 +765,31 @@ function autoMap() { sizeAdvMapsRange.value -= 1; } - //run the Advanced Special Modifier script, bring + //run the Advanced Special Modifier script, bring if (getPageSetting('AdvMapSpecialModifier')) testMapSpecialModController(); - //if we can't afford the map we designed, pick our highest existing map - //TODO Debug Output the mods we made. + //if we can't afford the map we designed, pick our highest existing map + //TODO Debug Output the mods we made. var maplvlpicked = parseInt($mapLevelInput.value) + (getPageSetting('AdvMapSpecialModifier') ? getExtraMapLevels() : 0); if (updateMapCost(true) > game.resources.fragments.owned) { selectMap(game.global.mapsOwnedArray[highestMap].id); - debug("Can't afford the map we designed, #" + maplvlpicked , "maps", '*crying2'); + debug("Can't afford the map we designed, #" + maplvlpicked, "maps", '*crying2'); debug("...selected our highest map instead # " + game.global.mapsOwnedArray[highestMap].id + " Level: " + game.global.mapsOwnedArray[highestMap].level, "maps", '*happy2'); runMap(); lastMapWeWereIn = getCurrentMapObject(); - //if we can afford it, buy it and run it: + //if we can afford it, buy it and run it: } else { debug("Buying a Map, level: #" + maplvlpicked, "maps", 'th-large'); var result = buyMap(); - if(result == -2){ + if (result == -2) { debug("Too many maps, recycling now: ", "maps", 'th-large'); recycleBelow(true); debug("Retrying, Buying a Map, level: #" + maplvlpicked, "maps", 'th-large'); buyMap(); } } - //if we already have a map picked, run it + //if we already have a map picked, run it } else { selectMap(selectedMap); var themapobj = game.global.mapsOwnedArray[getMapIndex(selectedMap)]; @@ -800,17 +807,16 @@ function updateAutoMapsStatus(get) { //automaps status var status; var minSp = getPageSetting('MinutestoFarmBeforeSpire'); - if(getPageSetting('AutoMaps') == 0) status = 'Off'; + if (getPageSetting('AutoMaps') == 0) status = 'Off'; else if (game.global.challengeActive == "Mapology" && game.challenges.Mapology.credits < 1) status = 'Out of Map Credits'; else if (preSpireFarming) { - var secs = Math.floor(60 - (spireTime*60)%60).toFixed(0) + var secs = Math.floor(60 - (spireTime * 60) % 60).toFixed(0) var mins = Math.floor(minSp - spireTime).toFixed(0); var hours = minSp - (spireTime / 60).toFixed(2); - var spiretimeStr = (spireTime>=60) ? - (hours + 'h') : (mins + 'm:' + (secs>=10 ? secs : ('0'+secs)) + 's'); + var spiretimeStr = (spireTime >= 60) ? + (hours + 'h') : (mins + 'm:' + (secs >= 10 ? secs : ('0' + secs)) + 's'); status = 'Farming for Spire ' + spiretimeStr + ' left'; - } - else if (spireMapBonusFarming) status = 'Getting Spire Map Bonus'; + } else if (spireMapBonusFarming) status = 'Getting Spire Map Bonus'; else if (doMaxMapBonus) status = 'Max Map Bonus After Zone'; else if (!game.global.mapsUnlocked) status = ' '; else if (needPrestige && !doVoids) status = 'Prestige'; @@ -829,12 +835,12 @@ function updateAutoMapsStatus(get) { status += '
Prestige Skipped'; //hider he/hr% status - var getPercent = (game.stats.heliumHour.value() / (game.global.totalHeliumEarned - (game.global.heliumLeftover + game.resources.helium.owned)))*100; - var lifetime = (game.resources.helium.owned / (game.global.totalHeliumEarned-game.resources.helium.owned))*100; - var hiderStatus = 'He/hr: ' + getPercent.toFixed(3) + '%
   He: ' + lifetime.toFixed(3) +'%'; + var getPercent = (game.stats.heliumHour.value() / (game.global.totalHeliumEarned - (game.global.heliumLeftover + game.resources.helium.owned))) * 100; + var lifetime = (game.resources.helium.owned / (game.global.totalHeliumEarned - game.resources.helium.owned)) * 100; + var hiderStatus = 'He/hr: ' + getPercent.toFixed(3) + '%
   He: ' + lifetime.toFixed(3) + '%'; if (get) { - return [status,getPercent,lifetime]; + return [status, getPercent, lifetime]; } else { document.getElementById('autoMapStatus').innerHTML = status; document.getElementById('hiderStatus').innerHTML = hiderStatus; @@ -854,12 +860,13 @@ function updateAutoMapsStatus(get) { //Automaps: Map Special Modifier Selector Decider Magical Action Taker //TODO: a priority list? Which is more important, perfect slide, LMC or the +x value? -MODULES["maps"].advSpecialMapMod_numZones = 3; //The default amount of +x zones you try to skip and work backwards from there. (if its too hard you will fail the map there is no dmg check only cost yet) +MODULES["maps"].advSpecialMapMod_numZones = 3; //The default amount of +x zones you try to skip and work backwards from there. (if its too hard you will fail the map there is no dmg check only cost yet) var advExtraMapLevels = 0; + function testMapSpecialModController() { //var mapSpecialMods = ["Fast Attacks", "Large Cache", "Small Savory Cache", "Small Wooden Cache", "Small Metal Cache", "Prestigious", "Huge Cache", "Large Savory Cache", "Large Wooden Cache", "Large Metal Cache"]; - var mapSpecialMods=[]; - Object.keys(mapSpecialModifierConfig).forEach(function(key){ + var mapSpecialMods = []; + Object.keys(mapSpecialModifierConfig).forEach(function(key) { var elem = mapSpecialModifierConfig[key]; if ((game.global.highestLevelCleared + 1) >= elem.unlocksAt) mapSpecialMods.push(elem.name); @@ -873,36 +880,36 @@ function testMapSpecialModController() { return; if (game.global.highestLevelCleared >= 59) { if (needPrestige) - maxIndex=6; + maxIndex = 6; //Set the special mod to some max. $advSpecialMod.selectedIndex = maxIndex; if ($advSpecialMod.selectedIndex == 0) return; //Check Hyperspeed 2 or Fast Attacks if (!needPrestige && game.talents.hyperspeed2.purchased && (game.global.world > Math.floor((game.global.highestLevelCleared + 1) * 0.5))) - $advSpecialMod.selectedIndex=1; + $advSpecialMod.selectedIndex = 1; else if (needPrestige) - $advSpecialMod.selectedIndex=0; - if (game.global.mapExtraBonus != "fa" && $advSpecialMod.selectedIndex==1) ; + $advSpecialMod.selectedIndex = 0; + if (game.global.mapExtraBonus != "fa" && $advSpecialMod.selectedIndex == 1); //map frag cost is stored in: document.getElementById("mapCostFragmentCost").innerHTML var mc = updateMapCost(true); var my = game.resources.fragments.owned; - var pct = mc/my*100; + var pct = mc / my * 100; while ($advSpecialMod.selectedIndex > 0 && mc > my) { $advSpecialMod.selectedIndex -= 1; } var mc = updateMapCost(true); var my = game.resources.fragments.owned; - var pct = mc/my*100; + var pct = mc / my * 100; if ($advSpecialMod.value != "0") //if its 0 it fails { console.log("Set the map special modifier to: " + mapSpecialModifierConfig[$advSpecialMod.value].name + ". Cost: " + pct.toFixed(2) + "% of your fragments."); } //TODO: - var specialMod = getSpecialModifierSetting(); //either 0 or the abbreviation/property of mapSpecialModifierConfig - var perfectAllowed = (game.global.highestLevelCleared >= 109); //levels are 109 and 209 for Perfect sliders and Extra Levels - var perfectChecked = checkPerfectChecked(); //Perfect Checkboxes + var specialMod = getSpecialModifierSetting(); //either 0 or the abbreviation/property of mapSpecialModifierConfig + var perfectAllowed = (game.global.highestLevelCleared >= 109); //levels are 109 and 209 for Perfect sliders and Extra Levels + var perfectChecked = checkPerfectChecked(); //Perfect Checkboxes var $advPerfect = document.getElementById('advPerfectCheckbox'); - var extraMapLevels = getPageSetting('AdvMapSpecialModifier') ? getExtraMapLevels() : 0; //Extra Levels + var extraMapLevels = getPageSetting('AdvMapSpecialModifier') ? getExtraMapLevels() : 0; //Extra Levels //Set the extra level to max ( 3 ) var extraAllowed = (game.global.highestLevelCleared >= 209); @@ -912,7 +919,7 @@ function testMapSpecialModController() { return; var maplvlpicked = document.getElementById("mapLevelInput").value; if (maplvlpicked == game.global.world) //then the +x zones dropdown is open. - $advExtraLevel.selectedIndex=MODULES["maps"].advSpecialMapMod_numZones; + $advExtraLevel.selectedIndex = MODULES["maps"].advSpecialMapMod_numZones; else $advExtraLevel.selectedIndex = 0; while ($advExtraLevel.selectedIndex > 0 && (updateMapCost(true) > game.resources.fragments.owned)) { @@ -924,7 +931,7 @@ function testMapSpecialModController() { function mapTimeEstimater() { //Check our graph history and - Estimate = The zone should take around this long in milliseconds. var thiszone = lookUpZoneData(game.global.world); - var lastzone = lookUpZoneData(game.global.world-1); + var lastzone = lookUpZoneData(game.global.world - 1); if (thiszone && lastzone) mapTimeEstimate = thiszone.currentTime - lastzone.currentTime; else From 84032592af661936953a7fb114a5042af4c52fdb Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Thu, 7 Jun 2018 22:07:01 +0100 Subject: [PATCH 313/365] Update other.js --- modules/other.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/other.js b/modules/other.js index 3c6fd9a79..37c7eb353 100644 --- a/modules/other.js +++ b/modules/other.js @@ -170,7 +170,7 @@ function findLastBionic() { function Praiding() { if (game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { prestraidon = true; - if (getPageSetting('AutoMaps') == 1 && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { + if (getPageSetting('AutoMaps') == 1 && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { autoTrimpSettings["AutoMaps"].value = 0; } debug("Beginning Prestige Raiding..."); @@ -182,11 +182,11 @@ function Praiding() { } if (game.global.world == getPageSetting('Praidingzone') && game.global.preMapsActive && !prestraid && !failpraid) { plusPres(); - if (buyMap() > 0) { + if (updateMapCost(true) => game.resources.fragments.owned) { buyMap(); failpraid = false; } - else if (buyMap() < 0) { + else if (updateMapCost(true) < game.resources.fragments.owned) { if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { autoTrimpSettings["AutoMaps"].value = 1; failpraid = true; From 17fd6eeb8b7ec056160d3f965928d4ce968d9c6f Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Thu, 7 Jun 2018 22:10:24 +0100 Subject: [PATCH 314/365] Update other.js --- modules/other.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index 37c7eb353..3596b4b6b 100644 --- a/modules/other.js +++ b/modules/other.js @@ -182,11 +182,11 @@ function Praiding() { } if (game.global.world == getPageSetting('Praidingzone') && game.global.preMapsActive && !prestraid && !failpraid) { plusPres(); - if (updateMapCost(true) => game.resources.fragments.owned) { + if (updateMapCost >= game.resources.fragments.owned) { buyMap(); failpraid = false; } - else if (updateMapCost(true) < game.resources.fragments.owned) { + else if (updateMapCost < game.resources.fragments.owned) { if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { autoTrimpSettings["AutoMaps"].value = 1; failpraid = true; From a5af59c46c2cc4a9d0c0e0776da609d37633620e Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Thu, 7 Jun 2018 22:19:32 +0100 Subject: [PATCH 315/365] Update other.js --- modules/other.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index 3596b4b6b..d39b52372 100644 --- a/modules/other.js +++ b/modules/other.js @@ -6,6 +6,7 @@ var bwraided = false; var failbwraid = false; var perked = false; var prestraidon = false; +var cost = updateMapCost(true); //Activate Robo Trimp (will activate on the first zone after liquification) function autoRoboTrimp() { //exit if the cooldown is active, or we havent unlocked robotrimp. @@ -182,11 +183,11 @@ function Praiding() { } if (game.global.world == getPageSetting('Praidingzone') && game.global.preMapsActive && !prestraid && !failpraid) { plusPres(); - if (updateMapCost >= game.resources.fragments.owned) { + if (cost >= game.resources.fragments.owned) { buyMap(); failpraid = false; } - else if (updateMapCost < game.resources.fragments.owned) { + else if (cost < game.resources.fragments.owned) { if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { autoTrimpSettings["AutoMaps"].value = 1; failpraid = true; From 6209d8a8aea133ce82f6b7a3bb541d9bf19cfbcb Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Thu, 7 Jun 2018 22:20:47 +0100 Subject: [PATCH 316/365] Update other.js --- modules/other.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index d39b52372..f98dacf63 100644 --- a/modules/other.js +++ b/modules/other.js @@ -183,11 +183,11 @@ function Praiding() { } if (game.global.world == getPageSetting('Praidingzone') && game.global.preMapsActive && !prestraid && !failpraid) { plusPres(); - if (cost >= game.resources.fragments.owned) { + if (cost <= game.resources.fragments.owned) { buyMap(); failpraid = false; } - else if (cost < game.resources.fragments.owned) { + else if (cost > game.resources.fragments.owned) { if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { autoTrimpSettings["AutoMaps"].value = 1; failpraid = true; From fb1f0a83efd976f775355ef2d13206f47da8ee6c Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Thu, 7 Jun 2018 22:26:43 +0100 Subject: [PATCH 317/365] Update other.js --- modules/other.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index f98dacf63..a12ce38ec 100644 --- a/modules/other.js +++ b/modules/other.js @@ -255,10 +255,10 @@ function BWraiding() { if (findLastBionic().level <= getPageSetting('BWraidingmax') && !bwraided && !failbwraid) { runMap(); } - if (!game.global.repeatMap && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid && getCurrentMapObject().level > getPageSetting('BWraidingz')) { + if (!game.global.repeatMap && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid && getCurrentMapObject().level > getPageSetting('BWraidingz') && game.global.mapsActive) { repeatClicked(); } - else if (game.global.repeatMap && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid && getCurrentMapObject().level <= getPageSetting('BWraidingz')) { + else if (game.global.repeatMap && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid && getCurrentMapObject().level <= getPageSetting('BWraidingz') && game.global.mapsActive) { repeatClicked(); } if (findLastBionic().level > getPageSetting('BWraidingmax') && !bwraided && !failbwraid) { From ee75f215c8bea7f4aebe56bc82f41565151806f1 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Thu, 7 Jun 2018 22:33:08 +0100 Subject: [PATCH 318/365] Update stance.js --- modules/stance.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/modules/stance.js b/modules/stance.js index d2883ff2e..1f9a950ec 100644 --- a/modules/stance.js +++ b/modules/stance.js @@ -563,14 +563,10 @@ function autoStance3() { if (getPageSetting('AutoStance') == 0) return; if (!game.upgrades.Formations.done) return; - var windstackzone = getPageSetting('WindStackingMin') + var windstackzone = getPageSetting('WindStackingMin'); if(game.global.world>=80) { - if( getEmpowerment() != "Wind" - || game.global.mapsActive - || game.empowerments.Wind.currentDebuffPower==200 - || (windstackzone < 0) - || (windstackzone >= game.global.world)) { + if( getEmpowerment() != "Wind" || game.global.mapsActive || game.empowerments.Wind.currentDebuffPower==200 || (windstackzone < 0) || (windstackzone >= game.global.world) || game.global.spireActive) { setFormation(2); return; } From e917f064dcdcca3df415318d21d961fb01eade39 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 8 Jun 2018 17:24:01 +0100 Subject: [PATCH 319/365] Update other.js --- modules/other.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index a12ce38ec..ffc5253d9 100644 --- a/modules/other.js +++ b/modules/other.js @@ -174,9 +174,9 @@ function Praiding() { if (getPageSetting('AutoMaps') == 1 && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { autoTrimpSettings["AutoMaps"].value = 0; } - debug("Beginning Prestige Raiding..."); if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { mapsClicked(); + debug("Beginning Prestige Raiding..."); } if (game.options.menu.repeatUntil.enabled!=2 && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { game.options.menu.repeatUntil.enabled = 2; @@ -191,12 +191,14 @@ function Praiding() { if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { autoTrimpSettings["AutoMaps"].value = 1; failpraid = true; - prestraidon = false; + prestraidon = false; debug("Failed to prestige raid. Looks like you can't afford to.."); } return; } + } + if (cost <= game.resources.fragments.owned) { selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); } runMap(); From 36947051365f28351b8094cba409d2e542b1afdb Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 8 Jun 2018 17:32:04 +0100 Subject: [PATCH 320/365] Update other.js --- modules/other.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/modules/other.js b/modules/other.js index ffc5253d9..d691c96a9 100644 --- a/modules/other.js +++ b/modules/other.js @@ -7,6 +7,7 @@ var failbwraid = false; var perked = false; var prestraidon = false; var cost = updateMapCost(true); +var mapbought = true; //Activate Robo Trimp (will activate on the first zone after liquification) function autoRoboTrimp() { //exit if the cooldown is active, or we havent unlocked robotrimp. @@ -169,8 +170,10 @@ function findLastBionic() { //Praiding function Praiding() { - if (game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { - prestraidon = true; + if (game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { + if (game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { + prestraidon = true; + } if (getPageSetting('AutoMaps') == 1 && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { autoTrimpSettings["AutoMaps"].value = 0; } @@ -186,19 +189,21 @@ function Praiding() { if (cost <= game.resources.fragments.owned) { buyMap(); failpraid = false; + mapbought = true; } else if (cost > game.resources.fragments.owned) { if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { autoTrimpSettings["AutoMaps"].value = 1; failpraid = true; - prestraidon = false; + prestraidon = false; + mapbought = false; debug("Failed to prestige raid. Looks like you can't afford to.."); } return; } - } - if (cost <= game.resources.fragments.owned) { + } + if (mapbought == true) { selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); } runMap(); From cb4e42062cdc54f15f02b527a138e07f7aef50f9 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Fri, 8 Jun 2018 17:42:14 +0100 Subject: [PATCH 321/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index d691c96a9..97bd94ee5 100644 --- a/modules/other.js +++ b/modules/other.js @@ -6,7 +6,7 @@ var bwraided = false; var failbwraid = false; var perked = false; var prestraidon = false; -var cost = updateMapCost(true); +var cost = (updateMapCost(true)); var mapbought = true; //Activate Robo Trimp (will activate on the first zone after liquification) function autoRoboTrimp() { From 102426ddc72dedfbe61f86a56eb0f7a24f2aaeb7 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 9 Jun 2018 10:34:35 +0100 Subject: [PATCH 322/365] Update SettingsGUI.js --- SettingsGUI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SettingsGUI.js b/SettingsGUI.js index c8008c7a8..78de7f45f 100644 --- a/SettingsGUI.js +++ b/SettingsGUI.js @@ -431,7 +431,7 @@ function initializeAllSettings() { //Heirloom Settings - createSetting('AutoHeirloomsNew', ['AutoHeirlooms Off', 'AutoHeirlooms 1', 'AutoHeirlooms 2'], 'Use Autoheirlooms 1. ', 'multitoggle', 0, null, 'Heirlooms'); + createSetting('AutoHeirloomsNew', ['AutoHeirlooms Off', 'AutoHeirlooms 1', 'AutoHeirlooms 2'], 'Use Autoheirlooms 2. It will keep heirlooms on portal. ', 'multitoggle', 0, null, 'Heirlooms'); createSetting('AutoUpgradeHeirlooms', 'Auto Upgrade Heirlooms', 'Automatically buys the upgrades the script advises for the Equipped shield and staff, until we are out of nullifium.', 'boolean', false, null, 'Heirlooms'); //Golden Upgrade Strategies: From 9f09ce896a1e59bb91e0615b33536256e386d9f4 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 9 Jun 2018 10:48:37 +0100 Subject: [PATCH 323/365] Update maps.js --- modules/maps.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/maps.js b/modules/maps.js index 8c8adba9f..2b45e9713 100644 --- a/modules/maps.js +++ b/modules/maps.js @@ -48,6 +48,7 @@ var spireMapBonusFarming = false; var spireTime = 0; var doMaxMapBonus = false; var vanillaMapatZone = false; +var additionalCritMulti = (getPlayerCritChance() > 2) ? 25 : 5; //AutoMap - function originally created by Belaith (in 1971) //anything/everything to do with maps. @@ -155,7 +156,12 @@ function autoMap() { //START CALCULATING DAMAGES: var AutoStance = getPageSetting('AutoStance'); //calculate crits (baseDamage was calced in function autoStance) this is a weighted average of nonCrit + Crit. (somewhere in the middle) + if (getPlayerCritChance() > 1) { + ourBaseDamage = (baseDamage * (1 - getPlayerCritChance()) + (baseDamage * getPlayerCritChance() * getPlayerCritDamageMult() * additionalCritMulti)); + } + else { ourBaseDamage = (baseDamage * (1 - getPlayerCritChance()) + (baseDamage * getPlayerCritChance() * getPlayerCritDamageMult())); + } //calculate with map bonus var mapbonusmulti = 1 + (0.20 * game.global.mapBonus); //(autostance2 has mapbonusmulti built in) From 6ef903002fceb8937ee04f53b09345174c628a37 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 9 Jun 2018 10:52:57 +0100 Subject: [PATCH 324/365] Update AutoTrimps2.js --- AutoTrimps2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index f3975559e..5e4191679 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -172,7 +172,7 @@ function mainLoop() { if(getPageSetting('PauseScript') || game.options.menu.pauseGame.enabled || game.global.viewingUpgrades) return; ATrunning = true; if(game.options.menu.showFullBreed.enabled != 1) toggleSetting("showFullBreed"); //more detail - addbreedTimerInsideText.innerHTML = parseFloat(game.global.lastBreedTime/1000).toFixed(1) + 's'; //add hidden next group breed timer; + addbreedTimerInsideText.innerHTML = ((game.jobs.Amalgamator.owned > 0) ? Math.floor((new Date().getTime() - game.global.lastSoldierSentAt) / 1000) : Math.floor(game.global.lastBreedTime / 1000)) + 's'; //add breed time for next army; addToolTipToArmyCount(); //Add hidden tooltip for army count (SettingsGUI.js @ end) //Heirloom: if (mainCleanup() // Z1 new world From 545c0a7a53d3ad7b1a55f24044173dd02353708e Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 9 Jun 2018 18:38:21 +0100 Subject: [PATCH 325/365] Update stance.js --- modules/stance.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/stance.js b/modules/stance.js index 1f9a950ec..c4ea86ca7 100644 --- a/modules/stance.js +++ b/modules/stance.js @@ -2,7 +2,7 @@ function calcBaseDamageinX() { //baseDamage - baseDamage = game.global.soldierCurrentAttack * (1 + (game.global.achievementBonus / 100)) * ((game.global.antiStacks * game.portal.Anticipation.level * game.portal.Anticipation.modifier) + 1) * (1 + (game.global.roboTrimpLevel * 0.2)) * (1 + (game.global.totalSquaredReward / 100)) * (game.talents.stillRowing2.purchased ? (1 + (0.06 * game.global.spireRows)) : 1) * (game.talents.healthStrength.purchased ? (1 + (0.15 * mutations.Healthy.cellCount())) : 1) * (Fluffy.isActive() ? Fluffy.getDamageModifier() : 1) * (1 + (1 - game.empowerments.Ice.getCombatModifier())) * (game.talents.magmamancer.purchased ? game.jobs.Magmamancer.getBonusPercent() : 1); + baseDamage = game.global.soldierCurrentAttack * (1 + (game.global.achievementBonus / 100)) * ((game.global.antiStacks * game.portal.Anticipation.level * game.portal.Anticipation.modifier) + 1) * (1 + (game.global.roboTrimpLevel * 0.2)) * (1 + (game.global.totalSquaredReward / 100)) * (game.talents.stillRowing2.purchased ? (1 + (0.06 * game.global.spireRows)) : 1) * (game.talents.healthStrength.purchased ? (1 + (0.15 * mutations.Healthy.cellCount())) : 1) * (Fluffy.isActive() ? Fluffy.getDamageModifier() : 1) * (1 + (1 - game.empowerments.Ice.getCombatModifier())) * (game.talents.magmamancer.purchased ? game.jobs.Magmamancer.getBonusPercent() : 1) * (game.jobs.Amalgamator.owned > 0 ? game.jobs.Amalgamator.getDamageMult() : 1); if (game.global.challengeActive == "Daily"){ if (typeof game.global.dailyChallenge.weakness !== 'undefined'){ baseDamage *= dailyModifiers.weakness.getMult(game.global.dailyChallenge.weakness.strength, game.global.dailyChallenge.weakness.stacks); From c4ff6d66db6a4ddb6676e913884860ed4fbae599 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sat, 9 Jun 2018 21:30:33 +0100 Subject: [PATCH 326/365] Update maps.js --- modules/maps.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/maps.js b/modules/maps.js index 2b45e9713..300edb94a 100644 --- a/modules/maps.js +++ b/modules/maps.js @@ -378,10 +378,12 @@ function autoMap() { if (doMaxMapBonus) shouldDoMaps = true; //Allow automaps to work with in-game Map at Zone option: - vanillaMapatZone = (game.options.menu.mapAtZone.enabled && game.options.menu.mapAtZone.setZone == game.global.world && !isActiveSpireAT()); + vanillaMapatZone = (game.options.menu.mapAtZone.enabled && game.global.canMapAtZone && !isActiveSpireAT()); if (vanillaMapatZone) - shouldDoMaps = true; - + for (var x = 0; x < game.options.menu.mapAtZone.setZone.length; x++){ + if (game.global.world == game.options.menu.mapAtZone.setZone[x]) + shouldDoMaps = true; + } //Dynamic Siphonology section (when necessary) //Lower Farming Zone = Lowers the zone used during Farming mode. Starts 10 zones below current and Finds the minimum map level you can successfully one-shot From d3ca5d6bda414c6e46f0b12fd9f47323e5c24b5a Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 15:22:58 +0100 Subject: [PATCH 327/365] Update battlecalc.js --- modules/battlecalc.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/battlecalc.js b/modules/battlecalc.js index c8c6916e9..c305c6ca6 100644 --- a/modules/battlecalc.js +++ b/modules/battlecalc.js @@ -229,6 +229,12 @@ function getBattleStats(what,form,crit) { var amt = game.jobs.Amalgamator.getHealthMult(); currentCalc *= amt; } + if (what == "attack" && game.singleRunBonuses.sharpTrimps.owned) { + currentCalc *= 1.5; + } + if (game.jobs.Magmamancer.owend > 0) { + currentCalc *= game.jobs.Magmamancer.getBonusPercent(); + } if (crit) { var critChance = getPlayerCritChance(); if (what == "attack" && critChance){ @@ -303,6 +309,9 @@ function calcOurDmg(number,maxormin,disableStances,disableFlucts) { //number = b if (game.jobs.Amalgamator.owned > 0){ number *= game.jobs.Amalgamator.getHealthMult(); } + if (game.singleRunBonuses.sharpTrimps.owned) { + number *= 1.5; + } number *= (1 + (1 - game.empowerments.Ice.getCombatModifier())); if (game.global.challengeActive == "Daily"){ From 0becadcfa81e0ded5869d67b6bbfa324ebaa5414 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 15:27:09 +0100 Subject: [PATCH 328/365] Update stance.js --- modules/stance.js | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/modules/stance.js b/modules/stance.js index c4ea86ca7..ccfda9345 100644 --- a/modules/stance.js +++ b/modules/stance.js @@ -2,21 +2,7 @@ function calcBaseDamageinX() { //baseDamage - baseDamage = game.global.soldierCurrentAttack * (1 + (game.global.achievementBonus / 100)) * ((game.global.antiStacks * game.portal.Anticipation.level * game.portal.Anticipation.modifier) + 1) * (1 + (game.global.roboTrimpLevel * 0.2)) * (1 + (game.global.totalSquaredReward / 100)) * (game.talents.stillRowing2.purchased ? (1 + (0.06 * game.global.spireRows)) : 1) * (game.talents.healthStrength.purchased ? (1 + (0.15 * mutations.Healthy.cellCount())) : 1) * (Fluffy.isActive() ? Fluffy.getDamageModifier() : 1) * (1 + (1 - game.empowerments.Ice.getCombatModifier())) * (game.talents.magmamancer.purchased ? game.jobs.Magmamancer.getBonusPercent() : 1) * (game.jobs.Amalgamator.owned > 0 ? game.jobs.Amalgamator.getDamageMult() : 1); - if (game.global.challengeActive == "Daily"){ - if (typeof game.global.dailyChallenge.weakness !== 'undefined'){ - baseDamage *= dailyModifiers.weakness.getMult(game.global.dailyChallenge.weakness.strength, game.global.dailyChallenge.weakness.stacks); - } - if (typeof game.global.dailyChallenge.oddTrimpNerf !== 'undefined' && ((game.global.world % 2) == 1)){ - baseDamage *= dailyModifiers.oddTrimpNerf.getMult(game.global.dailyChallenge.oddTrimpNerf.strength); - } - if (typeof game.global.dailyChallenge.evenTrimpBuff !== 'undefined' && ((game.global.world % 2) == 0)){ - baseDamage *= dailyModifiers.evenTrimpBuff.getMult(game.global.dailyChallenge.evenTrimpBuff.strength); - } - if (typeof game.global.dailyChallenge.rampage !== 'undefined'){ - baseDamage *= dailyModifiers.rampage.getMult(game.global.dailyChallenge.rampage.strength, game.global.dailyChallenge.rampage.stacks); - } - } + baseDamage = getBattleStats("attack", false, true); //baseBlock baseBlock = game.global.soldierCurrentBlock; //baseHealth @@ -47,7 +33,7 @@ function calcBaseDamageinX() { //goes to battlecalc.js which came from Trimps "updates.js" line 1103 function calcBaseDamageinX2() { //baseDamage - baseDamage = calcOurDmg(game.global.soldierCurrentAttack,false); + baseDamage = getBattleStats("attack", false, true); //baseBlock baseBlock = getBattleStats("block"); //baseHealth From 3e2e56bbfe7d702e807959de6ced29ddb81aa489 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 15:54:04 +0100 Subject: [PATCH 329/365] Create ATcalc.js --- modules/ATcalc.js | 100 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 modules/ATcalc.js diff --git a/modules/ATcalc.js b/modules/ATcalc.js new file mode 100644 index 000000000..b8dc2281b --- /dev/null +++ b/modules/ATcalc.js @@ -0,0 +1,100 @@ +var trimpATK = calculateDamageAT(game.global.soldierCurrentAttack, true, true); + +function calculateDamageAT(number, buildString, isTrimp, noCheckAchieve, cell) { //number = base attack + var fluctuation = .2; //%fluctuation + var maxFluct = -1; + var minFluct = -1; + if (isTrimp){ + //Situational Trimp damage increases + if (game.jobs.Amalgamator.owned > 0){ + number *= game.jobs.Amalgamator.getDamageMult(); + } + if (game.challenges.Electricity.stacks > 0) { //Electricity + number *= (1 - (game.challenges.Electricity.stacks * 0.1)); + } + if (game.global.antiStacks > 0) { + number *= ((game.global.antiStacks * game.portal.Anticipation.level * game.portal.Anticipation.modifier) + 1); + updateAntiStacks(); + } + if (!game.global.mapsActive && game.global.mapBonus > 0){ + number *= ((game.global.mapBonus * .2) + 1); + } + if (game.global.titimpLeft >= 1 && game.global.mapsActive){ + number *= 2; + } + if (game.global.achievementBonus > 0){ + number *= (1 + (game.global.achievementBonus / 100)); + } + if (game.global.challengeActive == "Discipline"){ + fluctuation = .995; + } + else if (game.portal.Range.level > 0){ + minFluct = fluctuation - (.02 * game.portal.Range.level); + } + if (game.global.challengeActive == "Decay"){ + number *= 5; + number *= Math.pow(0.995, game.challenges.Decay.stacks); + } + if (game.global.roboTrimpLevel > 0){ + number *= ((0.2 * game.global.roboTrimpLevel) + 1); + } + if (game.global.challengeActive == "Lead" && ((game.global.world % 2) == 1)){ + number *= 1.5; + } + if (game.goldenUpgrades.Battle.currentBonus > 0){ + number *= game.goldenUpgrades.Battle.currentBonus + 1; + } + if (game.talents.voidPower.purchased && game.global.voidBuff){ + var vpAmt = (game.talents.voidPower2.purchased) ? ((game.talents.voidPower3.purchased) ? 65 : 35) : 15; + number *= ((vpAmt / 100) + 1); + } + if (game.global.totalSquaredReward > 0){ + number *= ((game.global.totalSquaredReward / 100) + 1) + } + if (getEmpowerment() == "Ice"){ + number *= 1 + (1 - game.empowerments.Ice.getCombatModifier()); + } + if (game.talents.magmamancer.purchased){ + number *= game.jobs.Magmamancer.getBonusPercent(); + } + if (game.talents.stillRowing2.purchased){ + number *= ((game.global.spireRows * 0.06) + 1); + } + if (game.talents.healthStrength.purchased && mutations.Healthy.active()){ + number *= ((0.15 * mutations.Healthy.cellCount()) + 1); + } + if (game.global.sugarRush > 0){ + number *= sugarRush.getAttackStrength(); + } + if (game.global.challengeActive == "Life") { + number *= game.challenges.Life.getHealthMult(); + } + if (game.singleRunBonuses.sharpTrimps.owned){ + number *= 1.5; + } + if (game.global.challengeActive == "Daily"){ + if (typeof game.global.dailyChallenge.minDamage !== 'undefined'){ + if (minFluct == -1) minFluct = fluctuation; + minFluct += dailyModifiers.minDamage.getMult(game.global.dailyChallenge.minDamage.strength); + } + if (typeof game.global.dailyChallenge.maxDamage !== 'undefined'){ + if (maxFluct == -1) maxFluct = fluctuation; + maxFluct += dailyModifiers.maxDamage.getMult(game.global.dailyChallenge.maxDamage.strength); + } + if (typeof game.global.dailyChallenge.weakness !== 'undefined'){ + number *= dailyModifiers.weakness.getMult(game.global.dailyChallenge.weakness.strength, game.global.dailyChallenge.weakness.stacks); + } + if (typeof game.global.dailyChallenge.oddTrimpNerf !== 'undefined' && ((game.global.world % 2) == 1)){ + number *= dailyModifiers.oddTrimpNerf.getMult(game.global.dailyChallenge.oddTrimpNerf.strength); + } + if (typeof game.global.dailyChallenge.evenTrimpBuff !== 'undefined' && ((game.global.world % 2) == 0)){ + number *= dailyModifiers.evenTrimpBuff.getMult(game.global.dailyChallenge.evenTrimpBuff.strength); + } + if (typeof game.global.dailyChallenge.rampage !== 'undefined'){ + number *= dailyModifiers.rampage.getMult(game.global.dailyChallenge.rampage.strength, game.global.dailyChallenge.rampage.stacks); + } + } + if (Fluffy.isActive()){ + number *= Fluffy.getDamageModifier(); + } + From c6acc80bfb0f287d07b4b1576c39c1ea8aed687d Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 15:55:42 +0100 Subject: [PATCH 330/365] Update AutoTrimps2.js --- AutoTrimps2.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index 5e4191679..ec61d16b5 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -52,7 +52,7 @@ function initializeAutoTrimps() { ATscriptLoad('','SettingsGUI'); //populate Settings GUI ATscriptLoad('','Graphs'); //populate Graphs //Load modules: - ATmoduleList = ['query', 'portal', 'upgrades', 'heirlooms', 'buildings', 'jobs', 'equipment', 'gather', 'stance', 'battlecalc', 'maps', 'breedtimer', 'dynprestige', 'fight', 'scryer', 'magmite', 'other', 'import-export', 'client-server', 'perks', /* 'perky', */ 'fight-info', 'performance']; + ATmoduleList = ['query', 'portal', 'upgrades', 'heirlooms', 'buildings', 'jobs', 'equipment', 'gather', 'stance', 'battlecalc', 'maps', 'breedtimer', 'dynprestige', 'fight', 'scryer', 'magmite', 'other', 'import-export', 'client-server', 'perks', /* 'perky', */ 'fight-info', 'performance', 'ATcalc']; for (var m in ATmoduleList) { ATscriptLoad(modulepath, ATmoduleList[m]); } From 4153d1ba25be70d5b4fe9fa7febc517628c35e65 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 15:59:33 +0100 Subject: [PATCH 331/365] Update ATcalc.js --- modules/ATcalc.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/ATcalc.js b/modules/ATcalc.js index b8dc2281b..a8f8e387a 100644 --- a/modules/ATcalc.js +++ b/modules/ATcalc.js @@ -49,7 +49,7 @@ function calculateDamageAT(number, buildString, isTrimp, noCheckAchieve, cell) { number *= ((vpAmt / 100) + 1); } if (game.global.totalSquaredReward > 0){ - number *= ((game.global.totalSquaredReward / 100) + 1) + number *= ((game.global.totalSquaredReward / 100) + 1); } if (getEmpowerment() == "Ice"){ number *= 1 + (1 - game.empowerments.Ice.getCombatModifier()); @@ -98,3 +98,5 @@ function calculateDamageAT(number, buildString, isTrimp, noCheckAchieve, cell) { number *= Fluffy.getDamageModifier(); } + } +} From cf59d9d296400ce2e95d4edd893a6dbb62779ffc Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 16:04:20 +0100 Subject: [PATCH 332/365] Update ATcalc.js --- modules/ATcalc.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/ATcalc.js b/modules/ATcalc.js index a8f8e387a..27236a671 100644 --- a/modules/ATcalc.js +++ b/modules/ATcalc.js @@ -1,10 +1,9 @@ -var trimpATK = calculateDamageAT(game.global.soldierCurrentAttack, true, true); +var trimpATK = (calculateDamageAT(game.global.soldierCurrentAttack)); -function calculateDamageAT(number, buildString, isTrimp, noCheckAchieve, cell) { //number = base attack +function calculateDamageAT(number) { //number = base attack var fluctuation = .2; //%fluctuation var maxFluct = -1; var minFluct = -1; - if (isTrimp){ //Situational Trimp damage increases if (game.jobs.Amalgamator.owned > 0){ number *= game.jobs.Amalgamator.getDamageMult(); @@ -99,4 +98,4 @@ function calculateDamageAT(number, buildString, isTrimp, noCheckAchieve, cell) { } } -} + From 10e36a68f788b6be30820427baa551d7942dd0b8 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 16:06:53 +0100 Subject: [PATCH 333/365] Update ATcalc.js --- modules/ATcalc.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/ATcalc.js b/modules/ATcalc.js index 27236a671..aa0e8a91a 100644 --- a/modules/ATcalc.js +++ b/modules/ATcalc.js @@ -96,6 +96,8 @@ function calculateDamageAT(number) { //number = base attack if (Fluffy.isActive()){ number *= Fluffy.getDamageModifier(); } + else + return number; } From 3693999c954082f1ba241e45dd6e2981bef55dfb Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 16:12:12 +0100 Subject: [PATCH 334/365] Update ATcalc.js --- modules/ATcalc.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/ATcalc.js b/modules/ATcalc.js index aa0e8a91a..3774ffaec 100644 --- a/modules/ATcalc.js +++ b/modules/ATcalc.js @@ -1,7 +1,8 @@ var trimpATK = (calculateDamageAT(game.global.soldierCurrentAttack)); -function calculateDamageAT(number) { //number = base attack - var fluctuation = .2; //%fluctuation +function calculateDamageAT() { +var currentCalc = game.global.soldierCurrentAttack; +var fluctuation = .2; //%fluctuation var maxFluct = -1; var minFluct = -1; //Situational Trimp damage increases @@ -96,7 +97,6 @@ function calculateDamageAT(number) { //number = base attack if (Fluffy.isActive()){ number *= Fluffy.getDamageModifier(); } - else return number; } From 0ce675cab4b631aa9f39b6dc64f4dc390db4f925 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 16:12:31 +0100 Subject: [PATCH 335/365] Update ATcalc.js --- modules/ATcalc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ATcalc.js b/modules/ATcalc.js index 3774ffaec..4aea97844 100644 --- a/modules/ATcalc.js +++ b/modules/ATcalc.js @@ -1,4 +1,4 @@ -var trimpATK = (calculateDamageAT(game.global.soldierCurrentAttack)); +var trimpATK = (calculateDamageAT()); function calculateDamageAT() { var currentCalc = game.global.soldierCurrentAttack; From 400c5712b9b43976f5d64d00158ab18e42670e43 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 16:14:58 +0100 Subject: [PATCH 336/365] Update ATcalc.js --- modules/ATcalc.js | 54 +++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/modules/ATcalc.js b/modules/ATcalc.js index 4aea97844..b802bd71d 100644 --- a/modules/ATcalc.js +++ b/modules/ATcalc.js @@ -1,29 +1,29 @@ var trimpATK = (calculateDamageAT()); function calculateDamageAT() { -var currentCalc = game.global.soldierCurrentAttack; +var currentCalcAT = game.global.soldierCurrentAttack; var fluctuation = .2; //%fluctuation var maxFluct = -1; var minFluct = -1; //Situational Trimp damage increases if (game.jobs.Amalgamator.owned > 0){ - number *= game.jobs.Amalgamator.getDamageMult(); + currentCalcAT *= game.jobs.Amalgamator.getDamageMult(); } if (game.challenges.Electricity.stacks > 0) { //Electricity - number *= (1 - (game.challenges.Electricity.stacks * 0.1)); + currentCalcAT *= (1 - (game.challenges.Electricity.stacks * 0.1)); } if (game.global.antiStacks > 0) { - number *= ((game.global.antiStacks * game.portal.Anticipation.level * game.portal.Anticipation.modifier) + 1); + currentCalcAT *= ((game.global.antiStacks * game.portal.Anticipation.level * game.portal.Anticipation.modifier) + 1); updateAntiStacks(); } if (!game.global.mapsActive && game.global.mapBonus > 0){ - number *= ((game.global.mapBonus * .2) + 1); + currentCalcAT *= ((game.global.mapBonus * .2) + 1); } if (game.global.titimpLeft >= 1 && game.global.mapsActive){ - number *= 2; + currentCalcAT *= 2; } if (game.global.achievementBonus > 0){ - number *= (1 + (game.global.achievementBonus / 100)); + currentCalcAT *= (1 + (game.global.achievementBonus / 100)); } if (game.global.challengeActive == "Discipline"){ fluctuation = .995; @@ -32,45 +32,45 @@ var fluctuation = .2; //%fluctuation minFluct = fluctuation - (.02 * game.portal.Range.level); } if (game.global.challengeActive == "Decay"){ - number *= 5; - number *= Math.pow(0.995, game.challenges.Decay.stacks); + currentCalcAT *= 5; + currentCalcAT *= Math.pow(0.995, game.challenges.Decay.stacks); } if (game.global.roboTrimpLevel > 0){ - number *= ((0.2 * game.global.roboTrimpLevel) + 1); + currentCalcAT *= ((0.2 * game.global.roboTrimpLevel) + 1); } if (game.global.challengeActive == "Lead" && ((game.global.world % 2) == 1)){ - number *= 1.5; + currentCalcAT *= 1.5; } if (game.goldenUpgrades.Battle.currentBonus > 0){ - number *= game.goldenUpgrades.Battle.currentBonus + 1; + currentCalcAT *= game.goldenUpgrades.Battle.currentBonus + 1; } if (game.talents.voidPower.purchased && game.global.voidBuff){ var vpAmt = (game.talents.voidPower2.purchased) ? ((game.talents.voidPower3.purchased) ? 65 : 35) : 15; - number *= ((vpAmt / 100) + 1); + currentCalcAT *= ((vpAmt / 100) + 1); } if (game.global.totalSquaredReward > 0){ - number *= ((game.global.totalSquaredReward / 100) + 1); + currentCalcAT *= ((game.global.totalSquaredReward / 100) + 1); } if (getEmpowerment() == "Ice"){ - number *= 1 + (1 - game.empowerments.Ice.getCombatModifier()); + currentCalcAT *= 1 + (1 - game.empowerments.Ice.getCombatModifier()); } if (game.talents.magmamancer.purchased){ - number *= game.jobs.Magmamancer.getBonusPercent(); + currentCalcAT *= game.jobs.Magmamancer.getBonusPercent(); } if (game.talents.stillRowing2.purchased){ - number *= ((game.global.spireRows * 0.06) + 1); + currentCalcAT *= ((game.global.spireRows * 0.06) + 1); } if (game.talents.healthStrength.purchased && mutations.Healthy.active()){ - number *= ((0.15 * mutations.Healthy.cellCount()) + 1); + currentCalcAT *= ((0.15 * mutations.Healthy.cellCount()) + 1); } if (game.global.sugarRush > 0){ - number *= sugarRush.getAttackStrength(); + currentCalcAT *= sugarRush.getAttackStrength(); } if (game.global.challengeActive == "Life") { - number *= game.challenges.Life.getHealthMult(); + currentCalcAT *= game.challenges.Life.getHealthMult(); } if (game.singleRunBonuses.sharpTrimps.owned){ - number *= 1.5; + currentCalcAT *= 1.5; } if (game.global.challengeActive == "Daily"){ if (typeof game.global.dailyChallenge.minDamage !== 'undefined'){ @@ -82,22 +82,22 @@ var fluctuation = .2; //%fluctuation maxFluct += dailyModifiers.maxDamage.getMult(game.global.dailyChallenge.maxDamage.strength); } if (typeof game.global.dailyChallenge.weakness !== 'undefined'){ - number *= dailyModifiers.weakness.getMult(game.global.dailyChallenge.weakness.strength, game.global.dailyChallenge.weakness.stacks); + currentCalcAT *= dailyModifiers.weakness.getMult(game.global.dailyChallenge.weakness.strength, game.global.dailyChallenge.weakness.stacks); } if (typeof game.global.dailyChallenge.oddTrimpNerf !== 'undefined' && ((game.global.world % 2) == 1)){ - number *= dailyModifiers.oddTrimpNerf.getMult(game.global.dailyChallenge.oddTrimpNerf.strength); + currentCalcAT *= dailyModifiers.oddTrimpNerf.getMult(game.global.dailyChallenge.oddTrimpNerf.strength); } if (typeof game.global.dailyChallenge.evenTrimpBuff !== 'undefined' && ((game.global.world % 2) == 0)){ - number *= dailyModifiers.evenTrimpBuff.getMult(game.global.dailyChallenge.evenTrimpBuff.strength); + currentCalcAT *= dailyModifiers.evenTrimpBuff.getMult(game.global.dailyChallenge.evenTrimpBuff.strength); } if (typeof game.global.dailyChallenge.rampage !== 'undefined'){ - number *= dailyModifiers.rampage.getMult(game.global.dailyChallenge.rampage.strength, game.global.dailyChallenge.rampage.stacks); + currentCalcAT *= dailyModifiers.rampage.getMult(game.global.dailyChallenge.rampage.strength, game.global.dailyChallenge.rampage.stacks); } } if (Fluffy.isActive()){ - number *= Fluffy.getDamageModifier(); + currentCalcAT *= Fluffy.getDamageModifier(); } - return number; + return currentCalcAT; } From 1e8f4abf14a616eee1d8a929a0a4059b518f271e Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 16:29:17 +0100 Subject: [PATCH 337/365] Update stance.js --- modules/stance.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/stance.js b/modules/stance.js index ccfda9345..46137487e 100644 --- a/modules/stance.js +++ b/modules/stance.js @@ -2,7 +2,7 @@ function calcBaseDamageinX() { //baseDamage - baseDamage = getBattleStats("attack", false, true); + baseDamage = (calculateDamageAT()); //baseBlock baseBlock = game.global.soldierCurrentBlock; //baseHealth From 68ebbedf5ab97c19d3cd4a8286cb93731bb18498 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 18:32:44 +0100 Subject: [PATCH 338/365] Update stance.js --- modules/stance.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/stance.js b/modules/stance.js index 46137487e..b91807a86 100644 --- a/modules/stance.js +++ b/modules/stance.js @@ -2,7 +2,7 @@ function calcBaseDamageinX() { //baseDamage - baseDamage = (calculateDamageAT()); + baseDamage = (getBattleStats("attack", false, true)); //baseBlock baseBlock = game.global.soldierCurrentBlock; //baseHealth From 13c07638c775e2ff9873de4c59332625b51890af Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 18:35:20 +0100 Subject: [PATCH 339/365] Update other.js --- modules/other.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index 97bd94ee5..5c9efa7d2 100644 --- a/modules/other.js +++ b/modules/other.js @@ -186,12 +186,12 @@ function Praiding() { } if (game.global.world == getPageSetting('Praidingzone') && game.global.preMapsActive && !prestraid && !failpraid) { plusPres(); - if (cost <= game.resources.fragments.owned) { + if (updateMapCost(true) <= game.resources.fragments.owned) { buyMap(); failpraid = false; mapbought = true; } - else if (cost > game.resources.fragments.owned) { + else if (updateMapCost(true) <= game.resources.fragments.owned > game.resources.fragments.owned) { if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { autoTrimpSettings["AutoMaps"].value = 1; failpraid = true; From f03d5c5a62a6a3045edf10cb7d96b008b91865ee Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 18:37:59 +0100 Subject: [PATCH 340/365] Update ATcalc.js --- modules/ATcalc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ATcalc.js b/modules/ATcalc.js index b802bd71d..181c10540 100644 --- a/modules/ATcalc.js +++ b/modules/ATcalc.js @@ -1,4 +1,4 @@ -var trimpATK = (calculateDamageAT()); +var trimpATK = calculateDamage(game.global.soldierCurrentAttack, true, true); function calculateDamageAT() { var currentCalcAT = game.global.soldierCurrentAttack; From f8a229800c730023e3ae672df5f04d05c357c080 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 18:47:39 +0100 Subject: [PATCH 341/365] Update ATcalc.js --- modules/ATcalc.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ATcalc.js b/modules/ATcalc.js index 181c10540..e399f74b6 100644 --- a/modules/ATcalc.js +++ b/modules/ATcalc.js @@ -1,5 +1,5 @@ -var trimpATK = calculateDamage(game.global.soldierCurrentAttack, true, true); - +var trimpATK1 = calculateDamage(game.global.soldierCurrentAttack, true, true); +var trimpATK = parseFloat(trimpATK1) function calculateDamageAT() { var currentCalcAT = game.global.soldierCurrentAttack; var fluctuation = .2; //%fluctuation From 9fd237c23a10f56c051ef30319b5fca4a69d3be3 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 18:52:21 +0100 Subject: [PATCH 342/365] Update ATcalc.js --- modules/ATcalc.js | 103 +--------------------------------------------- 1 file changed, 2 insertions(+), 101 deletions(-) diff --git a/modules/ATcalc.js b/modules/ATcalc.js index e399f74b6..74c936ca3 100644 --- a/modules/ATcalc.js +++ b/modules/ATcalc.js @@ -1,103 +1,4 @@ +function calculateDamageAT() { var trimpATK1 = calculateDamage(game.global.soldierCurrentAttack, true, true); var trimpATK = parseFloat(trimpATK1) -function calculateDamageAT() { -var currentCalcAT = game.global.soldierCurrentAttack; -var fluctuation = .2; //%fluctuation - var maxFluct = -1; - var minFluct = -1; - //Situational Trimp damage increases - if (game.jobs.Amalgamator.owned > 0){ - currentCalcAT *= game.jobs.Amalgamator.getDamageMult(); - } - if (game.challenges.Electricity.stacks > 0) { //Electricity - currentCalcAT *= (1 - (game.challenges.Electricity.stacks * 0.1)); - } - if (game.global.antiStacks > 0) { - currentCalcAT *= ((game.global.antiStacks * game.portal.Anticipation.level * game.portal.Anticipation.modifier) + 1); - updateAntiStacks(); - } - if (!game.global.mapsActive && game.global.mapBonus > 0){ - currentCalcAT *= ((game.global.mapBonus * .2) + 1); - } - if (game.global.titimpLeft >= 1 && game.global.mapsActive){ - currentCalcAT *= 2; - } - if (game.global.achievementBonus > 0){ - currentCalcAT *= (1 + (game.global.achievementBonus / 100)); - } - if (game.global.challengeActive == "Discipline"){ - fluctuation = .995; - } - else if (game.portal.Range.level > 0){ - minFluct = fluctuation - (.02 * game.portal.Range.level); - } - if (game.global.challengeActive == "Decay"){ - currentCalcAT *= 5; - currentCalcAT *= Math.pow(0.995, game.challenges.Decay.stacks); - } - if (game.global.roboTrimpLevel > 0){ - currentCalcAT *= ((0.2 * game.global.roboTrimpLevel) + 1); - } - if (game.global.challengeActive == "Lead" && ((game.global.world % 2) == 1)){ - currentCalcAT *= 1.5; - } - if (game.goldenUpgrades.Battle.currentBonus > 0){ - currentCalcAT *= game.goldenUpgrades.Battle.currentBonus + 1; - } - if (game.talents.voidPower.purchased && game.global.voidBuff){ - var vpAmt = (game.talents.voidPower2.purchased) ? ((game.talents.voidPower3.purchased) ? 65 : 35) : 15; - currentCalcAT *= ((vpAmt / 100) + 1); - } - if (game.global.totalSquaredReward > 0){ - currentCalcAT *= ((game.global.totalSquaredReward / 100) + 1); - } - if (getEmpowerment() == "Ice"){ - currentCalcAT *= 1 + (1 - game.empowerments.Ice.getCombatModifier()); - } - if (game.talents.magmamancer.purchased){ - currentCalcAT *= game.jobs.Magmamancer.getBonusPercent(); - } - if (game.talents.stillRowing2.purchased){ - currentCalcAT *= ((game.global.spireRows * 0.06) + 1); - } - if (game.talents.healthStrength.purchased && mutations.Healthy.active()){ - currentCalcAT *= ((0.15 * mutations.Healthy.cellCount()) + 1); - } - if (game.global.sugarRush > 0){ - currentCalcAT *= sugarRush.getAttackStrength(); - } - if (game.global.challengeActive == "Life") { - currentCalcAT *= game.challenges.Life.getHealthMult(); - } - if (game.singleRunBonuses.sharpTrimps.owned){ - currentCalcAT *= 1.5; - } - if (game.global.challengeActive == "Daily"){ - if (typeof game.global.dailyChallenge.minDamage !== 'undefined'){ - if (minFluct == -1) minFluct = fluctuation; - minFluct += dailyModifiers.minDamage.getMult(game.global.dailyChallenge.minDamage.strength); - } - if (typeof game.global.dailyChallenge.maxDamage !== 'undefined'){ - if (maxFluct == -1) maxFluct = fluctuation; - maxFluct += dailyModifiers.maxDamage.getMult(game.global.dailyChallenge.maxDamage.strength); - } - if (typeof game.global.dailyChallenge.weakness !== 'undefined'){ - currentCalcAT *= dailyModifiers.weakness.getMult(game.global.dailyChallenge.weakness.strength, game.global.dailyChallenge.weakness.stacks); - } - if (typeof game.global.dailyChallenge.oddTrimpNerf !== 'undefined' && ((game.global.world % 2) == 1)){ - currentCalcAT *= dailyModifiers.oddTrimpNerf.getMult(game.global.dailyChallenge.oddTrimpNerf.strength); - } - if (typeof game.global.dailyChallenge.evenTrimpBuff !== 'undefined' && ((game.global.world % 2) == 0)){ - currentCalcAT *= dailyModifiers.evenTrimpBuff.getMult(game.global.dailyChallenge.evenTrimpBuff.strength); - } - if (typeof game.global.dailyChallenge.rampage !== 'undefined'){ - currentCalcAT *= dailyModifiers.rampage.getMult(game.global.dailyChallenge.rampage.strength, game.global.dailyChallenge.rampage.stacks); - } - } - if (Fluffy.isActive()){ - currentCalcAT *= Fluffy.getDamageModifier(); - } - return currentCalcAT; - - } - +} From 8ddf07de1b9277693909e75b5c173a3a3abeaf2d Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 18:54:27 +0100 Subject: [PATCH 343/365] Update ATcalc.js --- modules/ATcalc.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/ATcalc.js b/modules/ATcalc.js index 74c936ca3..9f77a7599 100644 --- a/modules/ATcalc.js +++ b/modules/ATcalc.js @@ -1,4 +1,5 @@ function calculateDamageAT() { var trimpATK1 = calculateDamage(game.global.soldierCurrentAttack, true, true); var trimpATK = parseFloat(trimpATK1) +return trimpATK; } From ad712d3420259c41b078a3653c312bef37e2015a Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 18:56:22 +0100 Subject: [PATCH 344/365] Update stance.js --- modules/stance.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/stance.js b/modules/stance.js index b91807a86..61be04375 100644 --- a/modules/stance.js +++ b/modules/stance.js @@ -2,7 +2,7 @@ function calcBaseDamageinX() { //baseDamage - baseDamage = (getBattleStats("attack", false, true)); + baseDamage = calculateDamageAT(); //baseBlock baseBlock = game.global.soldierCurrentBlock; //baseHealth From e45bfbc9ddae372e8fb746218cc2431bbd77b7e1 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 19:35:22 +0100 Subject: [PATCH 345/365] Update stance.js --- modules/stance.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/stance.js b/modules/stance.js index 61be04375..b91807a86 100644 --- a/modules/stance.js +++ b/modules/stance.js @@ -2,7 +2,7 @@ function calcBaseDamageinX() { //baseDamage - baseDamage = calculateDamageAT(); + baseDamage = (getBattleStats("attack", false, true)); //baseBlock baseBlock = game.global.soldierCurrentBlock; //baseHealth From 765cf96d8fa860c9ac96c0988b4fb391474f5a9f Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 22:55:42 +0100 Subject: [PATCH 346/365] Update other.js --- modules/other.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/other.js b/modules/other.js index 5c9efa7d2..a9fa0292e 100644 --- a/modules/other.js +++ b/modules/other.js @@ -241,6 +241,7 @@ function BWraiding() { } if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { mapsClicked(); + mapsClicked(); } if (game.options.menu.repeatUntil.enabled != 2 && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { game.options.menu.repeatUntil.enabled = 2; From a8c0303347b8188d64318c36d63e1ac558d59027 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 22:57:18 +0100 Subject: [PATCH 347/365] Update other.js --- modules/other.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index a9fa0292e..eb516f66d 100644 --- a/modules/other.js +++ b/modules/other.js @@ -179,7 +179,8 @@ function Praiding() { } if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { mapsClicked(); - debug("Beginning Prestige Raiding..."); + mapsClicked(); + debug("Beginning Prestige Raiding..."); } if (game.options.menu.repeatUntil.enabled!=2 && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { game.options.menu.repeatUntil.enabled = 2; From 541a098b1fcdda392909caba7e6d8d08951f093d Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 23:01:59 +0100 Subject: [PATCH 348/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index eb516f66d..70fa80751 100644 --- a/modules/other.js +++ b/modules/other.js @@ -7,7 +7,7 @@ var failbwraid = false; var perked = false; var prestraidon = false; var cost = (updateMapCost(true)); -var mapbought = true; +var mapbought = false; //Activate Robo Trimp (will activate on the first zone after liquification) function autoRoboTrimp() { //exit if the cooldown is active, or we havent unlocked robotrimp. From 9dad57e8ae5f233e7a36df0d84f7f090dc278e37 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 23:04:09 +0100 Subject: [PATCH 349/365] Update other.js --- modules/other.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/other.js b/modules/other.js index 70fa80751..5efe4780b 100644 --- a/modules/other.js +++ b/modules/other.js @@ -214,6 +214,7 @@ function Praiding() { debug("...Successfully prestiged!"); prestraid = true; prestraidon = false; + mapbought = false; if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { autoTrimpSettings["AutoMaps"].value = 1; debug("Turning AutoMaps back on"); @@ -226,6 +227,7 @@ function Praiding() { if (prestraid == true && game.global.world !== getPageSetting('Praidingzone')) { prestraid = false; prestraidon = false; + mapbought = false; } } From 9c11ad614f47e8e3cbaadf073ebf4aa59b4601a0 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Sun, 10 Jun 2018 23:31:17 +0100 Subject: [PATCH 350/365] Update AutoTrimps2.js --- AutoTrimps2.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AutoTrimps2.js b/AutoTrimps2.js index ec61d16b5..9c91764ab 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -62,7 +62,8 @@ function initializeAutoTrimps() { var changelogList = []; //changelogList.push({date: " ", version: " ", description: "", isNew: true}); //TEMPLATE -changelogList.push({date: "05/06/2018", version: "v2.3", description: "Updated Heirloom calc, should be 4.8 ready. Ratios will be updated soon. ", isNew: true}); +changelogList.push({date: "05/06/2018", version: "v2.2.2", description: "Fixed map at zone. Updated calcs. Praiding should work for everyone now. BW raiding still being tested, but should work. Ratios being tested, finding optimum coord and carp. Any bugs, please let me know, thanks. ", isNew: true}); +changelogList.push({date: "05/06/2018", version: "v2.2.1", description: "Updated Heirloom calc, should be 4.8 ready. Ratios will be updated soon. ", isNew: true}); changelogList.push({date: "28/05/2018", version: "v2.2", description: "Added single use prestige raiding, BW raiding, looting II dump, amals are now calcd properly. ", isNew: true}); //changelogList.push({date: "4/2", version: "v2.1.6.9b", description: "Import Export, Modules Load code Improvements. Multiple Buttons/Settings Were Combined. AutoPerks code was changed but still functions the same, except for a new algorithm that reduces the time to allocate for high helium players to near-instantaneous. Please test new algo with MODULES[\"perks\"].useAlgo2=true; .You can also clear all perks then allocate and have it work now. AutoMaps no longer considered as being in Lead challenge during Chall^2. ", isNew: true}); //changelogList.push({date: "3/23", version: "v2.1.6.9", description: "Game's Map at Zone can be used with AT now, to run maps forever. AutoMaps setting was combined with RunUniqueMaps (variable has changed from boolean false,true to a value 0,1,2). Settings file has been migrated as such. New: Map SpecialMod is sort of working, at least. Geneticist Infinity bugfix. New AGU Settings for 60% Void (fixed). Many Graphs fixes. AutoMaps changes. Equipment Cap, see README at GitHub DarkTheme fix. Scientists Fix. Zek450 Perks Preset Changed. Ongoing Development...", isNew: false}); From 8be62ef5142bd3ec5df4a465cbceeb2de7e24207 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 11 Jun 2018 08:32:37 +0100 Subject: [PATCH 351/365] Update other.js --- modules/other.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index 5efe4780b..b5e03649d 100644 --- a/modules/other.js +++ b/modules/other.js @@ -187,12 +187,12 @@ function Praiding() { } if (game.global.world == getPageSetting('Praidingzone') && game.global.preMapsActive && !prestraid && !failpraid) { plusPres(); - if (updateMapCost(true) <= game.resources.fragments.owned) { + if ((updateMapCost(true) <= game.resources.fragments.owned)) { buyMap(); failpraid = false; mapbought = true; } - else if (updateMapCost(true) <= game.resources.fragments.owned > game.resources.fragments.owned) { + else if ((updateMapCost(true) > game.resources.fragments.owned)) { if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { autoTrimpSettings["AutoMaps"].value = 1; failpraid = true; From 8945c12cab8415f892f71ae696594bf3e495b769 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 11 Jun 2018 08:38:31 +0100 Subject: [PATCH 352/365] Update other.js --- modules/other.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index b5e03649d..17c6aa6ef 100644 --- a/modules/other.js +++ b/modules/other.js @@ -179,7 +179,6 @@ function Praiding() { } if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { mapsClicked(); - mapsClicked(); debug("Beginning Prestige Raiding..."); } if (game.options.menu.repeatUntil.enabled!=2 && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { @@ -244,7 +243,6 @@ function BWraiding() { } if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { mapsClicked(); - mapsClicked(); } if (game.options.menu.repeatUntil.enabled != 2 && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { game.options.menu.repeatUntil.enabled = 2; From 3ec7f9d95c77182f8f886c87e738cfd75c7c80e3 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 11 Jun 2018 08:49:04 +0100 Subject: [PATCH 353/365] Update other.js --- modules/other.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/other.js b/modules/other.js index 17c6aa6ef..488145534 100644 --- a/modules/other.js +++ b/modules/other.js @@ -179,6 +179,9 @@ function Praiding() { } if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { mapsClicked(); + if (!game.global.switchToMaps) { + mapsClicked(); + } debug("Beginning Prestige Raiding..."); } if (game.options.menu.repeatUntil.enabled!=2 && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { @@ -190,6 +193,7 @@ function Praiding() { buyMap(); failpraid = false; mapbought = true; + debug("Map successfully bought!"); } else if ((updateMapCost(true) > game.resources.fragments.owned)) { if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { @@ -243,6 +247,9 @@ function BWraiding() { } if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { mapsClicked(); + if (!game.global.switchToMaps) { + mapsClicked(); + } } if (game.options.menu.repeatUntil.enabled != 2 && game.global.world >= getPageSetting('BWraidingz') && !bwraided && !failbwraid) { game.options.menu.repeatUntil.enabled = 2; From 5e7dafc3735a08618e3deecb2763d822c7761f36 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 11 Jun 2018 08:52:24 +0100 Subject: [PATCH 354/365] Update other.js --- modules/other.js | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 488145534..d113085fe 100644 --- a/modules/other.js +++ b/modules/other.js @@ -193,7 +193,6 @@ function Praiding() { buyMap(); failpraid = false; mapbought = true; - debug("Map successfully bought!"); } else if ((updateMapCost(true) > game.resources.fragments.owned)) { if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { From 0d83d28426d011e66957b68758d6533caa6e79ef Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 11 Jun 2018 12:41:39 +0100 Subject: [PATCH 355/365] Update other.js --- modules/other.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/other.js b/modules/other.js index d113085fe..e18faeed9 100644 --- a/modules/other.js +++ b/modules/other.js @@ -208,8 +208,8 @@ function Praiding() { } if (mapbought == true) { selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); + runMap(); } - runMap(); if (!game.global.repeatMap && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { repeatClicked(); } @@ -222,7 +222,7 @@ function Praiding() { debug("Turning AutoMaps back on"); } } - else if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { + if (getPageSetting('AutoMaps') == 0 && game.global.preMapsActive && prestraid && !failpraid) { autoTrimpSettings["AutoMaps"].value = 1; debug("Turning AutoMaps back on"); } From 773cfe58dc57c1c2c88a1eb6f57341628a0088bb Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 11 Jun 2018 13:26:28 +0100 Subject: [PATCH 356/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index e18faeed9..960cdd4b6 100644 --- a/modules/other.js +++ b/modules/other.js @@ -179,7 +179,7 @@ function Praiding() { } if (!game.global.preMapsActive && !game.global.mapsActive && game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { mapsClicked(); - if (!game.global.switchToMaps) { + if (!game.global.preMapsActive) { mapsClicked(); } debug("Beginning Prestige Raiding..."); From 4b15ec2d24dc8b851eb09dabedb86c666140776c Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 11 Jun 2018 14:40:35 +0100 Subject: [PATCH 357/365] Update other.js --- modules/other.js | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/modules/other.js b/modules/other.js index 960cdd4b6..4517bff1d 100644 --- a/modules/other.js +++ b/modules/other.js @@ -170,24 +170,27 @@ function findLastBionic() { //Praiding function Praiding() { - if (game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { - if (game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { + var PRaidZoneArray = getPageSetting('Praidingzone').split(,); + for(var i = 0;i game.resources.fragments.owned)) { - if (getPageSetting('AutoMaps') == 0 && game.global.world == getPageSetting('Praidingzone') && !prestraid) { + if (getPageSetting('AutoMaps') == 0 && game.global.world == i Date: Mon, 11 Jun 2018 14:43:28 +0100 Subject: [PATCH 358/365] Update other.js --- modules/other.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/other.js b/modules/other.js index 4517bff1d..c6c609a91 100644 --- a/modules/other.js +++ b/modules/other.js @@ -170,9 +170,8 @@ function findLastBionic() { //Praiding function Praiding() { - var PRaidZoneArray = getPageSetting('Praidingzone').split(,); - for(var i = 0;i Date: Mon, 11 Jun 2018 14:45:34 +0100 Subject: [PATCH 359/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index c6c609a91..0cbf57b8f 100644 --- a/modules/other.js +++ b/modules/other.js @@ -171,7 +171,7 @@ function findLastBionic() { function Praiding() { var PRaidZoneArray = getPageSetting('Praidingzone').split(','); - for(var i = 0;i Date: Mon, 11 Jun 2018 14:47:07 +0100 Subject: [PATCH 360/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index 0cbf57b8f..f0e1a3757 100644 --- a/modules/other.js +++ b/modules/other.js @@ -171,7 +171,7 @@ function findLastBionic() { function Praiding() { var PRaidZoneArray = getPageSetting('Praidingzone').split(','); - for var i = 0;i Date: Mon, 11 Jun 2018 14:50:25 +0100 Subject: [PATCH 361/365] Update other.js --- modules/other.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/other.js b/modules/other.js index f0e1a3757..41104bd84 100644 --- a/modules/other.js +++ b/modules/other.js @@ -233,7 +233,7 @@ function Praiding() { prestraidon = false; mapbought = false; } - + } } From aeeebf6d0576150be0ec1483191870a38cd58bb2 Mon Sep 17 00:00:00 2001 From: Zeker0 Date: Mon, 11 Jun 2018 15:00:40 +0100 Subject: [PATCH 362/365] Update other.js --- modules/other.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/other.js b/modules/other.js index 41104bd84..b9cdd6a67 100644 --- a/modules/other.js +++ b/modules/other.js @@ -172,24 +172,24 @@ function findLastBionic() { function Praiding() { var PRaidZoneArray = getPageSetting('Praidingzone').split(','); for (var i = 0;i game.resources.fragments.owned)) { - if (getPageSetting('AutoMaps') == 0 && game.global.world == i Date: Mon, 11 Jun 2018 22:47:20 +0100 Subject: [PATCH 363/365] Update other.js --- modules/other.js | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/modules/other.js b/modules/other.js index b9cdd6a67..5daaad178 100644 --- a/modules/other.js +++ b/modules/other.js @@ -170,12 +170,9 @@ function findLastBionic() { //Praiding function Praiding() { - var PRaidZoneArray = getPageSetting('Praidingzone').split(','); - for (var i = 0;i Date: Mon, 11 Jun 2018 22:52:52 +0100 Subject: [PATCH 364/365] Update other.js --- modules/other.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/other.js b/modules/other.js index 5daaad178..d07960211 100644 --- a/modules/other.js +++ b/modules/other.js @@ -170,7 +170,7 @@ function findLastBionic() { //Praiding function Praiding() { - if (getPageSetting('Praidingzone') && !prestraid && !failpraid) { + if (game.global.world == getPageSetting('Praidingzone') && !prestraid && !failpraid) { prestraidon = true; if (getPageSetting('AutoMaps') == 1 && !prestraid && !failpraid) { @@ -209,10 +209,10 @@ function Praiding() { selectMap(game.global.mapsOwnedArray[game.global.mapsOwnedArray.length-1].id); runMap(); } - if (!prestraid && !failpraid) { + if (!prestraid && !failpraid && !game.global.repeatMap) { repeatClicked(); + debug("...Successfully prestiged!"); } - debug("...Successfully prestiged!"); prestraid = true; prestraidon = false; mapbought = false; From 6dcf6c138822ff8f8d8b0b781d42c90a525c35e4 Mon Sep 17 00:00:00 2001 From: KFrowde <37512082+KFrowde@users.noreply.github.com> Date: Wed, 13 Jun 2018 10:57:32 +0100 Subject: [PATCH 365/365] Fix user.js + AT2 to point to my URL --- .user.js | 2 +- AutoTrimps2.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.user.js b/.user.js index 2a7663279..85abab38d 100644 --- a/.user.js +++ b/.user.js @@ -16,7 +16,7 @@ var script = document.createElement('script'); script.id = 'AutoTrimps-Zek'; //This can be edited to point to your own Github Repository URL. -script.src = 'https://Zorn192.github.io/AutoTrimps/AutoTrimps2.js'; +script.src = 'https://KFrowde.github.io/AutoTrimps/AutoTrimps2.js'; //script.setAttribute('crossorigin',"use-credentials"); script.setAttribute('crossorigin',"anonymous"); document.head.appendChild(script); diff --git a/AutoTrimps2.js b/AutoTrimps2.js index 9c91764ab..67fd41210 100644 --- a/AutoTrimps2.js +++ b/AutoTrimps2.js @@ -15,7 +15,7 @@ var ATversion = '2.1.6.9b-genbtc-4-2-2018 + KFrowde + Zeker0'; //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////// var atscript = document.getElementById('AutoTrimps-script') - , basepath = 'https://Zorn192.github.io/AutoTrimps/' + , basepath = 'https://KFrowde.github.io/AutoTrimps/' , modulepath = 'modules/' ; //This should redirect the script to wherever its being mirrored from.