Example damage label

This commit is contained in:
2026-01-11 20:08:44 -06:00
parent 561ab5a983
commit 7defac68c4
11 changed files with 109 additions and 25 deletions

View File

@@ -36,13 +36,13 @@ var luck:int
# Equipment
# Signals
signal healthChanged(difference:int)
signal healthChanged(difference:int, crit:bool)
signal mpChanged(difference:int)
signal statusChanged(oldStatus:Status, newStatus:Status)
func _init(params:Dictionary) -> void:
self.maxHealth = params.get('max_health', 100)
self.maxMp = params.get('max_mp', 50)
self.maxHealth = params.get('maxHealth', 100)
self.maxMp = params.get('maxMp', 50)
self.attack = params.get('attack', 10)
self.defense = params.get('defense', 5)
self.speed = params.get('speed', 5)
@@ -54,12 +54,12 @@ func _init(params:Dictionary) -> void:
self.health = self.maxHealth
self.mp = self.maxMp
func damage(amount:int) -> void:
func damage(amount:int, crit:bool) -> void:
assert(amount > 0)
if status == Status.DEAD:
return
health = max(health - amount, 0)
healthChanged.emit(-amount)
healthChanged.emit(-amount, crit)
if health == 0:
var oldStatus = status
status = Status.DEAD
@@ -70,7 +70,7 @@ func heal(amount:int) -> void:
if status == Status.DEAD:
return
health = min(health + amount, maxHealth)
healthChanged.emit(amount)
healthChanged.emit(amount, false)
func revive(health:int) -> void:
assert(health > 0)