extends Cfg class_name CharacterCfg #基本信息 @export var name: String @export var type: Enum.ECharacterType #动画 @export var sprite_frames: SpriteFrames @export var sprite_height: int @export var sprite_width: int #基本组件 @export var move: CharacterMoveCfg @export var shield: ShieldCfg @export var stun: StunCfg @export var mp: MpCfg @export var ai: AICfg #战斗信息 @export var hp_max: float @export var attack: float #自带技能参数 @export var attack1: AttackCfg @export var attack1_box: AttackBoxCfg @export var attack2: AttackCfg @export var attack2_box: AttackBoxCfg @export var sub_character: CharacterCfg @export var sub_character_auto_create: bool var core_cfg_list: Array[CoreCfg] func get_attack1()->AttackCfg: return attack1 if attack1 else ResourceManager.cfg_attack_normal func get_attack1_box()->AttackBoxCfg: return attack1_box if attack1_box else ResourceManager.cfg_attack_box_normal func get_attack2()->AttackCfg: return attack2 if attack2 else ResourceManager.cfg_attack_normal func get_attack2_box()->AttackBoxCfg: return attack2_box if attack2_box else ResourceManager.cfg_attack_box_normal func get_particle()->Resource: var res_name: String = get_res_name() var path_default: String = "res://scene/effect/particle/%s.tscn" % res_name if ResourceLoader.exists(path_default): return load(path_default) return null func get_ai()->PackedScene: var res_name: String = get_res_name() var path_default: String = "res://scene/ai/%s.tscn" % res_name if ResourceLoader.exists(path_default): return load(path_default) as PackedScene return null func get_core_cfg_list()->Array[CoreCfg]: if core_cfg_list: return core_cfg_list core_cfg_list = [] var res_name: String = get_res_name() var dir_path: String = "res://config/core" var dir: DirAccess = DirAccess.open(dir_path) for file in dir.get_files(): if not file.begins_with(res_name): continue var path: String = dir_path + "/" + file var res = load(path) if res is CoreCfg: core_cfg_list.append(res) return core_cfg_list