Ajout des mutation Nettoyage, Ermite, Tropicale, Rhizome et Spontanée

This commit is contained in:
2026-06-28 19:19:36 +02:00
parent 94dc231c01
commit 281f42d90c
29 changed files with 398 additions and 81 deletions

View File

@@ -2,7 +2,7 @@ extends PlantMutation
class_name CleaningMutation
func get_icon() -> Texture:
return preload("res://common/icons/alert-triangle.svg")
return preload("res://common/icons/bug.svg")
func get_mutation_id() -> String:
return "CLEANING"
@@ -22,4 +22,4 @@ func _start_dead_effect(plant: Plant):
))
func get_purification_radius() -> int:
return level + 1 # one more than purification
return level * 2

View File

@@ -20,10 +20,12 @@ func get_mutation_description() -> String:
func _start_day_effect(plant: Plant):
var cut_left := get_cutable_per_day()
for p in plant.data.nearby_plants:
if cut_left > 0 && p.is_mature():
p.harvest()
cut_left -= 1
# Ne fonctionnera pas, nearby plants c'est des plantData donc on peut pas faire d'action dessus
# for p in plant.data.nearby_plants:
# if cut_left > 0 && p.is_mature():
# p.harvest()
# cut_left -= 1
func get_cutable_per_day() -> int:
return level

View File

@@ -1,25 +0,0 @@
extends PlantMutation
class_name EnergizingMutation
func get_icon() -> Texture:
return preload("res://common/icons/alert-triangle.svg")
func get_base_rarity() -> int:
return 1
func get_mutation_id() -> String:
return "ENERGIZING"
func get_mutation_name() -> String:
return tr("ENERGIZING")
func get_mutation_description() -> String:
return tr("ENERGIZING_EFFECT_TEXT").format({
"bonus_energy": get_bonus_energy()
})
func _start_dead_effect(plant: Plant):
plant.region.player.data.energy += get_bonus_energy()
func get_bonus_energy() -> int:
return level

View File

@@ -1 +0,0 @@
uid://byj1hq1w42i7

View File

@@ -2,26 +2,27 @@ extends PlantMutation
class_name ErmitMutation
func get_icon() -> Texture:
return preload("res://common/icons/alert-triangle.svg")
return preload("res://common/icons/christmas-tree.svg")
func get_mutation_id() -> String:
return "ERMIT"
return "HERMIT"
func get_mutation_name() -> String:
return tr("ERMIT")
return tr("HERMIT")
func get_mutation_description() -> String:
return tr("ERMIT_EFFECT_TEXT").format(
return tr("HERMIT_EFFECT_TEXT").format(
{
"score_increase": get_score_increase(),
"score_icon": Text.bbcode_icon(Plant.SCORE_ICON),
"score_multiplier": get_score_multiplier() + 1.0,
}
)
func has_score(plant_data: PlantData) -> bool:
return false if plant_data.nearby_plants.size() > 0 else true
func nullify_score(plant_data: PlantData) -> bool:
return true if len(plant_data.nearby_plants) > 0 else false
func mutate_score(plant_data: PlantData, score: int) -> int:
return score + get_score_increase() if plant_data.nearby_plants.size() == 0 else 0
func mutate_score_multiplier(_plant_data: PlantData, multiplier: float) -> float:
return multiplier + get_score_multiplier()
func get_score_increase():
return 2 * level
func get_score_multiplier()->float:
return level

View File

@@ -16,8 +16,8 @@ func get_mutation_description() -> String:
"score_icon": Text.bbcode_icon(Plant.SCORE_ICON)
})
func mutate_score_multiplier(_pd: PlantData, _m: float) -> float:
return 0
func nullify_score(_plant_data: PlantData) -> bool:
return true
func mutate_score_buff(plant_data: PlantData, score_buff : int) -> int:
if plant_data.get_state() == PlantData.State.MATURE:

View File

@@ -1 +0,0 @@
uid://beualsis6xc8a

View File

@@ -2,7 +2,7 @@ extends PlantMutation
class_name PurificationMutation
func get_icon() -> Texture:
return preload("res://common/icons/droplet.svg")
return preload("res://common/icons/leaf.svg")
func get_mutation_id() -> String:
return "PURIFICATION"

View File

@@ -1,8 +1,10 @@
extends PlantMutation
class_name RhizomeMutation
const DIG_PARTICLES := preload("res://entities/player/inventory/scripts/items/utils/dig_particles.tscn")
func get_icon() -> Texture:
return preload("res://common/icons/alert-triangle.svg")
return preload("res://common/icons/pick.svg")
func get_mutation_id() -> String:
return "RHIZOME"
@@ -16,7 +18,17 @@ func get_mutation_description() -> String:
})
func _start_maturation_effect(plant: Plant):
plant.region.dig_hole(plant.global_position, get_digging_radius())
plant.region.dig_rocks(
Math.get_tiles_in_circle(
plant.global_position,
get_digging_radius() * (Region.TILE_SIZE + Region.TILE_SIZE / 2.)
)
)
var particles := (DIG_PARTICLES.instantiate() as DigParticleEmmitter)
plant.region.add_child(particles)
particles.global_position = plant.get_global_position()
particles.emit()
func get_digging_radius() -> int:
return level

View File

@@ -1,6 +1,8 @@
extends PlantMutation
class_name SolarMutation
# Du coup on va probablement pas la mettre celle là
func get_icon() -> Texture:
return preload("res://common/icons/alert-triangle.svg")

View File

@@ -2,10 +2,13 @@ extends PlantMutation
class_name SpontaneousMutation
func get_icon() -> Texture:
return preload("res://common/icons/droplet.svg")
return preload("res://common/icons/sparkles.svg")
func get_base_rarity() -> int:
return 1
return 0
func is_max_level() -> bool:
return true
func get_mutation_id() -> String:
return "SPONTANEOUS"
@@ -14,19 +17,12 @@ func get_mutation_name() -> String:
return tr("SPONTANEOUS")
func get_mutation_description() -> String:
return tr("SPONTANEOUS_EFFECT_TEXT").format({
"bonus_seed": get_bonus_seed()
})
return tr("SPONTANEOUS_EFFECT_TEXT")
func produce_seeds() -> bool:
return false
func mutate_seed_number(_plant_data: PlantData, seed_number: int) -> int:
return seed_number + get_bonus_seed()
func nullify_seed_production() -> bool:
return true
func _start_maturation_effect(plant: Plant):
for i in range(plant.data.get_seed_number()):
await plant.produce_seed()
func get_bonus_seed() -> int:
return level - 1

View File

@@ -1,17 +1,17 @@
extends PlantMutation
class_name HumideMutation
class_name TropicalMutation
func get_icon() -> Texture:
return preload("res://common/icons/shield.svg")
return preload("res://common/icons/cloud-rain.svg")
func get_mutation_id() -> String:
return "HUMIDE"
return "TROPICAL"
func get_mutation_name() -> String:
return tr("HUMIDE")
return tr("TROPICAL")
func get_mutation_description() -> String:
return tr("HUMIDE_EFFECT_TEXT").format({
return tr("TROPICAL_EFFECT_TEXT").format({
"score_icon": Text.bbcode_icon(Plant.SCORE_ICON),
"score_multiplier": get_score_multiplier() + 1.,
})

View File

@@ -0,0 +1 @@
uid://c4ruhg7wg2kta