Skip to content

v0.2.0

Choose a tag to compare

@SunYanbox SunYanbox released this 21 Sep 11:12
· 3 commits to main since this release

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