From 7d2fbe158fa38d98b917762aa8812a80c8d70aea Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Mon, 26 Oct 2026 03:40:56 +0800 Subject: [PATCH] =?UTF-8?q?docs(=E6=B1=A0=E9=85=8D=E9=A2=9D=E8=B4=A6?= =?UTF-8?q?=E9=9D=A2=E8=AE=A2=E6=AD=A3=C2=B7=E4=BB=A3=E7=A0=81=E9=9D=A2):?= =?UTF-8?q?=20adventure.tres=20=E5=A4=B4=E6=B3=A8=E4=B8=89=E4=BB=A3?= =?UTF-8?q?=E6=B7=B7=E5=86=99=E5=BD=92=E4=B8=80=E8=BF=90=E8=A1=8C=E6=80=81?= =?UTF-8?q?=E5=8F=A3=E5=BE=84=E2=80=94=E2=80=94=E5=9B=9B=E6=A1=A3=E9=94=9A?= =?UTF-8?q?=2070/25/3/0=3D98=20=E5=8F=A5=E4=B8=8E=E4=B8=89=E6=A1=A3?= =?UTF-8?q?=E6=97=A7=E5=90=8D=E3=80=8C=E7=BD=95=E8=A7=81=E3=80=8D=E5=8F=A5?= =?UTF-8?q?=E5=B9=B6=E5=AD=98=E7=9A=84=E5=A4=B1=E5=AE=9E=E5=A4=B4=E6=B3=A8?= =?UTF-8?q?=EF=BC=8C=E6=94=B9=E4=B8=BA=E5=9B=9B=E7=BA=A7=2070/25/7/0=3D102?= =?UTF-8?q?=EF=BC=88=E7=A8=80=E6=9C=89=E6=A1=A3=EF=BC=9DAP=20=E4=BB=B6=203?= =?UTF-8?q?/=E5=82=A8=E5=A4=87=E9=87=91=E8=A2=8B=202/=E6=97=B6=E6=B2=99=20?= =?UTF-8?q?2=E2=80=94=E2=80=94=E5=90=8E=E4=B8=A4=E4=BB=B6=E9=85=8D?= =?UTF-8?q?=E9=A2=9D=E9=94=AE=E6=9C=AA=E8=BD=BD=E8=A1=A8=E3=80=81=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E5=8F=96=20schema=20=E7=BC=BA=E7=9C=81=E5=80=BC?= =?UTF-8?q?=EF=BC=8C=E8=A1=A5=E8=A1=A8=E5=BD=92=E5=BE=85=E5=8A=9E=E6=B8=85?= =?UTF-8?q?=E5=8D=95=E5=9C=A8=E5=86=8C=E6=9D=A1=E7=9B=AE=EF=BC=89=EF=BC=8B?= =?UTF-8?q?=E6=A1=A3=E4=BD=8D=E6=9E=84=E6=88=90=E6=8C=89=E7=8E=B0=E8=A1=8C?= =?UTF-8?q?=E9=94=AE=E9=87=8D=E5=88=97=EF=BC=8B=E8=BF=BD=E8=AE=A4=20b?= =?UTF-8?q?=E3=80=8C70/25/5=E3=80=8D=E9=94=9A=E5=8F=A5=E6=8D=A2=20schema?= =?UTF-8?q?=20TIER=5FQUOTAS=EF=BC=9Badventure=5Ffeats=5Ftest.gd:399=20?= =?UTF-8?q?=E6=96=AD=E8=A8=80=E6=B6=88=E6=81=AF=E3=80=8C=E7=A8=80=E6=9C=89?= =?UTF-8?q?/=E7=BD=95=E8=A7=81=E6=A1=A3=E3=80=8D=E5=B9=B6=E5=86=99?= =?UTF-8?q?=E6=8D=A2=E7=8E=B0=E8=A1=8C=E6=A1=A3=E5=90=8D=EF=BC=8C=E5=88=A4?= =?UTF-8?q?=E5=AE=9A=E9=9B=B6=E5=8F=98=E5=8C=96=E3=80=82=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E6=80=81=E7=9C=9F=E5=80=BC=E8=AF=81=E6=8D=AE=EF=BC=9Aschema=20?= =?UTF-8?q?validate=20=E5=AF=B9=E8=B4=A6=20TIER=5FQUOTAS=20=E7=BB=BF?= =?UTF-8?q?=EF=BC=8Bfeat=5Fvouchers=5Ftest:85=20=E6=96=AD=E8=A8=80=20rare?= =?UTF-8?q?=5Fsum=3D=3D7=20=E5=9C=A8=E9=97=B8=E5=9C=A8=E5=BD=B9=EF=BC=8Bcu?= =?UTF-8?q?rio=5Fdeck.gd:43=20=E6=8C=89=20kind=C3=97tier=20=E8=AF=BB?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E5=80=BC=E3=80=82=E9=9B=B6=E8=A1=8C=E4=B8=BA?= =?UTF-8?q?=E5=8F=98=E5=8C=96=EF=BC=88=E7=BA=AF=E6=B3=A8=E9=87=8A=E4=B8=8E?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=AD=97=E7=AC=A6=E4=B8=B2=EF=BC=89=EF=BC=8C?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=9F=9F=E9=97=B8=E9=AA=8C=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/data/tables/adventure.tres | 15 +++++++-------- game/tests/unit/core/adventure_feats_test.gd | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/game/data/tables/adventure.tres b/game/data/tables/adventure.tres index 5e31f466..1005b19e 100644 --- a/game/data/tables/adventure.tres +++ b/game/data/tables/adventure.tres @@ -33,22 +33,21 @@ feat_ticket_quota = 2 feat_ticket_limit = 1 feat_ticket_pity_step = 5 -; 迭代 20 T2 池结构案D 换代(2026-10-11,奇物.md 池结构与抽取 v1):四级档位 70/25/3/0 = 98 张 -; (普通 70/优秀 25/稀有 3/传说 0=头奖位留空——旧 70/25/3 直映射改名承袭零偏离已裁结构锚); +; 迭代 20 T2 池结构案D 换代(2026-10-11,奇物.md 池结构与抽取 v1):四级档位 70/25/7/0 = 102 枚—— +; 稀有档投放三 kind=AP 件 3/储备金袋 2/时沙 2;储备金袋与时沙的配额键未载于本表、运行取 schema 缺省值,补表归待办清单; ; 概率与上限解耦(案②令牌池+提前退役):概率位=档+令牌数、已拿上限=curio_cap_*(拿了才计); ; 曝光槽=三选一 2 格全池+1 格优秀档以上子池(子池空回退全池);凭证不进子池。 ; 前史 TP0 令牌池换代(2026-10-03,node-reward v2.2 追认 b 落地):三选一池 = 固定配额令牌池—— -; 普通 70/稀有 25/罕见 3 = 98 张(罕见档原列「道具件 2」随 treasure_item 池种退役收窄——台账自决披露项); ; 洗牌不放回抽 3、选中踢池未选回池、池耗即枯竭; ; 种类次数上限退役(池消耗即上限;货架库存同账本=牌库剩余令牌数)。 -; 档位构成:普通〔小GP 18/小增伤 18/小护甲 17/小生命 17〕+ 稀有〔大GP/大增伤/大护甲/大生命/恢复 各 5〕 -; + 罕见〔AP 3〕——罕见档原列「道具件 2」随 treasure_item 池种退役(迭代 11 第①批 T7)不投放。 +; 档位构成(现行):普通〔小GP 18/小增伤 18/小护甲 17/小生命 17〕+ 优秀〔大GP/大增伤/大护甲/大生命 各 5+恢复 3+刷新件 2〕 +; + 稀有〔AP 件 3/储备金袋 2/时沙 2〕。 ; 数值对:小GP 20/大GP 50、小增伤 +1/大 +2、小护甲 +1/大 +2、小生命 +5/大 +10、恢复 +6(当即回血)、AP +1。 -; 恢复件 = 新入池种类(rare 档)。 +; 恢复件 = 新入池种类(优秀档)。 ; 退役字段:bonus_weight_*(E-S 权重族)/ bonus_cap_*(种类次数上限族)/ BONUS_CAP_UNLIMITED 哨兵—— ; 洗牌改令牌 Fisher-Yates(不放回抽 3,消费 reward_pick 封闭流)。 ; 迭代 11 第②批 商店共享池注记:货架 = 令牌级抽签(同 kind 去重每 kind 至多一卡、价格公式 tier-blind ; ceil(基价×b^(关序−1)×A^visit) 维持批②裁定、购买消费在架令牌本体)。 ; 末关通关不发三选一与回血(奖励只朝下一战生效)。 -; 全部 provisional-pending-曲线调参批(值锚与上调约束归 难度曲线与Boss;档位配额总量 70/25/5 系追认 b -; 结构锚——schema validate 硬断言,改总量须重裁)。 +; 全部 provisional-pending-曲线调参批(值锚与上调约束归 难度曲线与Boss;档位配额结构锚 70/25/7/0—— +; schema TIER_QUOTAS,validate 硬断言,改总量须重裁)。 diff --git a/game/tests/unit/core/adventure_feats_test.gd b/game/tests/unit/core/adventure_feats_test.gd index 7bc13ec9..fedf9f3f 100644 --- a/game/tests/unit/core/adventure_feats_test.gd +++ b/game/tests/unit/core/adventure_feats_test.gd @@ -396,7 +396,7 @@ func _smoke_adventure() -> void: for t in draw: draw_kinds[String((t as Dictionary).get("kind", ""))] = true Kit.check("池耗即枯竭(attack/ap 令牌耗尽不出候选——%s)" % str(draw), not draw_kinds.has("attack") and not draw_kinds.has("ap")) - Kit.check("池耗后候选恒 ≥2(稀有/罕见档余量——防「三选项全不可选」死角)", (draw as Array).size() >= 2) + Kit.check("池耗后候选恒 ≥2(稀有档余量——防「三选项全不可选」死角)", (draw as Array).size() >= 2) # 池收缩(aux 不入三选一牌库:重复抽样零 aux 候选;同调位替换两路 # white-box 测试属停点渠道,零投放零行为) var treasure_seen := false