From f74219446abec822b6f370d2284ceb108f4ce270 Mon Sep 17 00:00:00 2001 From: Jacob Rosenthal Date: Sat, 17 Jul 2021 09:15:06 -0500 Subject: [PATCH 1/2] chore: format Updated plugin.js format to show changes in update --- content/productivity/crawl-planets/plugin.js | 113 +++++++++---------- 1 file changed, 56 insertions(+), 57 deletions(-) diff --git a/content/productivity/crawl-planets/plugin.js b/content/productivity/crawl-planets/plugin.js index f86f52e1..89d2e0f1 100644 --- a/content/productivity/crawl-planets/plugin.js +++ b/content/productivity/crawl-planets/plugin.js @@ -141,7 +141,6 @@ class Plugin { }, 0); } } - container.appendChild(stepperLabel); container.appendChild(stepper); container.appendChild(percent); @@ -159,73 +158,73 @@ export default Plugin; function capturePlanets(fromId, minCaptureLevel, maxDistributeEnergyPercent, planetType) { - const planet = df.getPlanetWithId(fromId); - const from = df.getPlanetWithId(fromId); - - // Rejected if has pending outbound moves - const unconfirmed = df.getUnconfirmedMoves().filter(move => move.from === fromId) - if (unconfirmed.length !== 0) { - return 0; - } - - const candidates_ = df.getPlanetsInRange(fromId, maxDistributeEnergyPercent) - .filter(p => ( - p.owner !== df.account && - players.includes(p.owner) && - p.planetLevel >= minCaptureLevel && - p.planetType === planetType - )) - .map(to => { - return [to, distance(from, to)] - }) - .sort((a, b) => a[1] - b[1]); - - let i = 0; - const energyBudget = Math.floor((maxDistributeEnergyPercent / 100) * planet.energy); - - let energySpent = 0; - let moves = 0; - while (energyBudget - energySpent > 0 && i < candidates_.length) { + const planet = df.getPlanetWithId(fromId); + const from = df.getPlanetWithId(fromId); - const energyLeft = energyBudget - energySpent; - - // Remember its a tuple of candidates and their distance - const candidate = candidates_[i++][0]; - - // Rejected if has unconfirmed pending arrivals - const unconfirmed = df.getUnconfirmedMoves().filter(move => move.to === candidate.locationId) + // Rejected if has pending outbound moves + const unconfirmed = df.getUnconfirmedMoves().filter(move => move.from === fromId) if (unconfirmed.length !== 0) { - continue; - } - - // Rejected if has pending arrivals - const arrivals = getArrivalsForPlanet(candidate.locationId); - if (arrivals.length !== 0) { - continue; + return 0; } - const energyArriving = (candidate.energyCap * 0.15) + (candidate.energy * (candidate.defense / 100)); - // needs to be a whole number for the contract - const energyNeeded = Math.ceil(df.getEnergyNeededForMove(fromId, candidate.locationId, energyArriving)); - if (energyLeft - energyNeeded < 0) { - continue; + const candidates_ = df.getPlanetsInRange(fromId, maxDistributeEnergyPercent) + .filter(p => ( + p.owner !== df.account && + players.includes(p.owner) && + p.planetLevel >= minCaptureLevel && + p.planetType === planetType + )) + .map(to => { + return [to, distance(from, to)] + }) + .sort((a, b) => a[1] - b[1]); + + let i = 0; + const energyBudget = Math.floor((maxDistributeEnergyPercent / 100) * planet.energy); + + let energySpent = 0; + let moves = 0; + while (energyBudget - energySpent > 0 && i < candidates_.length) { + + const energyLeft = energyBudget - energySpent; + + // Remember its a tuple of candidates and their distance + const candidate = candidates_[i++][0]; + + // Rejected if has unconfirmed pending arrivals + const unconfirmed = df.getUnconfirmedMoves().filter(move => move.to === candidate.locationId) + if (unconfirmed.length !== 0) { + continue; + } + + // Rejected if has pending arrivals + const arrivals = getArrivalsForPlanet(candidate.locationId); + if (arrivals.length !== 0) { + continue; + } + + const energyArriving = (candidate.energyCap * 0.15) + (candidate.energy * (candidate.defense / 100)); + // needs to be a whole number for the contract + const energyNeeded = Math.ceil(df.getEnergyNeededForMove(fromId, candidate.locationId, energyArriving)); + if (energyLeft - energyNeeded < 0) { + continue; + } + + df.move(fromId, candidate.locationId, energyNeeded, 0); + energySpent += energyNeeded; + moves += 1; } - df.move(fromId, candidate.locationId, energyNeeded, 0); - energySpent += energyNeeded; - moves += 1; - } - - return moves; + return moves; } function getArrivalsForPlanet(planetId) { - return df.getAllVoyages().filter(arrival => arrival.toPlanet === planetId).filter(p => p.arrivalTime > Date.now() / 1000); + return df.getAllVoyages().filter(arrival => arrival.toPlanet === planetId).filter(p => p.arrivalTime > Date.now() / 1000); } //returns tuples of [planet,distance] function distance(from, to) { - let fromloc = from.location; - let toloc = to.location; - return Math.sqrt((fromloc.coords.x - toloc.coords.x) ** 2 + (fromloc.coords.y - toloc.coords.y) ** 2); + let fromloc = from.location; + let toloc = to.location; + return Math.sqrt((fromloc.coords.x - toloc.coords.x) ** 2 + (fromloc.coords.y - toloc.coords.y) ** 2); } From 7ea480e7e46658c449bb8e28cdb8fa172f841bee Mon Sep 17 00:00:00 2001 From: PawlowskiAdrian Date: Sat, 17 Jul 2021 14:11:54 +0200 Subject: [PATCH 2/2] Update Crawl Added: - Min. level to send energy from - Max. level to send energy from - Allow minimum energy to capture Reasons: 1) Using Crawl everything with old plugin could negativly effect empire if it was already big enought 2) Crawl everything by mistake could send energy from important planets 3) You were not able to capture important uncaptured planets EVEN if your energy could allow that (overtake by 1) Signed-off-by: PawlowskiAdrian --- content/productivity/crawl-planets/index.md | 2 +- content/productivity/crawl-planets/plugin.js | 368 +++++++++++------- .../productivity/crawl-planets/screenshot.png | Bin 16264 -> 40229 bytes 3 files changed, 235 insertions(+), 135 deletions(-) diff --git a/content/productivity/crawl-planets/index.md b/content/productivity/crawl-planets/index.md index eae39059..4f4ac426 100644 --- a/content/productivity/crawl-planets/index.md +++ b/content/productivity/crawl-planets/index.md @@ -1,6 +1,6 @@ --- title: Crawl Planets -date: 2021-01-06T20:54:00-07:00 +date: 2021-07-29T14:00:00+02:00 subtitle: Capture unowned planets around you! version: 0.6.0 --- diff --git a/content/productivity/crawl-planets/plugin.js b/content/productivity/crawl-planets/plugin.js index 89d2e0f1..1e2b0382 100644 --- a/content/productivity/crawl-planets/plugin.js +++ b/content/productivity/crawl-planets/plugin.js @@ -14,150 +14,245 @@ const players = [ EMPTY_ADDRESS ]; + class Plugin { - constructor() { - this.planetType = PlanetType.SILVER_MINE; - this.minPlanetLevel = 3; - this.maxEnergyPercent = 85; - } - render(container) { - container.style.width = '220px'; - - let stepperLabel = document.createElement('label'); - stepperLabel.innerText = 'Max % energy to spend'; - stepperLabel.style.display = 'block'; - - let stepper = document.createElement('input'); - stepper.type = 'range'; - stepper.min = '0'; - stepper.max = '100'; - stepper.step = '5'; - stepper.value = `${this.maxEnergyPercent}`; - stepper.style.width = '80%'; - stepper.style.height = '24px'; - - let percent = document.createElement('span'); - percent.innerText = `${stepper.value}%`; - percent.style.float = 'right'; - - stepper.onchange = (evt) => { - percent.innerText = `${evt.target.value}%`; - try { - this.maxEnergyPercent = parseInt(evt.target.value, 10); - } catch (e) { - console.error('could not parse energy percent', e); - } + constructor() { + this.planetType = PlanetType.SILVER_MINE; + this.minimumEnergyAllowed = 15; + this.minPlanetLevelTo = PlanetLevel.ONE; + this.minPlanetLevelFrom = PlanetLevel.ZERO; + this.maxPlanetLevelFrom = PlanetLevel.THREE; + this.maxEnergyPercent = 85; } + render(container) { + container.style.width = '400px'; + + let stepperLabel = document.createElement('label'); + stepperLabel.innerText = 'Max % energy to spend'; + stepperLabel.style.display = 'block'; + + let stepper = document.createElement('input'); + stepper.type = 'range'; + stepper.min = '0'; + stepper.max = '100'; + stepper.step = '5'; + stepper.value = `${this.maxEnergyPercent}`; + stepper.style.width = '80%'; + stepper.style.height = '24px'; + + let percent = document.createElement('span'); + percent.innerText = `${stepper.value}%`; + percent.style.float = 'right'; + + stepper.onchange = (evt) => { + percent.innerText = `${evt.target.value}%`; + try { + this.maxEnergyPercent = parseInt(evt.target.value, 10); + } catch (e) { + console.error('could not parse energy percent', e); + } + } - let levelLabel = document.createElement('label'); - levelLabel.innerText = 'Min. level to capture'; - levelLabel.style.display = 'block'; - - let level = document.createElement('select'); - level.style.background = 'rgb(8,8,8)'; - level.style.width = '100%'; - level.style.marginTop = '10px'; - level.style.marginBottom = '10px'; - Object.values(PlanetLevel).forEach(lvl => { - let opt = document.createElement('option'); - opt.value = `${lvl}`; - opt.innerText = PlanetLevelNames[lvl]; - level.appendChild(opt); - }); - level.value = `${this.minPlanetLevel}`; - - level.onchange = (evt) => { - try { - this.minPlanetLevel = parseInt(evt.target.value, 10); - } catch (e) { - console.error('could not parse planet level', e); - } - } + let minimumEnergyAllowedLabel = document.createElement('label'); + minimumEnergyAllowedLabel.innerText = '% energy to fill after capture'; + minimumEnergyAllowedLabel.style.display = 'block'; + + let minimumEnergyAllowedSelect = document.createElement('input'); + minimumEnergyAllowedSelect.type = 'range'; + minimumEnergyAllowedSelect.min = '0'; + minimumEnergyAllowedSelect.max = '100'; + minimumEnergyAllowedSelect.step = '1'; + minimumEnergyAllowedSelect.value = `${this.minimumEnergyAllowed}`; + minimumEnergyAllowedSelect.style.width = '80%'; + minimumEnergyAllowedSelect.style.height = '24px'; + + let percentminimumEnergyAllowed = document.createElement('span'); + percentminimumEnergyAllowed.innerText = `${minimumEnergyAllowedSelect.value}%`; + percentminimumEnergyAllowed.style.float = 'right'; + + minimumEnergyAllowedSelect.onchange = (evt) => { + if (parseInt(evt.target.value, 10) === 0) percentminimumEnergyAllowed.innerText = `1 energy`; + else + percentminimumEnergyAllowed.innerText = `${evt.target.value}%`; + try { + this.minimumEnergyAllowed = parseInt(evt.target.value, 10); + } catch (e) { + console.error('could not parse minimum energy allowed percent', e); + } + } - let planetTypeLabel = document.createElement('label'); - planetTypeLabel.innerText = 'Planet type to capture'; - planetTypeLabel.style.display = 'block'; - - let planetType = document.createElement('select'); - planetType.style.background = 'rgb(8,8,8)'; - planetType.style.width = '100%'; - planetType.style.marginTop = '10px'; - planetType.style.marginBottom = '10px'; - Object.values(PlanetType).forEach((ptype) => { - let opt = document.createElement('option'); - opt.value = `${ptype}`; - opt.innerText = `${PlanetTypeNames[ptype]}`; - planetType.appendChild(opt); - }); - planetType.value = `${this.planetType}`; - - planetType.onchange = (evt) => { - try { - this.planetType = parseInt(evt.target.value, 10); - } catch (e) { - console.error('could not parse planet planet type', e); - } - } + let levelLabelTo = document.createElement('label'); + levelLabelTo.innerText = 'Min. level to capture'; + levelLabelTo.style.display = 'block'; + + let levelTo = document.createElement('select'); + levelTo.style.background = 'rgb(8,8,8)'; + levelTo.style.width = '100%'; + levelTo.style.marginTop = '10px'; + levelTo.style.marginBottom = '10px'; + Object.entries(PlanetLevel).forEach(([name,lvl]) => { + let opt = document.createElement('option'); + opt.value = `${lvl}`; + opt.innerText = `${PlanetLevelNames[lvl]}`; + levelTo.appendChild(opt); + }); + levelTo.value = `${this.minPlanetLevelTo}`; + + levelTo.onchange = (evt) => { + try { + this.minPlanetLevelTo = parseInt(evt.target.value, 10); + } catch (e) { + console.error('could not parse planet level', e); + } + } - let message = document.createElement('div'); - - let button = document.createElement('button'); - button.style.width = '100%'; - button.style.marginBottom = '10px'; - button.innerHTML = 'Crawl from selected!' - button.onclick = () => { - let planet = ui.getSelectedPlanet(); - if (planet) { - message.innerText = 'Please wait...'; - let moves = capturePlanets( - planet.locationId, - this.minPlanetLevel, - this.maxEnergyPercent, - this.planetType, - ); - message.innerText = `Crawling ${moves} ${PlanetTypeNames[this.planetType]}s.`; - } else { - message.innerText = 'No planet selected.'; - } - } + let levelLabelFromMin = document.createElement('label'); + levelLabelFromMin.innerText = 'Min. level to send energy from'; + levelLabelFromMin.style.display = 'block'; + + let levelFromMin = document.createElement('select'); + levelFromMin.style.background = 'rgb(8,8,8)'; + levelFromMin.style.width = '100%'; + levelFromMin.style.marginTop = '10px'; + levelFromMin.style.marginBottom = '10px'; + Object.entries(PlanetLevel).forEach(([name,lvl]) => { + let opt = document.createElement('option'); + opt.value = `${lvl}`; + opt.innerText = `${PlanetLevelNames[lvl]}`; + levelFromMin.appendChild(opt); + }); + levelFromMin.value = `${this.minPlanetLevelFrom}`; + + levelFromMin.onchange = (evt) => { + try { + this.minPlanetLevelFrom = parseInt(evt.target.value, 10); + } catch (e) { + console.error('could not parse planet level', e); + } + } - let globalButton = document.createElement('button'); - globalButton.style.width = '100%'; - globalButton.style.marginBottom = '10px'; - globalButton.innerHTML = 'Crawl everything!' - globalButton.onclick = () => { - message.innerText = 'Please wait...'; - - let moves = 0; - for (let planet of df.getMyPlanets()) { - setTimeout(() => { - moves += capturePlanets( - planet.locationId, - this.minPlanetLevel, - this.maxEnergyPercent, - this.planetType, - ); - message.innerText = `Crawling ${moves} ${PlanetTypeNames[this.planetType]}s.`; - }, 0); - } - } - container.appendChild(stepperLabel); - container.appendChild(stepper); - container.appendChild(percent); - container.appendChild(levelLabel); - container.appendChild(level); - container.appendChild(planetTypeLabel); - container.appendChild(planetType); - container.appendChild(button); - container.appendChild(globalButton); - container.appendChild(message); + let levelLabelFromMax = document.createElement('label'); + levelLabelFromMax.innerText = 'Max. level to send energy from'; + levelLabelFromMax.style.display = 'block'; + + let levelFromMax = document.createElement('select'); + levelFromMax.style.background = 'rgb(8,8,8)'; + levelFromMax.style.width = '100%'; + levelFromMax.style.marginTop = '10px'; + levelFromMax.style.marginBottom = '10px'; + Object.entries(PlanetLevel).forEach(([name, lvl]) => { + let opt = document.createElement('option'); + opt.value = `${lvl}`; + opt.innerText = `${PlanetLevelNames[lvl]}`; + levelFromMax.appendChild(opt); + }); + levelFromMax.value = `${this.maxPlanetLevelFrom}`; + + levelFromMax.onchange = (evt) => { + try { + this.maxPlanetLevelFrom = parseInt(evt.target.value, 10); + } catch (e) { + console.error('could not parse planet level', e); + } + } + + let planetTypeLabel = document.createElement('label'); + planetTypeLabel.innerText = 'Planet type to capture'; + planetTypeLabel.style.display = 'block'; + + let planetType = document.createElement('select'); + planetType.style.background = 'rgb(8,8,8)'; + planetType.style.width = '100%'; + planetType.style.marginTop = '10px'; + planetType.style.marginBottom = '10px'; + Object.entries(PlanetType).forEach(([name, key]) => { + let opt = document.createElement('option'); + opt.value = `${key}`; + opt.innerText = `${PlanetTypeNames[key]}`; + planetType.appendChild(opt); + }); + planetType.value = `${this.planetType}`; + + planetType.onchange = (evt) => { + try { + this.planetType = parseInt(evt.target.value, 10); + } catch (e) { + console.error('could not parse planet planet type', e); + } + } + + let message = document.createElement('div'); + + let button = document.createElement('button'); + button.style.width = '100%'; + button.style.marginBottom = '10px'; + button.innerHTML = 'Crawl from selected!' + button.onclick = () => { + let planet = ui.getSelectedPlanet(); + if (planet) { + message.innerText = 'Please wait...'; + let moves = capturePlanets( + planet.locationId, + this.minPlanetLevelFrom, + this.maxPlanetLevelFrom, + this.maxEnergyPercent, + this.planetType, + this.minimumEnergyAllowed, + ); + message.innerText = `Crawling ${moves} ${PlanetTypeNames[this.planetType]}s.`; + } else { + message.innerText = 'No planet selected.'; + } + } + + let globalButton = document.createElement('button'); + globalButton.style.width = '100%'; + globalButton.style.marginBottom = '10px'; + globalButton.innerHTML = 'Crawl everything!' + globalButton.onclick = () => { + message.innerText = 'Please wait...'; + + let moves = 0; + for (let planet of df.getMyPlanets()) { + setTimeout(() => { + moves += capturePlanets( + planet.locationId, + this.minPlanetLevelFrom, + this.maxPlanetLevelFrom, + this.maxEnergyPercent, + this.planetType, + this.minimumEnergyAllowed, + ); + message.innerText = `Crawling ${moves} ${PlanetTypeNames[this.planetType]}s.`; + }, 0); + } + } + + container.appendChild(stepperLabel); + container.appendChild(stepper); + container.appendChild(percent); + container.appendChild(minimumEnergyAllowedLabel); + container.appendChild(minimumEnergyAllowedSelect); + container.appendChild(percentminimumEnergyAllowed); + container.appendChild(levelLabelTo); + container.appendChild(levelTo); + container.appendChild(planetTypeLabel); + container.appendChild(planetType); + container.appendChild(button); + container.append(document.createElement("br"), document.createElement("br")); + container.appendChild(levelLabelFromMin); + container.appendChild(levelFromMin); + container.appendChild(levelLabelFromMax); + container.appendChild(levelFromMax); + container.appendChild(globalButton); + container.appendChild(message); } } export default Plugin; -function capturePlanets(fromId, minCaptureLevel, maxDistributeEnergyPercent, planetType) { +function capturePlanets(fromId, minCaptureLevel, maxCaptureLevel, maxDistributeEnergyPercent, planetType, minimumEnergyAllowed = 0) { const planet = df.getPlanetWithId(fromId); const from = df.getPlanetWithId(fromId); @@ -172,6 +267,7 @@ function capturePlanets(fromId, minCaptureLevel, maxDistributeEnergyPercent, pla p.owner !== df.account && players.includes(p.owner) && p.planetLevel >= minCaptureLevel && + p.planetLevel <= maxCaptureLevel && p.planetType === planetType )) .map(to => { @@ -203,7 +299,11 @@ function capturePlanets(fromId, minCaptureLevel, maxDistributeEnergyPercent, pla continue; } - const energyArriving = (candidate.energyCap * 0.15) + (candidate.energy * (candidate.defense / 100)); + // set minimum above energy to % or 1 (if 0%), depending on minimumEnergyAllowed value + if (minimumEnergyAllowed === 0) minimumEnergyAllowed = 1 + else + minimumEnergyAllowed = candidate.energyCap * minimumEnergyAllowed / 100 + const energyArriving = minimumEnergyAllowed + (candidate.energy * (candidate.defense / 100)); // needs to be a whole number for the contract const energyNeeded = Math.ceil(df.getEnergyNeededForMove(fromId, candidate.locationId, energyArriving)); if (energyLeft - energyNeeded < 0) { @@ -227,4 +327,4 @@ function distance(from, to) { let fromloc = from.location; let toloc = to.location; return Math.sqrt((fromloc.coords.x - toloc.coords.x) ** 2 + (fromloc.coords.y - toloc.coords.y) ** 2); -} +} \ No newline at end of file diff --git a/content/productivity/crawl-planets/screenshot.png b/content/productivity/crawl-planets/screenshot.png index 991d4903bba7885c2b30175925a5842844cea12d..6d28b6d2c78c155afc7c4f08f3604f3c6e5c0e3e 100644 GIT binary patch literal 40229 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 i62jUpQahQVE7|r_#_7wJ_?4Wb!}7{97W*Z;BBR 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