Skip to content

探索与情报

This content is not available in your language yet.

海图先是一片黑:船开到哪里,雾擦到哪里;港口靠过才算认识;新闻每七天一条,流言靠岸才听得到。本页覆盖战争迷雾、发现注册(first-meet)、新闻与流言、事件调度、全局价格修正事件、小地图显示规则六块机制。

探索与情报系统(Service/Discovery/)负责回答一个问题:玩家此刻“知道”世界的哪一部分。它把信息揭示拆成三层,互相独立:

管的是什么 载体
几何雾(战争迷雾) 地形层面“去过没去过” FogMaskService.cs,80×80 格位图
兴趣点发现(first-meet) 国家 / 城市 / 遭遇海域“认识没认识” DiscoveryRegistry.cs,三个永久集合
情报 世界动态新闻 + 靠岸流言 EventScheduler.cs / NewsTemplates.cs / RumorGenerator.cs

在游戏循环中的位置:玩家驾船航行(参见 船只)时雾被动擦除;靠近港口触发城市发现并弹出情报简报;进入危险海域触发海域发现(参见 遭遇与刷怪)。已发现与否决定了小地图、全屏战略图、外交面板、顶部位置栏等十余处界面显示什么、隐藏什么。

玩家直接接触它的入口:

  • 右下角小地图(200×200 像素)与按 M 键展开的全屏战略地图(MiniMapPresenter.cs);
  • 每次驶入港口范围时弹出的“情报简报”弹窗,分【确定新闻】与【流言】两栏(HarborBriefingPresenter.cs);
  • 顶部当前位置栏:未发现的海域显示“未知海域”、未发现的港口显示“某国 · 未知港口”(CurrentLocationPresenter.cs)。

系统由场景内的 DiscoveryBoot.cs 组合根在所有城市生成之前(执行顺序 -200)拉起,确保后续所有系统都能查询发现状态。

迷雾只作用于小地图与全屏战略地图(界面层),不影响主视角 3D 画面。数据是一张固定 80×80 的正方形格子位图(FogMaskService.cs 代码常量 Grid = 80),覆盖整个世界包围盒的最长边:

  • 格子边长 = max(世界宽度, 世界深度) ÷ 80(单位:米)
  • 揭示半径 = max(世界宽度, 世界深度) ÷ 10(单位:米)

代入两种世界预设(预设详见 配置表总览):

世界预设 世界尺寸(约) 格子边长(约) 揭示半径(约)
real(positionScale = 1.0) 7500 米 87-94 米 750 米
compact(positionScale = 0.1) 750 米 8.7-9.4 米 75 米

世界尺寸来自城市领海网格构建后注册的世界包围盒,因此迷雾初始化被显式安排在城市系统生成领地网格之后(CitySystemInitializer.cs 调用 InitializeFromBounds),不靠运气。

三态显示MiniMapPresenter.csRebuildFogTexture):

状态 判定 小地图表现
当前视野 格子中心在玩家船周“揭示半径”圆内 完全透明(看得见一切)
已探索 历史上曾进入过视野 半透明黑罩(透明度 50%,黑 alpha=128)
未探索 从未进入视野 纯黑(alpha=255),完全遮挡其下的城市与船只图标

擦除节奏:每 1 秒重算一次船周圆并把圈内格子永久标记为“已探索”(FogMaskService.cs 代码常量,Update_eraseTimer < 1f)。已探索状态永久且不可逆——没有任何运行时机制会把格子重新变黑(开发者面板的 Reset 除外)。

持久化:6400 个格子打包成 800 字节写入世界状态存档({shipId}_world.json,键 FogMaskData,经由 WorldStateInfo.cs 聚合保存,参见 存档)。存档加载可能早于迷雾初始化,此时数据先缓存、初始化完成后再回放,保证读档不丢探索进度。

遮挡层级:雾罩画在城市 / 港口 / 船只图标之上,玩家三角与导航目标标记之下——玩家永远看得到自己和自己设的航点。

DiscoveryRegistry.cs 维护三个互相独立的永久集合:已发现国家、已发现城市、已发现遭遇海域。全部按字符串 ID 记录,重复发现自动去重(事件只在首次触发一次),没有任何“取消发现”机制

维度 触发条件 出处
城市 玩家船进入城市触发半径(cities.csv 的 radius 列 × 世界预设 cityRadiusScale;触发参考点优先用港口锚点)。敌对城同样会被发现 CityTradingTrigger.cs
国家(连带) 发现任意一座城市时,自动连带发现该城所属国家(按 cities.csv 的 country_id 列查) DiscoveryRegistry.cs
国家(新闻) “宣战 / 停战”新闻生成时,自动发现牵涉的两个国家——即使玩家从未去过 EventScheduler.cs
遭遇海域 玩家船进入遭遇海域多边形且成功开启遭遇战(船位每 0.1 秒检测一次;重入冷却期内进入不会开战也不会触发发现,但首次进入必然成功) ActiveZoneTracker.cs / ArenaSessionManager.cs
预设初始 场景预设 JSON 的 initialDiscoveredCountries / initialDiscoveredCities 字段在开局时直接灌入 ScenarioLoader.cs
开发工具 F8 面板一键全发现 / 重置(仅编辑器与开发构建) DiscoveryRevealDevPanel.cs

当前唯一带初始发现的预设 外循环测试_真实地图.json:开局已知西班牙(country_001)、英格兰(country_002)两国与 city_001 至 city_004 四城;法兰西(country_003)与自由港(city_005)需要玩家自己找。

发现状态遮蔽全表——“未发现”在各界面的具体表现:

未发现对象 被遮蔽的内容 出处
国家 全屏地图领地不染色(视同公海)、国境线与海岸线不绘制 MiniMapPresenter.cs
国家 航行视角 / 战略视角领海边界与染色透明;仅一侧已知的国境线用特殊色 SailingBorderRenderer.cs / StrategicMapRenderer.cs
国家 外交面板不出现该国筹码与关系矩阵行(参见 阵营与外交 DiplomacyPanel.cs
国家 AI 船国籍标签显示“?“加灰点 AIShipNationalityTag.cs
国家 顶部位置栏整段显示“未知海域” CurrentLocationPresenter.cs
国家 世界视角的国家名标签隐藏 CountryNameLabel.cs
城市 世界视角的城市标记方块与染色隐藏、城市名标签隐藏 CityDiscoveryVisibility.cs / CityNameLabel.cs
城市 战略视角点击该城无响应 StrategicMapInteractor.cs
城市 顶部位置栏显示“某国 · 未知港口” CurrentLocationPresenter.cs
城市 小地图城市 / 港口图标与港口安全圈隐藏(见“已知限制”第 1 条) MiniMapPresenter.cs
遭遇海域 小地图红色危险区不绘制 MiniMapPresenter.cs

存档恢复发现集合时不重放发现事件,避免读档瞬间触发大规模界面重建;界面在打开时主动查询全量。

新闻系统(EventScheduler + NewsTemplates)

Section titled “新闻系统(EventScheduler + NewsTemplates)”

投放节奏EventScheduler.cs 监听日期变更,距上次投放 ≥ 7 个游戏天就生成 1 条新闻(代码常量 IntervalDays = 7)。游标初始值为 -999,因此第一条新闻在第 1 个换日点(界面显示“第 2 天”开始的瞬间)就会出现。按默认时间速率(1 现实秒 = 1 游戏小时,参见 时间与调度),7 个游戏天 ≈ 168 现实秒 ≈ 2.8 分钟一条。

关键时序:新闻在生成当刻就改变世界状态(宣战立即敌对、物价立即记账、涉事国立即被发现);靠岸简报只是事后“读报”。玩家可能先挨打、后看到宣战新闻。

模板全表NewsTemplates.cs,四类等概率各 25%,全部硬编码,无配置表):

类型 概率 标题文案 参数 生成时立即生效的效果
WarDeclared 宣战 25% “英格兰对法兰西宣战” 固定 country_002 对 country_003 两国关系设为 Hostile;两国自动 first-meet
PeaceMade 停战 25% “英法停战协议达成” 固定同一对国家 两国关系设为 Neutral;两国自动 first-meet
CurrencyShift 通货变动 25% “全境 {物品} 价格上涨 5%” 或 “…下跌 5%” 物品从 IronPlate / Wood / Coal / Bullet 四选一(各 25%);50% 概率 ×1.05(涨),50% 概率 ×0.95(跌) 该物品的全局价格倍率累乘
MonsterSurge 怪物潮 25% “渔船反映 {海域ID} 海域怪物增多” 海域从 zone_central / east / west / north / south 五选一(各 20%,与 EncounterZones.csv 的真实海域一一对应) 无——仅记录文案,不联动刷怪强度

新闻列表、简报已读游标、投放游标三者全部持久化(键 EventSchedulerNews / LastBriefingShownDay / LastInvestigatedDay)。

玩家船每次驶入城市触发半径(包括敌对城)都会组装一份 HarborBriefingMessage 并弹窗:

  • 确定新闻栏:自上次简报已读日以来的全部新闻(严格大于已读日:同一天内第二次靠岸不会重复看到当天的新闻)。展示后立即把已读游标推到当前天。
  • 流言栏:最多 3 条RumorGenerator.cs 代码常量 MaxRumors = 3),按以下优先级填充:
流言来源 触发条件 文案与数值规则
1 邻近城市奢侈品报价 候选 = GoodsOrigin.csv 全部条目;要求原产城已被发现、不是当前城、直线距离 < 3000 米(代码常量 NeighborMaxDistMeters,距离按 CSV 坐标 × positionScale 换算成米) “听说 {城市名} 的 {物品ID} 卖到一份 {模糊价} 金币”。模糊价 = 原产地基础价 × random(0.7, 1.3),即 ±30% 误差
2 未知势力提示 还有任何国家未被发现 固定文案“听说北方还有别的势力,没人确认。”(不点名,方向也是写死的)
3 怪物潮预警 新闻历史里存在任意一条 MonsterSurge 固定文案“渔船说北海最近怪物多。”(不引用真实海域)

简报弹窗的 LocalPrices 字段当前恒为空——本期不传本地物价,交易界面直接读城市商人数据(参见 交易)。

全局价格修正事件(GlobalPriceModifier)

Section titled “全局价格修正事件(GlobalPriceModifier)”

GlobalPriceModifier.cs 维护一张“物品 ID → 价格倍率”表,默认 1.0。通货变动新闻每次 Apply 都是累乘:连续两条同物品上涨新闻 = 1.05 × 1.05 ≈ 1.1025(+10.25%)。倍率无上下限、不随时间衰减、持续时间无限(除非反向新闻把它乘回来),并随世界状态存档持久化(键 GlobalPriceModifierData)。

唯一的读取点在城市商人初始化奢侈品上架时(CityTrader.cs):

上架单价 = max(1, round(距离衰减价 × 全局倍率))

其中距离衰减价来自奢侈品产地表(GoodsOriginRegistry.cs,数据 GoodsOrigin.csv):

价格 = round(基础价 × (1 + 每公里涨价率 × 距原产地公里数)) 库存 = max(0, round(max(基础库存 × (1 − 每公里降库率 × 公里数), 基础库存 × 最低库存比例)))

距离按城市 CSV 坐标 × positionScale 换算为米再除以 1000(公里)。自由港(city_005)被显式排除,不上架任何奢侈品

GoodsOrigin.csv 全量内容(6 行,策划可直接改):

物品 ItemId 原产城市 基础价(金币) 基础库存(件) 每公里涨价率 每公里降库率 最低库存比例
LuxuryWine city_001 马德里 5 400 0.6 0.20 0.10
LuxuryTobacco city_002 塞维利亚 30 250 1.0 0.30 0.05
LuxuryCloth city_003 普利茅斯 12 300 0.7 0.20 0.10
LuxuryArtillery city_004 朴次茅斯 30 100 1.0 0.30 0.05
LuxuryCoffee city_006 勒阿弗尔 30 300 0.8 0.25 0.05
LuxurySilk city_007 马赛 80 150 1.2 0.30 0.05

举例:马赛产丝绸基础价 80,运到约 5.64 公里外的马德里(按 cities.csv 坐标算直线距离)→ 价格 = 80 × (1 + 1.2 × 5.64) ≈ 622 金币;库存被最低比例钳制在 150 × 0.05 = 7.5 → 8 件。“低买高卖跑距离”即本系统设计的核心套利循环。

小地图分两层:数据层(Service/MiniMap/)与渲染层(MiniMapPresenter.cs,UI Toolkit 自绘图标,无相机渲染开销)。

数据层:任何想上小地图的物体挂 MiniMapMarker.cs 组件,自动注册到 MiniMapManager.cs 注册表。标记类型六种:Player / City / MonsterArea / Custom(船只)/ LandArea(岛屿)/ Harbor。城市标记由城市生成器自动挂载,岛屿轮廓与港口点由岛屿生成器挂载(参见 岛屿与陆地)。

两种视图

模式 进入方式 中心 视野半径 画幅
跟随小图 默认 玩家船(始终居中) 200 世界单位(代码常量 ViewRadius 右下角 200×200 像素(右距 8、底距 64)
全屏战略图 按 M 键切换(淡入淡出 200 毫秒) 世界包围盒中心 max(世界半宽, 世界半深),未注册时回退 5000 米 居中正方形信箱式适配

图标与颜色规格(全部为 MiniMapPresenter.cs 代码常量):

元素 形状 尺寸(像素) 颜色 显示条件
玩家 三角(随船艏旋转) 15 永远显示,雾罩之上
城市 方块 + 全屏模式下加城市名标签 12 城市已发现且在画幅内
城市边缘指示 三角(指向城市方向) 12 城市已发现、出画但直线距离 ≤ 1000 米(CityIndicatorMaxDistance),贴画幅边缘(留边 10 像素)
港口 方块 7 青蓝 (0.3, 0.8, 1) 所属城市已发现
港口安全圈 世界半径 80 米(HarborSafeZoneConstants.cs 半透明青绿 (64, 224, 168, alpha 64) 所属城市已发现
遭遇危险区 多边形 / 圆填充 按真实形状投影 红,透明度 25%(不按危险等级分色) 海域已发现
怪物区标记 多边形 / 圆 按真实大小 标记色强制透明度 35% 跟随模式下区域边缘进入 200 单位视野
岛屿 多边形填充 按真实轮廓 土黄 (0.6, 0.5, 0.3, alpha 0.8)(LandManager.cs 同上,不受发现状态限制
其他船只 三角 10 灰 (0.6, 0.6, 0.6) 或标记自带色 在画幅内即显示,不受发现状态限制
自动航行目标 红色“X”文字标记 + 橙色航线折线 字号 16 红 / 橙 (1, 0.7, 0.2) 设有导航目标时

全屏模式独有内容:国家领地染色(已发现国家按国家色块填充,透明度 55%)、国境线(双侧国家均已发现才画,粗白线宽 2)、海岸线(陆侧国家已发现才画,米色细线宽 1.5)、城市名标签。国家色来自 countries.csv 的 area_color 列。

交互:小图与全屏图上右键 = 设置自动航行目标(替换当前航线),Shift + 右键 = 追加途经点(参见 寻路与移动)。全屏模式不会因设目标自动关闭。

渲染分层(自下而上):海面底色 → 国家染色 → 怪物区 → 国境线 → 遭遇危险区与安全圈 → 岛屿 → 城市/港口 → 船只 → 雾罩 → 航线 → 玩家三角 → 导航 X 标记。

MiniMapCamera.cs 仍会自动创建一台 512×512 渲染纹理的正交俯视相机(高度 100、正交尺寸 100,均为 Inspector 序列化字段),但图标式小地图不消费它的画面,属于遗留链路;无图形设备的服务器环境下该相机自动禁用。

项目 公式 / 数值 单位 来源
迷雾网格 80 × 80 代码常量 FogMaskService.cs
迷雾格边长 max(世界宽, 世界深) ÷ 80 代码公式 FogMaskService.cs
迷雾揭示半径 max(世界宽, 世界深) ÷ 10(real ≈ 750,compact ≈ 75) 代码公式 FogMaskService.cs
迷雾擦除间隔 1 代码常量 FogMaskService.cs
迷雾三态透明度 视野内 0 / 已探索 128 / 未探索 255(黑色 alpha) 代码常量 MiniMapPresenter.cs
迷雾存档体积 6400 位 = 800 字节 字节 代码 FogMaskService.cs
海域进出检测频率 每 0.1 秒(10 赫兹) 代码常量 ActiveZoneTracker.cs
城市发现触发半径 cities.csv radius 列(45-60)× cityRadiusScale(real 1.0 / compact 0.2) CSV cities.csv + JSON 世界预设
新闻投放间隔 ≥ 7 游戏天(默认速率下 ≈ 168 现实秒) 代码常量 EventScheduler.cs
首条新闻时间 第 1 个换日点(显示“第 2 天”开始时) 代码 EventScheduler.cs(游标初值 -999)
新闻四类概率 各 25% 百分比 代码 NewsTemplates.cs
通货变动幅度 ×1.05(涨 5%)或 ×0.95(跌 5%),各 50%;多次累乘 倍率 代码常量 NewsTemplates.cs
通货变动持续时间 无限(不衰减、不过期,仅反向新闻可抵消) 代码 GlobalPriceModifier.cs
通货变动物品池 IronPlate / Wood / Coal / Bullet(各 25%) 代码常量 NewsTemplates.cs
怪物潮海域池 zone_central / east / west / north / south(各 20%) 代码常量 NewsTemplates.cs
流言条数上限 3 代码常量 RumorGenerator.cs
流言邻城距离上限 3000 代码常量 RumorGenerator.cs
流言价格误差 原产地基础价 × random(0.7, 1.3),即 ±30% 倍率 代码常量 RumorGenerator.cs
奢侈品价格 round(基础价 × (1 + 每公里涨价率 × 公里数)) 金币 公式在 GoodsOriginRegistry.cs,参数在 CSV GoodsOrigin.csv
奢侈品库存 max(0, round(max(基础库存 × (1 − 每公里降库率 × 公里数), 基础库存 × 最低库存比例))) 同上
奢侈品最终上架价 max(1, round(距离衰减价 × 全局倍率)) 金币 代码 CityTrader.cs
商人库存派生 最大库存 = 计算库存 × 2;每日补货 = max(1, 计算库存 ÷ 5) 代码 CityTrader.cs
小图视野半径 200 世界单位 代码常量 MiniMapPresenter.cs
全屏视野半径 max(世界半宽, 世界半深);未注册回退 5000 代码 MiniMapPresenter.cs
小图画幅 200×200,右距 8、底距 64 像素 代码常量 MiniMapPresenter.cs
城市边缘指示距离 ≤ 1000 代码常量 MiniMapPresenter.cs
全屏切换键 / 动画 M 键 / 200 毫秒淡入淡出 代码常量 MiniMapPresenter.cs
港口安全圈半径 80 代码常量 HarborSafeZoneConstants.cs
图标尺寸 玩家 15 / 城市 12 / 港口 7 / 船 10 / 指示三角 12 / 怪物区基准 20 像素 代码常量 MiniMapPresenter.cs
小地图相机(遗留) 高度 100、正交尺寸 100、渲染纹理 512×512、缩放步进 10、最小正交 10 Inspector 序列化字段 MiniMapCamera.cs / MiniMapManager.cs
  • 城市与国家:城市触发半径既是交易入口也是城市发现的判定圈;世界包围盒(迷雾初始化的依据)由城市领地网格构建时注册;城市标记方块与名字标签按发现状态显隐。
  • 阵营与外交:宣战 / 停战新闻直接改写英格兰与法兰西的国家关系;外交面板只列出已发现国家。
  • 遭遇与刷怪:遭遇海域首次成功开战即被发现,此后小地图永久显示其红色危险区;怪物潮新闻引用同一批海域 ID 但不改变刷怪强度。
  • 交易:奢侈品距离衰减价、全局价格倍率都在城市商人初始化时注入上架价;国家关系另有 0.9 至 1.2 倍的关系价格修正(属交易系统)。
  • 时间与调度:新闻投放挂在换日事件上;1 游戏天 = 1440 游戏分钟 = 默认 24 现实秒。
  • 存档:发现集合、迷雾位图、价格倍率、新闻列表与两个游标,五者统一打进 {shipId}_world.jsonWorldStateInfo.cs)。
  • 船只:迷雾擦除、海域检测、小地图中心都跟玩家船位置走;靠岸记录(复活点、压力破除)与城市发现共用同一个进圈事件。
  • 界面总览:小地图属 MainRight 槽位;简报弹窗、位置栏、外交面板均消费发现状态。
  • 开发者工具:F8 地图可视度面板提供“仅清雾 / 仅 first-meet / 全揭示 / 重置到预设初始”四档。
想调什么 改哪里 备注
奢侈品基础价 / 库存 / 衰减斜率 Assets/StreamingAssets/GoodsOrigin.csv 策划可直接改,运行时首次访问加载;前三行是表头 / 类型 / 注释
开局已知哪些国家与城市 场景预设 JSON(如 Assets/StreamingAssets/Presets/外循环测试_真实地图.json)的 initialDiscoveredCountries / initialDiscoveredCities 写城市 ID 会自动连带其国家
城市发现 / 交易触发圈大小 Assets/StreamingAssets/CitySystem/cities.csv 的 radius 列;整体缩放改世界预设 DataSets/world/*.json 的 cityRadiusScale 单位米
新闻频率(7 天) EventScheduler.cs 常量 IntervalDays 需程序改
新闻内容 / 概率 / 涨跌幅(±5%) NewsTemplates.cs 全部硬编码 需程序改;国家对、物品池、海域池均写死
流言条数(3)/ 邻城距离(3000 米)/ 价格误差(±30%) RumorGenerator.cs 常量 需程序改
迷雾精度(80 格)/ 揭示半径系数(÷10)/ 擦除间隔(1 秒) FogMaskService.cs 常量与公式 需程序改;揭示半径目前不是独立参数而是世界尺寸的固定比例
小地图视野半径(200)/ 画幅 / 图标尺寸与颜色 MiniMapPresenter.cs 常量 需程序改
港口安全圈半径(80 米)与颜色 HarborSafeZoneConstants.cs 需程序改
单个标记是否上图 / 颜色 / 大小 MiniMapMarker.cs 组件的 Inspector 序列化字段(_showOnMap、_markerColor、_markerSize 等) 城市与岛屿的标记是代码生成的,Inspector 只对手工摆放的标记有效
海域范围 / 危险等级 / 重入冷却 Assets/StreamingAssets/Encounter/EncounterZones.csv 属遭遇系统,但海域发现与怪物潮新闻引用其 zoneId
  1. 小地图城市 / 港口图标的发现校验存在 ID 不匹配(疑似缺陷)MiniMapPresenter.cs 用标记 ID 查“城市是否已发现”,并注释声称标记 ID 就是城市 ID;但实际标记 ID 取自物体名——城市为 City_{cityId}CitySystemInitializer.cs 创建物体后立即挂组件,组件初始化时名字已定)、港口为 HarborMarker_{cityId}LandManager.cs)。发现注册表里存的是裸 city_001 这样的 ID,带前缀的查询永远返回“未发现”。按代码现状推断:城市方块、港口方块图标与城市名标签在小地图上不会显示(即使城市已发现);不受影响的有领地染色与国境线(按国家 ID 查)、港口安全圈(按 HarborRegistry 的裸城市 ID 查)、危险区(按海域 ID 查)。
  2. 通货变动新闻当前没有实际价格效果:新闻只影响 IronPlate / Wood / Coal / Bullet 四种物品的全局倍率,而全局倍率唯一的读取点是奢侈品上架(GoodsOrigin.csv 里只有 LuxuryX 物品)。倍率被忠实记账、持久化,但没有任何消费者读这四种物品的倍率。
  3. 全局倍率只在城市商人初始化时读一次GlobalPriceModifier.cs 注释称“dock 入场重算 inventory 时应用”,但实际调用点在城市生成时的商人启动流程(CityTrader.cs)。开局后投放的通货新闻即使命中奢侈品也要等下次读档 / 重建城市才反映到价签。
  4. 怪物潮新闻是纯文案:代码注释明确“本期不强联动 Encounter zone tier 升级”,海域刷怪强度不变。
  5. 新闻与流言文案硬编码且混排英文 ID:宣战 / 停战永远是英格兰对法兰西;通货标题与流言直接拼接 IronPlatezone_central 等英文 ID,没有走本地化名称。流言第 2、3 条是固定话术,不引用真实方位或海域。
  6. 海域发现绑定在“成功开启遭遇战”上:进入处于重入冷却的海域不会触发发现;由于首次进入必然不在冷却中,正常流程无影响,但若首战在海域内沉船复活,时序上存在窄缝。
  7. 靠岸简报每次进圈都弹,包括敌对城(敌对城不记录停靠状态但照样发简报、照样推进已读游标);没有新闻时弹窗只有流言栏。简报弹窗需要场景中的 HarborBriefingPresenter.cs 在 Inspector 上配好面板资源,缺失时只记警告不弹窗。
  8. 迷雾揭示半径不与瞭望 / 船只属性挂钩:固定为世界尺寸的十分之一,没有“瞭望塔加视野”之类的成长机制。
  9. MiniMapCamera.cs 渲染纹理链路属遗留:图标式小地图不使用相机画面,但相机仍会被自动创建并每帧渲染(编辑器与正常构建中)。
  10. F8 重置面板使用反射清空发现集合(仅开发者工具允许反射),重置后重新应用预设初始发现,但已投放的新闻与价格倍率不会回滚。