v5.20.24（仅 Bannerlord 1.3.15 实机候选）
- 恢复精锐士兵标题栏原有的展开与切换兵种按钮，不在精锐标题栏放置排序控件。
- 排序按钮移动到各兵种等级的“姓名”标题栏内，位于独立展开/收回按钮左侧。
- 下拉交互参考精锐兵切换兵种：RenderLate 横向菜单，选择后自动关闭。
- 本候选版只发布 1.3.15；1.4.8 与 1.5.1 等待实机验收后再同步。
Real Army v5.20.21 使用说明
============================================

简介
让普通士兵成为拥有姓名、出身、经历、战绩、伤病、关系与晋升历史的独立人物，并加入士兵晋升将领、将领降职与退休、精锐军编制与统领、装备训练与军费、精锐任务、城镇卫队、战斗点名、伤亡追踪、士兵请求，以及战前步兵、弓手、骑兵、骑射四兵种自由配置。骑兵与骑射兵会同步坐骑和兵种图标，部队界面切换兵种不扣金币。

v5.20.21 性能优化（与 v5.20.20 功能一致）
- 部队界面：角色头像静态缓存、升级门槛按兵种行只算一次、原生行数免分配计数、待回应请求 O(1) 判断——打开与刷新部队界面显著提速。
- 战场播报：击杀/负伤消息排队按固定速率弹出（阵亡 10 条/秒、负伤 8 条/秒，阵亡优先），战斗结束后在地图上按约 20 条/秒加速补弹；所有伤亡最终都会显示且保留姓名与凶手，不再瞬间刷屏掉帧。
- 战场性能：精锐属性重算与生成时不再每次全量扫描英雄列表（领导力缓存）；士兵档案按英雄 id 建立索引，同伴获得经验等高频路径不再线性扫描全部士兵。
- 存档与数据逻辑与 v5.20.20 完全一致，旧存档可直接沿用。

版本选择
1. 游戏为 v1.5.1：使用本包 Bannerlord-1.5.1\RealArmy。
2. 游戏为 v1.4.x（含 v1.4.8）：使用本包 Bannerlord-1.4.x\RealArmy。
3. 游戏为 v1.3.15：使用本包 Bannerlord-1.3.15\RealArmy。
4. 三个版本只能安装一个，不要同时保留旧 NamedSoldiers 与新 RealArmy 文件夹。
5. 各版本携带对应游戏版本的原生界面适配（部队/家族/招募界面结构随游戏版本不同），请勿跨版本混用。

依赖
- Bannerlord.Harmony v2.4.2
- Bannerlord.UIExtenderEx v2.13.3

安装
1. 完全退出游戏和启动器，备份存档。
2. 删除或移走 Modules\NamedSoldiers 与 Modules\RealArmy 旧目录，避免同一内部模块重复加载。
3. 将对应游戏版本文件夹中的 RealArmy 文件夹复制到游戏 Modules 目录。
4. 在启动器中勾选 Real Army。依赖顺序保持 Native、SandBoxCore、CustomBattle、Sandbox、StoryMode、Harmony、UIExtenderEx、Real Army，并以启动器实际依赖提示为准。
5. 启动游戏并读取存档。

升级与存档
- 显示名和目录已改为 Real Army。
- 为延续旧存档，内部模块 ID、程序集名和存档程序集版本仍保留 NamedSoldiers / 2.5.0.0。
- 更换游戏主版本前仍应备份存档。

主要操作
- 部队界面：查看具名士兵、经历、关系、晋升及精锐军信息。
- 战前布置：选择步兵、弓手、骑兵、骑射四种兵种，并调整精锐军人数。
- 骑兵/骑射切换会同步兵种、坐骑与部队图标；界面切换不扣金币。
- 精锐军统领、任务、城镇卫队和战斗点名功能按对应界面提示操作。

卸载
退出游戏后移除 Modules\RealArmy。若要回到旧版，请恢复安装前自行备份的旧模块目录。

验证边界
- v1.5.1 / v1.4.x（按 Bannerlord.ReferenceAssemblies 1.4.8 编译）/ v1.3.15（按 1.3.15 编译）：三套程序集同源编译，288 项核心测试、静态验证与对话图验证全部通过。
- 各版本请在对应游戏客户端完成启动、部队界面、存档读写与实战验收。

v5.20.22 击杀统计修正：
- 每名普通士兵的本场击杀直接采用游戏原生 Agent.KillCount，不再按同兵种平均分配。
- 阵亡或负伤士兵在离开战场 Agent 列表时封存原生击杀，存活士兵在战斗结算时读取。
- 排除英雄、坐骑、友军误伤与未绑定身份；历史存档中的既有击杀值保持不变。
- 日志逐兵输出 nativeKillCount，并校验具名士兵合计不超过我方非英雄士兵原生合计。
v5.20.23 名单排序界面：
- 普通具名士兵与精锐士兵标题栏右侧新增原版风格“排序”入口，不占左侧空间。
- 支持默认顺序、击杀数、关系分、参战次数和负伤次数；数值排序均为从高到低，同值按姓名排列。
- 当前排序显示在按钮文字中；排序只改变界面显示，不修改 SoldierId、档案、原生部队顺序或存档数据。
v5.20.25（仅 Bannerlord 1.3.15 第二次实机候选）
- 根据 07:11 实机截图与日志，修复命令已触发但固定标题内下拉层被裁切的问题。
- 普通姓名排序选项改为标题下方的独立可见菜单行。
- 精锐标题栏新增左侧排序按钮，并保留独立展开按钮。
- 精锐切换兵种按钮改为明确显示“切换兵种”，兵种选项同样使用标题下方独立菜单行。

v5.20.30（Bannerlord 1.3.15 / 1.4.8 / 1.5.1）
- 将已验收的普通士兵与精锐士兵排序、展开和“切换兵种”交互分别移植到三个版本专属 PartyScreen，未跨版本复用原生界面文件。
- 普通士兵同时满足家族等级、服役、参战、击败、关系、积怨、状态、所在部队和精锐编制条件时，姓名行与姓名分类标题显示金色“!”。
- 展开该士兵档案后按钮显示“! 编入精锐营”，悬停说明“已符合精锐营选拔条件”；红色“！”继续只代表待回应谈话。
- 感叹号仅提示可以开始14至28日精锐选拔，不跳过训练、费用或身份连续性流程。
- 1.4.8 与 1.5.1 继续保持未同步状态，等待本版实机验收。
