extends Node3D class_name Battle @onready var character = (get_owner() as Character) @onready var status = (%Status as Status) class HitInfo: var form : int var to : int var dir : Vector2 var attack : AttackCfg var hit_info_list = [] #命中信息 func attack(): var attack_list = status.skill_cfg.attack_list if !attack_list: print("未配置技能攻击",status.skill_cfg) var attack_index = status.skill_attack_index if attack_index >= len(attack_list): attack_index = len(attack_list) - 1 var attack = attack_list[attack_index] var enemy_list = character.manager().get_enemy_list(character.id()) for enemy in enemy_list: var pos_dir = enemy.pos()-character.pos() var distance = pos_dir.length() #test if (distance < 1): var hit_info = HitInfo.new() hit_info.form = character.id() hit_info.to = enemy.id() hit_info.dir = status.skill_dir hit_info.attack = attack hit_info_list.append(hit_info) func _process(delta): for hit_info in hit_info_list: settle(hit_info) hit_info_list.clear() func settle(hit_info:HitInfo): print(hit_info.attack)