Files
yourpart-daemon/docs/FALUKANT_TRANSPORT_RAID_DAEMON.md

1.8 KiB

Falukant: Transportüberfälle & Wachen (Daemon)

Migration

migrations/008_falukant_transport_raid.sql:

  • falukant_data.transport.guard_count (Standard 0)
  • Eintrag falukant_type.underground.tr = 'raid_transport'

Code

Komponente Datei
Tick (ca. 60 s) src/worker/falukant_transport_raid.rsrun_tick
Aufruf src/worker/underground.rs (UndergroundWorker::tick, vor den 1-Tage-Jobs)
SQL src/worker/sql.rs (QUERY_RAID_*)

Logik (V1)

  1. Offene Untergrundaufträge raid_transport mit result IS NULL (ohne 24h-Wartezeit).
  2. Parameter: regionId, bandSize (JSON, auch region_id / band_size).
  3. Region muss falukant_type.region.id IN (4,5) und label_tr <> 'town' erfüllen.
  4. Kandidaten-Transporte: noch unterwegs, size >= 2, Fracht, Route berührt die Region (source oder target), nicht vom Auftraggeber.
  5. Begegnung: Zufall mit von Bandengröße und Ladungsgröße abhängiger Wahrscheinlichkeit.
  6. Kampf: raidPower vs. guardPower (Wachen aus transport.guard_count) → repelled | partial_success | major_success.
  7. Beute: Anteil der Menge, nie die volle Ladung; zusätzlicher Verlust beim Abtransport ins Lager (lostDueToStorage).
  8. Einlagerung: bevorzugt Niederlassung in derselben Region, sonst erste Branch-ID des Users.
  9. 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.