7.4 Side 与 Scenario:阵营与想定
Side 表示一个作战阵营,是条令、接触、任务与评分的持有者。
表 7-5 Side 主要字段与属性
字段/属性 数据类型 默认值 含义(推断)
Name (属性) string 阵营名称
IsHumanControlled bool 是否由人操作
IsAIOnly (属性) bool 是否纯 AI 阵营
Doctrine Doctrine 阵营级条令(继承链的根)
Missions ReadOnlyCollection > m_RoleFacade.AsReadOnl 本阵营的全部任务
Units List 本阵营的全部单元
Contacts ObservableDictionary<string, Contact> > RateOrder() 本阵营持有的接触(敌情图)
BaseContacts ObservableDictionary<string, Contact> > CollectOrder() 基础接触集合
Contacts_NonAU HashSet 非活动单元类接触(如地面固定目标情报)
ContactsJustSharedWithMe HashSet 盟友本步共享过来的接触
Postures_ReadOnly (属性) ReadOnlyCollection<KeyValuePair<Side, Misc.PostureStance>> 对其他各阵营的敌友态度(敌对/中立/友好/非交战)
AwarenessLevel (属性) AwarenessLevel_Enum 态势感知等级(决定初始情报完备程度)
Proficiency (属性) GlobalVariables.ProficiencyLevel 整体训练水平
EmconAlertness EmconLevel 辐射管制警戒级别
Nature bool 是否为“自然”方(承载环境要素、中立生物等)
ExclusionZones List 禁止进入区(交战规则约束)
NoNavZones List 禁航区
CustomEnvironmentZones List 自定义环境区(可覆盖地形高度与水文条件)
StandardZones List 标准区域定义
RefPoints (属性) ObservableList 参考点集合(任务区、航线锚点的几何基础)
WeaponSalvos WeaponSalvo[] 齐射批次记录
Chalks List 空运/空降批次(Chalk)
LandingPlans List 着陆计划集合
SpecialActions Dictionary<string, SpecialAction> 特殊行动(想定作者定义的可触发事件)
AARAAR 战后讲评记录(After Action Report)
ScoringLog List 评分日志
Scoring_Disaster int? “惨败”评分门限
Scoring_MajorDefeat (属性) int “大败”评分门限
Scoring_MinorDefeat (属性) int “小败”评分门限
Scoring_Average (属性) int “平局”评分门限
Scoring_MinorVictory (属性) int “小胜”评分门限
Scoring_MajorVictory (属性) int “大胜”评分门限
Scoring_Triumph int? “全胜”评分门限
KnownActiveNuclearWeapons (属性) List<Module_Unit.Unit> 已知在飞的核武器(触发全局告警)
AssignsCollectiveResponsibility bool 是否实行连带责任(一单元违规牵连全阵营态度)
CanAutoTrackCivs bool 是否自动跟踪民用目标
DisableMultiDomainTOT bool 是否禁用跨域同时到达(TOT)协同
Briefing (属性) string 任务简报文本
Operation (属性) Operation 所属战役行动名称
Scenario 是仿真的顶层容器(112 个字段、33 个属性),除持有全部阵营、单元、爆炸、水雷、箔条云等对象外,还承担两项关键的引擎职责。
其一是时间脉冲分频。Scenario 维护了一组“时间刻度变化”标志——SecondIsChangingOnThisPulse、FifthSecondIsChangingOnThisPulse、MinuteIsChangingOnThisPulse 直至 TwentyFourHourIsChangingOnThisPulse,共 11 级。不同频率的计算挂载在不同刻度上:运动学每秒更新,传感器扫描按其扫描周期更新,而后勤补给、疲劳恢复等慢过程按小时或日更新。这是在保证物理精度的同时控制计算量的关键工程手段。
其二是大规模缓存。Scenario 中以 Cache为前缀的字段多达二十余个(Cache_Sensors、Cache_XSections、Cache_PowerplantAltBands、Cache_AllPossibleEmissionsPerUnit、Cache_SensorCompatibleFrequencies 等),把数据库查询结果与跨单元的关联关系预先展开。由于探测计算需要在每个脉冲对“全部传感器 × 全部目标”组合求解,这些缓存是维持大规模想定可运行性的前提。
此外 Scenario 支持蒙特卡洛批量运行(MonteCarloIteration)、无界面运行(RunningHeadless)、战役模式(IsRunningInCampaignMode)与 Lua 沙箱脚本(Scenario_LuaSandbox),并通过 ApplicableEventExporters 支持仿真事件的外部导出,具备作为分析工具批量产生统计样本的能力。
CMO决策模型-阵营与想定详解