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.
This commit is contained in:
48
items/cheese.gd
Normal file
48
items/cheese.gd
Normal file
@@ -0,0 +1,48 @@
|
||||
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
|
||||
Reference in New Issue
Block a user