Skip to content

Patrouille-Befehl — braucht einen Eintrag im eingefrorenen CommandKind-Register #89

Description

@cubetribe

Aus dem Betatest vom 10.08.2026 (Build 4053c15, macOS). Quelle: docs/production/hashkrieg/Testberichte/2026-08-10_4053c15_T-01.md

Wunsch aus dem Bericht

„Einheiten sollten auf Patrouille geschickt werden können."

Ablauf: Einheiten wählen → Patrouille → Start- und Endpunkt setzen → Einheit pendelt dauerhaft → Gegner im Bereich werden nach Combat-Logik bekämpft.

„Das wird insbesondere für die Sicherung von Basen, Zufahrten und Ressourcenfeldern wichtig."

Was das kostet — bitte vor der Umsetzung lesen

Patrouille ist kein UI-Feature. CommandKind ist ein eingefrorenes Register von Schema v1:

// Assets/_Project/Scripts/Simulation/CommandsV1/CommandKind.cs:21
Move = 1, Stop = 2, AttackTarget = 3, Harvest = 4, ReturnCargo = 5,
PlaceBuilding = 6, CancelConstruction = 7, Repair = 8, Sell = 9,
QueueUnit = 10, CancelProduction = 11, SetRallyPoint = 12,
InstallDefenseModule = 13,
// Session actions
PauseRequest = 14, UnpauseRequest = 15, SaveRequest = 16, LoadRequest = 17,

Ein neuer Befehl bedeutet damit:

  • neuer Registereintrag samt CommandKindInfo.IsKnown-Grenze (heute <= LoadRequest)
  • neue Payload und ihre Serialisierung
  • Zustand pro Einheit — eine patrouillierende Einheit muss zwei Punkte und ihre Richtung über den Snapshot tragen; das ist eine Änderung am Zustandslayout
  • Netzverträglichkeit, weil der Kommandostrom über die Netzpartie läuft

Das ist ein API-/Schema-Vorgang und braucht den Weg über @API-Guardian, nach 13B-Versionsrelevanz eher major als minor. Nicht nebenbei umsetzen.

Verhältnis zu bestehenden Issues

Verwandt, aber verschieden: #52 (Formationen) ändert die Auflösung eines Bewegungsbefehls und braucht kein neues Register. Patrouille braucht eines.

Hoheit — Naht

Ausdrücklich eine Vertragsfläche: das Register und die Payloads gehören dem Maintainer-Strang (Simulation/CommandsV1/, Scripts/Networking/), das Bewegungs- und Kampfverhalten der patrouillierenden Einheit dem Einheitenstrang (Simulation/Movement/, Simulation/Combat/, Sprint 13B). Nicht still einem Strang zuschlagen — der Schnitt gehört in die Sprintbildung.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestsimulationSimulationskern, Determinismus, Netzcode

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions