feat(construction): passive Reparaturzone an Fahrzeugfabrik und Kaserne (#55) - #140
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
SimDefinitionsabgeleitet, 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:
BuildInfluenceRadiusCells = 8und die Größe eines 3×3-Footprints. Eine Zone, in der eine ganze Armee Platz hat, ist keine Zone mehrRepairRateHpPerTick = 10) und unter jeder Waffenrate: es heilt zwischen Gefechten, nicht während einesDeterminismus
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
RulesHash64nicht — 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
PassiveRepairRateHpPerTickundPassiveRepairRadiusCellsnicht 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 nachgefahrenbaseline-reset-approvednötigHerkunft
Erarbeitet von Kimi K3 als delegiertem Worker; Testkette und Konstanten vom Orchestrator nachgeprüft.