z-hack/src/Main.gd

68 lines
1.6 KiB
GDScript

extends Node2D
export(PackedScene) var zombie_scene
export(PackedScene) var relic_scene
var relics = []
var relic_left = 0
var debug = 1
func add_zombie():
var zombie = zombie_scene.instance()
zombie.set_player($Player)
zombie.position = $TileMap.random_valid_safe_position($Player.position, "ground")
zombie.connect("hit", self, 'player_got_hit')
add_child(zombie)
func add_relics():
relic_left += 1
var relic = relic_scene.instance()
var relic_position = Vector2.ZERO
var found_position = 0
# avoid spawning a relic too close to another one
while found_position == 0:
found_position = 1
relic_position = $TileMap.random_valid_position("ground")
for r in relics:
if r.position.distance_to(relic_position) < 10*32:
found_position = 0
break
relic.position = relic_position
relic.connect("relic", self, 'score_increase')
relics.append(relic)
add_child(relic)
func _ready():
VisualServer.set_default_clear_color(Color(0.0,0.0,0.0,1.0))
randomize()
$Darkness.visible = true
for tile in $TileMap.add_light_campfire():
var light = preload("res://Campfire_Light.tscn").instance()
light.position = tile
add_child(light)
for i in 8:
add_relics()
$Player.relic_left(relic_left)
var random_pos = $TileMap.random_valid_position("ground")
$Player.position = random_pos
func _on_SpawnEnemy_timeout():
add_zombie()
func player_got_hit():
$Player.player_die()
func score_increase():
print("found a relic")
relic_left -= 1
$Player.relic_left(relic_left)
$Player.light_increase()
print("still " + str(relic_left) + " to find")
func _on_Player_restart():
get_tree().change_scene(get_tree().current_scene.filename)