Dev de la démo

* Modification de l'apparence de l'UI des dialogues
* Changement de l'ordre de déblocage des mutations
* Ajout d'une confirmation pour l'abandon
* Ajout de la scène de fin avec la base Boréa, en tant que fin de démo
* Modification des icône de durée de vie, temps de pousse, et de mort
* Ajout d'un icône au dessus du joueur quand il n'a plus d'énergie
* Amélioration des dialogues du jeu
* Changement du modèle du téléphone
* Ajout de cellule d'énergie et de cellule de talion trouvable sur la carte
* Il est à nouveau possible de se recharger après la fin d'une région
* Buff des mutations ancien sociale et solide
* Modification de la mutation fertile (ne donne de gain de graine qu'à la maturation)
* Ajout d'une récupération automatique des graines
* Ajout de deux cartons de tutoriel ainsi qu'une option pour les revoir dans l'aide de jeu
* Amélioration générale du tutoriel
* Ajout d'un écran titre digne de ce nom
* Lors de l'arrivée à destination, ne téléporte plus le joueur sur une map vide, mais directement dans les lieux de cinématique
* Ajout graphique de plus de pattern de mousse et de roche
* Le talion apparait maintenant sur toute la carte
* La roche peut désormais apparaitre sur la zone de départ
* Ajout dud modificateur de région Canyon
* Equilibrage général
* Fix de bugs en tout genre
This commit is contained in:
2026-05-27 19:13:32 +02:00
parent 7764943714
commit 7b09f2ba7c
289 changed files with 8802 additions and 1520 deletions

View File

@@ -9,10 +9,10 @@ const HARVESTED_SEED_DISPLACEMENT_FACTOR = 100
const RANDOM_MAX_GROW_INTERVAL = Region.MIN_PASS_DAY_ANIMATION_TIME/2. - 0.1
const PLANT_TYPE_ICON = preload("res://common/icons/seedling.svg")
const SCORE_ICON = preload("res://common/icons/growth.svg")
const DURATION_ICON = preload("res://common/icons/calendar-week.svg")
const DURATION_ICON = preload("res://common/icons/clock.svg")
const SHOVEL_ICON = preload("res://common/icons/shovel.svg")
const GROWING_ICON = preload("res://common/icons/chevrons-up.svg")
const LIFETIME_ICON= preload("res://common/icons/clock.svg")
const GROWING_ICON = preload("res://common/icons/clock-up.svg")
const LIFETIME_ICON= preload("res://common/icons/clock-death.svg")
const SEED_ICON = preload("res://common/icons/seeds.svg")
const SPRITE_SCENE : PackedScene = preload("res://entities/plants/plant_sprite.tscn")

View File

@@ -67,12 +67,12 @@ func get_growing_time() -> int:
for m in mutations:
growing_time = m.mutate_growing_time(self , growing_time)
return growing_time
return max(1,growing_time)
func get_score(state: State = get_state()) -> int:
var score = get_plant_info().get_base_score() if state == State.MATURE else 0
var mult := 1
var mult := 1.
for m in mutations:
score = m.mutate_score(self , score)
@@ -81,7 +81,7 @@ func get_score(state: State = get_state()) -> int:
for pd in nearby_plants:
score += pd.get_score_buff()
return max(0,score) * max(0,mult)
return ceili(max(0,score) * max(0,mult))
func get_state() -> State:
if day >= get_lifetime():

View File

@@ -2,6 +2,8 @@
extends Resource
class_name PlantMutation
const MAX_RARITY = 6
@export var level: int = 1
var id: String: get = get_mutation_id
@@ -29,7 +31,7 @@ func mutate_plant_data(_plant_data: PlantData):
func mutate_score(_plant_data: PlantData, score: int) -> int:
return score
func mutate_score_multiplier(_plant_data: PlantData, multiplier: int) -> int:
func mutate_score_multiplier(_plant_data: PlantData, multiplier: float) -> float:
return multiplier
func mutate_lifetime(_plant_data: PlantData, lifetime: int) -> int:
@@ -118,10 +120,11 @@ static func get_rarity_text(rarity) -> String:
static func get_rarity_color(rarity: int) -> Color:
var rarity_colors: Array[Color] = [
Color("2364AA"),
Color("25C147"),
Color("8B2DFF"),
Color("FF006E"),
Color("25c147"),
Color("00c6ca"),
Color("8b2dff"),
Color("ff006e"),
Color("ff5427"),
Color("FFA617"),
]

View File

@@ -2,7 +2,7 @@
extends PlantMutation
class_name AncientMutation
const DEFAULT_DAY_FACTOR = 4
const DEFAULT_DAY_FACTOR = 3
func get_icon() -> Texture:
return preload("res://common/icons/wood.svg")

View File

@@ -21,11 +21,15 @@ func get_mutation_description() -> String:
"score_icon": Text.bbcode_icon(Plant.SCORE_ICON),
})
func mutate_seed_buff(_plant_data: PlantData, seed_buff) -> int:
return seed_buff + get_seed_buff()
func mutate_seed_buff(data: PlantData, seed_buff) -> int:
if data.get_state() == PlantData.State.MATURE:
return seed_buff + get_seed_buff()
return seed_buff
func mutate_score(_plant_data: PlantData, score: int) -> int:
return score + get_score_change()
func mutate_score(data: PlantData, score: int) -> int:
if data.get_state() == PlantData.State.MATURE:
return score + get_score_change()
return score
func get_seed_buff():
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(plant_data: PlantData, multiplier: int) -> int:
return multiplier - 1
func mutate_score_multiplier(_pd: PlantData, _m: float) -> float:
return 0
func mutate_score_buff(plant_data: PlantData, score_buff : int) -> int:
if plant_data.get_state() == PlantData.State.MATURE:

View File

@@ -2,7 +2,7 @@ extends PlantMutation
class_name ProlificMutation
func get_icon() -> Texture:
return preload("res://common/icons/droplets.svg")
return preload("res://common/icons/seeds.svg")
func get_mutation_id() -> String:
return "PROLIFIC"

View File

@@ -16,7 +16,7 @@ func get_mutation_description() -> String:
"score_multiplier": get_score_multiplier() + 1,
})
func mutate_score_multiplier(plant_data: PlantData, multiplier: int) -> int:
func mutate_score_multiplier(plant_data: PlantData, multiplier: float) -> float:
if plant_data.decontamination_area_factor == 1.0:
return multiplier + get_score_multiplier()
return multiplier

View File

@@ -1,7 +1,7 @@
extends PlantMutation
class_name SocialMutation
const DEFAULT_PLANT_BY_POINT = 4
const DEFAULT_PLANT_BY_POINT = 3
func get_icon() -> Texture:
return preload("res://common/icons/users-group.svg")

View File

@@ -13,19 +13,19 @@ func get_mutation_name() -> String:
func get_mutation_description() -> String:
return tr("TOUGH_EFFECT_TEXT").format({
"score_icon": Text.bbcode_icon(Plant.SCORE_ICON),
"score_multiplier": get_score_multiplier(),
"score_multiplier": get_score_multiplier() + 1.,
"growing_time": get_growing_time_increase(),
"growing_icon": Text.bbcode_icon(Plant.GROWING_ICON)
})
func mutate_score_multiplier(_plant_data: PlantData, multiplier: int) -> int:
return multiplier * get_score_multiplier()
func mutate_score_multiplier(_plant_data: PlantData, multiplier: float) -> float:
return multiplier + get_score_multiplier()
func mutate_growing_time(_plant_data: PlantData, growing_time: int) -> int:
return maxi(0, growing_time + get_growing_time_increase())
return growing_time + maxi(0, get_growing_time_increase())
func get_growing_time_increase()->int:
return 4 - level
func get_score_multiplier()->int:
return 2
func get_score_multiplier()->float:
return 0.5 * level