Files
Thomas Lavocat cf1481047c lactase: rajout d'un nouvel item, la lactase
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.
2023-05-12 14:14:47 +02:00

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