Files
gplan-2/game/data/tables/shop.tres
T
DKChan 0abc13fa95 feat(术语传导): 专长凭证件玩家面文案换代+货架 heal/feat_ticket 词表补齐
- shop.tres feat_ticket 件名「奇物门票」→「专长获取」(分类术语=专长凭证、物品名=专长获取)
- curio_interact_controller 三选一卡文案改为「专长获取/选中或买下后立刻开一次专长三选一」,去掉内部任务号 T5 与「持有集」措辞
- shop_overlay_view:KIND_LABELS 补 heal=回复、feat_ticket=专长凭证;feat_ticket 件描述走「开一次专长三选一」,不再落到「feat_ticket +0」
- ui_kit add_footer:get_child_index(Godot 3 遗留 API)改 foot_l.get_index()——货架卡购买钮落位真实路径的运行时错误
- ui_struct_probe:新增货架两卡(feat_ticket/heal)与三选一卡文案断言,经真实 open_shelf/_curio_card_texts 入口

变异验证:件名回退/词表删键/文案回退/描述分支删除均使对应断言变红(记录见提交后验证)
2026-10-23 02:54:11 +08:00

110 lines
3.6 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="ShopTable" load_steps=2 format=3]
[ext_resource type="Script" path="res://data/schemas/shop_table.gd" id="1"]
[resource]
script = ExtResource("1")
gp_drops = [{
"tier": "normal",
"display_name": "普通战斗",
"mean": 3,
"roll_min": 2,
"roll_max": 4
}, {
"tier": "elite",
"display_name": "精英战斗",
"mean": 5,
"roll_min": 4,
"roll_max": 6
}, {
"tier": "boss",
"display_name": "Boss 战斗",
"mean": 8,
"roll_min": 6,
"roll_max": 10
}]
level_gp_bonus = [{
"level_index": 1,
"bonus": 0
}, {
"level_index": 2,
"bonus": 1
}, {
"level_index": 3,
"bonus": 2
}]
products = [{
"product_id": "atk_up",
"display_name": "攻击祝福",
"attr": "atk",
"flat_value": 1,
"base_price": 4,
"price_increment": 2
}, {
"product_id": "hp_up",
"display_name": "生命祝福",
"attr": "max_hp",
"flat_value": 3,
"base_price": 2,
"price_increment": 2
}, {
"product_id": "armor_up",
"display_name": "护甲祝福",
"attr": "armor_class",
"flat_value": 1,
"base_price": 4,
"price_increment": 2
}]
price_level_bonus = [{
"level_index": 1,
"bonus": 0
}, {
"level_index": 2,
"bonus": 2
}, {
"level_index": 3,
"bonus": 4
}]
pool_shelf = [{
"kind_id": "attack",
"display_name": "攻击祝福",
"base_price": 4
}, {
"kind_id": "max_hp",
"display_name": "生命祝福",
"base_price": 4
}, {
"kind_id": "armor",
"display_name": "护甲祝福",
"base_price": 4
}, {
"kind_id": "ap",
"display_name": "行动点件",
"base_price": 5
}, {
"kind_id": "feat_ticket",
"display_name": "专长获取",
"base_price": 5
}, {
"kind_id": "heal",
"display_name": "应急回复",
"base_price": 5
}]
price_a = 1.8
price_b = 1.1
; GP+商店房实施批(2026-09-20 用户拍板,设计权威 design/research/proposal-gp-shop-room-2026-09-20.md 裁决记录):
; 掉落=均值±方差掷定(gp_drop 封闭流)+关级加值;精英行为预留行(当前无消费方,随精英节点内容批启用);
; 价格公式 = base_price + price_level_bonus(关卡) + price_increment × 该商品已购档数(已购档数在 冒险结构——
; 冒险内累计、跨冒险清零);商品三件全陈列无刷新无摇号(2026-09-20 拍板,提案 §2.4 的三选一+刷新方案退役)。
; 期望账:L2 商店前可得 GP 期望 ≈ 35–40(L1 全程 22 ± 惊喜 + L2 商店前五战 21 ± ),三件首购总价 L2 =
; (4+2)+(2+2)+(4+2)=16、全购欲望 ≈ 26–34——取舍空间成立;量级与方差全部 provisional-pending-曲线调参批
;(用户拍板骨架先行、数值整体后置,行值归 难度曲线与Boss)。
; GP 商店房重构批(M-4 迭代 11 第②批 T1,2026-10-03——需求卡片 v1.3 全裁 P1 共享池/P4 ceil/P5 甲):
; pool_shelf 行族 = 共享池货架(kind_id 词表 attack/max_hp/armor/ap/feat_ticket/heal 六行——heal 系 T6 商店补回复〔默认原则:分类内成员都要在它该出现的渠道池里,现行缺〕、GP 袋负交易切边计价物不自售、feat_ticket 系 T5 专长凭证行〔非 Boss 渠道专长入口,价与其他商品相当=契约④口径②〕、
; 规则改写型特性三轴 doctrine 切边;库存=上限即库存,账本在 冒险结构 _bonus_taken 单点共享,行族不记库存);
; 价格公式换代(pool 模式)= ceil(base_price × b^(关序−1) × A^(本次进店已购次数)),price_a=1.8/price_b=1.1
; provisional 投值(零人工令改 provisional+后置追认,原 P5 甲研究拍板后置);products 行族 + 加法定价
; 随 legacy 模式(shop=off 对照承载)保留不退役,退役归 off 锚换代批。货架行值全部 provisional 归
; 难度曲线与Boss。