Files
seeding-planets/entities/plants/scripts/plant_mutation.gd
Zacharie Guet 83d462f2f4 changement du scene manager, amélioration du cockpit et autres
* refonte du scene manager
* refonte du audio manager
* premier rework des plantes
* nettoyage des dossiers/fichiers
* renommage de planète en region
* fix des run
2026-01-23 18:06:27 +01:00

97 lines
2.2 KiB
GDScript

extends Resource
class_name PlantMutation
@export var level : int = 1
func _init(_level : int = 1):
level = _level
func get_icon() -> Texture:
return preload("res://common/icons/dna.svg")
func get_base_rarity() -> int:
return 0
func get_mutation_name() -> String:
printerr("Classe abstraite PlantMutation appelée")
return ""
func get_mutation_description() -> String:
printerr("Classe abstraite PlantMutation appelée")
return ""
func mutate_plant_data(_plant_data : PlantData):
pass
func mutate_score(_plant_data : PlantData, score : int) -> int:
return score
func mutate_lifetime(_plant_data : PlantData, lifetime : int) -> int:
return lifetime
func mutate_growing_time(_plant_data : PlantData, growing_time : int) -> int:
return growing_time
func mutate_seed_number(_plant_data, seed_number):
return seed_number
func mutate_seed_random_loose(_plant_data, seed_random_loose):
return seed_random_loose
func _start_planted_effect(_plant : Plant):
pass
func _start_day_effect(_plant : Plant):
pass
func _start_maturation_effect(_plant : Plant):
pass
func _start_dead_effect(_plant : Plant):
pass
func _start_harvested_effect(_plant : Plant):
pass
func get_level_for_rarity(rarity : int) -> int :
return rarity - get_base_rarity() + 1
func get_rarity() -> int:
return get_base_rarity() + level - 1
func card_section() -> CardSectionInfo:
var section = CardSectionInfo.new(
get_mutation_name() + (" %d" % level if level > 1 else ""),
"[b]%s[/b] %s" % [tr(PlantMutation.get_rarity_text(get_rarity())), get_mutation_description()]
)
section.title_color = PlantMutation.get_rarity_color(get_rarity())
section.title_colored = true
section.title_icon = get_icon()
return section
static func get_rarity_text(rarity) -> String:
var rarity_text : Array[String] = [
"COMMON",
"RARE",
"VERY_RARE",
"IMPOSSIBLE",
"ABSURD",
]
if rarity < len(rarity_text):
return rarity_text[rarity]
else :
return rarity_text[len(rarity_text) - 1]
static func get_rarity_color(rarity : int) -> Color:
var rarity_colors : Array[Color] = [
Color("25C147"),
Color("8B2DFF"),
Color("FF006E"),
Color("FFA617"),
]
return rarity_colors[min(rarity, len(rarity_colors) - 1)]