Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

1 semana atrás
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. extends CanvasLayer
  2. signal button_click
  3. # Local imports
  4. @onready var click_target = $ClickTarget
  5. # Other scene imports
  6. @onready var messages = $"../Messages"
  7. #@onready var narration = $"../Messages/Narration"
  8. @onready var generators = $"../Generators"
  9. @onready var analyzers = $"../Analyzers"
  10. # Global variables
  11. @onready var line_thresholds = [1, 5, 10, 25, 75, 300]
  12. @onready var next_threshold: int
  13. @onready var autoclicker_cost: int = 10
  14. @onready var current_per_second_score: float = 0.0
  15. @onready var second_scores = []
  16. @export var energy_creator_click_value = 1
  17. @export var l1_generator_initial_cost = 10
  18. @export var l1_generator_click_value = 1
  19. @export var l1_analyzer_initial_cost = 25
  20. @export var l1_analyzer_click_cost = -1
  21. signal interface_ready
  22. signal score_update(value)
  23. # Called when the node enters the scene tree for the first time.
  24. func _ready():
  25. # SETUP
  26. # This is set in inspector options, but just in case.
  27. messages.narration.json_content = get_json_file_content(messages.narration.lines_file_path)
  28. click_target.buy_l1.visible = false
  29. click_target.buy_l1.text = "Add L1 Generator (costs " + str(generators.l1.cost) + ")"
  30. print("Emitting interface_ready signal.")
  31. interface_ready.emit()
  32. # Called every frame. 'delta' is the elapsed time since the previous frame.
  33. func _process(delta):
  34. pass
  35. func update_score(new_score):
  36. messages.score.update(new_score)
  37. if messages.score.total_score == 1:
  38. await get_tree().create_timer(0.5).timeout
  39. messages.message.show_message_by_id(2)
  40. await get_tree().create_timer(1).timeout
  41. messages.message.show_message_by_id(3)
  42. elif messages.score.total_score == 10:
  43. await get_tree().create_timer(0.5).timeout
  44. messages.message.show_message_by_id(4)
  45. await get_tree().create_timer(1).timeout
  46. messages.message.show_message_by_id(5)
  47. await get_tree().create_timer(1).timeout
  48. messages.message.show_message_by_id(6)
  49. await get_tree().create_timer(1).timeout
  50. messages.message.show_message_by_id(7)
  51. await get_tree().create_timer(1).timeout
  52. messages.message.show_message_by_id(8)
  53. await get_tree().create_timer(1).timeout
  54. click_target.buy_l1.visible = true
  55. messages.message.show_message_by_id(9)
  56. func _on_add_item_target_pressed():
  57. if messages.score.current_score < autoclicker_cost:
  58. pass
  59. else:
  60. generators.l1.click_value += 1
  61. if not generators.l1.l1_auto_display.visible:
  62. generators.l1.l1_auto_text.text = generators.l1.text1 + str(generators.l1.click_value) + "x" + generators.l1.text2
  63. generators.l1.l1_auto_display.show()
  64. generators.l1.start_clicking()
  65. messages.message.show_message_by_id(10)
  66. messages.score.update(0 - autoclicker_cost)
  67. autoclicker_cost = (autoclicker_cost * 1 + (generators.l1.click_value)) * 1.5
  68. click_target.buy_l1.text = "Buy Autoclicker (costs " + str(autoclicker_cost) + ")"
  69. func _on_sps_timer_timeout():
  70. if len(messages.score.prev_second_scores) >= 5:
  71. messages.score.prev_second_scores.pop_at(0)
  72. messages.score.prev_second_scores.append(messages.score.current_second_score)
  73. messages.score.current_second_score = 0
  74. var avg_score: float = messages.score.prev_second_scores.reduce(func(acc, c): return acc + c, 0)
  75. current_per_second_score = avg_score / len(messages.score.prev_second_scores)
  76. messages.sps.text = str(current_per_second_score) + " per second"
  77. messages.sps_timer.start()
  78. func get_text_file_content(file_path):
  79. var file = FileAccess.open(file_path, FileAccess.READ)
  80. var content = file.get_as_text()
  81. return content
  82. func get_json_file_content(file_path):
  83. var file = FileAccess.open(file_path, FileAccess.READ)
  84. var content = file.get_as_text()
  85. var json_content = JSON.parse_string(content)
  86. return json_content
  87. func _on_message_timer_timeout():
  88. pass # Replace with function body.
  89. func update_second_score(new_score):
  90. pass
  91. func _on_narration_end_introduction():
  92. click_target.energy_creator.visible = true
  93. func _on_energy_creator_pressed():
  94. messages.sps.visible = true
  95. update_score(energy_creator_click_value)
  96. func _on_buy_l_1_generator_pressed():
  97. update_score(l1_generator_initial_cost)
  98. func _on_buy_l_1_analyzer_pressed():
  99. update_score(l1_analyzer_initial_cost)