SpinningRedCoin.gd 881 B

12345678910111213141516171819202122232425262728
  1. extends Node2D
  2. var velocity := Vector2(0, -300)
  3. var id := 0
  4. const collection_sounds := [preload("uid://drr1qqeuhmv6m"), preload("uid://de1tktivtggdv"), preload("uid://cdtlca36qsba5"), preload("uid://dd47k4c5sypwp"), preload("uid://chi2nogc2op4i")]
  5. var already_collected := false
  6. func _ready() -> void:
  7. already_collected = ChallengeModeHandler.is_coin_collected(id)
  8. if already_collected == false:
  9. ChallengeModeHandler.red_coins += 1
  10. AudioManager.play_sfx(collection_sounds[ChallengeModeHandler.red_coins - 1], global_position)
  11. else:
  12. set_visibility_layer_bit(0, false)
  13. AudioManager.play_sfx("coin", global_position, 2)
  14. $Sprite.play("Collected")
  15. Global.score += 200
  16. ChallengeModeHandler.set_value(id, true)
  17. func _physics_process(delta: float) -> void:
  18. global_position += velocity * delta
  19. velocity.y += (15 / delta) * delta
  20. func vanish() -> void:
  21. queue_free()