外观
BattleArgs 跨标题差异
这张表说明为什么 BTLX Core 必须 profile-aware。同一个 field number 不能在 EW7 和 WS 之间默认共享语义。
Summary
| Metric | Count |
|---|---|
| Common field numbers | 40 |
| Same definitions | 35 |
| Changed definitions | 5 |
| EW7-only descriptor fields | 3 |
| WS-only descriptor fields | 22 |
Confirmed same-number definition changes
| # | EW7 Android 3.5.0 | WS Android 3.2.2 |
|---|---|---|
| 19 | Passages: message -> BattlePassageArgs | Rivers: message -> BattleRiverArgs |
| 40 | WinningMovieId: int32 | Time: int32 |
| 41 | FailingMovieId: int32 | Weather: int32 |
| 130 | CoinToIronRate: float | CoinToFoodRate: float |
| 131 | IronToCoinRate: float | FoodToCoinRate: float |
EW7-only descriptor fields
| # | Name | Type |
|---|---|---|
| 116 | ExhortSurrenderReduceRadio | int32 |
| 161 | HeraldicIds | int32 |
| 162 | AssetVisible | bool |
WS-only descriptor fields
| # | Name | Type |
|---|---|---|
| 4 | ActivityCode | int32 |
| 6 | AssetVisible | bool |
| 7 | ShortRange | int32 |
| 8 | AutoVisible | bool |
| 9 | Links | message |
| 50 | CustomData | int32 |
| 60 | HasCityCaches | bool |
| 61 | CityFactionCaches | message |
| 62 | CityFactionGroupCaches | message |
| 63 | CityBorderDistanceCaches | message |
| 64 | CityCenterDistanceCaches | message |
| 66 | PackItems | message |
| 67 | PackEquips | message |
| 68 | RogueRelics | message |
| 70 | WinningMovieId | int32 |
| 71 | FailingMovieId | int32 |
| 101 | IsCutting | bool |
| 258 | Domain | int32 |
| 300 | BattleRiverNodes | message |
| 400 | BuffPatches | string |
| 1901 | Passages | message |
| 25701 | RootSeed | int32 |
Important example
EW7 field 19 = Passages;WS field 19 = Rivers;WS 的 Passages 位于 field 1901。
因此未来 codec、diff、编辑器和 GUI 都必须先选择 title/version profile,再解释 field number。