target 自动瞄准

master
chendian 2 years ago
parent eaf281600d
commit 6fe727ee3c

@ -15,6 +15,7 @@ action = "flash"
name = ""
skill_animation = ExtResource("2_bdxlh")
attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([])
free_lock = true
refresh_animation = false
sprite_frams = ExtResource("2_uof6p")
animation_name = "long_flash"

@ -73,6 +73,7 @@ func height()->float:return status.height
func view_pos()->Vector3:return position + view.position
func ui_pos()->Vector3:return position + status.ui_offset
func ui_pos_center()->Vector3:return position + status.ui_center_offset
func target()->int:return status.target
#==interface==
func get_status(status_name:String):return status.get_status(status_name)

@ -1,6 +1,7 @@
extends AnimationPlayer
class_name Skill
@onready var character = (get_owner() as Character)
@onready var view = (%View as View)
@onready var status = (%Status as Status)
@onready var effect = (%Effect as Effect)
@ -17,6 +18,10 @@ func cast_skill(cfg:SkillCfg,cast_dir:Vector2):
cancel_skill()
if cast_dir.length() == 0:
cast_dir = Vector2.RIGHT if status.is_right else Vector2.LEFT
if !cfg.free_lock and status.target:
var target = Global.character_mgr.get_character(status.target)
if target:
cast_dir = character.pos2D().direction_to(target.pos2D()).normalized()
var animation_name = "animation_library/%s" % Util.get_resource_name(cfg)
if has_animation(animation_name):

@ -7,6 +7,7 @@ class_name SkillCfg
@export var skill_animation : Animation
@export var attack_list : Array[AttackCfg]
@export var attack_particle : PackedScene
@export var free_lock : bool
@export var refresh_animation : bool :
get:return false

@ -46,9 +46,13 @@ func create_character(cfg:CharacterCfg,team:Enum.ETeam,pos:Vector3):
func destroy_character(id:int):
if not id in character_map:
return
var character = character_map[id] as Character
var character_destroy = character_map[id] as Character
character_destroy.queue_free()
character_map.erase(id)
character.queue_free()
for key in character_map:
var character = character_map[key] as Character
if character.target() == id:
character.set_target(0)
func get_character(id:int) -> Character:
if id in character_map:

Loading…
Cancel
Save