diff --git a/img/Hilbert space.webp b/img/Hilbert space.webp index 676ec7a..b772ad8 100644 Binary files a/img/Hilbert space.webp and b/img/Hilbert space.webp differ diff --git a/img/Hilbert spaces.webp b/img/Hilbert spaces.webp deleted file mode 100644 index 4a99cf6..0000000 Binary files a/img/Hilbert spaces.webp and /dev/null differ diff --git a/img/field/molecular assembler.webp b/img/field/molecular assembler.webp index 0478e95..89a2ab2 100644 Binary files a/img/field/molecular assembler.webp and b/img/field/molecular assembler.webp differ diff --git a/img/many-worlds.webp b/img/many-worlds.webp index d3028e4..ba30e29 100644 Binary files a/img/many-worlds.webp and b/img/many-worlds.webp differ diff --git a/img/Ψ(t) collapse.webp b/img/Ψ(t) collapse.webp index 4a99cf6..b703beb 100644 Binary files a/img/Ψ(t) collapse.webp and b/img/Ψ(t) collapse.webp differ diff --git a/js/bullet.js b/js/bullet.js index 168a2ad..24730c3 100644 --- a/js/bullet.js +++ b/js/bullet.js @@ -5976,9 +5976,9 @@ const b = { spray(12); //fires normal shotgun bullets } else if (tech.isIncendiary) { spread *= 0.15 - const END = Math.floor(input.down ? 10 : 7); - const totalBullets = 10 - const angleStep = (input.down ? 0.4 : 1.3) / totalBullets + const END = Math.floor(input.down ? 8 : 5); + const totalBullets = 9 + const angleStep = (input.down ? 0.3 : 0.8) / totalBullets let dir = m.angle - angleStep * totalBullets / 2; for (let i = 0; i < totalBullets; i++) { //5 -> 7 dir += angleStep @@ -5993,7 +5993,7 @@ const b = { y: speed * Math.sin(dirOff) }); bullet[me].onEnd = function() { - b.explosion(this.position, 150 * (tech.isShotgunReversed ? 1.4 : 1) + (Math.random() - 0.5) * 40); //makes bullet do explosive damage at end + b.explosion(this.position, 150 * (tech.isShotgunReversed ? 1.4 : 1) + (Math.random() - 0.5) * 30); //makes bullet do explosive damage at end } bullet[me].beforeDmg = function() { this.endCycle = 0; //bullet ends cycle after hitting a mob and triggers explosion diff --git a/js/level.js b/js/level.js index f12b5e2..5e52138 100644 --- a/js/level.js +++ b/js/level.js @@ -21,7 +21,7 @@ const level = { // level.difficultyIncrease(30 * 4) //30 is near max on hard //60 is near max on why // m.maxHealth = m.health = 100 // tech.isRerollDamage = true - // powerUps.research.changeRerolls(20) + // powerUps.research.changeRerolls(10) // m.immuneCycle = Infinity //you can't take damage // tech.tech[297].frequency = 100 // m.couplingChange(5) @@ -35,7 +35,7 @@ const level = { // tech.giveTech("posture") // for (let i = 0; i < 1; ++i) tech.giveTech("Sleipnir") // tech.isFoamBall = true - // for (let i = 0; i < 1; ++i) tech.giveTech("emergence") + // for (let i = 0; i < 9; ++i) tech.giveTech("emergence") // for (let i = 0; i < 2; i++) tech.giveTech("unified field theory") // for (let i = 0; i < 9; i++) tech.giveTech("replication") // for (let i = 0; i < 10; i++) powerUps.directSpawn(450, -50, "tech"); diff --git a/js/powerup.js b/js/powerup.js index d386473..2184e2a 100644 --- a/js/powerup.js +++ b/js/powerup.js @@ -620,21 +620,21 @@ const powerUps = { if (tech.isSuperDeterminism) { return `
` } else if (tech.isCancelTech) { - return `
randomize
` + return `
randomize
` } else { - return `
cancel
` + return `
cancel
` } }, researchText(type) { let text = "" if (tech.isJunkResearch && powerUps.research.currentRerollCount < 3) { - text += `
` // style = "margin-left: 192px; margin-right: -192px;" + text += `
` // style = "margin-left: 192px; margin-right: -192px;" tech.junkResearchNumber = Math.ceil(4 * Math.random()) text += `
` for (let i = 0; i < tech.junkResearchNumber; i++) text += `
` text += `
  pseudoscience
` } else if (powerUps.research.count > 0) { - text += `
` // style = "margin-left: 192px; margin-right: -192px;" + text += `
` // style = "margin-left: 192px; margin-right: -192px;" text += `
` for (let i = 0, len = Math.min(powerUps.research.count, 30); i < len; i++) text += `
` text += `
  ${tech.isResearchReality?"alternate reality": "research"}
` @@ -643,6 +643,46 @@ const powerUps = { } return text }, + buildColumns(totalChoices, type) { + let text = "" + if (localSettings.isHideImages || canvas.width < 1200) { + document.getElementById("choose-grid").style.gridTemplateColumns = "384px" + text += powerUps.cancelText(type) + text += powerUps.researchText(type) + } else if (totalChoices === 2) { + document.getElementById("choose-grid").style.gridTemplateColumns = "384px 384px" + text += powerUps.researchText(type) + text += powerUps.cancelText(type) + } else if (totalChoices === 1) { + document.getElementById("choose-grid").style.gridTemplateColumns = "384px" + text += powerUps.cancelText(type) + text += powerUps.researchText(type) + } else { + document.getElementById("choose-grid").style.gridTemplateColumns = "384px 384px 384px" + text += "
" + text += powerUps.researchText(type) + text += powerUps.cancelText(type) + } + return text + }, + // researchAndCancelText(type) { + // let text = "
" + // if (tech.isJunkResearch && powerUps.research.currentRerollCount < 3) { + // text += `
` // style = "margin-left: 192px; margin-right: -192px;" + // tech.junkResearchNumber = Math.ceil(4 * Math.random()) + // text += `
` + // for (let i = 0; i < tech.junkResearchNumber; i++) text += `
` + // text += `
  pseudoscience
` + // } else if (powerUps.research.count > 0) { + // text += `
` // style = "margin-left: 192px; margin-right: -192px;" + // text += `
` + // for (let i = 0, len = Math.min(powerUps.research.count, 30); i < len; i++) text += `
` + // text += `
  ${tech.isResearchReality?"alternate reality": "research"}
` + // } else { + // text += `
` + // } + // return text + '
' + // }, hideStyle: `style="height:auto; border: none; background-color: transparent;"`, gunText(choose, click) { const style = localSettings.isHideImages ? powerUps.hideStyle : `style="background-image: url('img/gun/${b.guns[choose].name}.webp');"` @@ -763,21 +803,7 @@ const powerUps = { } for (let i = 0; i < b.guns.length; i++) b.guns[i].isRecentlyShown = false //reset recently shown back to zero if (options.length > 0) { - let text = "" - if (totalChoices === 2) { - document.getElementById("choose-grid").style.gridTemplateColumns = "384px 384px" - text += powerUps.researchText('gun') - text += powerUps.cancelText('gun') - } else if (totalChoices === 1) { - document.getElementById("choose-grid").style.gridTemplateColumns = "384px" - text += powerUps.cancelText('gun') - text += powerUps.researchText('gun') - } else { - document.getElementById("choose-grid").style.gridTemplateColumns = "384px 384px 384px" - text += "
" - text += powerUps.researchText('gun') - text += powerUps.cancelText('gun') - } + let text = powerUps.buildColumns(totalChoices, "gun") for (let i = 0; i < totalChoices; i++) { const choose = options[Math.floor(Math.seededRandom(0, options.length))] //pick an element from the array of options // text += `
  ${b.guns[choose].name}
${b.guns[choose].description}
` @@ -843,21 +869,7 @@ const powerUps = { for (let i = 0; i < m.fieldUpgrades.length; i++) m.fieldUpgrades[i].isRecentlyShown = false //reset recently shown back to zero if (options.length > 0 || tech.isExtraBotOption) { - let text = "" - if (totalChoices === 2) { - document.getElementById("choose-grid").style.gridTemplateColumns = "384px 384px" - text += powerUps.researchText('field') - text += powerUps.cancelText('field') - } else if (totalChoices === 1) { - document.getElementById("choose-grid").style.gridTemplateColumns = "384px" - text += powerUps.cancelText('field') - text += powerUps.researchText('field') - } else { - document.getElementById("choose-grid").style.gridTemplateColumns = "384px 384px 384px" - text += "
" - text += powerUps.researchText('field') - text += powerUps.cancelText('field') - } + let text = powerUps.buildColumns(totalChoices, "field") for (let i = 0; i < totalChoices; i++) { const choose = options[Math.floor(Math.seededRandom(0, options.length))] //pick an element from the array of options //text += `
  ${m.fieldUpgrades[choose].name}
${m.fieldUpgrades[choose].description}
` //default @@ -949,21 +961,7 @@ const powerUps = { } for (let i = 0; i < tech.tech.length; i++) tech.tech[i].isRecentlyShown = false //reset recently shown back to zero if (options.length > 0) { - let text = "" - if (totalChoices === 2) { - document.getElementById("choose-grid").style.gridTemplateColumns = "384px 384px" - text += powerUps.researchText('tech') - text += powerUps.cancelText('tech') - } else if (totalChoices === 1) { - document.getElementById("choose-grid").style.gridTemplateColumns = "384px" - text += powerUps.cancelText('tech') - text += powerUps.researchText('tech') - } else { - document.getElementById("choose-grid").style.gridTemplateColumns = "384px 384px 384px" - text += "
" - text += powerUps.researchText('tech') - text += powerUps.cancelText('tech') - } + let text = powerUps.buildColumns(totalChoices, "tech") for (let i = 0; i < totalChoices; i++) { if (options.length < 1) break const choose = options[Math.floor(Math.seededRandom(0, options.length))] //pick an element from the array of options @@ -1054,6 +1052,7 @@ const powerUps = { } requestAnimationFrame(cycle); } + // if (localSettings.isHideImages) text += powerUps.researchText('tech') document.getElementById("choose-grid").innerHTML = text powerUps.showDraft(); diff --git a/style.css b/style.css index 356356a..f5b831f 100644 --- a/style.css +++ b/style.css @@ -191,7 +191,7 @@ summary { } .choose-grid-module { - padding: 5px; + /* padding: 5px; */ line-height: 170%; /* border-radius: 8px; */ background-color: #fafcfd; @@ -212,18 +212,6 @@ summary { margin-right:10px; } -.cancel { - /* text-align: right; */ - position: absolute; - top: 15px; - right: 15px; - color: #fff; -} - -.cancel:hover { - color: #aaa; -} - .pause-grid { padding: 2px; margin: 0px; @@ -362,6 +350,25 @@ summary { margin-right: -1px; font-size: 0.92em; } +.cancel-card { + text-align: center; + font-size: 1.1em; + font-weight: 100; + justify-self: end; + border: 1px solid #444; + margin-top: -1px; + margin-right: -1px; + padding: 1px; +} +.research-card { + font-size: 1.1em; + font-weight: 100; + border: 1px solid #444; + margin-top: -1px; + margin-right: -1px; + padding: 1px 0px 1px 10px; +} + /* .no-image-cards{ border: 1px solid #444; diff --git a/todo.txt b/todo.txt index 6018e3e..c0bc768 100644 --- a/todo.txt +++ b/todo.txt @@ -1,21 +1,7 @@ ******************************************************** NEXT PATCH ************************************************** -card font is 10% smaller with a bit more padding on the edges -background is darker on power up selection -css border added to research and cancel buttons -JUNK images now timeout if you don't download the image in under 1 sec - and it will not even try to download an image above 500KB - and it will try a different random image if it's first attempt is too big - (gotta protect our friends with slow internet) - -finalBoss - mine mode comes in waves - orbiters mode comes in waves, and they spawn at a radius that intersects the player - -several on new level tech effects now also run on each new final Boss phase - gun stuff, many worlds, negative entropy heal spawns - -perfect diamagnetism slow fall is much strong, but works better when angled like a parachute +some image updates +single column power up choice for small screens or no image setting *********************************************************** TODO ***************************************************** @@ -1178,6 +1164,8 @@ if pause is pressed while selecting power ups, display pause menu on top of sele thermal runaway - infrared maybe? redo the energy tech images with by Laurie Greasley now that you can use --ar 3:2 --stylize 1000 and photo repair + in general too many black background + redo fractal tech with white background ***past style themes*** field emitter - isometric, clean white robot spherical gun turret on bird legs, blender 3d, style of artstation and behance, Disney Pixar, cute standing wave - concentric transparent blue geometric circles science