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.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. onready var timer := $Timer
  12. onready var items := $items
  13. func _ready():
  14. Signals.connect("die",self,"game_over")
  15. Signals.connect("win",self,"game_over")
  16. func _on_Timer_timeout():
  17. if spawner_enabled:
  18. random_scene.randomize()
  19. scene_index = random_scene.randi_range(1,100)
  20. if(scene_index >= random_threshold):
  21. scene_index = 1
  22. else:
  23. scene_index = 0
  24. var tmp = scenes[scene_index+scenes_offset*2].instance()
  25. items.add_child(tmp)
  26. last_object = tmp
  27. if(timer.wait_time <= 1):
  28. timer.wait_time = 1
  29. else:
  30. timer.wait_time *= timer_speed
  31. timer.start()
  32. func game_over():
  33. timer.set_paused(true)
  34. #last_object.queue_free()
  35. func start(difficulty, version):
  36. match difficulty:
  37. "easy":
  38. timer_speed = 0.99
  39. random_threshold = 50
  40. "hard":
  41. timer_speed = 0.95
  42. random_threshold = 33
  43. _:
  44. pass
  45. scenes_offset = version
  46. spawner_enabled = true
  47. timer.set_paused(false)
  48. func stop():
  49. spawner_enabled = false
  50. for obj in $items.get_children():
  51. remove_child(obj)
  52. obj.queue_free()