1.8 KiB
1.8 KiB
Falukant: Transportüberfälle & Wachen (Daemon)
Migration
migrations/008_falukant_transport_raid.sql:
falukant_data.transport.guard_count(Standard0)- Eintrag
falukant_type.underground.tr = 'raid_transport'
Code
| Komponente | Datei |
|---|---|
| Tick (ca. 60 s) | src/worker/falukant_transport_raid.rs → run_tick |
| Aufruf | src/worker/underground.rs (UndergroundWorker::tick, vor den 1-Tage-Jobs) |
| SQL | src/worker/sql.rs (QUERY_RAID_*) |
Logik (V1)
- Offene Untergrundaufträge
raid_transportmitresult IS NULL(ohne 24h-Wartezeit). - Parameter:
regionId,bandSize(JSON, auchregion_id/band_size). - Region muss
falukant_type.region.id IN (4,5)undlabel_tr <> 'town'erfüllen. - Kandidaten-Transporte: noch unterwegs,
size >= 2, Fracht, Route berührt die Region (sourceodertarget), nicht vom Auftraggeber. - Begegnung: Zufall mit von Bandengröße und Ladungsgröße abhängiger Wahrscheinlichkeit.
- Kampf:
raidPowervs.guardPower(Wachen austransport.guard_count) →repelled|partial_success|major_success. - Beute: Anteil der Menge, nie die volle Ladung; zusätzlicher Verlust beim Abtransport ins Lager (
lostDueToStorage). - Einlagerung: bevorzugt Niederlassung in derselben Region, sonst erste Branch-ID des Users.
- Opfer: reduzierte
reputation, verkleinerte Transportmenge.
Events
| Event | Empfänger |
|---|---|
falukantTransportRaid |
Opfer (reason: transport_raided) |
falukantUndergroundUpdate |
Auftraggeber (raid_*) |
falukantUpdateStatus |
beide |
falukantBranchUpdate |
beide |
Backend / UI
Projektseitig: API für raid_transport, guardCount am Transport, Formularfilter für Regionen. Dieses Dokument beschreibt nur den Daemon.