Files
gplan-2/game/data/tables/reward.tres
T
DKChan 63a08d1e01 feat(t1-t3): 魔法道具数据面+库存管线+授予路由生命周期(三卡一轮交付——文件交叉合并提交)
T1 数据面:AuxItemTable schema(七字段+retired/deferred 两 additive 标记+真视窄域/board_wide 双承重护栏)+六行 tres(三有效+罗盘 retired 留痕+显影尘/全图卷 deferred)+ConfigDB 加载/访问器+RewardTable 十型扩值(aux_item)+三投放行 5/4/1+aux_none 负占位行(雷格极性字典兜底零兑付)+双表悬空校验(reward_dangling_aux,负占位豁免)+F2 投放维度覆盖(豁免面 plan/info/counter 登记)+两 fatal 夹具(expect=1 复制真表注入违规)+run_all manifest+2
T2 core 骨架:AuxItems 类(api 8 入口+probe 探针;零随机零特判;Used 不可逆;真视恒可用/预读点击级零信息拒绝;3x3 边缘窗口∩板)+action_economy.grant_ap 第 9 API(当轮加量,区别 queue_ap_delta 排队)
T3 授予路由+生命周期:_grant_routed aux 分支(正=入库存发「获得」行;负=零兑付 effect 型「道具随雷沉没」行)+use_aux 四步受理(相位 gate→validate→逐 kind 空间先 AP 后→consume;结算明细无道具行)+叠加层三清(装板点/战斗结束)+LevelRunner 关卡域库存持有注入+关卡末 reset+aux_cleared 快照计数扩签
冒烟锚随词表扩值更新:九型→十型封闭/字典 18→22 行;负向字典扫描三处稳健化(aux 不入五型轴+break 改 percent_map 三型齐备+rng 每板新实例——原第一板 break 掩盖 set_master_seed _counter 守卫违例)
闸:冒烟 577/0(净增 1)+单测 11 套全过(含两新夹具)+四探针 PASS
2026-09-29 07:07:38 +08:00

303 lines
10 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[gd_resource type="Resource" script_class="RewardTable" load_steps=2 format=3]
[ext_resource type="Script" path="res://data/schemas/reward_table.gd" id="1"]
[resource]
script = ExtResource("1")
rows = [{
"reward_id": "attack_up",
"cell_type": "attack",
"polarity": "positive",
"effect_id": "attack_up",
"display_name": "增伤",
"power": 0,
"weight": 14,
"pool_tag": "cell",
"tier": 2
}, {
"reward_id": "ac_up",
"cell_type": "defense",
"polarity": "positive",
"effect_id": "ac_up",
"display_name": "护甲强化",
"power": 0,
"weight": 11,
"pool_tag": "cell",
"tier": 2
}, {
"reward_id": "spark_aoe",
"cell_type": "blast",
"polarity": "positive",
"effect_id": "",
"display_name": "爆裂粉尘",
"power": 1,
"weight": 16,
"pool_tag": "cell",
"tier": 1
}, {
"reward_id": "heal_minor",
"cell_type": "heal",
"polarity": "positive",
"effect_id": "",
"display_name": "急救敷料",
"power": 2,
"power_min": 2,
"power_max": 2,
"weight": 4,
"pool_tag": "cell",
"tier": 1
}, {
"reward_id": "weaken",
"cell_type": "weaken",
"polarity": "positive",
"effect_id": "weaken",
"display_name": "削弱",
"power": 0,
"weight": 8,
"pool_tag": "cell",
"tier": 1
}, {
"reward_id": "enrage",
"cell_type": "attack",
"polarity": "negative",
"effect_id": "enrage",
"display_name": "敌方暴走",
"power": 0,
"weight": 0,
"pool_tag": "cell",
"tier": 2
}, {
"reward_id": "off_guard",
"cell_type": "defense",
"polarity": "negative",
"effect_id": "off_guard",
"display_name": "我方失衡",
"power": 0,
"weight": 0,
"pool_tag": "cell",
"tier": 2
}, {
"reward_id": "heal_backlash",
"cell_type": "heal",
"polarity": "negative",
"effect_id": "",
"display_name": "反噬震荡",
"power": 1,
"weight": 0,
"pool_tag": "cell",
"tier": 1
}, {
"reward_id": "enemy_alert",
"cell_type": "blast",
"polarity": "negative",
"effect_id": "alert",
"display_name": "警觉",
"power": 0,
"weight": 0,
"pool_tag": "cell",
"tier": 1
}, {
"reward_id": "sapped",
"cell_type": "weaken",
"polarity": "negative",
"effect_id": "sapped",
"display_name": "我方乏力",
"power": 0,
"weight": 0,
"pool_tag": "cell",
"tier": 1
}, {
"reward_id": "clear_blast",
"cell_type": "blast",
"polarity": "positive",
"effect_id": "",
"display_name": "清障炸药",
"power": 32,
"power_min": 24,
"power_max": 40,
"weight": 1,
"pool_tag": "clear_default",
"tier": 2
}, {
"reward_id": "pierce_strike",
"cell_type": "pierce",
"polarity": "positive",
"effect_id": "",
"display_name": "穿刺弹",
"power": 2,
"weight": 8,
"pool_tag": "cell",
"tier": 1,
"attack_type": "pierce"
}, {
"reward_id": "magic_bolt",
"cell_type": "magic",
"polarity": "positive",
"effect_id": "",
"display_name": "魔法矢",
"power": 2,
"weight": 8,
"pool_tag": "cell",
"tier": 1,
"attack_type": "magic"
}, {
"reward_id": "pierce_snare",
"cell_type": "pierce",
"polarity": "negative",
"effect_id": "",
"display_name": "穿刺陷阱",
"power": 2,
"weight": 0,
"pool_tag": "cell",
"tier": 1
}, {
"reward_id": "magic_recoil",
"cell_type": "magic",
"polarity": "negative",
"effect_id": "",
"display_name": "魔法反噬",
"power": 2,
"weight": 0,
"pool_tag": "cell",
"tier": 1
}, {
"reward_id": "ap_up",
"cell_type": "action",
"polarity": "positive",
"effect_id": "",
"display_name": "行动点",
"power": 1,
"weight": 6,
"pool_tag": "cell",
"tier": 1
}, {
"reward_id": "ap_drain",
"cell_type": "action",
"polarity": "negative",
"effect_id": "",
"display_name": "迟滞",
"power": 1,
"weight": 0,
"pool_tag": "cell",
"tier": 1
}, {
"reward_id": "gp_coin",
"cell_type": "gp",
"polarity": "positive",
"effect_id": "gp_gain",
"display_name": "金币袋",
"power": 3,
"weight": 2,
"pool_tag": "cell",
"tier": 1
}, {
"reward_id": "gp_lose",
"cell_type": "gp",
"polarity": "negative",
"effect_id": "gp_loss",
"display_name": "破财",
"power": 2,
"weight": 0,
"pool_tag": "cell",
"tier": 1
}, {
"reward_id": "aux_sapper_order",
"cell_type": "aux_item",
"polarity": "positive",
"effect_id": "sapper_order",
"display_name": "工兵令",
"power": 0,
"weight": 5,
"pool_tag": "cell",
"tier": 2
}, {
"reward_id": "aux_nest_pendulum",
"cell_type": "aux_item",
"polarity": "positive",
"effect_id": "nest_pendulum",
"display_name": "探巢摆钟",
"power": 0,
"weight": 4,
"pool_tag": "cell",
"tier": 2
}, {
"reward_id": "aux_blast_kit",
"cell_type": "aux_item",
"polarity": "positive",
"effect_id": "blast_kit",
"display_name": "爆破工兵包",
"power": 0,
"weight": 1,
"pool_tag": "cell",
"tier": 3
}, {
"reward_id": "aux_none",
"cell_type": "aux_item",
"polarity": "negative",
"effect_id": "",
"display_name": "惊扰的遗落物",
"power": 0,
"weight": 0,
"pool_tag": "cell",
"tier": 1
}]
; 格面资源批(2026-09-15 用户拍板——registry reward_table 条目为现行 schema 事实源):
; 十行格面池(五型 × 正负各一行)+ 清图槽一行。安全格与雷格同池同分布(雷安同池),
; 装板期一次摇定;摇号只消费正向行权重(类型频次 = attack 20 / defense 16 / blast 16 / heal 3 / weaken 12,合计 67;
; 头段"heal 15 / weaken 12,合计 79"为历史注记——数值压缩批后 heal 3、合计 67,见本文件尾部 2026-09-17 批注);
; 负向行 weight=0 不参与摇号,纯(类型, 极性)兑付字典——heal 负向 = 主角直伤 4(不经增益状态),
; blast 负向 = 警觉(敌方 AC +1,2026-09-20 伏击退役换装)。
; 可选类三行(knife_t1/knife_adv/heal_pack)与注入池 active_inject 随可选类道具整体删除(供给控制器/保底/窗口同步下线)。
; 格面资源八型批(2026-09-20 用户拍板):① blast 负向 ambush_double 退役 → enemy_alert(警觉,effect_id=alert
; 敌方 AC +1 percent 行);② 新增第 8 型 action 两行——ap_up(正向,下轮行动点 +1)/ ap_drain(负向,下轮
; 行动点 −1),排队兑现于下一轮开始(action_economy.queue_ap_delta);③ off_guard 数值 −2→−1 归 status_effects.tres。
; 区间行(伤害量值区间批 2026-09-14):heal_minor [2,6] · clear_blast [25,55]——中点锚 power 恒等期望当量,
; roll 时机 = 身份预分配批内追加取号(既有取号序零扰动);spark_aoe 定值行无区间字段。
; 减伤墙调参批(2026-09-13):defense_up 权重 24→16——攻击成为池内最高行(历史注记)。
; 护甲等级掷点批(2026-09-16 用户拍板):defense 型正向行换装——reward_id/effect_id defense_up → ac_up
; (显示名暂定"护甲强化",AC +1/层 ×2 层);cell_type defense / 权重 16 / tier 2 零改动(类型频次合计 79 不变——历史注记,数值压缩批后现合计 67);
; 百分比减伤行无双轨退役——status_effects.tres defense_up 行同批删除。
;
; 数值压缩批(2026-09-17 用户拍板暂定):
; ① 整体绝对值轴 ÷3:spark_aoe 4→1 · heal_backlash 4→1 · clear_blast [25,55]→[8,18](中点 power 40→13,
; 区间中点恒等期望当量的锚口径不漂移)。
; ② 恢复奖励削弱(用户拍板两条):出现概率下调到当前的 1/4——权重 15→3(当前频率 15/79≈19.0%,目标
; 4.75%,整数权重最接近 = 3/67≈4.5%);恢复量在 ÷3 后再 ÷2(现值 ×1/6)——[2,6]→定值 1
; (0.33~1 取整,区间字段保留 min=max=1 占位,量级再调时恢复区间结构)。
; ③ 雷安同池连带(结构冻结,自动同侧):heal 权重下调同比例降低踩中 heal 型雷(反噬)的频率——
; 负向侧反噬量同步 ÷3(4→1)。
; 类型频次合计 79→67(attack 20 / defense 16 / blast 16 / heal 3 / weaken 12)。行值 provisional 归 难度曲线与Boss。
;
; 伤害道具批(2026-09-18 用户指令):① 七型字典——五型增补 pierce(穿刺)/ magic(魔法)两型,各正负一行:
; 正向 = 单目标克制直伤道具(穿刺弹/魔法矢 power 2,attack_type 字段载攻击类型轴,走克制矩阵、
; 必中全额不掷点——棋盘来源伤害既有口径);负向 = 主角直伤(穿刺陷阱/魔法反噬 power 2,复用反噬通道不经增益状态)。
; ② 权重再平衡(保 spark_aoe 16 不动、总 67 不变):attack_up 20→14 · ac_up 16→11 · heal_minor 3→2 · weaken 12→8;
; 新行各 8。等比基准 = 其余四行 51→35(×0.686),整取后 14/11/2/8,微差登记已知偏差。
; 类型频次合计仍 67:attack 14 / defense 11 / blast 16 / heal 2 / weaken 8 / pierce 8 / magic 8。
;
; 九型批(2026-09-20 用户拍板——GP 进第九型,获取来源=战斗结束掉落+雷图低概率惊喜获取〔量与战斗掉落相当〕;
; 金币袋=挖开安全格入战斗内缓冲、战斗完成统一入账;破财=雷格摇到 gp 面的字典负向行〔weight 0 不入池,
; 挖雷格兑付=缓冲 -2 钱包侧 clamp ≥0〕;正向权重合计 74→76);行值 provisional 归 难度曲线与Boss。
; gp 两行 tier=1(provisional 占位);effect_id gp_gain/gp_loss = 战斗内缓冲(escrow)通道路由键
;(战斗结算 _apply_percent_row 分流,不入增益容器——ConfigDB ① status_effects 悬空豁免归 core 面)。
;
; Package B 数值优化批·首版(2026-09-22——qa-data/实现计划书_PackageB.md §4.3):clear_blast
; 区间 [8,18]→[18,35](中点 power 13→26)——清第一图回归真正伤害尖峰,撑起 boss"必清图才打得动"
; 节奏(L1 boss 清图≥1 靶 ≥80%);其余行全部不动。provisional,以 MC 复测读数为准
;(runbook 计划书 §5;迭代记录 qa-data/iteration_log.md)。
; ⚠️ 计划书笔误代拍板:原文"power 25"违反 schema 中点锚硬校验(config_fatal)——power ≡ floor((min+max)/2),
; (18+35)/2=26 故落 26(期望当量 +1 vs 计划书 25,掷点区间 18–35 与计划一致,玩法值零偏离)。
;
; Package B 迭代·第 2 轮(2026-09-22——计划书 §6.2,用户拍板一B):heal_minor 恢复量 1→2
;(区间三值同步 power/min/max = 2/2/2 过中点锚校验)+ 出现权重 2→4(正向池合计 76→78)。
; 与 hero.tres max_hp 17→20 同轮双变量(用户拍板组合拳,归因混在一起由下轮分摊)。provisional 未提交。
;
; Package B 迭代·第 4 轮(2026-09-22——计划书 §6.4,用户拍板 A):clear_blast 26→32
;(区间 [18,35]→[24,40],(24+40)/2=32 恰为整中点锚)。boss 面三缺同解(normal 胜率 62% 贴下沿 /
; 清图率 49% vs ≥80 / 完成度 99 vs >130)——清图尖峰加大让"先清一图"成为 boss 战最优路径。
; 副作用已知:perfect L1 boss 胜率 97% 越 75% 上界加剧。provisional 未提交。