Example damage label
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user