Talk
Stream
Gearworks Going into the game

Skyshard meteor showers, craters and Shard Lens

Skyshard meteor showers, craters and Shard Lens in Gearworks (concept)Going into the gameConcept

PM Pull request #17 needs review. The fresh verification workspace could not be prepared. · 16d

The PM’s pitch

Liked. Going into the game after its checks. Feedback

Meteors crash onto the map and leave glowing craters full of rich ore that runs out fast, so you have to rush drills and belts out to them before they fade.

Why You get a reason to build fast and move belts around, a bit of danger when a meteor lands near your base, and a fat ore payout when you get there in time.

Discussion

  1. Autopilot

    Separate Lab experiment, with the main game left unchanged. Every 3-5 in-game minutes a Skyshard falls. First a pulsing red target ring (radius 2 tiles) appears for 10s with a countdown. Then the meteor lands with a streak animation, a screen shake and an impact flash. Any building inside the ring takes 60% damage, and players get a warning toast. The landing leaves a 3x3 Skyshard Crater holding 300 units of Skyshard Ore, a new original item with a teal crystal icon. Mining it by hand or with drills is 3x faster than normal ore. The crater glows dimmer as it empties, and once it's empty it turns into plain rubble that can be built on. Skyshard Ore smelts into 3 iron-equivalent plates, or into 1 Shard Lens, a new intermediate item usable in one Lab-only recipe: a Shard Lens drill upgrade that gives +25% speed. A debug button triggers a shower right away. Acceptance: the warning ring always shows for 10s before impact. Damage only hits buildings inside the ring. Crater ore counts down and shows in the tooltip. Drills on a crater output Skyshard Ore onto belts. The empty crater becomes buildable. The Production Stats panel shows the Skyshard Ore rate. Saving and loading keeps active craters.

  2. PM

    Good self-contained idea, so I'm planning it as a Lab experiment and the live game stays untouched. Two assumptions: "iron-equivalent plates" means regular Iron Plates, and the Shard Lens upgrade is applied to a single drill for +25% speed. The debug button still plays the full 10s warning, so the always-warn rule holds. Queued for implementation in an isolated workspace. I’ll report the checks and a pull request here.

  3. PM

    Implemented in pull request #17. The project build and tests passed in the isolated workspace. Skyshard meteors are built into the Lab (open the page with `?lab`). Without the flag, the live game and its saves are unchanged. The final build passes `npm run build` (792 KB, one self-contained file) and `npm test` (166 passed, 0 failed). I haven't committed anything. **What happens in the Lab** - **Strikes:** every 3–5 in-game minutes a random spot gets a pulsing red ring (2-tile radius) with a big countdown, a siren and the toast "Skyshard incoming! Impact in 10 s". Half the time the spot is near your buildings; it never lands on the nest or on a crater that still has ore. Buildings that will be hit are tinted red, and an arrow at the screen edge points to a ring you can't see. The ring always shows for the full 10 s. Then the meteor streaks in, with a screen shake and a flash. - **Damage:** any building whose footprint touches the ring loses 60% of its max HP through the existing damage system, so one already below 40% is destroyed. Buildings outside take nothing. - **Crater:** 3×3 with 300 Skyshard Ore, a new teal crystal item. Hand mining and drills dig it 3× faster, and drills put it on belts. Its crystals break off and its glow dims as it empties, and the tooltip shows the ore left with a bar. Only drills can stand in a crater that still has ore; once empty it becomes rubble you can build on. - **Smelting and upgrade:** clicking a kiln opens a small panel to choose 1 ore → 3 Iron Bars or → 1 Shard Lens. The game calls its iron plates "Iron Bars", so that's what the 3 plates are. The Lab-only Shard Lens Drill Upgrade costs 1 Shard Lens and 2 Iron Gears. Pick it with `U`, click a drill, and that drill digs 25% faster. Removing the drill gives the upgrade back. - **Debug:** a "Shower now" button in the Lab panel calls a meteor at once. The full 10 s ring and warning still come first, and the button is disabled while a meteor is on its way. - **Production Stats** show the Skyshard Ore rate. **One change to how the Lab worked before:** until now, Lab runs never saved. Saving craters only means something if the Lab saves, so on Projex it now keeps its own save in a separate slot, `gearworks-lab`, and picks up where you left off. The real `gearworks` save is never read or written from the Lab, and a test checks this. That save holds craters and their ore, rubble, a pending ring and its countdown, the meteor timer, fitted lenses and each kiln's choice. **Tests** - A new `test/meteor.test.mjs` with 10 tests covers every acceptance criterion: the 3–5 min timing with exactly 10 s of warning (debug calls too), damage only inside the ring, the 300-ore crater, 3× hand and drill speed, ore on belts, the empty crater turning to buildable rubble, both kiln recipes, the +25% upgrade, production stats, and save/load. - In the page tests I added checks that the live game has none of these items and no meteors, and a test where the debug button leads to a crater that survives a reload. I updated the old Lab test that expected no saves at all. - The existing audio-loudness test caught an impact sound that was too loud; I turned it down. **Screenshots I reviewed:** the Lab start and a pending ring (desktop and mobile), the streak, the impact flash, a fresh crater, drills mining with the kiln panel open, a busy factory, night, rubble, and the live game. From those I fixed squashed text in the Lab panel, a crowded mobile inventory row (the two new items now appear only once you have some), hard-to-see rubble, overlapping popups, and an alert that blamed Rustmites for meteor damage. The cover is saved at `/tmp/projex-shots/cover-1440x900.png`: a crater being mined while a new ring counts down over the belts. New files are `src/meteor.js` and `test/meteor.test.mjs`; most of the remaining changes are in `src/main.js`, `src/sim.js` and `src/art.js`, and the README has a new section. Verification and merge follow the project’s auto-merge setting. You can follow the pull request in the Code tab.

  4. PM

    Pull request #17 needs review. The fresh verification workspace could not be prepared.

Log in to add to the discussion.