A team game with an emphasis on movement (with no shooting), inspired by Overwatch and Zineth
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.

54 lines
1.3 KiB

  1. extends "res://scripts/player.gd"
  2. var time = 0
  3. func _ready():
  4. ._ready()
  5. read_recording()
  6. print(recording.spawn)
  7. set_translation(recording.spawn)
  8. func _physics_process(delta):
  9. time += delta
  10. play_keys()
  11. func read_recording():
  12. # Gather all existing recordings
  13. var possible = []
  14. var begin = "%d-%d" % [player_info.level, player_info.hero]
  15. var path = "res://recordings/"
  16. var dir = Directory.new()
  17. dir.open(path)
  18. dir.list_dir_begin()
  19. while true:
  20. var fname = dir.get_next()
  21. print(fname)
  22. if fname == "":
  23. # Indicates end of directory
  24. break
  25. if fname.begins_with(begin):
  26. possible.append(fname)
  27. dir.list_dir_end()
  28. # Now pick a random one
  29. var fname = possible[randi() % possible.size()]
  30. # Read the file into recording.events for later use
  31. var frec = File.new()
  32. frec.open(path + fname, File.READ)
  33. recording = parse_json(frec.get_as_text())
  34. print(recording.events)
  35. frec.close()
  36. func play_keys():
  37. # events[0] is first event
  38. # events[0][0] is first event's TIME
  39. while float(recording.events[0][0]) <= time:
  40. # events[0][1] is first event's EVENT2
  41. var event_obj = recording.events.pop_front()[1]
  42. print(event_obj)
  43. var event = obj_to_event(event_obj)
  44. Input.parse_input_event(event)
  45. #._input(event)
  46. #get_node("TPCamera")._input(event)