diff --git a/addons/godotsteam/win64/~libgodotsteam.windows.template_debug.x86_64.dll b/addons/godotsteam/win64/~libgodotsteam.windows.template_debug.x86_64.dll
new file mode 100644
index 0000000..0812259
Binary files /dev/null and b/addons/godotsteam/win64/~libgodotsteam.windows.template_debug.x86_64.dll differ
diff --git a/common/game_data/scripts/progression_data.gd b/common/game_data/scripts/progression_data.gd
index 45db3bb..0451124 100644
--- a/common/game_data/scripts/progression_data.gd
+++ b/common/game_data/scripts/progression_data.gd
@@ -38,6 +38,11 @@ func get_all_mutations() -> Array[PlantMutation]:
GenerousMutation.new(),
ProtectiveMutation.new(),
PureMutation.new(),
+ CleaningMutation.new(),
+ ErmitMutation.new(),
+ TropicalMutation.new(),
+ RhizomeMutation.new(),
+ SpontaneousMutation.new()
]
func get_all_artifacts() -> Array[Artefact]:
diff --git a/common/icons/bug.svg b/common/icons/bug.svg
new file mode 100644
index 0000000..0ca8fd3
--- /dev/null
+++ b/common/icons/bug.svg
@@ -0,0 +1,23 @@
+
+
diff --git a/common/icons/bug.svg.import b/common/icons/bug.svg.import
new file mode 100644
index 0000000..996f628
--- /dev/null
+++ b/common/icons/bug.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ceoxyc8lxuqet"
+path="res://.godot/imported/bug.svg-30d611f322c5908f7609c3e1222553c7.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://common/icons/bug.svg"
+dest_files=["res://.godot/imported/bug.svg-30d611f322c5908f7609c3e1222553c7.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=2.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/common/icons/christmas-tree.svg b/common/icons/christmas-tree.svg
new file mode 100644
index 0000000..52140a9
--- /dev/null
+++ b/common/icons/christmas-tree.svg
@@ -0,0 +1,23 @@
+
+
diff --git a/common/icons/christmas-tree.svg.import b/common/icons/christmas-tree.svg.import
new file mode 100644
index 0000000..916745e
--- /dev/null
+++ b/common/icons/christmas-tree.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dofqju0k1nguf"
+path="res://.godot/imported/christmas-tree.svg-2d675a899996dc14dfea64e4ba2ac385.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://common/icons/christmas-tree.svg"
+dest_files=["res://.godot/imported/christmas-tree.svg-2d675a899996dc14dfea64e4ba2ac385.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=2.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/common/icons/cloud-rain.svg b/common/icons/cloud-rain.svg
index 0ee9f28..9ed1f69 100644
--- a/common/icons/cloud-rain.svg
+++ b/common/icons/cloud-rain.svg
@@ -1 +1,31 @@
-
\ No newline at end of file
+
+
diff --git a/common/icons/leaf.svg b/common/icons/leaf.svg
new file mode 100644
index 0000000..319c9cf
--- /dev/null
+++ b/common/icons/leaf.svg
@@ -0,0 +1,23 @@
+
+
diff --git a/common/icons/leaf.svg.import b/common/icons/leaf.svg.import
new file mode 100644
index 0000000..8c8f86f
--- /dev/null
+++ b/common/icons/leaf.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://koow6s66cvqk"
+path="res://.godot/imported/leaf.svg-64997ac177eb77fe732afcb627c1b7f7.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://common/icons/leaf.svg"
+dest_files=["res://.godot/imported/leaf.svg-64997ac177eb77fe732afcb627c1b7f7.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=2.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/common/icons/sparkles.svg b/common/icons/sparkles.svg
new file mode 100644
index 0000000..60c379d
--- /dev/null
+++ b/common/icons/sparkles.svg
@@ -0,0 +1,31 @@
+
+
diff --git a/common/icons/sparkles.svg.import b/common/icons/sparkles.svg.import
new file mode 100644
index 0000000..d4e351e
--- /dev/null
+++ b/common/icons/sparkles.svg.import
@@ -0,0 +1,43 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://djq2l8aun82ou"
+path="res://.godot/imported/sparkles.svg-916e1088ab60f75f5f1370971c1faf2d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://common/icons/sparkles.svg"
+dest_files=["res://.godot/imported/sparkles.svg-916e1088ab60f75f5f1370971c1faf2d.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
+svg/scale=2.0
+editor/scale_with_editor_scale=false
+editor/convert_colors_with_editor_theme=false
diff --git a/entities/plants/scripts/plant.gd b/entities/plants/scripts/plant.gd
index 4d11334..a007366 100644
--- a/entities/plants/scripts/plant.gd
+++ b/entities/plants/scripts/plant.gd
@@ -125,7 +125,8 @@ func calculate_plant_score(
func harvest():
var do_produce_seeds := true
for m in data.mutations:
- do_produce_seeds = do_produce_seeds && m.produce_seeds()
+ if m.nullify_seed_production():
+ do_produce_seeds = false
if do_produce_seeds:
for i in range(data.get_seed_number()):
@@ -156,13 +157,14 @@ func mature():
func die():
for m in data.mutations:
m._start_dead_effect(self)
-
+
var do_produce_seeds := true
for m in data.mutations:
- do_produce_seeds = do_produce_seeds && m.produce_seeds_on_maturation()
+ if m.nullify_seed_production():
+ do_produce_seeds = false
if do_produce_seeds:
- for i in range(data.get_seed_number()):
+ for i in range(data.get_seed_number(data.get_state())):
await produce_seed()
AudioManager.play_sfx("Harvest")
diff --git a/entities/plants/scripts/plant_data.gd b/entities/plants/scripts/plant_data.gd
index c20e4fa..bd9a847 100644
--- a/entities/plants/scripts/plant_data.gd
+++ b/entities/plants/scripts/plant_data.gd
@@ -70,6 +70,10 @@ func get_growing_time() -> int:
return max(1,growing_time)
func get_score(state: State = get_state()) -> int:
+ for m in mutations:
+ if m.nullify_score(self):
+ return 0
+
var score = get_plant_info().get_base_score() if state == State.MATURE else 0
var mult := 1.
diff --git a/entities/plants/scripts/plant_mutation.gd b/entities/plants/scripts/plant_mutation.gd
index c71ebf6..817d944 100644
--- a/entities/plants/scripts/plant_mutation.gd
+++ b/entities/plants/scripts/plant_mutation.gd
@@ -28,8 +28,8 @@ func get_mutation_name() -> String:
func mutate_plant_data(_plant_data: PlantData):
pass
-func has_score(_plant_data: PlantData) -> bool:
- return true
+func nullify_score(_plant_data: PlantData) -> bool:
+ return false
func mutate_score(_plant_data: PlantData, score: int) -> int:
return score
@@ -43,8 +43,8 @@ func mutate_lifetime(_plant_data: PlantData, lifetime: int) -> int:
func mutate_growing_time(_plant_data: PlantData, growing_time: int) -> int:
return growing_time
-func produce_seeds() -> bool:
- return true
+func nullify_seed_production() -> bool:
+ return false
func mutate_seed_number(_plant_data: PlantData, seed_number: int) -> int:
return seed_number
@@ -82,6 +82,9 @@ func get_level_for_rarity(rarity: int) -> int:
func get_rarity() -> int:
return get_base_rarity() + level - 1
+func is_max_level() -> bool:
+ return get_base_rarity() + level < MAX_RARITY
+
func card_info() -> CardInfo:
var info = CardInfo.new(
get_mutation_name(),
diff --git a/entities/plants/scripts/plant_mutation/cleaning_mutation.gd b/entities/plants/scripts/plant_mutation/cleaning_mutation.gd
index 9ccfac9..d7872f9 100644
--- a/entities/plants/scripts/plant_mutation/cleaning_mutation.gd
+++ b/entities/plants/scripts/plant_mutation/cleaning_mutation.gd
@@ -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
diff --git a/entities/plants/scripts/plant_mutation/cutting_mutation.sd.gd b/entities/plants/scripts/plant_mutation/cutting_mutation.sd.gd
index 6299b61..5e005d9 100644
--- a/entities/plants/scripts/plant_mutation/cutting_mutation.sd.gd
+++ b/entities/plants/scripts/plant_mutation/cutting_mutation.sd.gd
@@ -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
diff --git a/entities/plants/scripts/plant_mutation/energizing_mutation.gd b/entities/plants/scripts/plant_mutation/energizing_mutation.gd
deleted file mode 100644
index ba14194..0000000
--- a/entities/plants/scripts/plant_mutation/energizing_mutation.gd
+++ /dev/null
@@ -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
diff --git a/entities/plants/scripts/plant_mutation/energizing_mutation.gd.uid b/entities/plants/scripts/plant_mutation/energizing_mutation.gd.uid
deleted file mode 100644
index 8a09109..0000000
--- a/entities/plants/scripts/plant_mutation/energizing_mutation.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://byj1hq1w42i7
diff --git a/entities/plants/scripts/plant_mutation/ermit_mutation.gd b/entities/plants/scripts/plant_mutation/ermit_mutation.gd
index fe39683..a5d545d 100644
--- a/entities/plants/scripts/plant_mutation/ermit_mutation.gd
+++ b/entities/plants/scripts/plant_mutation/ermit_mutation.gd
@@ -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
diff --git a/entities/plants/scripts/plant_mutation/generous_mutation.gd b/entities/plants/scripts/plant_mutation/generous_mutation.gd
index 37007bf..78387bc 100644
--- a/entities/plants/scripts/plant_mutation/generous_mutation.gd
+++ b/entities/plants/scripts/plant_mutation/generous_mutation.gd
@@ -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:
diff --git a/entities/plants/scripts/plant_mutation/humide_mutation.gd.uid b/entities/plants/scripts/plant_mutation/humide_mutation.gd.uid
deleted file mode 100644
index b0503ac..0000000
--- a/entities/plants/scripts/plant_mutation/humide_mutation.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://beualsis6xc8a
diff --git a/entities/plants/scripts/plant_mutation/purification_mutation.gd b/entities/plants/scripts/plant_mutation/purification_mutation.gd
index 7845359..bedf091 100644
--- a/entities/plants/scripts/plant_mutation/purification_mutation.gd
+++ b/entities/plants/scripts/plant_mutation/purification_mutation.gd
@@ -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"
diff --git a/entities/plants/scripts/plant_mutation/rhizome_mutation.gd b/entities/plants/scripts/plant_mutation/rhizome_mutation.gd
index 9d03f69..0e97e5a 100644
--- a/entities/plants/scripts/plant_mutation/rhizome_mutation.gd
+++ b/entities/plants/scripts/plant_mutation/rhizome_mutation.gd
@@ -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
diff --git a/entities/plants/scripts/plant_mutation/solar_mutation.gd b/entities/plants/scripts/plant_mutation/solar_mutation.gd
index 5454716..0a6cf89 100644
--- a/entities/plants/scripts/plant_mutation/solar_mutation.gd
+++ b/entities/plants/scripts/plant_mutation/solar_mutation.gd
@@ -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")
diff --git a/entities/plants/scripts/plant_mutation/spontaneous_mutation.gd b/entities/plants/scripts/plant_mutation/spontaneous_mutation.gd
index a9293f0..aaeb0e3 100644
--- a/entities/plants/scripts/plant_mutation/spontaneous_mutation.gd
+++ b/entities/plants/scripts/plant_mutation/spontaneous_mutation.gd
@@ -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
diff --git a/entities/plants/scripts/plant_mutation/humide_mutation.gd b/entities/plants/scripts/plant_mutation/tropical_mutation.gd
similarity index 75%
rename from entities/plants/scripts/plant_mutation/humide_mutation.gd
rename to entities/plants/scripts/plant_mutation/tropical_mutation.gd
index 814005b..8bd5a3e 100644
--- a/entities/plants/scripts/plant_mutation/humide_mutation.gd
+++ b/entities/plants/scripts/plant_mutation/tropical_mutation.gd
@@ -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.,
})
diff --git a/entities/plants/scripts/plant_mutation/tropical_mutation.gd.uid b/entities/plants/scripts/plant_mutation/tropical_mutation.gd.uid
new file mode 100644
index 0000000..84aa524
--- /dev/null
+++ b/entities/plants/scripts/plant_mutation/tropical_mutation.gd.uid
@@ -0,0 +1 @@
+uid://c4ruhg7wg2kta
diff --git a/entities/player/inventory/scripts/items/seed.gd b/entities/player/inventory/scripts/items/seed.gd
index 1efe383..7973d32 100644
--- a/entities/player/inventory/scripts/items/seed.gd
+++ b/entities/player/inventory/scripts/items/seed.gd
@@ -180,20 +180,24 @@ static func generate_first_mutations(rarity := 0) -> Array[PlantMutation]:
var possible_mutation : PlantMutation = GameInfo.game_data.progression_data.get_available_mutations().filter(
func (m : PlantMutation): return m.get_base_rarity() <= rarity
- ).pick_random().duplicate_deep()
+ ).pick_random()
+
+ if possible_mutation:
+ possible_mutation = possible_mutation.duplicate_deep()
- var level_to_add = rarity - possible_mutation.get_base_rarity()
+ var level_to_add = rarity - possible_mutation.get_base_rarity()
- possible_mutation.level += level_to_add
+ possible_mutation.level += level_to_add
- return [possible_mutation]
+ return [possible_mutation]
+ return []
static func mutate_mutations(mutations : Array[PlantMutation], nearby_mutations : Array[PlantMutation]) -> Array[PlantMutation]:
var mutation_possibility : Array[MutationPossibility] = []
var evolvable_mutations : Array[PlantMutation] = mutations.filter(
- func (m : PlantMutation): return m.get_rarity() < PlantMutation.MAX_RARITY
+ func (m : PlantMutation): return not m.is_max_level()
)
if (
@@ -206,7 +210,7 @@ static func mutate_mutations(mutations : Array[PlantMutation], nearby_mutations
var chosen_mutation_possibility = mutation_possibility.pick_random()
- return chosen_mutation_possibility.mutate(mutations)
+ return chosen_mutation_possibility.mutate(mutations,nearby_mutations)
class MutationPossibility:
func mutate(_mutations : Array[PlantMutation], _nearby_mutations : Array[PlantMutation])-> Array[PlantMutation]:
diff --git a/translation/game/gui.csv b/translation/game/gui.csv
index 6797a20..6683f46 100644
--- a/translation/game/gui.csv
+++ b/translation/game/gui.csv
@@ -92,6 +92,16 @@ GENEROUS,Generous,Généreux
GENEROUS_EFFECT_TEXT,"When mature, add [b]{score_buff}[/b]{score_icon} to all nearby plants, but no longer make point","Si mature, ajoute [b]{score_buff}[/b]{score_icon} à toutes les plantes à proximité, mais ne génère plus de points"
PROTECTIVE,Protective,Protecteur
PROTECTIVE_EFFECT_TEXT,"Add [b]{lifetime_buff}[/b]{lifetime_icon} to all nearby plants","Ajoute [b]{lifetime_buff}[/b]{lifetime_icon} à toutes les plantes à proximité"
+CLEANING,Cleaning,Nettoyage
+CLEANING_EFFECT_TEXT,"At the end of its lifetime, create fertile zone in a radius of [b]{purification_radius}[/b]","À la fin de sa durée de vie, créée une zone fertile dans un rayon de [b]{purification_radius}[/b]"
+HERMIT,Hermit,Ermite
+HERMIT_EFFECT_TEXT,"Multiplies {score_icon} by [b]{score_multiplier}[/b] but make no points near other plants","Multiplie {score_icon} par [b]{score_multiplier}[/b] mais ne fait aucun point si à proximité d'autres plantes"
+TROPICAL,Tropical,Tropical
+TROPICAL_EFFECT_TEXT,Multiplies {score_icon} by [b]{score_multiplier}[/b] if the day is rainy (1/4 chance),"Multiplie {score_icon} par [b]{score_multiplier}[/b] s'il pleut (1 chance sur 4)"
+RHIZOME,Rhizome,Rhizome
+RHIZOME_EFFECT_TEXT,"On maturation, dig on a radius of {digging_radius} around","À la maturation, creuse sur un rayon de {digging_radius} autour"
+SPONTANEOUS,Spontaneous,Spontanée
+SPONTANEOUS_EFFECT_TEXT,Now produces seeds only on maturation,Produit maintenant des graines uniquement à la maturation
COST_%d_ENERGY,Cost %d energy,Coûte %d d'énergie
ONE_TIME_USE,Single use,Usage unique
BUILD_%s,Build %s,Construit %s