v0.2.0
Added
- 局内地图菜单:战区界面新增「8. 查看地图」。以蛇形方格布局画出全部区域——主干按索引蛇形铺开,格子内直接写编号与名称;未探索区域名称隐藏为
*,但连线完整可见,因此度数为 1 的死胡同(只连一条线)一眼就能提前避开;随机的额外通道画不进网格,单列在图下方。顶部显示已探索区域数量与百分比,输入区域编号即可自动导航过去,未探索的区域也可以直接选中。
Changed
- 架构拆分(纯重构,无行为变化):新增纯数值层
Combat/CombatMath.cs,把伤害 Tier 对抗结算、攻击骰点、输出增伤乘区与受击免伤乘区从Game.Combat.cs中独立出来。该层不读写游戏状态、不产生 I/O,随机数由调用方显式传入。 - 架构拆分(纯重构,无行为变化):战斗结算从
Game.Combat.cs移入Combat/CombatActions.cs,改为「只改状态、把要显示的内容作为文本行返回」,打印交由调用方;单场战斗的跨回合临时数据(回合数、再现计数)收进Combat/CombatState.cs;战斗配色语义收进Combat/CombatStyle.cs。Game.Combat.cs只保留回合调度与输入分发。 - 架构拆分(纯重构,无行为变化):战斗界面渲染与指令读入移入
Combat/CombatView.cs,Game.Combat.cs不再直接输出任何文本;「比例 → 绿/黄/红」的通用着色助手ColorByRatio由Game移到Style(战斗 HUD 与局内 HUD 共用)。 - 架构拆分(纯重构,无行为变化):
Game.Map.cs拆为World/MapGenerator.cs(地图连通图、事件抽取、撤离点寻路)与World/EnemyFactory.cs(敌人属性派生、命名);Game.Data.cs拆为World/GameData.cs(商店库存、掉落表与加权抽取、难度参数),两张表改为静态只读。Random与当前难度改为显式传入,生成逻辑不再依赖Game实例。 - 架构拆分(纯重构,无行为变化):拾取/背包/换装规则与局内消耗品移入
Core/Inventory.cs,同样返回文本行由调用方打印;生产配方与部门升级消耗移入World/GameData.cs;文本行打印助手WriteLines由CombatView提到ConsoleHelper,战斗与局内流程共用。 - 架构拆分(纯重构,无行为变化):「沿路径连续移动」的循环从
MoveMenu的快速前往撤离点中抽出为TravelPath,供后续的地图导航共用;撤离点「是否已知」的判定(已探索,或已探明区域 ≥70%)抽出为MapGenerator.IsExtractKnown。到达文案、Pause()与return仍留在各自的调用方。
Full Changelog: v0.1.2...v0.2.0