* Structure de l'histoire principale
* Line sur le perso principal
* Agrandissement de la zone de détection des cellules
* Ajout du spray de Talion (+1 points de plante de base)
* Ajout de feedback sur l'usage des cellules d'énergie
This commit is contained in:
2026-07-06 23:05:39 +02:00
parent d0446e8826
commit 22b753c6a9
78 changed files with 1464 additions and 208 deletions

View File

@@ -0,0 +1,71 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cbfoonpkmmva8"
path="res://.godot/imported/talion_spray.blend-3cc293a04161d1f6f5e9c094a05903f8.scn"
[deps]
source_file="res://common/game_data/scripts/artefacts/talion_spray/talion_spray.blend"
dest_files=["res://.godot/imported/talion_spray.blend-3cc293a04161d1f6f5e9c094a05903f8.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
mesh_library/use_node_names_as_mesh_names=false
array_mesh/deduplicate_surfaces=true
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={
"materials": {
"Material": {
"use_external/enabled": true,
"use_external/fallback_path": "res://common/assets/materials/default_3d.tres",
"use_external/path": "uid://dvvi1k5c5iowc"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/vertex_colors=1
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2
gltf/texture_map_mode=1

View File

@@ -0,0 +1,14 @@
extends Artefact
class_name TalionSprayArtifact
func get_artefact_name() -> String:
return "TALION_SPRAY"
func get_artefact_desc() -> String:
return "TALION_SPRAY_DESC_TEXT"
func get_3d_scene() -> PackedScene:
return preload("res://common/game_data/scripts/artefacts/talion_spray/talion_spray.blend")
func modify_plant_base_score(plant_base_score : int) -> int:
return plant_base_score + 1

View File

@@ -0,0 +1 @@
uid://2eo5lucwktg4

View File

@@ -27,3 +27,15 @@ func unlock_new_mutation() -> PlantMutation:
func get_available_mutations() -> Array[PlantMutation]:
return get_all_mutations()
func set_best_run(v := best_run):
if best_run < 10 and v == 10:
SteamConnection.unlock_achievement(SteamConnection.ACH_STW_HIT_10_INFINITE)
if best_run < 20 and v == 20:
SteamConnection.unlock_achievement(SteamConnection.ACH_STW_HIT_20_INFINITE)
if best_run < 30 and v == 30:
SteamConnection.unlock_achievement(SteamConnection.ACH_STW_HIT_30_INFINITE)
best_run = v

View File

@@ -3,7 +3,7 @@ extends Resource
class_name ProgressionData
@export var run_number : int = 0
@export var best_run : int = 0
@export var best_run : int = 0 : set = set_best_run
@abstract func get_story_step() -> StoryStep
@@ -21,6 +21,9 @@ class_name ProgressionData
@abstract func unlock_new_mutation() -> PlantMutation
func set_best_run(v := best_run):
best_run = v
func get_all_mutations() -> Array[PlantMutation]:
return [
QualityMutation.new(),
@@ -52,14 +55,19 @@ func get_all_artifacts() -> Array[Artefact]:
StabilisatorArtefact.new(),
TalionOverloaderArtefact.new(),
TalionSoilArtifact.new(),
TalionSprayArtifact.new()
]
func get_all_story_steps() -> Array[StoryStep]:
return [
TutorialStoryStep.new(),
StartStoryStep.new(),
MercuryStoryStep.new(),
BoreaStoryStep.new()
# TutorialStoryStep.new(),
# StartStoryStep.new(),
# MercuryStoryStep.new(),
BoreaStoryStep.new(),
AquaStoryStep.new(),
SubterraStoryStep.new(),
EstiaStoryStep.new(),
AstraStoryStep.new(),
]
func finish_run(run : RunData):

View File

@@ -29,7 +29,7 @@ func is_region_sequence_infinite() -> bool:
return false
func get_region_sequence_length() -> int:
return 7
return 2 #TO CHANGE TO 7
func get_first_vending_machine_occurence(_level : int) -> int:
return 2

View File

@@ -10,16 +10,6 @@ func get_respawn_scene() -> Scene:
true
)
func get_objective_for_region(l : int) -> int:
match l:
0: return 0
1: return 8
_: return get_objective_for_region(l-1) + l * 5
func get_region_sequence_length() -> int:
return 8
func get_destination_text() -> String:
return tr("BOREA_BASE")

View File

@@ -0,0 +1,22 @@
extends StoryStep
class_name AquaStoryStep
const AQUA_TRAVEL_PHONE_CALL_DIALOG_PATH = "res://dialogs/timelines/2_aqua/1_aqua_travel_phone_call.dtl"
func get_respawn_scene() -> Scene:
return RelayBaseScene.new(
"BOREA_BASE",
"004",
true
)
func get_destination_text() -> String:
return tr("AQUA_BASE")
func get_destination_scene() -> Scene:
return AquaScene.new()
func get_ship_dialog_path(level : int, _ship_in_space := true) -> String:
if level == 5:
return AQUA_TRAVEL_PHONE_CALL_DIALOG_PATH
return ""

View File

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

View File

@@ -0,0 +1,22 @@
extends StoryStep
class_name SubterraStoryStep
const TRAVEL_PHONE_CALL_DIALOG_PATH = "res://dialogs/timelines/3_subterra/1_subterra_travel_phone_call.dtl"
func get_respawn_scene() -> Scene:
return RelayBaseScene.new(
"AQUA_BASE",
"005",
true
)
func get_destination_text() -> String:
return tr("SUBTERRA_BASE")
func get_destination_scene() -> Scene:
return SubterraScene.new()
func get_ship_dialog_path(level : int, _ship_in_space := true) -> String:
if level == 5:
return TRAVEL_PHONE_CALL_DIALOG_PATH
return ""

View File

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

View File

@@ -0,0 +1,22 @@
extends StoryStep
class_name EstiaStoryStep
const TRAVEL_PHONE_CALL_DIALOG_PATH = "res://dialogs/timelines/4_estia/1_estia_travel_phone_call.dtl"
func get_respawn_scene() -> Scene:
return RelayBaseScene.new(
"SUBTERRA_BASE",
"006",
true
)
func get_destination_text() -> String:
return tr("SUBTERRA_BASE")
func get_destination_scene() -> Scene:
return EstiaScene.new()
func get_ship_dialog_path(level : int, _ship_in_space := true) -> String:
if level == 5:
return TRAVEL_PHONE_CALL_DIALOG_PATH
return ""

View File

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

View File

@@ -0,0 +1,22 @@
extends StoryStep
class_name AstraStoryStep
const TRAVEL_PHONE_CALL_DIALOG_PATH = "res://dialogs/timelines/6_astra/1_astra_travel_phone_call.dtl"
func get_respawn_scene() -> Scene:
return RelayBaseScene.new(
"ESTIA_BASE",
"007",
true
)
func get_destination_text() -> String:
return tr("ESTIA_BASE")
func get_destination_scene() -> Scene:
return AstraEndScene.new()
func get_ship_dialog_path(level : int, _ship_in_space := true) -> String:
if level == 4:
return TRAVEL_PHONE_CALL_DIALOG_PATH
return ""

View File

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