Per-ship scale/speed factors and updated race/class doc

Give each ship an explicit sprite scale (tuned per role so an
Interceptor/Gunship/Bomber/Support/Heavy reads the same size across
all 3 races, then reduced another 25% per feedback that ships felt
oversized) and a movement speed_factor pulled from a shared
SPEED_BY_ROLE table, so e.g. every race's Interceptor moves at the
same speed as every other race's. GameConfig carries both through to
ship_movement.gd, which now scales thrust/max_speed by the chosen
ship's factor.

Rewrite overview/racesclasses.md to match what's actually implemented:
real ship names/roles for Terran Republic and Vorg Swarm, fill in the
previously-undocumented Mechanos Sovereignty roster, and correct the
chosen-race list now that Vorg Swarm (bio/acid swarm, matching the
uploaded art) replaced Void Wraiths as the third chosen race.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-10 23:14:30 -04:00
parent 9dce0177ac
commit 019f434995
5 changed files with 63 additions and 45 deletions
+27 -15
View File
@@ -1,5 +1,15 @@
extends CanvasLayer
# Movement speed factor by role, shared across all 3 races so e.g. every
# race's Interceptor moves at the same speed as every other race's.
const SPEED_BY_ROLE := {
"Interceptor": 1.3,
"Gunship": 1.15,
"Bomber": 1.0,
"Support": 0.9,
"Heavy": 0.7,
}
const RACES := [
{
"id": 1, "name": "TERRAN REPUBLIC", "sub": "Angular gray-blue military ships, standard balanced fighters",
@@ -8,27 +18,27 @@ const RACES := [
{
"name": "WARFRAME", "role": "Interceptor",
"desc": "Very fast, rapid weak laser bursts. Built to close distance instantly and chip away at anything in range. Low individual hit strength but a relentless rate of fire punishes anyone who stands still.",
"path": "res://assets/images/ships/terran/warframe.png",
"path": "res://assets/images/ships/terran/warframe.png", "scale": 0.229, "speed_factor": SPEED_BY_ROLE.Interceptor,
},
{
"name": "STRIKER", "role": "Gunship",
"desc": "Super fast fire rate, very low damage lasers. Trades hitting power for volume — the more shots in the air, the more that connect. Best flown aggressively, applying constant pressure rather than picking single shots.",
"path": "res://assets/images/ships/terran/striker.png",
"path": "res://assets/images/ships/terran/striker.png", "scale": 0.244, "speed_factor": SPEED_BY_ROLE.Gunship,
},
{
"name": "DEPLOYER", "role": "Bomber",
"desc": "Fast lasers plus an EMP mine dropped in your wake. Punishes anyone chasing too closely and disables systems on contact. Strong for area denial and covering a retreat.",
"path": "res://assets/images/ships/terran/deployer.png",
"path": "res://assets/images/ships/terran/deployer.png", "scale": 0.265, "speed_factor": SPEED_BY_ROLE.Bomber,
},
{
"name": "LINK NODE", "role": "Support",
"desc": "Standard lasers plus a small repair pack dropped for allies to pick up. Keeps a team topped off in prolonged fights. Not built to duel alone — stay near the fight, not in the middle of it.",
"path": "res://assets/images/ships/terran/link_node.png",
"path": "res://assets/images/ships/terran/link_node.png", "scale": 0.329, "speed_factor": SPEED_BY_ROLE.Support,
},
{
"name": "BASTION", "role": "Heavy",
"desc": "Tankier and slower, but its laser hits harder than anything else in the fleet. Built to anchor a push and absorb damage while dealing it back. Discourages anyone from engaging head-on.",
"path": "res://assets/images/ships/terran/bastion.png",
"path": "res://assets/images/ships/terran/bastion.png", "scale": 0.283, "speed_factor": SPEED_BY_ROLE.Heavy,
},
],
},
@@ -39,27 +49,27 @@ const RACES := [
{
"name": "SENTINEL", "role": "Interceptor",
"desc": "A light scout mech with twin rapid cannons. Fast and maneuverable for a Mechanos hull, built to screen the front line and harass before the heavier machines arrive.",
"path": "res://assets/images/ships/mech/sentinel.png",
"path": "res://assets/images/ships/mech/sentinel.png", "scale": 0.205, "speed_factor": SPEED_BY_ROLE.Interceptor,
},
{
"name": "VANGUARD", "role": "Gunship",
"desc": "Dual autocannons built for sustained fire. Sits between the light scouts and the heavy machines — durable enough to hold a line, fast enough to reposition when it breaks.",
"path": "res://assets/images/ships/mech/vanguard.png",
"path": "res://assets/images/ships/mech/vanguard.png", "scale": 0.266, "speed_factor": SPEED_BY_ROLE.Gunship,
},
{
"name": "RAVAGER", "role": "Bomber",
"desc": "Drops heavy ordnance and mines from its cargo pods. Slow to turn but devastating to anything caught in the blast radius. Best used to seal off a chokepoint.",
"path": "res://assets/images/ships/mech/ravager.png",
"path": "res://assets/images/ships/mech/ravager.png", "scale": 0.25, "speed_factor": SPEED_BY_ROLE.Bomber,
},
{
"name": "AEGIS", "role": "Support",
"desc": "Projects a short-range shield and deploys a repair drone for nearby allies. Doesn't hit hard on its own — its job is keeping everyone else alive long enough to win the fight.",
"path": "res://assets/images/ships/mech/aegis.png",
"path": "res://assets/images/ships/mech/aegis.png", "scale": 0.248, "speed_factor": SPEED_BY_ROLE.Support,
},
{
"name": "COLOSSUS", "role": "Heavy",
"desc": "A walking fortress bristling with cannons. Slow and telegraphed, but absorbs enormous damage and returns it with interest. Usually the last thing standing in an engagement.",
"path": "res://assets/images/ships/mech/colossus.png",
"path": "res://assets/images/ships/mech/colossus.png", "scale": 0.252, "speed_factor": SPEED_BY_ROLE.Heavy,
},
],
},
@@ -70,27 +80,27 @@ const RACES := [
{
"name": "STINGER", "role": "Interceptor",
"desc": "Fast, acid shots with light damage-over-time. Built to swarm a target from range, applying just enough acid to wear an enemy down before backing off.",
"path": "res://assets/images/ships/vorg/stinger.png",
"path": "res://assets/images/ships/vorg/stinger.png", "scale": 0.254, "speed_factor": SPEED_BY_ROLE.Interceptor,
},
{
"name": "SPITTER", "role": "Gunship",
"desc": "Faster-firing acid with a stronger damage-over-time effect. Trades some speed for sustained corrosive pressure — anything it tags keeps taking damage long after contact.",
"path": "res://assets/images/ships/vorg/spitter.png",
"path": "res://assets/images/ships/vorg/spitter.png", "scale": 0.247, "speed_factor": SPEED_BY_ROLE.Gunship,
},
{
"name": "BROODLING", "role": "Bomber",
"desc": "Normal acid shots that also spawn a small slowing swarm cloud. The cloud lingers, fouling movement for anyone caught inside it — ideal for locking down a retreat or a chokepoint.",
"path": "res://assets/images/ships/vorg/broodling.png",
"path": "res://assets/images/ships/vorg/broodling.png", "scale": 0.404, "speed_factor": SPEED_BY_ROLE.Bomber,
},
{
"name": "NURSE", "role": "Support",
"desc": "Acid shots plus a small health/regeneration pack dropped for allies. Keeps the swarm alive in extended fights, at the cost of raw offensive power.",
"path": "res://assets/images/ships/vorg/nurse.png",
"path": "res://assets/images/ships/vorg/nurse.png", "scale": 0.271, "speed_factor": SPEED_BY_ROLE.Support,
},
{
"name": "BEHEMOTH", "role": "Heavy",
"desc": "Tankier and slower, with heavy acid shots that carry a large damage-over-time effect. The swarm's apex predator — absorbs punishment while its acid keeps eating away at anyone nearby.",
"path": "res://assets/images/ships/vorg/behemoth.png",
"path": "res://assets/images/ships/vorg/behemoth.png", "scale": 0.171, "speed_factor": SPEED_BY_ROLE.Heavy,
},
],
},
@@ -193,6 +203,8 @@ func _show_ship_selection() -> void:
func _on_ship_chosen(ship: Dictionary) -> void:
GameConfig.player_ship_path = ship.path
GameConfig.player_ship_scale = ship.scale
GameConfig.player_ship_speed_factor = ship.speed_factor
GameConfig.team_selected.emit()
queue_free()