38 lines
698 B
GDScript
38 lines
698 B
GDScript
extends StaticBody2D
|
|
class_name Brick
|
|
|
|
signal brick_destroyed(brick : StaticBody2D)
|
|
|
|
@export var hits : int = 1
|
|
@export var value : int = 100
|
|
@export var color : Color :
|
|
set(c):
|
|
color = c
|
|
if $Polygon2D != null:
|
|
$Polygon2D.color = c
|
|
|
|
func _init() -> void:
|
|
name = "Brick"
|
|
|
|
func _ready() -> void:
|
|
pass
|
|
|
|
func _process(_delta) -> void:
|
|
pass
|
|
|
|
func hit() -> void:
|
|
if hits <= 0:
|
|
return
|
|
hits -= 1
|
|
var tween = create_tween()
|
|
$Polygon2D.color = Color(1, 1, 1)
|
|
tween.tween_property($Polygon2D, "color", color, 0.25)
|
|
tween.tween_callback(_hitfade_done)
|
|
if hits <= 0:
|
|
brick_destroyed.emit(self)
|
|
|
|
func _hitfade_done() -> void:
|
|
if hits <= 0:
|
|
get_parent().remove_child(self)
|
|
queue_free()
|