TowerDefense/Tiles/cube.gd
2025-09-04 13:19:46 +02:00

42 lines
752 B
GDScript

extends StaticBody3D
class_name TheCube
@export var max_health : int = 50
var health : int = max_health :
set(value):
health = value
EventBus.cube_integrity_changed.emit(health)
if health <= 0:
death()
static var money : int :
set(value):
money = value
EventBus.money_changed.emit(money)
func _ready() -> void:
EventBus.player_has_won.connect(win)
EventBus.cube_ready.emit.call_deferred(self)
func take_damage(damage: int) -> void:
health -= damage
func win():
Transition.goto("res://UI/win_screen.tscn")
static func spendMoney(amount : int) -> bool:
if money > amount:
money -= amount
return true
return false
static func death():
EventBus.player_defeated.emit()
Transition.goto("res://UI/defeat_screen.tscn")