new ship lab #5
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
ship lab let the player research upgrade for each vessel type and unlock new vessel types. add a new vessel which is a shield vessel. it has a shield which blocks shots and rocks on hit, though the shield is disabled temporarily after a shot.
Not started yet - taken after #3 and #4 deliberately.
This one collides with #4 (the skill tree) in
GameState,BuildController,FleetandMain.tscn: both add building types, both gate what the player can build, and both change how many/which vessels a fleet can hold. Running them in parallel would have meant two agents rewriting the same four files, so it was held back rather than merged badly.Now that #4 has landed there is a natural shape for it: the Ship Lab becomes another node in the research tree (unlocking the building), and vessel-type research hangs off the lab itself rather than off the mothership. The shield vessel is then a new entry in the fleet's vessel types, with the shield as a per-ship state that blocks a projectile or rock on contact and goes down for a cooldown afterwards.
Also still open here: #2 was the API connectivity test issue and can be closed.
Done in
1cbae8f.The Ship Lab is a new building gated behind a new Vessel Science research node, with its own art (a test frame holding a vessel, with instrument booms sweeping round it - a workshop, not another factory), its own build-menu glyph, map marker and info popup.
Vessel research lives at the lab, not in the mothership tree. That tree gates what may be built at all and is a strategic spine; these are repeatable tuning on vessels already owned, and mixing them would crowd the tree while making the lab a gate rather than a place you go. Levels cost
base * (level + 1), so the third point in something is not the price of the first.Upgrades are read live rather than baked in at build time, so researching one improves the ships already flying rather than only the next one built. Covered per category:
Two of those made existing systems mean more: the transporter had an unlimited hold until now (
take = min(want, rocks)), so a capacity upgrade needed a real limit to raise; and its speed was a constant.The shield vessel is unlocked at the lab and then built at the ship crafter. The shield is personal, not a bubble. Ships have no health in this game - contact with an enemy or asteroid is instantly fatal - so "absorbs a hit" means surviving the collision that would otherwise have killed it, after which the shield is DOWN until it cycles back up. The ring is a
NeonPiecechild toggled withvisibleper #10, not a redraw of the hull.vessels_owednow carries the vessel TYPE rather than a bare count, so a shield vessel finishing while the player is on a planet's surface comes back as a shield vessel.Tests
tests/test_ship_lab.gdandtests/test_shield_vessel.gd. The shield test opens with a control case - an ordinary interceptor is destroyed by the same rock - because "the shield vessel survived" means nothing unless the thing it survived is lethal. It then checks the shield is genuinely down afterwards by killing the vessel with a second rock while it cycles: without that, "absorbs a hit" is indistinguishable from permanent invulnerability.Not in this ticket
Enemies still have no weapon -
Projectile.gdis player-only - so "blocks shots" has nothing to block yet. Filed separately rather than widening this into a combat-model change, because it raises a real design question first: with no hit points, an enemy shot would be instantly fatal too.Full suite: 52/52.