Skip to content

Blockilization: teammates research their own techs, Civ V style - #37

Merged
Potrock merged 1 commit into
mainfrom
claude/project-thread-tbyd93
Oct 23, 2026
Merged

Potrock merged 1 commit into
mainfrom
claude/project-thread-tbyd93

Conversation

@Potrock

@Potrock Potrock commented Oct 23, 2026

Copy link
Copy Markdown
Owner

Requested by Patrick · project thread

What this is

Team research now works the way it does in Civ V. Until now a team shared a single research pick. Any teammate's choice replaced it, and #19 only made that ask first.

  • Each teammate chooses their own research. A teammate's choice no longer changes yours.
  • Progress is the team's. If two of you research the same tech, both your science goes into it. If you research different techs, the team works on both at once (shareResearch still pools what each member put into each tech).
  • A tech finished between you is learned by all. The leftover science goes into the next research of whoever was on that tech, split evenly between them. If someone has nothing queued, it waits as spare science for their next choice, the same as for a civ playing alone.
  • Tech cost is unchanged. A team still pays half again per extra civ, and all of the team's cities count.
  • UI.
    • A tech a teammate is researching carries a blue tag with their name.
    • The tree header lists what each teammate is researching.
    • When teammates are on your tech, the turn estimate includes their science.
    • The research panel shows a "Team · Bo: Pottery" line.
    • The Civilopedia's Research entry has a new "On a team" section.
  • Removed. The shared-pick machinery is gone: Player.researchBy, the was guard on the research order, the "replace your teammate's choice?" dialog, and the bot rule "a bot doesn't undo a person's choice". Bots on a team now pick their own research too. Old saves still load, since an extra researchBy field is ignored.

ViewSelf.researchBy is replaced by mates: { index, researching, science }[].

Screenshot or clip

None. The new tag is plain CSS next to the existing queue badge.

Checklist

  • npm run build: not run, because there is no wasm-pack in my environment. tsc --noEmit shows no errors in src/games/blockilization (the only errors are the missing @engine/voxel_engine.js build output), and check-boundaries passes. CI will run the full build.
  • npm run test:headless: not run, for the same reason. The rules cases (tests/effects.ts) pass, 257 of 257. The team research cases are rewritten for the new rules:
    • Each teammate chooses their own research.
    • On different techs the team researches both at once; on the same tech both teammates' science goes into it.
    • Science made while nothing is chosen waits for that player's own choice.
    • Leftover science is shared out when a pooled tech finishes, and the other teammate's progress is kept.
  • No new imports outside the game
  • No new names or assets

Generated by Claude Code

Each teammate now chooses their own research instead of the team sharing
one pick that the latest choice overwrote. Progress toward each tech is
still the team's: two teammates on the same tech pool their science into
it, and on different techs the team researches both at once. A tech
finished between them is learned by all, and what's left over goes into
the next research of whoever was on it (or waits as spare science).

The tech tree shows what each teammate is researching (a tag on the tech
and a line in the header), and the research panel says it too. The
'who chose it' state (researchBy), the stale-choice guard and the confirm
dialog from the shared-pick design are gone.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K3o1ArEAsnYdwRkyKzWS4X
@Potrock Potrock self-assigned this Oct 23, 2026
@Potrock
Potrock merged commit 7daddbe into main Oct 23, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants