迭代11第②批:GP商店房重构——三选一同构化(P1共享池账本+抽3买1全重抽+A/b乘法定价ceil+断点扩键+货架同构呈现+MC off/on分层;冒烟671/0+off对拍off_n60逐位PASS+探针三件绿)

This commit is contained in:
DKChan committed 2026-10-03 18:19:57 +08:00
1 parent bc17b66c00
commit d79afd2241
18 files changed
+557 -45

No files matched your search

+6 -6
View File
@@ -21,11 +21,11 @@ entities:
attributes:
kind: autoload
stream_architecture: **统一流(ADR-0007 裁丙 2026-09-27——用户两轮复裁终选「统一用一个流」并拍「全面执行」,七流并一+全事件日志)**:唯一主种子 + 单盐派生 + 唯一全局取数计数器;历史注记 = 2026-09-12 encounter 增流〔遭遇随机化批〕/ 2026-09-16 armor_roll〔护甲掷点批〕+ behavior_roll〔敌人技能池批〕/ 2026-09-20 variant_place〔地形变异批〕/ 2026-09-21 gp_drop〔GP+商店房批〕——分盐分流架构随并流批整体退役;combat_var 已于 2026-09-07 full 评审删除(玩法随机不预置基础设施)
purpose_tags: [board_gen, reward_roll, encounter, armor_roll, behavior_roll, variant_place, gp_drop](封闭词表 = 并流前七流名全保留;扩签需改代码 + 评审;结算表 armor_roll_stream 字段降格为纯标签)
purpose_tags: [board_gen, reward_roll, encounter, armor_roll, behavior_roll, variant_place, gp_drop, node_map, reward_pick, shop_draw](封闭词表 = 并流前七流名全保留 + node_map〔关卡节点图生成 v0.4〕+ reward_pick〔迭代 10 奖励重构〕+ shop_draw〔迭代 11 第②批 T1——商店货架抽签,每次抽 3 恰一 scope〕;扩签需改代码 + 评审;结算表 armor_roll_stream 字段降格为纯标签)
stream_facade: open_stream(purpose) 取号(purpose 只进事件日志不参与派生;全局计数器 +1 → 单盐派生 → 返回已播种实例 → 落日志);derive_at(scope) 纯函数供测试/预览/日志回放(不推计数器);open_scope 显式位取号门随子流派生向量退役(behavior_roll 逐敌顺序取号替代)
event_log: 冒险会话制全事件落盘——user://logs/rng_log_<主种子>.jsonl,会话行 + 逐次取数行(scope / 用途标签 / 派生种子);写盘失败告警降级不致命;号位全序化后不再单独回答「第 N 次某类事件」(路线依赖为已裁决代价),单点定位由日志承载
new_adventure: 冒险开始重播种入口——调用权 = AdventureRunner.start_adventure 唯一正式调用方(切片单关测试路径 LevelRunner.start_level 除外;冒险结构实现批 2026-09-21——主种子全冒险恰一次注入,冒险内不重置不逐关播种);并流批加重播种同时开日志会话
tag_event_binding: board_gen=每次生成新扫雷图(棋盘生成);reward_roll=每次 board install(地图战斗资源);encounter=每次战斗实例化(战斗结算 begin_battle 实例化期、扫雷开始前——**实证先于 board_gen 取号**);armor_roll=每次掷点(战斗结算 1d20);behavior_roll=每敌每轮开轮摇号(战斗结算——并流后顺序取号,spawn_index×STRIDE 派生向量退役);variant_place=每次装板(战斗结算 布置段);gp_drop=每场战斗结束掉落掷定(战斗结算)——标签绑定只描述取号时机语义,不再承载派生隔离
tag_event_binding: board_gen=每次生成新扫雷图(棋盘生成);reward_roll=每次 board install(地图战斗资源);encounter=每次战斗实例化(战斗结算 begin_battle 实例化期、扫雷开始前——**实证先于 board_gen 取号**);armor_roll=每次掷点(战斗结算 1d20);behavior_roll=每敌每轮开轮摇号(战斗结算——并流后顺序取号,spawn_index×STRIDE 派生向量退役);variant_place=每次装板(战斗结算 布置段);gp_drop=每场战斗结束掉落掷定(战斗结算);reward_pick=每次三选一抽签恰一 scope(冒险结构——通关/节点两停点+刷新重抽);shop_draw=每次货架抽 3 恰一 scope(LevelRunner pool 模式——进店+每次买后全重抽,shop=off 零消费零扰动)——标签绑定只描述取号时机语义,不再承载派生隔离
unseeded_access: 致命中止
snapshot_contract: 续玩/复盘快照 = master_seed + 全局取数计数器(消费方 存档序列化;并流前「各流计数器」口径退役——现行存档未持久化计数器,契约面登记变更)
referenced_by: [棋盘生成, 战斗结算, 地图战斗资源, 冒险结构, 存档序列化, 关卡节点图生成]
@@ -595,10 +595,10 @@ entities:
type: schema_data
owner: design/gdd/systems/冒险循环/冒险结构.md
attributes:
table: ShopTable(数据配置 承载;**2026-09-20 GP+商店房批新建**——商店房商品与 GP 经济的行集;冒险结构 回填 owner,公式语义归其 GP 冒险账本节,数值所有权归 难度曲线与Boss 曲线调参批)
fields: gp_drops 三行(键 = 战斗节点身份 {normal, elite, boss}——普通 均值 3 区间 [2,4] / 精英 均值 5 区间 [4,6] 预留行 / Boss 均值 8 区间 [6,10],掷定 + 均值方差口径)· level_gp_bonus(逐关——L1 0 / L2 1 / L3 2)· products 三行(atk_up 基础攻击 +1 首价 4 / hp_up 生命上限 +3 首价 2 / armor_up 护甲等级 +1 首价 4,步长均 2)· price_level_bonus(逐关——L1 0 / L2 2 / L3 4)
formulas: 每战 GP 掉落 = 掷定 + 关级掉落加值 + 战斗内缓冲(战斗完成随 battle_finished.gp_dropped 统一入钱包——冒险结构 GP 冒险账本三收口);商品价格 = 基价 + 关级价格加成 + 步长 × 已购档数;定价锚 = 「正常运气可购档数 / 运气极好可购档数」两读数的数学期望(期望账进表批注)
value_status: 全部行值 provisional-pending-曲线调参批(用户 2026-09-20 拍板「骨架先行、数值整体后置」)——shop=off/on 分层 MC、shop=on 带平移、换算率登记全部随曲线调参批执行(难度曲线与Boss v0.18 商店与 GP 经济杠杆节)
table: ShopTable(数据配置 承载;**2026-09-20 GP+商店房批新建,2026-10-03 迭代 11 第②批扩列**——商店房商品与 GP 经济的行集;冒险结构 回填 owner,公式语义归其 GP 冒险账本节(共享池账本段 v0.13),数值所有权归 难度曲线与Boss 曲线调参批)
fields: gp_drops 三行(键 = 战斗节点身份 {normal, elite, boss}——普通 均值 3 区间 [2,4] / 精英 均值 5 区间 [4,6] 预留行 / Boss 均值 8 区间 [6,10],掷定 + 均值方差口径)· level_gp_bonus(逐关——L1 0 / L2 1 / L3 2)· **pool_shelf 四行(迭代 11 第②批 T1——kind_id 词表封闭 {attack, max_hp, armor, ap}=四切边后种〔GP 袋负交易切边/机制件三轴切边〕:attack 基价 4 / max_hp 4 / armor 4 / ap 5 provisional;库存=上限即库存,账本在 AdventureRunner._bonus_taken 单点共享,行族不记库存)· price_a=1.8 / price_b=1.1(乘法价格因子 provisional,后置追认)** · products 三行(atk_up +1 首价 4 / hp_up +3 首价 2 / armor_up +1 首价 4,步长均 2——legacy 对照模式承载,退役归 off 锚换代批)· price_level_bonus(逐关——L1 0 / L2 2 / L3 4,legacy 同上)
formulas: 每战 GP 掉落 = 掷定 + 关级掉落加值 + 战斗内缓冲(战斗完成随 battle_finished.gp_dropped 统一入钱包——冒险结构 GP 冒险账本三收口);**货架现价(pool 现行)= ceil(基价 × b^(关序−1) × A^(本次进店已购次数))**;商品价格(legacy 对照)= 基价 + 关级价格加成 + 步长 × 已购档数;定价锚 = 「正常运气可购档数 / 运气极好可购档数」两读数的数学期望(期望账进表批注)
value_status: 全部行值 provisional-pending-曲线调参批(用户 2026-09-20 拍板「骨架先行、数值整体后置」;A/b 投值 1.8/1.1 系迭代 11 第②批零人工令改 provisional+后置追认)——shop=off/on 分层 MC(off=legacy 对照 off_n60 逐位 / on=共享池首锚 N=60 双策略)、shop=on 带平移、换算率登记全部随曲线调参批执行(难度曲线与Boss v0.22 商店与 GP 经济杠杆节)
rule4_status: 进度成长表(数值随关卡与商品档变化,无 Rule 4 豁免)
referenced_by: [冒险结构, 关卡节点地图, 难度曲线与Boss, 战斗结算, 数据配置]