 cf1481047c
			
		
	
	cf1481047c
	
	
	
		
			
			Cet item supprime les vents de la princesse en lui permettant d'immédiatement digérer le lactose. Ce qui a pour effet de couper son dash en cours et de lui vider les intestincs. J'ai rajouté plein d'éléments dans le niveau numéro deux pour tester ça. Addition supplémentaires: - le fromage peut être de différentes couleurs avec pour conséquences différentes intensités. Ce qui a pour effet de recharger plus ou moins vite la jauge de pét. - J'ai rajouté une passerelle à sens unique qui permet de créer un petit point de non retour, j'aimerai bien aussi l'avoir à la verticale, mais pour le moment, je n'y arrive pas.
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			GDScript
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			GDScript
		
	
	
	
	
	
| 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
 |