otherworldly_simulation/scene/test/action_attack.gd

19 lines
638 B
GDScript3
Raw Normal View History

2024-10-25 15:41:39 +08:00
extends ActionLeaf
func tick(actor:Node,black_board:Blackboard):
var unit:Unit=actor
if unit.is_attacking():
var target_unit:Unit=Global.get_unit_instance(black_board.get_value("target_unit_id"))
2024-10-25 17:45:08 +08:00
if is_instance_valid(target_unit):
unit.set_target(target_unit.global_position)
2024-10-25 15:41:39 +08:00
return RUNNING
if unit.is_attack_finished():
black_board.erase_value("target_unit_id")
return SUCCESS
if black_board.has_value("target_unit_id") and not unit.is_attacking():
unit.attack()
var target_unit:Unit=Global.get_unit_instance(black_board.get_value("target_unit_id"))
unit.set_target(target_unit.global_position)
return RUNNING