No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

spawner.gd 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. extends Node2D
  2. export (Array,PackedScene) var scenes
  3. var random_scene = RandomNumberGenerator.new()
  4. var scene_index = 0;
  5. var last_object
  6. var end_of_game = false
  7. var spawner_enabled = false
  8. var timer_speed = 0.99
  9. var random_threshold = 50
  10. var scenes_offset = 0
  11. func _ready():
  12. Signals.connect("die",self,"game_over")
  13. Signals.connect("win",self,"game_over")
  14. func _on_Timer_timeout():
  15. if spawner_enabled:
  16. random_scene.randomize()
  17. scene_index = random_scene.randi_range(1,100)
  18. if(scene_index >= random_threshold):
  19. scene_index = 1
  20. else:
  21. scene_index = 0
  22. var tmp = scenes[scene_index+scenes_offset*2].instance()
  23. $items.add_child(tmp)
  24. last_object = tmp
  25. if(self.get_node("Timer").wait_time <= 1):
  26. self.get_node("Timer").wait_time = 1
  27. else:
  28. self.get_node("Timer").wait_time *= timer_speed
  29. self.get_node("Timer").start()
  30. func game_over():
  31. self.get_node("Timer").set_paused(true)
  32. last_object.queue_free()
  33. func start(difficulty, version):
  34. match difficulty:
  35. "easy":
  36. timer_speed = 0.99
  37. random_threshold = 50
  38. "hard":
  39. timer_speed = 0.95
  40. random_threshold = 33
  41. _:
  42. pass
  43. scenes_offset = version
  44. spawner_enabled = true
  45. self.get_node("Timer").set_paused(false)
  46. func stop():
  47. spawner_enabled = false
  48. for obj in $items.get_children():
  49. remove_child(obj)
  50. obj.queue_free()