feat: 弟子定时招募+入宗分流,完成 D3(Disciple/DiscipleManager)
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
## 弟子数据模型(纯数据,不挂在场景树上)。
|
||||
## 生成时决定的属性(姓名/资质/灵根)不可变,成长属性(境界)由 D5 修炼系统推进。
|
||||
class_name Disciple # 全局类名:全项目可直接用 Disciple.new()
|
||||
extends Resource # Resource = 轻量纯数据对象,可序列化(D8 存档用)
|
||||
|
||||
## 资质四类(入宗分流结果)。
|
||||
enum Aptitude { ORDINARY, MEDIUM, SUPERIOR, HEAVENLY } # 下品/中品/上品/天骄
|
||||
|
||||
## 灵根五行。
|
||||
enum SpiritRoot { GOLD, WOOD, WATER, FIRE, EARTH }
|
||||
|
||||
# —— 常量表:枚举值 → 显示文本 / 倍率(按索引一一对应)——
|
||||
const APTITUDE_NAMES: Array[String] = ["下品", "中品", "上品", "天骄"]
|
||||
const APTITUDE_SPEED: Array[float] = [0.6, 1.0, 1.5, 2.0] # D5 用
|
||||
const ROOT_NAMES: Array[String] = ["金", "木", "水", "火", "土"]
|
||||
const REALM_NAMES: Array[String] = ["练气", "筑基", "金丹", "元婴", "化神"] # 按 realm_index 索引
|
||||
const HEAVENLY_BONUS := 1.5 # 天灵根额外修炼速度倍率(D5 用)
|
||||
|
||||
# —— 实例字段 ——
|
||||
var id: int = 0 # 唯一编号(DiscipleManager 分配)
|
||||
var name: String = ""
|
||||
var age: int = 0
|
||||
var aptitude: Aptitude = Aptitude.ORDINARY
|
||||
var roots: Array[SpiritRoot] = [] # 普通弟子 1~3 根;天灵根固定 1 根
|
||||
var is_heavenly: bool = false # 天灵根标记(3% 概率)
|
||||
var realm_index: int = 0 # 大境界索引(0=练气)
|
||||
var sub_realm_index: int = 0 # 小境界索引(练气层数-1)
|
||||
|
||||
# —— 辅助函数:把数据翻译成给人看的文本 ——
|
||||
func get_aptitude_name() -> String:
|
||||
return APTITUDE_NAMES[aptitude]
|
||||
|
||||
func get_roots_text() -> String:
|
||||
var names: Array[String] = []
|
||||
for root in roots:
|
||||
names.append(ROOT_NAMES[root])
|
||||
return "、".join(names)
|
||||
|
||||
func get_realm_text() -> String:
|
||||
if realm_index == 0:
|
||||
return "%s%d层" % [REALM_NAMES[realm_index], sub_realm_index + 1]
|
||||
return "%s%s" % [REALM_NAMES[realm_index], ["初期", "中期", "后期", "圆满"][sub_realm_index]]
|
||||
Reference in New Issue
Block a user