فهرست منبع

:tada: Ajoute pouvoir ralentissement

DricomDragon 10 ماه پیش
والد
کامیت
37ce39e9ba

+ 8 - 0
godot/composants/objets/balle/balle.gd

@@ -34,6 +34,12 @@ func _physics_process(delta: float) -> void:
 		_impacter_brique(obstacle)
 
 
+func ralentir(diviseur: float) -> void:
+	assert(diviseur > 1.0, "Valeur diviseur invalide pour ralentir")
+	_vitesse /= diviseur
+	_mettre_en_mouvement(_mouvement.normalized())
+
+
 ## Recopie les proprietes utiles de l'autre balle
 func recopier(autre_balle: Balle) -> void:
 	position = autre_balle.position
@@ -72,5 +78,7 @@ func _impacter_brique(brique: Brique) -> void:
 	brique.frapper(1)
 
 
+## Permet d'appliquer la vitesse dans la direction voulue
+## si la direction est inchangée, donnez _mouvement.normalized()
 func _mettre_en_mouvement(dir: Vector2) -> void:
 	_mouvement = dir * _vitesse

+ 2 - 0
godot/composants/objets/brique/brique.gd

@@ -52,6 +52,8 @@ func _associe_texture_brique(nouveau_type_pouvoir: Pouvoir.Type) -> void:
 			_texture_brique = preload("res://composants/objets/brique/images/43.png")
 		Pouvoir.Type.VIE:
 			_texture_brique = preload("res://composants/objets/brique/images/44.png")
+		Pouvoir.Type.RALENTIR:
+			_texture_brique = preload("res://composants/objets/brique/images/08.png")
 		_:
 			_texture_brique = preload("res://composants/objets/brique/images/34.png")
 	_montrer_type_pouvoir()

+ 3 - 0
godot/composants/pouvoirs/commun/association_pouvoirs.gd

@@ -5,6 +5,7 @@ enum Type {
 	AUCUN, # si pas de pouvoir, laisser en premier
 	FEU,
 	VIE,
+	RALENTIR,
 	BONJOUR # laisser en dernier
 }
 
@@ -17,6 +18,8 @@ static func fabriquer(type: Type): # -> PouvoirBase
 			return PouvoirFeu.new()
 		Type.VIE:
 			return VieBonus.new()
+		Type.RALENTIR:
+			return RalentirPouvoir.new()
 		Type.AUCUN:
 			return null
 		_:

+ 13 - 0
godot/composants/pouvoirs/pouvoir_ralentir.gd

@@ -0,0 +1,13 @@
+class_name RalentirPouvoir
+extends PouvoirBase
+## Pouvoir qui ralentit toutes les balles
+
+
+func declencher_pouvoir(arbre_scene: SceneTree) -> void:
+	for balle in arbre_scene.get_nodes_in_group("groupe_des_balles"):
+		assert(balle is Balle, "Le groupe_des_balles ne doit contenir que des Balle !")
+		balle.ralentir(3.0)
+
+
+func couleur_principale() -> Color:
+	return Color.WEB_GREEN

+ 5 - 1
godot/exec/niveaux/blob_facile.tscn

@@ -29,6 +29,7 @@ script = ExtResource("3_gl2a7")
 
 [node name="Brique1" parent="Briques" instance=ExtResource("4_nhi56")]
 position = Vector2(150, 112)
+pouvoir_type = 2
 
 [node name="Brique2" parent="Briques" instance=ExtResource("4_nhi56")]
 position = Vector2(180, 112)
@@ -50,7 +51,7 @@ position = Vector2(180, 128)
 
 [node name="Brique8" parent="Briques" instance=ExtResource("4_nhi56")]
 position = Vector2(210, 128)
-pouvoir_type = 2
+pouvoir_type = 3
 
 [node name="Brique9" parent="Briques" instance=ExtResource("4_nhi56")]
 position = Vector2(240, 128)
@@ -60,6 +61,7 @@ position = Vector2(270, 128)
 
 [node name="Brique11" parent="Briques" instance=ExtResource("4_nhi56")]
 position = Vector2(150, 144)
+pouvoir_type = 2
 
 [node name="Brique12" parent="Briques" instance=ExtResource("4_nhi56")]
 position = Vector2(180, 144)
@@ -72,12 +74,14 @@ position = Vector2(240, 144)
 
 [node name="Brique15" parent="Briques" instance=ExtResource("4_nhi56")]
 position = Vector2(270, 112)
+pouvoir_type = 2
 
 [node name="Brique16" parent="Briques" instance=ExtResource("4_nhi56")]
 position = Vector2(300, 128)
 
 [node name="Brique17" parent="Briques" instance=ExtResource("4_nhi56")]
 position = Vector2(270, 144)
+pouvoir_type = 2
 
 [node name="Arene" parent="." instance=ExtResource("5_jfp2p")]
 metadata/_edit_lock_ = true