Files
pomchronicles/scripts/quest_sprite.gd

39 lines
895 B
GDScript

class_name QuestSprite extends Control
var life : int = 1
var max_life : int = 1
var energy : int = 1
var max_energy : int = 1
var level : int = 1
var exp : int = 0
@export var stats : StatBlock
var gold : int = 0
@onready var anim_player : AnimationPlayer = $AnimationPlayer
signal died(killer :QuestSprite)
signal action_complete(requeue : bool)
signal busy()
func attack(target : QuestSprite) -> void:
print("Attack by %s to %s" % [name, target.name])
target.take_damage(self, 10)
action_complete.emit(true)
func take_damage(source : QuestSprite, amount : int) -> void:
busy.emit()
life = clampi(life - amount, 0, max_life)
if life == 0:
print("%s killed %s!" % [source.name, name])
die(source)
else:
print("%s hit %s for %d damage!" % [source.name, name, amount])
action_complete.emit(false)
func die(killer : QuestSprite) -> void:
died.emit(killer)
queue_free()