Skip to content

feat(ui): selection card tells the truth about multi-selects (21.5, #88) - #114

Open
cubetribe wants to merge 1 commit into
mainfrom
feat/s21-selection-truth
Open

feat(ui): selection card tells the truth about multi-selects (21.5, #88)#114
cubetribe wants to merge 1 commit into
mainfrom
feat/s21-selection-truth

Conversation

@cubetribe

Copy link
Copy Markdown
Collaborator

Was

Paket 21.5 aus Sprint 21 (#88): die Befehlskarte sagt bei Mehrfachauswahl die Wahrheit.

  1. Schnittmengen-Befehle — die Buttons sind jetzt die Schnittmenge über alle mobilen Rollen der Auswahl (GetSharedUnitCommands: Gebäude liefern None und werden vorher übersprungen, sonst löschen sie die Schnittmenge). Die angebotenen Befehle hängen nicht mehr von der Auswahl-Reihenfolge ab.
  2. Typenaufschlüsselung mit Zustand — Rows „2× Lynx — 180/240 HP" (Reihenfolge = erstes Auftreten, Lead-Typ oben), Titel „{Lead-Typ} — N Einheiten". Der alte „(+N weitere)"-Suffix entfällt.
  3. Bystander-Regel für Gebäude — sobald eine mobile Einheit markiert ist, zählt die Auswahl als Einheiten-Auswahl; mitmarkierte Gebäude erscheinen als eigene Zeile ohne Befehlsstimme („1× Hauptquartier — Gebäude"). Nur reine Gebäudeauswahl behält die Gebäudekarte. Spiegelt exakt die bestehende Input-Disziplin (TryGetLeadProducer).
  4. Einzelauswahl: Titel wie gehabt, plus HP-Suffix bei Schaden (Gebäudekarten-Konvention). EstimateHeight ist zeilengenau nachgetragen.

Bewusste Konsequenzen (Sprint-Lesart „nur Befehle, die für alle gelten")

  • „Ernten"/„Fracht abliefern" nur bei reiner Harvester-Auswahl — heilt nebenbei den toten Harvest-Button bei Mischung (der Executor lehnt ihn dort ohnehin ab).
  • „Reparieren" nur bei reiner Builder-Auswahl — bisher reichte ein Builder irgendwo in der Auswahl. Bewusste Verschärfung, im Spiel beobachtbar.

Nachweis

Betroffene Bereiche

CommandCardPresenter (neue reine Funktionen), CommandCardHud (Modell/OnGUI/EstimateHeight), CommandCardPresenterTests, CHANGELOG.md (eine Zeile unter [Unreleased] → Hinzugefügt). Kein Sim-Eingriff, keine Baseline-Bewegung.

Merge-Hinweis: bei der CHANGELOG-Zeile kann es mit dem 21.3-PR eine triviale Überschneidung geben (beide oben im selben Abschnitt) — Auflösung: beide Zeilen behalten.

The command card no longer takes the lead unit's word for a multi-selection:
buttons are the intersection over every MOBILE role (GetSharedUnitCommands —
building roles are skipped first, their None would wipe the AND), titled
"{lead type} — N Einheiten" with per-type breakdown rows "2× Lynx —
180/240 HP" in first-occurrence order. Mixed-in buildings ride along as
bystander rows without a command vote, mirroring the input discipline of
TryGetLeadProducer; only an all-building selection keeps the building card.
A single damaged unit carries its HP in the title, same convention as the
building card. EstimateHeight grows row-for-row with OnGUI.

Deliberate consequences (the sprint's reading: only commands that hold for
everyone): Harvest/ReturnCargo appear only on a pure Harvester selection —
which retires the dead Harvest button on mixed selections, the executor
rejects it for non-Harvesters anyway — and Repair only on a pure Builder
selection.

Verified: dotnet test 726/726; Unity EditMode 614/614 (9 new); PlayMode
12/13 (sole failure is the pre-existing NetworkPanel one, red on main too).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant