49 lines
911 B
GDScript
49 lines
911 B
GDScript
class_name BattleStats
|
|
|
|
# enum Type {
|
|
# NEUTRAL,
|
|
# FIRE,
|
|
# ICE,
|
|
# }
|
|
|
|
enum Status {
|
|
NORMAL,
|
|
DEAD,
|
|
}
|
|
|
|
var health:int = 100
|
|
var maxHealth:int = 100
|
|
var mp:int = 50
|
|
var maxMp:int = 50
|
|
# var type:Type = Type.NEUTRAL
|
|
var status:Status = Status.NORMAL
|
|
|
|
func damage(amount:int) -> void:
|
|
assert(amount > 0)
|
|
if status == Status.DEAD:
|
|
return
|
|
health = max(health - amount, 0)
|
|
if health == 0:
|
|
status = Status.DEAD
|
|
|
|
func heal(amount:int) -> void:
|
|
assert(amount > 0)
|
|
if status == Status.DEAD:
|
|
return
|
|
health = min(health + amount, maxHealth)
|
|
|
|
func revive(health:int) -> void:
|
|
assert(health > 0)
|
|
if status != Status.DEAD:
|
|
return
|
|
health = min(health, maxHealth)
|
|
status = Status.NORMAL
|
|
self.health = health
|
|
|
|
func mpConsume(amount:int) -> void:
|
|
assert(amount > 0)
|
|
mp = max(mp - amount, 0)
|
|
|
|
func mpRestore(amount:int) -> void:
|
|
assert(amount > 0)
|
|
mp = min(mp + amount, maxMp) |