diff --git a/doc/弟子管理.md b/doc/弟子管理.md index 3fa9b2a..cab430b 100644 --- a/doc/弟子管理.md +++ b/doc/弟子管理.md @@ -115,4 +115,10 @@ func load_from_dict(d) -> void ```mermaid graph TD A[分配属性总量,按正正态分布] --> B[随机分配5种属性,属性之和为1] --> C[分配灵气利用率] -``` \ No newline at end of file +``` + +## 修炼说明 + +每个小境界修炼需要的经验 = 基础经验值 * 属性总量 + +经验获取量 = 基础经验 * 灵气吸收效率 diff --git a/src/Data/Models/Disciple.gd b/src/Data/Models/Disciple.gd index 50f86ad..2c70226 100644 --- a/src/Data/Models/Disciple.gd +++ b/src/Data/Models/Disciple.gd @@ -137,7 +137,7 @@ var total_amount: int: ## 构造:按 data 覆盖属性,数值属性经 RANGES 夹取;缺键保留字段默认值。 ## @param data: 键名与属性名一致,如 {"id": 1, "name": "玄真", "metal": 60} -func _init(data: Dictionary[String, Variant] = {}) -> void: +func _init(data: Dictionary = {}) -> void: if data.has("id"): id = int(data["id"]) if data.has("name"): @@ -187,12 +187,12 @@ func set_attr(key: String, value: int) -> bool: if key == "realm_level": # 大境界变化后,小境界不得超过新境界的上限(如落入凡人则强制 1) set("realm_level", v) - var max_sub := SUB_MAX_BY_REALM[v] + var max_sub : int = SUB_MAX_BY_REALM[v] if int(get("sub_realm_level")) > max_sub: set("sub_realm_level", max_sub) elif key == "sub_realm_level": # 小境界写入时按当前大境界上限夹取(凡人上限 1 / 练气 13 / 其余 4) - var max_sub := SUB_MAX_BY_REALM[int(get("realm_level"))] + var max_sub : int = SUB_MAX_BY_REALM[int(get("realm_level"))] set("sub_realm_level", clampi(v, 1, max_sub)) else: set(key, v)