AchievementUnlockPopup.gd 883 B

12345678910111213141516171819202122232425
  1. extends Control
  2. signal finished
  3. func show_popup(achievements: Array) -> void:
  4. var idx := 0
  5. $Control/Panel/MarginContainer/VBoxContainer/Label.text = "NEW ACHIEVEMENT!" if achievements.size() == 1 else "NEW ACHIEVEMENTS!"
  6. for i in [%Icon, %Icon2, %Icon3, %Icon4]:
  7. i.hide()
  8. i.visible = achievements.size() > idx
  9. if idx == 3 and achievements.size() > 4:
  10. i.hide()
  11. %Extra.show()
  12. %Extra.text = "+" + str(achievements.size() - 3)
  13. if i.visible:
  14. i.region_rect = Rect2(AchievementContainer.ICON_RECTS[achievements[idx]] * 32, Vector2(32, 32))
  15. idx += 1
  16. %AchievementName.visible = achievements.size() == 1
  17. %AchievementName.text = AchievementContainer.ACHIEVEMENT_NAMES[achievements[0]]
  18. if %AchievementName.text.length() > 16:
  19. $AnimationPlayer.play("AppearLong")
  20. else:
  21. $AnimationPlayer.play("Appear")
  22. await $AnimationPlayer.animation_finished
  23. finished.emit()