CheckpointFlag.gd 1.1 KB

123456789101112131415161718192021222324252627282930
  1. extends Node2D
  2. @onready var sprite: AnimatedSprite2D = $"../Sprite"
  3. @onready var activated: AnimatedSprite2D = $"../Activated"
  4. static var character_save := "Mario"
  5. func _ready() -> void:
  6. activated.get_node("ResourceSetterNew").resource_json = load(get_character_sprite_path(0))
  7. if Settings.file.difficulty.checkpoint_style == 0 and (Global.current_game_mode != Global.GameMode.LEVEL_EDITOR and Global.current_game_mode != Global.GameMode.CUSTOM_LEVEL) or Global.current_campaign == "SMBANN":
  8. owner.queue_free()
  9. return
  10. owner.show()
  11. if Checkpoint.passed:
  12. sprite.hide()
  13. activated.show()
  14. func get_character_sprite_path(player_id := 0) -> String:
  15. var character = Player.CHARACTERS[int(Global.player_characters[player_id])]
  16. var path = "res://Assets/Sprites/Players/" + character + "/CheckpointFlag.json"
  17. if int(Global.player_characters[player_id]) > 3:
  18. path = path.replace("res://Assets/Sprites/Players", "user://custom_characters")
  19. return path
  20. func activate(player: Player) -> void:
  21. character_save = player.character
  22. sprite.play("Hit")
  23. await get_tree().physics_frame
  24. await sprite.animation_finished
  25. sprite.hide()
  26. activated.show()