Skip to content

Blockilization: fix plane bugs, make Aluminum and Uranium common like Civ V - #44

Merged
Potrock merged 1 commit into
mainfrom
claude/project-thread-tgtlb0
Oct 25, 2026
Merged

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

Conversation

@Potrock

@Potrock Potrock commented Oct 25, 2026

Copy link
Copy Markdown
Owner

Requested by Patrick · project thread

What this is

A fix for air units and late-game resources in Blockilization, after checking the air rules against Civ V and running bot-only games from later eras and the Cold War and World War scenarios.

Aircraft

  • Guided Missiles are spent when they strike. Before, a missile flew home and could strike again the next turn.
  • Ships carry aircraft the way Civ V does.
    • A Carrier holds 3 fighters or bombers, but not the Stealth Bomber.
    • A Missile Cruiser holds 3 missiles, and a Nuclear Submarine holds 2.
    • Before, only Carriers carried anything, so missiles had no way to go to sea, and a Stealth Bomber could board a Carrier.
  • Rebasing on the screens.
    • The view now lists where each aircraft can rebase (UnitWire.bases). The map outlines those bases in blue, and the unit panel has a Rebase button.
    • Clicking a base now rebases the selected aircraft. Before, the click opened the city or selected the ship there.
    • Rebasing to the base an aircraft is already at is now refused. Before, it used up the turn and did nothing.
  • Nukes can be fired from the screens. They have 0 strength, so the client never offered them a target. They now get targets, with a confirmation before launch.
  • Air promotions: Interception, Air Siege, Bombardment, Air Targeting, Evasion, Air Repair and Air Range. Aircraft earned XP but had nothing to spend it on, so the overview showed them as "Can be promoted" forever. Fighters on patrol now show "On patrol".
  • Edge cases:
    • A nuclear strike on a Carrier no longer kills its aircraft a second time, which used to double their death notes and kill credit.
    • A razed city loses the aircraft based in it, the same as a captured city does.
    • When a city is liberated, the liberator's aircraft in it fly to the nearest base in range, or are lost if there is none.

Aluminum and Uranium

Both were rare. Many small maps had no Aluminum at all, which rules out Jet Fighters, Stealth Bombers, Modern Armor and spaceship parts. They are now placed the way Civ V places them:

  • They spread across the map, counted from the tiles that suit each one. Aluminum ends up about as common as Iron, and Uranium about half as common.
  • 3 in 4 city-states get a small Coal, Oil or Aluminum deposit nearby (like Civ V's AddModernMinorStrategicsToCityStates).
  • No civ is guaranteed either one near its start. Civ V's Strategic Balance only covers Iron, Horses and Oil, so this matches it.
  • Over 28 maps per size, every map now has both. Before, 11 of 28 small maps had no Aluminum. Average counts on a small map: Aluminum 6.4 (was 1.1), Uranium 4.2 (was 1.1), Iron 6.1.

Not changed, possible follow-ups

  • Bots build few aircraft and rarely strike with them. That's AI tuning.
  • In full games bots never build nukes, but they do fire the ones the Cold War scenario gives them.
  • Bots send many orders that are refused and change nothing, every turn:
    • fortify orders for units that can't fortify;
    • Great Musicians trying to start a golden age;
    • caravans retrying routes they can't make.

Screenshot or clip

None: the wasm engine can't be built in my environment, so I couldn't run the client.

Checklist

  • npm run build passes. tsc --noEmit has no errors apart from the missing wasm engine module, and npm run check:boundaries passes. The full build needs the wasm, which CI builds.
  • npm run test:headless passes. Not run locally, for the same reason.
  • Rules tests: 278 of 278 pass (tests/effects.ts), including 7 new tests. The nuke and razing tests fail without their fixes.
  • Bot bench, small maps, seeds 1 to 3: 0 exceptions, every game ends in a science victory.
  • A game imports only from @platform / @platform/client (no new imports outside the game)
  • Names are original
  • No new assets

Generated by Claude Code

Aircraft:
- A Guided Missile is spent in its strike, instead of flying home to strike again.
- Ships carry aircraft as in Civ V: a Carrier three fighters or bombers (not the
  Stealth Bomber), a Missile Cruiser three missiles, a Nuclear Submarine two.
  Before, only Carriers carried aircraft, and the Stealth Bomber could board one.
- Rebasing to the base an aircraft is already at is refused, instead of spending
  its turn for nothing.
- The view lists where each aircraft could rebase to; the screens outline those
  bases, add a Rebase button, and a click on a base rebases instead of opening
  the city or selecting the ship.
- Nuclear weapons can be aimed from the screens (they have no strength, so the
  client never offered a target), with a confirmation first.
- Aircraft promotions (Interception, Air Siege, Bombardment, Air Targeting,
  Evasion, Air Repair, Air Range). Aircraft gained experience but had nothing to
  spend it on, and the overview listed them as waiting for a promotion forever.
- A nuclear strike on a carrier no longer kills its aircraft a second time.
- A city razed to the ground loses the aircraft there, as one taken does; a city
  liberated sends its liberator's aircraft to another base (or loses them).

Map: Aluminum and Uranium were rare (a small map often had no Aluminum, so no
Jet Fighters, Stealth Bombers, Modern Armor or spaceship parts). Now, as in Civ V,
they're placed across the map in proportion to the tiles that suit them, Aluminum
about as common as Iron and Uranium about half as common, and three city-states
in four get a small Coal, Oil or Aluminum deposit nearby. No civ is guaranteed
either near its start, matching Civ V.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UNe8hqbTXbRf6pMA4zQVYT
@Potrock Potrock self-assigned this Oct 25, 2026
@Potrock
Potrock merged commit ba23a03 into main Oct 25, 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