1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- class_name Brick
- extends StaticBody2D
- signal kace_broken
- signal kace_damaged
- var life: int
- func setup(x: int, y: int, max_life: int):
- position.x = x * 40
- position.y = y * 20
- life = randi() % max_life + 1
- _refresh_look()
- func damage():
- life = life - 1
- emit_signal("kace_damaged")
- if life < 1:
- blow_up()
- else:
- _refresh_look()
- func blow_up():
- emit_signal("kace_broken")
- queue_free()
- func impact(pos: Vector2):
- damage()
- static func color_from_life(n: int) -> Color:
- var x = float(n % 256) / 255
- if n < 256:
- return Color(x, 1.0, 1.0 - x)
- elif n < 512:
- return Color(1.0, 1.0 - x, x)
- elif n < 768:
- return Color(1.0, 0.0, 1.0 - x)
- else:
- return Color(1.0, 0.0, 0.0)
- func _refresh_look() -> void:
- modulate = color_from_life(life)
- update() # For custom drawing
|