class_name Cheese extends Area2D @onready var animation_player := $AnimationPlayer as AnimationPlayer @onready var sprite := $Sprite2D as Sprite2D @onready var timer := $Timer as Timer @export var CHEESE_RESPAWN_TIME : int = 1 enum KIND {BRIE, BREBIS, EMMENTAL, BLEU} @export var CHEESE_KIND : KIND = KIND.BRIE var cheese_strength : float = 1 var picked :bool = false func _ready() -> void: if CHEESE_KIND == KIND.BREBIS: cheese_strength = 2 sprite.set_region_rect(Rect2(Vector2(48, 16), Vector2(16, 16))) elif CHEESE_KIND == KIND.EMMENTAL: cheese_strength = 3 sprite.set_region_rect(Rect2(Vector2(16, 0), Vector2(16, 16))) elif CHEESE_KIND == KIND.BLEU: cheese_strength = 10 sprite.set_region_rect(Rect2(Vector2(48, 0), Vector2(16, 16))) else: cheese_strength = 1 sprite.set_region_rect(Rect2(Vector2(32, 0), Vector2(16, 16))) animation_player.speed_scale = cheese_strength /2 func _on_body_entered(body: Node2D) -> void: if not picked: animation_player.play(&"picked") (body as Princess).you_got_cheese(cheese_strength) picked = true # Le fromage peut être à utilisation unique if CHEESE_RESPAWN_TIME > 0: timer.start(CHEESE_RESPAWN_TIME) func _on_timer_timeout() -> void: timer.stop() animation_player.play(&"RESET") func _on_animation_player_animation_finished(anim_name: StringName) -> void: if anim_name == "RESET": animation_player.play(&"cheese") picked = false