Loïc Wisniewski
bd0cc842ff
#105 (#97g): garrison vessels patrol and defend their outpost
...
A garrisoned vessel circles its post, engages what comes into range, and
goes back to circling. It steers by writing move_target and lets Ship's own
steering fly it, so it accelerates, banks and brakes exactly like a vessel
in the formation.
It is not in Fleet.ships. It does not follow the formation, does not count
against max_fleet_size(), and does not move when the player flies away -
which is the whole point of stationing it. A garrison that ate a fleet slot
would mean stationing a vessel cost the player a place in their own wedge.
The leash is the load-bearing part. Enemies are judged from the POST rather
than from the vessel, so a garrison that has drifted out to its leash cannot
see further still and be walked away from its outpost one enemy at a time,
and an engagement is clamped to a circle around the post rather than to a
straight line, so it still manoeuvres while pinned.
The orbit starts from where the vessel actually is rather than a random
bearing. A random one makes the first move_target a point on the far side of
the circle, and the vessel flies straight across the middle - through the
outpost it is guarding.
EnemyTargets.nearest_ship now searches the player_ships GROUP instead of
Fleet.ships: an enemy that ignored the guns shooting at it, because they
were not in the player's formation, would let a garrison hold a position
without ever being fought back.
The laser vessel is deliberately not garrisonable. Firing the laser lives in
LaserController, a fleet ability driven by the laser button, rather than in
VesselLaserComponent - so a garrisoned laser would hold its position and
never shoot, and offering a vessel that cannot fight is worse than a short
list.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 14:13:47 +02:00
..
CarrierCapacityUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
CarrierVesselDefinition.tres
Implement #85 , #86 , #87 and #88
2026-08-22 02:20:12 +02:00
DistorderVesselDefinition.tres
Implement #85 , #86 , #87 and #88
2026-08-22 02:20:12 +02:00
Fleet.gd
Implement #85 , #86 , #87 and #88
2026-08-22 02:20:12 +02:00
Fleet.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
GarrisonField.gd
#105 (#97g): garrison vessels patrol and defend their outpost
2026-08-23 14:13:47 +02:00
GasBomberVesselDefinition.tres
Implement #85 , #86 , #87 and #88
2026-08-22 02:20:12 +02:00
InterceptorDamageUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
InterceptorRangeUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
InterceptorRateUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
InterceptorVesselDefinition.tres
#89 : the default gun bends onto a target near the aimed heading
2026-08-22 03:19:52 +02:00
LaserCooldownUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
LaserDamageUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
LaserRangeUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
LaserVesselDefinition.tres
Implement #85 , #86 , #87 and #88
2026-08-22 02:20:12 +02:00
Projectile.gd
Implement #85 , #86 , #87 and #88
2026-08-22 02:20:12 +02:00
Projectile.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
Projectile.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
ShieldHitsUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
ShieldRechargeUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
ShieldVesselDefinition.tres
#89 : the default gun bends onto a target near the aimed heading
2026-08-22 03:19:52 +02:00
Ship.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
Ship.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
Ship.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
TransportCapacityUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
TransporterVesselDefinition.tres
Implement #85 , #86 , #87 and #88
2026-08-22 02:20:12 +02:00
TransportSpeedUpgrade.tres
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselCargoComponent.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselCargoComponent.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselCargoComponent.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselCooldownFillComponent.gd
Clip the cooldown fill with Geometry2D, not by hand
2026-08-22 23:30:05 +02:00
VesselCooldownFillComponent.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselDefinition.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselDefinition.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselDefinitions.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselDefinitions.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselDistorderComponent.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselDistorderComponent.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselDistorderComponent.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselGarrisonComponent.gd
#105 (#97g): garrison vessels patrol and defend their outpost
2026-08-23 14:13:47 +02:00
VesselGasBomberComponent.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselGasBomberComponent.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselGasBomberComponent.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselLaserComponent.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselLaserComponent.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselLaserComponent.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselShieldComponent.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselShieldComponent.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselShieldComponent.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselTransportComponent.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselTransportComponent.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselTransportComponent.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselUpgradeDefinition.gd
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselUpgradeDefinition.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselWeaponComponent.gd
#89 : the default gun bends onto a target near the aimed heading
2026-08-22 03:19:52 +02:00
VesselWeaponComponent.gd.uid
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00
VesselWeaponComponent.tscn
#84 : move 215 root files into a folder hierarchy
2026-08-21 19:44:14 +02:00