Releases: SunYanbox/SearchFightExtract
Releases · SunYanbox/SearchFightExtract
Release list
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
v0.1.2
Added
- 发布流程:Release 发布时自动把当前版本的 CHANGELOG 与 BALANCE.md 段落追加到 Release Notes 之前(
.github/scripts/update_release_notes.py)。
Changed
- 应急治疗调整:恢复 60 生命并获得 80% 免伤(3 回合)后,改为固定获得等同于最大生命值 80% 的护盾(原为生命低于上限 70% 时的差额转护盾)。详见 BALANCE.md。
主动技能
应急治疗
立即恢复 60 生命值,并使得自身获得 80% 免伤,持续 3 回合。
- 如果恢复血量后总血量低于总生命值的 70%,
- 获得(总生命值 70% − 恢复后血量)的护盾值
+ 获得等同于最大生命值 80% 的护盾值。Full Changelog: v0.1.1...v0.1.2
v0.1.1
Added
- 数值档案:新增 BALANCE.md,按版本集中记录技能、敌人、装备与道具等数值调整,技能变更采用 diff 格式。
Changed
- 应急治疗增强:恢复 60 生命后获得 80% 免伤,持续 3 回合;若恢复后生命低于上限 70%,差额转为护盾。
- 战斗 HUD 新增「治疗免伤」剩余回合显示。
- README 精简:技能、难度、部门三节迁移至 BALANCE.md。
主动技能
应急治疗
- 立即恢复 60 生命
+ 立即恢复 60 生命值,并使得自身获得 80% 免伤,持续 3 回合。
+ 如果恢复血量后总血量低于总生命值的 70%,
+ 获得(总生命值 70% − 恢复后血量)的护盾值Full Changelog: v0.1.0...v0.1.1
v0.1.0
Added
- 核心玩法:潜入 → 搜索 → 遭遇战斗 → 撤离 的完整单局循环;只有成功撤离才能带出战利品,阵亡则丢失背包、武器、护甲与消耗品。
- 随机地图:每局生成 10~14 个连通区域,撤离点随机分布;未知区域显示为
*;探索超过 70% 区域后,即使未发现撤离点也可直接寻路前往。 - 战斗系统:回合制战斗,支持开火、使用消耗品、释放主动技能、尝试脱离;护甲按子弹与护甲等级结算穿透(高弹打低甲 100%/30%、同级 75%/50%、低弹打高甲 50%/80%)。
- 技能系统:8 种被动技能 + 7 种主动技能,分为两个独立技能池选择。
- 被动:超载、蜂医、深蓝、铁壁、拾荒者、疾步、乌云乌云快走开、再现。
- 主动:应急护盾、威龙、深蓝刺网、快速射击、应急治疗、肾上腺素、燃烧弹。
- 所有主动技能伤害按 7 级子弹穿透结算。
- 难度系统:D / C / B / A / S / SS 六档难度,影响敌人护甲与子弹等级范围、生命 / 攻击 / 护甲倍率与爆率;SS 难度额外提供本局背包容量 +20%。
- 部门系统:天赋 / 主动技能 / 战斗 / 生存四大部门,决定技能上限与战斗数值成长;升级消耗资金(Lv1)与材料(Lv2+),按指数增长。
- 经济系统:搜刮 → 分解(产出材料)→ 生产(消耗品)→ 升级 的完整闭环。
- 仓库支持全部出售、出售全部装备、出售全部物资、分解全部物资。
- 生产车间用「材料 + 少量资金」批量生产急救包 / 维修套件 / 肾上腺素。
- 装备系统:武器、护甲、胸挂、背包四个装备槽位;胸挂与背包提供额外背包容量。
- 子弹 1~7 级、护甲 1~6 级。
- 消耗品携带:出击前可自选携带急救包 / 维修套件 / 兴奋剂的数量;撤离归还剩余,阵亡丢失。
- 命名存档:存档位于
saves/名字.json,支持中文命名;启动时进入存档选择界面,可载入 / 新建 / 删除存档,并显示每个存档的资金、材料与四部门等级。 - 终端彩色 UI:基于通用 ANSI 样式库(
Style.cs),对伤害、治疗、护甲、护盾、额外回合等以不同颜色区分;生命 / 护甲按比例显示绿 / 黄 / 红。 - 状态 HUD:显示临时护甲、铁壁免伤剩余回合、敌人下回合可否行动、燃烧与受伤状态等。
- 技能管理菜单:局外可随时重选被动 / 主动技能,并显示技能描述与当前选择。
Full Changelog: https://github.com/SunYanbox/SearchFightExtract/commits/v0.1.0