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:
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user