Skip to content

feat(construction): passive Reparaturzone an Fahrzeugfabrik und Kaserne (#55) - #140

Merged
cubetribe merged 2 commits into
mainfrom
feat/s23-reparatur
Aug 31, 2026
Merged

feat(construction): passive Reparaturzone an Fahrzeugfabrik und Kaserne (#55)#140
cubetribe merged 2 commits into
mainfrom
feat/s23-reparatur

Conversation

@cubetribe

Copy link
Copy Markdown
Collaborator

Warum

Der Wunsch steht seit dem Betatest vom 09.08.2026 und wurde am 31.08.2026 vom Inhaber erneut vermisst — er hatte die Zone erwartet und nicht vorgefunden.

Bis hierher gab es Reparatur nur als aktiven Befehl: CommandKind.Repair, ausgeführt von einer Builder-Einheit. Beschädigte Panzerung war damit faktisch dauerhaft — man schickte jede Einheit einzeln mit einem Pionier los oder verlor sie im nächsten Gefecht.

Fixes #55

Die Entscheidung

Der Inhaber hat am 31.08.2026 entschieden: nur passende Einheiten. Die Fahrzeugfabrik repariert Fahrzeuge, die Kaserne Fußtruppen — jedes Gebäude heilt nur, was es auch produzieren kann. Eine Kaserne, die Panzer repariert, ist unlogisch, und die Gebäudewahl behält so ihre Bedeutung.

Die Zuordnung wird aus SimDefinitions abgeleitet, nicht neu aufgeschrieben: es gibt bereits eine Wahrheitsquelle darüber, welches Gebäude welche Rolle produziert, und eine zweite Liste würde beim nächsten Einheitentyp auseinanderlaufen.

Die vier Zahlen, und warum genau diese

Radius, Rate, Kosten und Stapelverhalten waren nicht mitentschieden — der Inhaber sagte „langsam". Sie sind gegen den Bestand hergeleitet und stehen im Docstring, nicht nur hier, damit die nächste Balance-Runde sie am Code findet:

Wert Begründung
Radius 3 Zellen Gegen BuildInfluenceRadiusCells = 8 und die Größe eines 3×3-Footprints. Eine Zone, in der eine ganze Armee Platz hat, ist keine Zone mehr
Rate 1 HP/Tick Ein Zehntel der aktiven Reparatur (RepairRateHpPerTick = 10) und unter jeder Waffenrate: es heilt zwischen Gefechten, nicht während eines
Kosten 0 AE Ein leeres Konto heilt gleich schnell. Eine Kostenpflicht würde genau dann versagen, wenn der Spieler sie am nötigsten hat
Stapeln nein Stehen zwei Zonen übereinander, gewinnt die erste. Stapeln würde zwei Kasernen nebeneinander zur dominanten Eröffnung machen

Determinismus

Feste Phasenposition in der Tickreihenfolge, aufsteigende Entitäts-Indizes, reine Ganzzahlarithmetik. Keine Heilung über die Maximalgesundheit hinaus, keine an toten oder noch im Bau befindlichen Einheiten — beides als Test gepinnt.

Der Befund, der wichtiger ist als das Paket

Diese Änderung bewegt RulesHash64 nicht — 739/739 → 750/750, alle Pins stehen, die kanonische KI-Partie ebenfalls.

Das ist kein Erfolg, sondern ein Beleg. Eine komplett neue Spielregel: zwei Builds mit und ohne diese Zone spielen messbar verschieden, eine beschädigte Armee überlebt im einen Fall und im anderen nicht. Und kein einziger Fingerabdruck bemerkt es, weil PassiveRepairRateHpPerTick und PassiveRepairRadiusCells nicht in der gehashten Konstantenliste stehen.

Das ist #108 zum dritten Mal — nach der Ankerregel und nach der kompletten Kartenneuschreibung samt unbegehbarem Gelände. Der Beleg ist dort nachgetragen. Ein RulesRevisionV4, das die neuen Konstanten aufnimmt, gehört in einen eigenen Vorgang: Scripts/Simulation/Replays/ ist „niemand ohne D-ID", und zusammen mit #138 ist das eine Entscheidung, kein PR.

Nachweis

  • dotnet test tools/Nova.SimRunner.Tests -c Release: 739/739 → 750/750 grün, vom Orchestrator unabhängig nachgefahren
  • Keine Baseline bewegt, kein baseline-reset-approved nötig
  • Nicht belegt: wie sich die Rate im Spiel anfühlt. 1 HP/Tick ist hergeleitet, nicht erlebt — das ist die erste Zahl, die eine Proberunde korrigieren sollte

Herkunft

Erarbeitet von Kimi K3 als delegiertem Worker; Testkette und Konstanten vom Orchestrator nachgeprüft.

@cubetribe
cubetribe merged commit c1a5ebf into main Aug 31, 2026
7 checks passed
@cubetribe
cubetribe deleted the feat/s23-reparatur branch August 31, 2026 08:29
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.

Reparaturzone an Fahrzeugfabrik und Kaserne

1 participant