T6吞噬流+地形转化+商店保底(迭代12——整合定稿S7/B4):relics.tres填4行(地脉采撷common·受地形伤资源补偿——伤害仍发生/荆棘编织者rare·挖开伤害型格双产出/净化工兵rare·标中旗中和相邻伤害型格——🔴R4甲仅限伤害型过滤=variation effect=flat_damage判据信息型永不清除/熔火之躯rarest锚点·受地形伤积层轮末反打——触发键通用不按种类特化);BoardData.clear_variants中和口;orchestrator地形伤兑付点四面(refund/double/counter/轮末blast反打后清零——行格=英雄格修(-1,-1)越界);商店保底=货架零流派件时挤掉最后一张普通卡换devour件(占位制货架恒≤3——首版追加4卡断言红返工;按关变异精细绑定归数值批披露)+relic卡定价15固定锚公式同构+投影display/value走relic行;冒烟断言适配relic卡合法态(词表放行+价格分叉)表换代27件→696/0三闸+run_all全绿——批次一铺量27件收官
This commit is contained in:
1 parent
e216232e05
commit
bfbb473375
5 files changed
+149
-11
No files matched your search
@@ -762,6 +762,26 @@ func _shop_draw_shelf() -> void:
|
||||
_shop_shelf.append(tok)
|
||||
if _shop_shelf.size() >= 3:
|
||||
break
|
||||
# 商店保底(迭代 12 T6——「本关变异交互件必刷」简化口径:货架零流派件时**挤掉最后一张普通卡**
|
||||
# 换吞噬流件〔地形交互件广义映射——按关变异精细绑定归数值批,台账披露待追认〕;占位制货架恒
|
||||
# ≤3;池内无 devour 令牌=不保底合法态)
|
||||
var has_relic := false
|
||||
for tok in _shop_shelf:
|
||||
if String((tok as Dictionary).get("kind", "")) == "relic":
|
||||
has_relic = true
|
||||
break
|
||||
if not has_relic and not _shop_shelf.is_empty():
|
||||
for row in db.relic_rows():
|
||||
if String(row.get("archetype", "")) != "devour":
|
||||
continue
|
||||
var rid := String(row.get("relic_id", ""))
|
||||
for t in _pool_deck:
|
||||
var tok2: Dictionary = t as Dictionary
|
||||
if String(tok2.get("kind", "")) == "relic" and String(tok2.get("relic_id", "")) == rid:
|
||||
_shop_shelf[_shop_shelf.size() - 1] = {"kind": "relic", "tier": String(tok2.get("tier", "")), "relic_id": rid}
|
||||
break
|
||||
if String((_shop_shelf[_shop_shelf.size() - 1] as Dictionary).get("kind", "")) == "relic":
|
||||
break # 换一张即止
|
||||
|
||||
|
||||
# 库存余量(TP0——令牌库内该 kind 剩余枚数单点读;未注入/防御读 = 0)
|
||||
@@ -774,9 +794,14 @@ func pool_stock(kind: String) -> int:
|
||||
|
||||
|
||||
# 现价 = ceil(基价 × b^(关序−1) × A^(本次进店已购次数))(P4 甲 ceil 向上单一取整——玩家不利向;
|
||||
# A/b 表 knob provisional;核心现算,呈现层禁复算——契约 5)
|
||||
# A/b 表 knob provisional;核心现算,呈现层禁复算——契约 5)。relic 卡(保底占位——shop 词表外)
|
||||
# 基价 provisional 15 固定锚(台账披露待追认——shop.tres 词表扩列归数值批)。
|
||||
func pool_price(kind: String) -> int:
|
||||
var row: Dictionary = db.shop_pool_row(kind)
|
||||
if row.is_empty():
|
||||
if kind == "relic":
|
||||
return int(ceil(15.0 * pow(db.shop_price_b(), float(maxi(0, int(level_row.level_index) - 1))) * pow(db.shop_price_a(), float(_shop_visit_buys))))
|
||||
return 999999
|
||||
var base := float(maxi(1, int(row.get("base_price", 1))))
|
||||
var price_f: float = base * pow(db.shop_price_b(), float(maxi(0, int(level_row.level_index) - 1))) \
|
||||
* pow(db.shop_price_a(), float(_shop_visit_buys))
|
||||
@@ -791,11 +816,18 @@ func shop_shelf() -> Array:
|
||||
var kind := String((tok as Dictionary).get("kind", ""))
|
||||
var tier := String((tok as Dictionary).get("tier", ""))
|
||||
var row: Dictionary = db.shop_pool_row(kind)
|
||||
var display := String(row.get("display_name", kind))
|
||||
var value := int(db.adventure.bonus_value(kind, tier))
|
||||
if row.is_empty() and kind == "relic":
|
||||
var rrow: Dictionary = db.relic_row(String(tok.get("relic_id", "")))
|
||||
display = String(rrow.get("display_name", "流派件"))
|
||||
value = 0
|
||||
out.append({
|
||||
"kind_id": kind,
|
||||
"tier": tier,
|
||||
"display_name": String(row.get("display_name", kind)),
|
||||
"value": int(db.adventure.bonus_value(kind, tier)),
|
||||
"relic_id": String(tok.get("relic_id", "")),
|
||||
"display_name": display,
|
||||
"value": value,
|
||||
"price": pool_price(kind),
|
||||
"stock_left": pool_stock(kind),
|
||||
})
|
||||
|
||||
Reference in new issue
Block a user