30 lines
851 B
GDScript
30 lines
851 B
GDScript
class_name Enemy extends QuestSprite
|
|
|
|
static var list : Dictionary[String, PackedScene] = {}
|
|
|
|
static func load_enemy_list() -> void:
|
|
var folder_path = "res://templates/enemies"
|
|
var dir = DirAccess.open(folder_path)
|
|
if dir:
|
|
dir.list_dir_begin()
|
|
var filename = dir.get_next()
|
|
while filename != "":
|
|
if not dir.current_is_dir():
|
|
var template : PackedScene = ResourceLoader.load(folder_path.path_join(filename))
|
|
if template:
|
|
list[template.name] = template
|
|
filename = dir.get_next()
|
|
dir.list_dir_end()
|
|
|
|
|
|
func attack(target : QuestSprite) -> void:
|
|
print("Attack by %s to %s" % [name, target.name])
|
|
hitting.connect(hit.bind(target), CONNECT_ONE_SHOT)
|
|
anim_player.play("attack")
|
|
|
|
func set_animation(anim_name : String) -> void:
|
|
anim_player.play(anim_name)
|
|
|
|
func hit(target : QuestSprite) -> void:
|
|
target.take_damage(self, 2)
|