Jedes interaktive Objekt in Warman, Portale, Truhen, Hebel, Gegner-Spawner, Händler, Item-Container, Teleporter, erbt von einer einzigen abstrakten Basisklasse namens Interactable. Diese Basisklasse bietet ein einheitliches Interaktionsmodell, ein Ausgangs-Verdrahtungssystem und visuelle Feedback-Infrastruktur, die alle Interaktionsobjekte teilen.

Interaktionstypen

Interaktionsobjekte gibt es in drei Varianten. Aktions-Interaktionsobjekte erfordern einen Tastendruck des Spielers, zu einer Truhe laufen und Interagieren drücken. Auslöser-Interaktionsobjekte feuern automatisch, wenn der Spieler ihre Zone betritt, auf eine Druckplatte treten. Indirekte Interaktionsobjekte werden nie direkt vom Spieler ausgelöst. Sie werden durch andere Interaktionsobjekte über das Verdrahtungssystem aktiviert.

Jeder Typ hat sein eigenes Collider-Setup. Aktions-Interaktionsobjekte nutzen einen Kugel- oder Box-Collider zur Näherungserkennung. Auslöser-Interaktionsobjekte nutzen einen Trigger-Collider. Indirekte Interaktionsobjekte verzichten komplett auf Collider, da sie nur auf verdrahtete Signale reagieren.

Das Verdrahtungssystem

Der Kern des Systems ist das Ausgangs-Array. Jedes Interaktionsobjekt hat zwei Ausgangslisten: einen regulären Ausgang (feuert bei Interaktion) und einen „Keine-Aufladungen-mehr"-Ausgang (feuert, wenn das Interaktionsobjekt keine Nutzungen mehr hat). Jeder Ausgang ist eine Referenz auf ein anderes Interaktionsobjekt im selben Raum.

Lever Lever 2 LogicGate all inputs met? Spawner creates enemies all dead Open Door WarScript can also trigger
Interaktionsobjekt-Verdrahtung: Hebel → Gatter → Spawner → Tür

Konkrete Interaktionsobjekte

Die Vielfalt konkreter Typen macht das System flexibel. Lever und Switch sind einfache An/Aus-Schalter. LogicGate feuert seinen Ausgang nur, wenn alle erforderlichen Eingänge erfüllt sind, nützlich für „Töte alle Gegner, um die Tür freizuschalten"-Muster. EnemySpawner erzeugt Gegner mit konfigurierter Rate und Schwierigkeit. Vendor generiert ein zufälliges Shop-Inventar bei Aktivierung. ItemContainer droppt Beute aus einer konfigurierten Drop-Tabelle. Teleporter bewegt den Spieler zu einer Zielposition innerhalb desselben Raums. Portal wechselt zwischen Räumen.

Einige Interaktionsobjekte haben Aufladungen, eine Truhe kann vielleicht nur einmal geöffnet werden, ein Hebel hat 3 Nutzungen. Wenn die Aufladungen ausgehen, feuert der „Keine-Aufladungen-mehr"-Ausgang, der Aufräumlogik auslösen kann, wie das Despawnen des Visuals des Interaktionsobjekts oder das Freischalten eines Sekundärpfads.

Script-Hooks

Das WarScript-System kann sich in Interaktionsobjekte einklinken. Script-Timer, Raumeintritts-Events und benutzerdefinierte Auslöser können programmatisch Interaktionsobjekte aktivieren, die im Editor mit nichts verdrahtet sind. Das überbrückt die Lücke zwischen statischem Leveldesign und dynamischer Spiellogik, eine WarScript-Funktion könnte einen versteckten Spawner aktivieren, wenn ein Timer abläuft oder eine Quest-Bedingung erfüllt wird.

Weil Interaktionsobjekte durch die deterministische Simulation verarbeitet werden (alle Interaktionen sind Eingabebefehle, die durch den Lockstep-Tick fließen), funktionieren verdrahtete Ketten und skript-ausgelöste Aktivierungen im Einzel- und Mehrspieler identisch. Der Host muss den Zustand der Interaktionsobjekte nicht synchronisieren. Jeder Client berechnet aus denselben Eingaben dasselbe Ergebnis.