Neu im Network

Developer Documentation · Version 1.0.0

Der technische Bauplan von Canipolyon

Klassen, Methoden, Zustände und Datenflüsse des Snapshots 1_4_5_i-2 – mit Fokus auf die tatsächliche Laufzeitlogik, die autoritative Persistenz und die Kopplung der Spielmechaniken.

Projekt in Zahlen

86JavaScript-Dateien in scripts/
16.616Zeilen JavaScript inkl. MAIN-Dateien
6Pflanzplätze und Lampenkanäle
22Version des autoritativen IDB-Zustands

Architektur in einem Satz

Alle wertverändernden Aktionen sollen atomar über IndexedDB laufen.TRANSACTION_MANAGER.commit() klont den aktuellen Zustand, führt eine synchrone Fachmutation aus, validiert das Gesamtergebnis und speichert Zustand plus Beleg in einer gemeinsamen Transaktion. Anschließend erzeugt mirror() kompatible LocalStorage-Werte für ältere UI-Klassen.
1 · EinstiegHTML + MAINSeite bindet Bootstrap-Module.
2 · VorbereitungprepareEconomy()Migration, Synchronisation, Billing.
3 · FachserviceECONOMY_SERVICE & Co.Regeln und Transaktions-ID.
4 · CommitTRANSACTION_MANAGERPrüfung, Beleg, Snapshot.
5 · AnzeigeMirror + BroadcastUI und andere Tabs aktualisieren.

Dokumentationsbereiche

Architektur

Schichten, Abhängigkeiten, Singletons, Datenflüsse und Zuständigkeiten.

Kernmodell

Start & Seiten

Title-Screen, Save-Lifecycle, HTML-Einstiegspunkte und MAIN-Komposition.

Bootstrap

Persistenz

IndexedDB-Stores, State v22, Idempotenz, Migrationen, Spiegel und Multi-Tab-Schutz.

Daten

Pflanzen & Slots

Sorten, Topf/Erde, Wachstum, Lampenzuordnung, Ernte und Lagergrenzen.

Gameplay

Wirtschaft

Geld, XP, Besitz, Betriebskosten, Rechnungen, Zahlungsreihenfolge und Stromsperre.

Buchungen

Tür & Polizei

Kundenangebote, Reservierungen, Verkaufsstatistik und Polizeifälle.

Ereignisse

Mining & Chemie

Aktive Produktionszeit, Coin-Auswahl, Rohstoffe, Warteschlange und Darkweb.

Produktion

Klassen & Methoden

Durchsuchbarer Referenzindex der wichtigsten Klassen, Funktionen und Singletons.

Referenz

Wichtige Entwicklungsregeln

IndexedDB bleibt autoritativ

Neue Spiellogik darf keine wertverändernde Buchung nur in LocalStorage durchführen. Der Mirror ist Ausgabe, keine Eingabe für neue Commits.

Commit-Callbacks bleiben synchron

TRANSACTION_MANAGER.commit(id, apply) lehnt Promise-Rückgaben ab. Externe Werte müssen vor dem Commit feststehen.

Transaktions-IDs sind Teil der Fachlogik

IDs und Aliase sichern Wiederholbarkeit. Eine UI-Aktion darf bei erneutem Klick oder Reload nicht doppelt buchen.

Aktive Zeit statt Offline-Zeit

Billing, Lampen, Wachstum und Mining werden an sichtbare Spielsitzungen gebunden. Lange versteckte Pausen werden neu verankert und nicht nachberechnet.