- 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 入口 变异验证:件名回退/词表删键/文案回退/描述分支删除均使对应断言变红(记录见提交后验证)
110 lines
3.6 KiB
Plaintext
110 lines
3.6 KiB
Plaintext
[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。
|