第7章 行为与决策模型前六章描述的是“物理世界如何演化”本章描述的是“作战方如何决策”。引擎的决策体系是严格分层的阵营Side持有全局条令与目标优先级 → 条令Doctrine逐级继承并可在任务、编组、单元层面局部覆盖 → 任务Mission确定作战意图与兵力编成 → 任务规划器MissionPlanner生成航线与时序 → 单元 AIActiveUnit_AI执行具体机动与武器使用。7.1 Doctrine交战条令模型Doctrine.cs 是内核中方法数最多的类型约 733 KB、430 个方法但其字段却极少——因为条令的每一项设置都不是简单的字段而是一组“可空值 继承解析”的存取方法对。表 7-1 Doctrine 字段与属性字段/属性 数据类型 默认值 含义推断Subject ScenarioObject 条令所属主体阵营/任务/编组/单元SubjectType Type 主体类型SelectedUnits List 条令作用的单元集合DoctrineRefresh bool 条令刷新标志BingoThreshold_Inherits bool !m_EventIssuer.HasValu Bingo 油量门限可继承PriorityTargetList (属性) List 优先目标清单EMCON_Inherits (属性) bool 辐射管制设置可继承WRA (属性) Dictionaryint, WRA_Weapon 武器使用规则表Weapon Release Authorization条令的核心机制是“可空继承”。每一项设置的类型都是可空枚举如 _WCS?null 表示“未设定沿用上级”。取值时由 GetParentDoctrine 沿“单元 → 编组 → 任务 → 阵营”的链条向上回溯取到第一个非 null 值为止。这一设计允许指挥员在阵营层面下达总方针同时对个别单元做例外授权而不必逐个设置全部条令项。7.1.1 条令设置项清单Doctrine.cs 中定义了 30 余个条令设置枚举覆盖交战、导航、后勤、电磁管制与自卫五个方面。下表按功能归类列出。表 7-2 Doctrine 条令设置项分类功能类别 条令设置枚举 作用武器控制 _WCS自由/谨慎/禁止分空/海/潜/陆四域 规定各作战域的开火授权级别武器控制 _UseNukesAllowed 是否允许使用核武器武器控制 _UseSAMsAgainstShips / _UseWpMissileAgainstShips 是否允许防空导弹/反舰导弹跨域使用武器控制 _GunStrafeGroundTargets 是否允许航炮扫射地面目标武器控制 _UseShootTourists 是否对民用/中立目标开火武器控制 _BVRLogicEnum 超视距空战交战逻辑目标识别 _BehaviorTowardsTargetAmbiguity 对身份不明目标的处置攻击/规避/忽略自卫机动 _UseAutoEvade 是否自动规避来袭武器自卫机动 _UseMaintainStandoff 是否保持防区外距离自卫机动 _AvoidContactWhenPossible 是否尽量规避接触潜艇自卫机动 _DiveOnContact 发现接触时是否下潜潜艇自卫机动 _UseIgnoreEMCONunderAttack 遭攻击时是否解除辐射管制返航门限 _WeaponStateRTB / _FuelStateRTB 弹药/燃油达到何种状态时返航返航门限 _BingoThreshold_E Bingo 油量门限档位返航门限 _DamageThreshold / _FuelQuantityThreshold / _WeaponQuantityThreshold 毁伤、燃油量、弹药量的具体数值门限返航门限 _JettisonOrdnance 返航时是否抛弃外挂航空作业 _QuickTurnAroundForAicraft 是否快速再出动航空作业 _AirOpsTempo 航空作业强度节奏航空作业 _CanRedeployOnlyWithFullWeapons 是否满挂载才允许再次出动后勤补给 _UseUnderwayRefuelAndReplenishment 是否进行海上航行补给后勤补给 _UnderwayRefuelAndReplenishmentSelection 补给对象选择策略后勤补给 _RefuelAlliedUnits 是否为友军单元加油潜艇专用 _UseAIP / _RechargeBatteryPercentage AIP 使用与蓄电池充电门限潜艇专用 _UseDippingSonar / _UseKinematicRangeForTorpedoes 吊放声呐使用、鱼雷是否按动力航程计算导航 _NavigationMethod / _UseIgnorePlottedCourse 导航方式、是否忽略预设航线电磁管制 _EMCONSetting 雷达/声呐/通信的辐射管制状态7.1.2 WRA武器使用规则WRAWeapon Release Authorization是条令中最精细的部分它按“武器 DBID × 目标类型”二维索引为每一组合规定四项参数。表 7-3 WRA 规则条目参数参数 类型 含义WeaponQty int? 单次齐射发数打一个目标用几发弹ShooterQty int? 参与射击的平台数FiringRange float? 开火距离不到此距离不发射避免远距离浪费弹药SelfDefenceRange float? 自卫开火距离末端拦截的最后时机四项参数均为可空类型同样遵循逐级继承规则对应 GetWRA_WeaponQty_Inherits 等一组方法。目标类型由 _WRA_WeaponTargetType 枚举给出而 _WRA_WeaponQty、_WRA_ShooterQty、_WRA_FiringRange、_WRA_SelfDefenceRange 四个枚举则提供了“系统默认/自动/具体档位”的取值语义。想定运行时Scenario 会缓存系统默认值Cache_WRA_WeaponQty_SystemDefault 等以加速解析。WRA 是引擎中弹药消耗与命中率之间权衡的建模核心齐射发数越多击毁概率越高但弹药消耗越快。单发杀伤概率取自 Weapon 的 AirPOK / SurfPOK / LandPOK / SubPOKn 发齐射的累积毁伤概率按独立事件合成。