πŸ”¬ Demo File InternalsΒΆ

Deadlock demos use the PBDEMS2 Source 2 container and entity format. pbdems2 implements these shared functions. Its docs.rs guide contains this information:

Boon supplies the Deadlock protobuf adapter, entity and property selections, events, datasets, and catalog lookups. Read the pbdems2 guide when you change the shared parser. Read Name lookups for Deadlock token tables.

Code structureΒΆ

  • crates/boon/src/hero_stats/: Read catalog definitions and resolve stat inputs. inputs/tests.rs contains the resolver tests.

  • crates/boon/src/rulesets/: Keep equations different of catalog balance values. percentage.rs supplies the shared remaining-factor equation.

  • crates/boon/src/replay_inputs.rs: Read upgrade tokens with UpgradeReader and enemy minimap icons with EnemyMinimap. Resolve field keys from the replay serializers. Recreate readers if the schema changes. Call EnemyMinimap::update(ctx, emit) at every completed tick; set emit=false between selected ticks to preserve last-seen history.

  • crates/boon-python/src/: Build Polars columns and cache datasets. DatasetCache uses the dataset enum for direct lookups.

  • crates/boon-python/python/boon/: Supply public queries and typed result tables. _selection.py rejects incorrect ticks, catalog versions, and Steam IDs before native calls.

Keep observed replay values in different fields from calculated values. Read balance values and effect bindings from boon-data. Keep assumptions in result diagnostics and Known Issues.