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:
Thomas Lavocat
2023-05-12 14:11:34 +02:00
parent 66c95c7380
commit cf1481047c
14 changed files with 1194 additions and 226 deletions

View File

@@ -50,8 +50,10 @@ var DASH_SPEED = WALKING_SPEED * 2
@export var MAX_FARTS : int = 3
signal cheese_collected() # utilisé pour remplir le HUD qui apelera
signal cheese_collected(speed:float) # utilisé pour remplir le HUD qui apelera
# ensuite la fonction reload_fart quand il aura fini
signal lactase_collected() # utilisé pour vider le HUD qui apelera
# ensuite la fonction kill_farts quand il aura fini
signal dash_fart() # utilisé pour vider le HUD
signal princesse_is_dead() # signal au jeu de recharger la scene
@@ -389,6 +391,8 @@ func read_input() -> void:
kick_direction = 1
else:
kick_direction = -1
if not coyote_grab[-1]:
kick_direction *= -1
# Dès qu'il peut et veut sauter, déclencher le saut
if need_jump and (is_on_floor() or get_coyote(coyote_ground)):
need_jump = false
@@ -425,16 +429,16 @@ func read_input() -> void:
# Le joueur veut-il et peut-il s'accrocher au mur ?
if pressing_wall:
if not grab_wall:
if not grab_wall :
grab_wall = (
(pressing_wall_left and (
walking or kicking or dashing
) and direction == -1)
or
(pressing_wall_right and (
walking or kicking or dashing
) and direction == 1)
abs(velocity.x) > 0 and
(
(pressing_wall_left and direction == -1)
or
(pressing_wall_right and direction == 1)
)
)
else:
grab_wall = false
@@ -546,18 +550,27 @@ func _physics_process(_delta: float) -> void:
move_and_handle_collisions()
play_animation()
func you_got_cheese() -> void:
cheese_collected.emit()
func you_got_cheese(speed:float=1) -> void:
cheese_collected.emit(speed)
func reload_fart() -> void:
available_dashs = min(available_dashs+1, MAX_FARTS)
Input.start_joy_vibration(0, 0, 1, 0.2)
func you_got_lactase() -> void:
lactase_collected.emit()
kill_farts()
func kill_farts() -> void:
available_dashs = 0
cancel_dash()
Input.start_joy_vibration(0, 0.5, 0, 0.1)
func death() -> void:
if not dead:
print("death")
locked = true
Input.start_joy_vibration(0, 1, 1, 1)
Input.start_joy_vibration(0, 1,0.7, 1)
self.rotation = 90
dead = true
death_animation.play(&"death")