project-dung/scripts/rover_game.gd

40 lines
894 B
GDScript

extends Spatial
signal game_over
signal got_treasure(item_type)
export var play_time: float = 20.0
const loot_table = {
#preload("res://")
}
var main: Node
var treasure := [] # is array of item_types
func _ready():
$Timer.start(play_time)
spawn_rocks(10)
func spawn_rocks(count: int):
var locations: Array = get_tree().get_nodes_in_group("rock_spawn_location")
locations.shuffle()
for i in range(min(count, locations.size())):
var location = locations[i]
var rock = preload("res://scenes/rock.tscn").instance()
location.add_child(rock)
func _on_collection_area_area_entered(area):
if area.has_meta("owner"):
area = area.get_meta("owner")
area.queue_free()
emit_signal("got_treasure", preload("res://item_types/ore.tres"))
func _process(delta):
$"%progress_bar".value = $Timer.time_left * 100.0 / $Timer.wait_time
func _on_Timer_timeout():
emit_signal("game_over")