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.
28 lines
687 B
GDScript
28 lines
687 B
GDScript
extends ActionLeaf
|
|
class_name Action
|
|
|
|
func get_character(actor: Node) -> Character:
|
|
if not actor is AI:
|
|
print("行为树结构错误")
|
|
return null
|
|
var ai: AI = actor as AI
|
|
return ai.character
|
|
|
|
|
|
func before_run(actor: Node, blackboard: Blackboard) -> void:
|
|
init(get_character(actor))
|
|
|
|
|
|
func tick(actor: Node, blackboard: Blackboard) -> int:
|
|
var character: Character = get_character(actor)
|
|
if character.get_status("is_stagger") or character.get_status("is_stun"):
|
|
return FAILURE
|
|
return run(character, blackboard)
|
|
|
|
|
|
func init(character: Character): pass
|
|
|
|
|
|
func run(character: Character, blackboard: Blackboard) -> int:
|
|
return FAILURE
|