32 lines
794 B
GDScript
32 lines
794 B
GDScript
extends ToolItem
|
|
class_name Shovel
|
|
|
|
const USE_INTERVAL = 0.15
|
|
|
|
func can_use(player : Player) -> bool:
|
|
var areas = player.action_area.get_overlapping_areas()
|
|
for area in areas :
|
|
if area is Plant or area is UndergroundLoot:
|
|
return true
|
|
return false
|
|
|
|
func use(player : Player) -> bool:
|
|
if not can_use(player):
|
|
return false
|
|
|
|
dig(
|
|
player.action_area.get_overlapping_areas(),
|
|
player
|
|
)
|
|
|
|
return true
|
|
|
|
func dig(areas: Array[Area2D], player: Player):
|
|
for area in areas :
|
|
if area is Plant:
|
|
player.play_sfx("harvest")
|
|
area.harvest()
|
|
if area is UndergroundLoot:
|
|
player.play_sfx("dig")
|
|
area.dig()
|
|
await player.get_tree().create_timer(USE_INTERVAL).timeout |