奇物批T1:feature_*→curio_*词族换名(CURIO_KINDS/curio_quota/curio_value/curio_candidate_count+adventure.tres键名+entities.yaml换代登记续写,值零变更实测;T0差异回写:93处/7文件+bonus_aux_carry语义澄清剔除改名面+基线772/0)
This commit is contained in:
1 parent
413c936b79
commit
d4cde73976
10 files changed
+111
-109
No files matched your search
@@ -18,13 +18,13 @@ extends Resource
|
||||
## 它们是它的分类轴上的枚举(专长 / 属性值提升 / 资源),不是三套系统;
|
||||
## 本表承载属性值提升与资源的种类配额与件值。
|
||||
## (2026-10-05 命名统一 + v2.0 改名:旧称「数值件」→ 属性提升;顶层「特性」→「奖励」→「奇物」。
|
||||
## 常量与字段随之前缀 feature_*,**尚未**随顶层改名换到 reward_*——见 06-待办清单。
|
||||
## 常量与字段随之前缀 curio_*,**尚未**随顶层改名换到 reward_*——见 06-待办清单。
|
||||
## 分类轴三个枚举:属性值提升〔生命上限 / AC / 攻击〕;资源〔行动点上限 /
|
||||
## 刷新次数 / 金币 / 回复,命名待定〕——本表两类混编;刷新次数与专长获取两项尚未入表。
|
||||
## 类内异质性:金币与回复是即时兑付,不进持有集、不持续生效。)
|
||||
## 三选一提升池 kind 词表(封闭——断点附随件与牌库剔除态依赖它;扩件走本表+registry 修订)。
|
||||
## treasure_item 池种退役(迭代 11 第①批 T7——同调批出池);heal 恢复件新入池(v2.2 令牌池追认 b)。
|
||||
const FEATURE_KINDS: Array[String] = ["attack", "max_hp", "armor", "gp", "ap", "heal"]
|
||||
const CURIO_KINDS: Array[String] = ["attack", "max_hp", "armor", "gp", "ap", "heal"]
|
||||
## 令牌档位词表(v2.2 三档位——稀有度命名对齐 MC 策略判读序 316-f:1 级最稀有=rarest 优先)
|
||||
const TIERS: Array[String] = ["common", "rare", "rarest"]
|
||||
const TIER_COMMON := "common"
|
||||
@@ -39,65 +39,65 @@ const TIER_QUOTAS := {"common": 70, "rare": 25, "rarest": 3}
|
||||
@export var clear_heal_pct: int = 20 # [0,100] knob——回复生效上限的百分比,封顶上限不回满
|
||||
|
||||
# —— 三选一候选数(2026-10-02 修复批 T2 魔法数结构化)——
|
||||
@export var feature_candidate_count: int = 3 # [1,6] knob——令牌洗牌不放回抽取张数上界
|
||||
@export var curio_candidate_count: int = 3 # [1,6] knob——令牌洗牌不放回抽取张数上界
|
||||
@export var shop_refresh_free: int = 0 # [0,9] knob(MC-1 provisional——进店免费刷新次数;基础 0=Q2 裁,天赋增益位预留)
|
||||
@export var shop_refresh_cost_base: int = 20 # [1,999] knob(MC-1 provisional——GP 刷新基价)
|
||||
@export var shop_refresh_cost_curve: float = 1.8 # [1.0,4.0] knob(MC-1 provisional——按已付费刷新数幂曲线,A 链同族)
|
||||
|
||||
# —— 令牌配额(kind × tier 计数;未列组合 = 0——heal 只入稀有/ap 只入罕见,v2.2 档位构成)——
|
||||
@export var feature_quota_attack_common: int = 18 # [0,99]
|
||||
@export var feature_quota_attack_rare: int = 5 # [0,99]
|
||||
@export var feature_quota_max_hp_common: int = 17 # [0,99]
|
||||
@export var feature_quota_max_hp_rare: int = 5 # [0,99]
|
||||
@export var feature_quota_armor_common: int = 17 # [0,99]
|
||||
@export var feature_quota_armor_rare: int = 5 # [0,99]
|
||||
@export var feature_quota_gp_common: int = 18 # [0,99]
|
||||
@export var feature_quota_gp_rare: int = 5 # [0,99]
|
||||
@export var feature_quota_heal_rare: int = 5 # [0,99]——恢复件(新入池种类,当即回血)
|
||||
@export var feature_quota_ap_rarest: int = 3 # [0,99]——AP 件(罕见档;道具件 2 席位随池种退役收窄)
|
||||
@export var curio_quota_attack_common: int = 18 # [0,99]
|
||||
@export var curio_quota_attack_rare: int = 5 # [0,99]
|
||||
@export var curio_quota_max_hp_common: int = 17 # [0,99]
|
||||
@export var curio_quota_max_hp_rare: int = 5 # [0,99]
|
||||
@export var curio_quota_armor_common: int = 17 # [0,99]
|
||||
@export var curio_quota_armor_rare: int = 5 # [0,99]
|
||||
@export var curio_quota_gp_common: int = 18 # [0,99]
|
||||
@export var curio_quota_gp_rare: int = 5 # [0,99]
|
||||
@export var curio_quota_heal_rare: int = 5 # [0,99]——恢复件(新入池种类,当即回血)
|
||||
@export var curio_quota_ap_rarest: int = 3 # [0,99]——AP 件(罕见档;道具件 2 席位随池种退役收窄)
|
||||
|
||||
# —— 令牌件值(小/大数值对——v2.2 追认 b 定稿:20/50、+1/+2、+1/+2、+5/+10、恢复+6、AP+1)——
|
||||
@export var feature_value_attack_common: int = 1 # [0,999] knob——小增伤
|
||||
@export var feature_value_attack_rare: int = 2 # [0,999] knob——大增伤
|
||||
@export var feature_value_max_hp_common: int = 5 # [0,999] knob——小生命
|
||||
@export var feature_value_max_hp_rare: int = 10 # [0,999] knob——大生命
|
||||
@export var feature_value_armor_common: int = 1 # [0,999] knob——小护甲
|
||||
@export var feature_value_armor_rare: int = 2 # [0,999] knob——大护甲
|
||||
@export var feature_value_gp_common: int = 20 # [0,999] knob——小GP
|
||||
@export var feature_value_gp_rare: int = 50 # [0,999] knob——大GP
|
||||
@export var feature_value_heal_rare: int = 6 # [0,999] knob——恢复(当即回血,封顶生效上限)
|
||||
@export var feature_value_ap_rarest: int = 1 # [0,10] knob——AP 件每场战斗首轮行动点基线增量
|
||||
@export var curio_value_attack_common: int = 1 # [0,999] knob——小增伤
|
||||
@export var curio_value_attack_rare: int = 2 # [0,999] knob——大增伤
|
||||
@export var curio_value_max_hp_common: int = 5 # [0,999] knob——小生命
|
||||
@export var curio_value_max_hp_rare: int = 10 # [0,999] knob——大生命
|
||||
@export var curio_value_armor_common: int = 1 # [0,999] knob——小护甲
|
||||
@export var curio_value_armor_rare: int = 2 # [0,999] knob——大护甲
|
||||
@export var curio_value_gp_common: int = 20 # [0,999] knob——小GP
|
||||
@export var curio_value_gp_rare: int = 50 # [0,999] knob——大GP
|
||||
@export var curio_value_heal_rare: int = 6 # [0,999] knob——恢复(当即回血,封顶生效上限)
|
||||
@export var curio_value_ap_rarest: int = 1 # [0,10] knob——AP 件每场战斗首轮行动点基线增量
|
||||
|
||||
|
||||
## 令牌配额读数(未列 kind×tier 组合 = 0——heal 无普通档/ap 无普通稀有档按 v2.2 构成)
|
||||
func feature_quota(kind: String, tier: String) -> int:
|
||||
func curio_quota(kind: String, tier: String) -> int:
|
||||
match [kind, tier]:
|
||||
["attack", TIER_COMMON]: return feature_quota_attack_common
|
||||
["attack", TIER_RARE]: return feature_quota_attack_rare
|
||||
["max_hp", TIER_COMMON]: return feature_quota_max_hp_common
|
||||
["max_hp", TIER_RARE]: return feature_quota_max_hp_rare
|
||||
["armor", TIER_COMMON]: return feature_quota_armor_common
|
||||
["armor", TIER_RARE]: return feature_quota_armor_rare
|
||||
["gp", TIER_COMMON]: return feature_quota_gp_common
|
||||
["gp", TIER_RARE]: return feature_quota_gp_rare
|
||||
["heal", TIER_RARE]: return feature_quota_heal_rare
|
||||
["ap", TIER_RAREST]: return feature_quota_ap_rarest
|
||||
["attack", TIER_COMMON]: return curio_quota_attack_common
|
||||
["attack", TIER_RARE]: return curio_quota_attack_rare
|
||||
["max_hp", TIER_COMMON]: return curio_quota_max_hp_common
|
||||
["max_hp", TIER_RARE]: return curio_quota_max_hp_rare
|
||||
["armor", TIER_COMMON]: return curio_quota_armor_common
|
||||
["armor", TIER_RARE]: return curio_quota_armor_rare
|
||||
["gp", TIER_COMMON]: return curio_quota_gp_common
|
||||
["gp", TIER_RARE]: return curio_quota_gp_rare
|
||||
["heal", TIER_RARE]: return curio_quota_heal_rare
|
||||
["ap", TIER_RAREST]: return curio_quota_ap_rarest
|
||||
return 0
|
||||
|
||||
|
||||
## 令牌件值(kind × tier;v2.2 数值对——小/大两档)
|
||||
func feature_value(kind: String, tier: String = TIER_COMMON) -> int:
|
||||
func curio_value(kind: String, tier: String = TIER_COMMON) -> int:
|
||||
match [kind, tier]:
|
||||
["attack", TIER_COMMON]: return feature_value_attack_common
|
||||
["attack", TIER_RARE]: return feature_value_attack_rare
|
||||
["max_hp", TIER_COMMON]: return feature_value_max_hp_common
|
||||
["max_hp", TIER_RARE]: return feature_value_max_hp_rare
|
||||
["armor", TIER_COMMON]: return feature_value_armor_common
|
||||
["armor", TIER_RARE]: return feature_value_armor_rare
|
||||
["gp", TIER_COMMON]: return feature_value_gp_common
|
||||
["gp", TIER_RARE]: return feature_value_gp_rare
|
||||
["heal", TIER_RARE]: return feature_value_heal_rare
|
||||
["ap", TIER_RAREST]: return feature_value_ap_rarest
|
||||
["attack", TIER_COMMON]: return curio_value_attack_common
|
||||
["attack", TIER_RARE]: return curio_value_attack_rare
|
||||
["max_hp", TIER_COMMON]: return curio_value_max_hp_common
|
||||
["max_hp", TIER_RARE]: return curio_value_max_hp_rare
|
||||
["armor", TIER_COMMON]: return curio_value_armor_common
|
||||
["armor", TIER_RARE]: return curio_value_armor_rare
|
||||
["gp", TIER_COMMON]: return curio_value_gp_common
|
||||
["gp", TIER_RARE]: return curio_value_gp_rare
|
||||
["heal", TIER_RARE]: return curio_value_heal_rare
|
||||
["ap", TIER_RAREST]: return curio_value_ap_rarest
|
||||
return 0
|
||||
|
||||
|
||||
@@ -113,8 +113,8 @@ func tier_rank(tier: String) -> int:
|
||||
## 档位令牌总数(货架/校验读面)
|
||||
func tier_total(tier: String) -> int:
|
||||
var total := 0
|
||||
for kind in FEATURE_KINDS:
|
||||
total += feature_quota(kind, tier)
|
||||
for kind in CURIO_KINDS:
|
||||
total += curio_quota(kind, tier)
|
||||
return total
|
||||
|
||||
|
||||
@@ -127,18 +127,18 @@ func validate() -> Array:
|
||||
var errs: Array[Dictionary] = []
|
||||
if clear_heal_pct < 0 or clear_heal_pct > 100:
|
||||
errs.append({"category": "domain", "message": "clear_heal_pct 越域 [0,100]: %d" % clear_heal_pct})
|
||||
for kind in FEATURE_KINDS:
|
||||
for kind in CURIO_KINDS:
|
||||
for tier in TIERS:
|
||||
var c := feature_quota(kind, tier)
|
||||
var c := curio_quota(kind, tier)
|
||||
if c < 0 or c > 99:
|
||||
errs.append({"category": "domain", "message": "token_count(%s,%s) 越域 [0,99]: %d" % [kind, tier, c]})
|
||||
var v := feature_value(kind, tier)
|
||||
var v := curio_value(kind, tier)
|
||||
if v < 0 or v > 999:
|
||||
errs.append({"category": "domain", "message": "feature_value(%s,%s) 越域 [0,999]: %d" % [kind, tier, v]})
|
||||
errs.append({"category": "domain", "message": "curio_value(%s,%s) 越域 [0,999]: %d" % [kind, tier, v]})
|
||||
for tier in TIERS:
|
||||
var total := tier_total(tier)
|
||||
if total != int(TIER_QUOTAS.get(tier, -1)):
|
||||
errs.append({"category": "domain", "message": "档位配额结构失锚(v2.2 追认 b——%s 应=%d 实=%d;改总量须重裁)" % [tier, int(TIER_QUOTAS.get(tier, -1)), total]})
|
||||
if feature_candidate_count < 1 or feature_candidate_count > 6:
|
||||
errs.append({"category": "domain", "message": "feature_candidate_count 越域 [1,6]: %d" % feature_candidate_count})
|
||||
if curio_candidate_count < 1 or curio_candidate_count > 6:
|
||||
errs.append({"category": "domain", "message": "curio_candidate_count 越域 [1,6]: %d" % curio_candidate_count})
|
||||
return errs
|
||||
@@ -5,27 +5,27 @@
|
||||
[resource]
|
||||
script = ExtResource("1")
|
||||
clear_heal_pct = 20
|
||||
feature_candidate_count = 3
|
||||
feature_quota_attack_common = 18
|
||||
feature_quota_attack_rare = 5
|
||||
feature_quota_max_hp_common = 17
|
||||
feature_quota_max_hp_rare = 5
|
||||
feature_quota_armor_common = 17
|
||||
feature_quota_armor_rare = 5
|
||||
feature_quota_gp_common = 18
|
||||
feature_quota_gp_rare = 5
|
||||
feature_quota_heal_rare = 5
|
||||
feature_quota_ap_rarest = 3
|
||||
feature_value_attack_common = 1
|
||||
feature_value_attack_rare = 2
|
||||
feature_value_max_hp_common = 5
|
||||
feature_value_max_hp_rare = 10
|
||||
feature_value_armor_common = 1
|
||||
feature_value_armor_rare = 2
|
||||
feature_value_gp_common = 20
|
||||
feature_value_gp_rare = 50
|
||||
feature_value_heal_rare = 6
|
||||
feature_value_ap_rarest = 1
|
||||
curio_candidate_count = 3
|
||||
curio_quota_attack_common = 18
|
||||
curio_quota_attack_rare = 5
|
||||
curio_quota_max_hp_common = 17
|
||||
curio_quota_max_hp_rare = 5
|
||||
curio_quota_armor_common = 17
|
||||
curio_quota_armor_rare = 5
|
||||
curio_quota_gp_common = 18
|
||||
curio_quota_gp_rare = 5
|
||||
curio_quota_heal_rare = 5
|
||||
curio_quota_ap_rarest = 3
|
||||
curio_value_attack_common = 1
|
||||
curio_value_attack_rare = 2
|
||||
curio_value_max_hp_common = 5
|
||||
curio_value_max_hp_rare = 10
|
||||
curio_value_armor_common = 1
|
||||
curio_value_armor_rare = 2
|
||||
curio_value_gp_common = 20
|
||||
curio_value_gp_rare = 50
|
||||
curio_value_heal_rare = 6
|
||||
curio_value_ap_rarest = 1
|
||||
|
||||
; TP0 令牌池换代(2026-10-03,node-reward v2.2 追认 b 落地):三选一池 = 固定配额令牌池——
|
||||
; 普通 70/稀有 25/罕见 3 = 98 张(罕见档原列「道具件 2」随 treasure_item 池种退役收窄——台账自决披露项);
|
||||
|
||||
Reference in new issue
Block a user