40 lines
789 B
GDScript
40 lines
789 B
GDScript
extends StaticBody3D
|
|
class_name TowerBase
|
|
|
|
@export var inventory : Inventory
|
|
@export var block : CSGBox3D
|
|
@export var collider : CollisionShape3D
|
|
@export var minimap_icon : Sprite3D
|
|
|
|
var tower = null
|
|
var has_card : bool :
|
|
set(_value):
|
|
return
|
|
get:
|
|
return inventory.contents.size() != 0
|
|
|
|
|
|
func add_card(card: Card) -> bool:
|
|
var result = inventory.add(card)
|
|
if result:
|
|
tower = card.turret.instantiate() as Tower
|
|
tower.stats = card.tower_stats
|
|
minimap_icon.modulate = Color.RED
|
|
add_child(tower)
|
|
return result
|
|
|
|
|
|
func remove_card() -> Card:
|
|
tower.queue_free()
|
|
tower = null
|
|
minimap_icon.modulate = Color.GREEN
|
|
return inventory.remove()
|
|
|
|
|
|
func set_material(value: StandardMaterial3D):
|
|
block.material = value
|
|
|
|
|
|
func toggle_collision():
|
|
collider.disabled = !collider.disabled
|