j136 add TR_MODULE_* on/off switches + single [modules] boot inventory

This commit is contained in:
2026-09-26 14:46:29 +02:00
parent fd34e4ae4a
commit 8f44140783
4 changed files with 255 additions and 17 deletions
+49
View File
@@ -230,6 +230,55 @@ shooting *look* like missing).
---
## Module on/off switches — the `[modules]` boot list
Every module appears once in the boot report, so one command shows the state of
them all right now:
```sh
grep '^\[modules\]' /tmp/modularbot_stdout.log
```
The **new** switches all share the prefix `TR_MODULE_`. A module that already had
an off switch keeps its old name (no duplicate knobs). "OFF" always means the
simpler fallback, never a broken bot.
| switch | ON means | OFF falls back to |
|---|---|---|
| `TR_MODULE_VBULLETS` | guns predict and score virtual bullets so the selector can rank them (default) | no virtual bullets; the selector has no fitness and fires its floor gun (the first gun the rack admits) |
| `TR_MODULE_RAM` | the ram decider may start a ram: finisher, desperation and the optional triggers (default) | the bot never rams; the movement engine drives every tick |
| `TR_MODULE_MOVE_TFIL` | the `tfil` / lava-field engine may be selected (default) | it is skipped when picking the effective engine |
| `TR_MODULE_MOVE_TFIL_RING` | the range-weighted ring engine may be selected (default) | same — skipped in the fallback |
| `TR_MODULE_MOVE_STRAFE` | the perpendicular-strafe engine may be selected (default) | same — skipped in the fallback |
| `TR_MODULE_MOVE_SURF` | the wave-surfer engine may be selected (default) | same — skipped in the fallback |
| `TR_MODULE_MOVE_LEARNED` | the learned danger engine may be selected (default) | same — skipped in the fallback |
There is no "no movement". If the engine named by `TR_MOVEMENT` is switched off,
the effective engine is the first engine still on, in the order `tfil`,
`tfil_ring`, `strafe`, `surf`, `learned`. If all of them are off the bot still
runs `tfil`.
The modules that already had a switch — surfaced in `[modules]` under that one
name, with no new knob:
| switch | ON means | OFF falls back to |
|---|---|---|
| `TR_RACK_<GUN>` = `both`/`1v1`/`melee` | that gun may be selected | `TR_RACK_<GUN>=off`: the gun is removed from the rack |
| `TR_POWER_POLICY` | energy-aware power caps (default) | uncapped: the gun's own preferred power |
| `TR_FIRE_FIX` | the corrected enemy-fire detector (default) | the shipped `prev - energy` detector |
| `TR_RADAR_FORCE_SPIN` | force the old stateless full-spin melee radar (**off by default**) | the adaptive arc-narrowing radar (default) |
| `TR_TFIL_HEAT_TIME` | time-indexed bullet heat (**off by default**) | flat, time-independent heat (default) |
| `TR_VBULLET_DEBUG` | draw the virtual-bullet overlay (**off by default**) | nothing drawn |
| `TR_GEO_DEBUG` | draw the geometry overlay (**off by default**) | nothing drawn |
| `TR_DEBUG_DRAW` | per-mover debug graphics (default) | the movers draw nothing |
| `TR_STRAFE_HEAT_GRID` | draw the full heat grid in STRAFE (default) | the heat grid is hidden |
Always on, listed in `[modules]` but with no switch, because the bot cannot work
without them: the enemy tracker, target selection, the gun selector and the 1v1
radar lock.
---
## 1. Gun rack — which gun(s) may be chosen
| variable | default | what it does |