You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
2.1 KiB
GDScript

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 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
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