Encore du dev pour la béta 1
* Suppression de la mutation éphémère * Ajout des modificateur de régions normaux Sableux et Toxique * Ajout de modificateurs challenge (Rocheux, Radioactif et Contaminé) * Ajout du modificateur de région bénéfique Résonnance * Ajout d'un distributeur toutes les 3 régions * Ajout des régions challenge * Bouclage sur les couleurs des mutations après le niveau 4 * Ajout de deux nouveaux panneaux de tutoriel, un sur les informations de plantes et l'autre sur le vaisseau
@@ -25,6 +25,7 @@ signal current_region_data_updated(p : RegionData)
|
||||
@export var ship_in_space = false
|
||||
|
||||
@export var tutorial_done = false
|
||||
@export var ship_tutorial_done = false
|
||||
|
||||
@export var incubator_used = []
|
||||
|
||||
@@ -34,11 +35,8 @@ signal current_region_data_updated(p : RegionData)
|
||||
|
||||
func start_run() -> RunData:
|
||||
player_data.clear_inventory()
|
||||
player_data.update_with_artefacts([])
|
||||
current_run = RunData.new()
|
||||
current_run.artefacts_changed.connect(
|
||||
func(artefacts : Array[Artefact]):
|
||||
player_data._on_artefacts_updated(artefacts)
|
||||
)
|
||||
current_run.current_run_point_changed.connect(
|
||||
func(rp : RunPoint):
|
||||
start_region(rp.region_parameter)
|
||||
|
||||
@@ -3,7 +3,6 @@ class_name ProgressionData
|
||||
|
||||
@export var available_mutations: Array[PlantMutation] = [
|
||||
AncientMutation.new(),
|
||||
EphemeralMutation.new(),
|
||||
FertileMutation.new(),
|
||||
GenerousMutation.new(),
|
||||
HurriedMutation.new(),
|
||||
|
||||
@@ -5,6 +5,8 @@ enum State {STARTED, IN_PROGRESS, FINISHED}
|
||||
|
||||
const RUN_POINTS_NEXT_NUMBER : int = 2
|
||||
const RUN_POINT_MAX_LEVEL = 5 # TODO
|
||||
const VENDING_MACHINE_OCCURENCE = 3
|
||||
const CHALLENGE_CHANCE = 0.25
|
||||
|
||||
signal current_run_point_changed(rp : RunPoint)
|
||||
signal artefacts_changed(artefact : Array[Artefact])
|
||||
@@ -51,10 +53,23 @@ func generate_next_run_points(level = 0) -> Array[RunPoint]:
|
||||
|
||||
func generate_next_run_point(level = 0) -> RunPoint:
|
||||
var region_parameter = RegionParameter.new()
|
||||
|
||||
var is_challenge = randf() < CHALLENGE_CHANCE
|
||||
if is_challenge:
|
||||
region_parameter.modifiers = [
|
||||
generate_challenge_modifiers().pick_random(),
|
||||
generate_benefic_modifiers().pick_random()
|
||||
] as Array[RegionModifier]
|
||||
else:
|
||||
region_parameter.modifiers = [
|
||||
generate_normal_modifiers().pick_random()
|
||||
] as Array[RegionModifier]
|
||||
|
||||
if level%VENDING_MACHINE_OCCURENCE == 0:
|
||||
region_parameter.modifiers.append(VendingMachineModifier.new())
|
||||
|
||||
region_parameter.level = level
|
||||
region_parameter.modifiers = get_bad_region_modifiers()
|
||||
region_parameter.modifiers.append_array(get_good_region_modifiers())
|
||||
|
||||
|
||||
return RunPoint.new(
|
||||
level,
|
||||
region_parameter
|
||||
@@ -85,26 +100,34 @@ func choose_next_run_point(run_point : RunPoint) -> RunPoint:
|
||||
last_used_modifier_name = current_run_point.region_parameter.modifiers[0].get_modifier_name()
|
||||
return current_run_point
|
||||
|
||||
func get_good_region_modifiers() -> Array[RegionModifier]:
|
||||
return [VendingMachineModifier.new(),VendingMachineModifier.new()]
|
||||
#endregion
|
||||
|
||||
func get_bad_region_modifiers() -> Array[RegionModifier]:
|
||||
var possible_modifiers : Array[RegionModifier] = [
|
||||
#region ------------------ Modifiers ------------------
|
||||
|
||||
func generate_normal_modifiers() -> Array[RegionModifier]:
|
||||
return [
|
||||
AridModifier.new(),
|
||||
HumidModifier.new(),
|
||||
PoorModifier.new(),
|
||||
HarshModifier.new()
|
||||
HarshModifier.new(),
|
||||
ToxicModifier.new(),
|
||||
SandyModifier.new(),
|
||||
|
||||
]
|
||||
|
||||
possible_modifiers = possible_modifiers.filter(
|
||||
func (m): return m.get_modifier_name() != last_used_modifier_name
|
||||
)
|
||||
func generate_benefic_modifiers() -> Array[RegionModifier]:
|
||||
return [
|
||||
VendingMachineModifier.new(),
|
||||
ResonnanceModifier.new()
|
||||
]
|
||||
|
||||
var choosen_modifier : RegionModifier = possible_modifiers.pick_random()
|
||||
|
||||
last_used_modifier_name = choosen_modifier.get_modifier_name()
|
||||
|
||||
return [choosen_modifier]
|
||||
func generate_challenge_modifiers() -> Array[RegionModifier]:
|
||||
return [
|
||||
RockyModifier.new(),
|
||||
RadioactiveModifier.new(),
|
||||
ContaminatedModifier.new(),
|
||||
]
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -112,6 +135,6 @@ func get_bad_region_modifiers() -> Array[RegionModifier]:
|
||||
|
||||
func add_artefacts(a: Artefact):
|
||||
artefacts.append(a)
|
||||
artefacts_changed.emit(artefacts)
|
||||
GameInfo.game_data.player_data.update_with_artefacts(artefacts)
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -3,13 +3,12 @@ class_name RunDataPlantInfo
|
||||
|
||||
signal updated
|
||||
|
||||
const DEFAULT_PLANT_AREA_RADIUS = 20
|
||||
const DEFAULT_PLANT_INFLUENCE_RADIUS = 100
|
||||
const DEFAULT_GROWING_TIME = 2
|
||||
const DEFAULT_LIFETIME = 6
|
||||
const DEFAULT_BASE_SCORE = 1
|
||||
const DEFAULT_SEED_NUMBER = 2
|
||||
const DEFAULT_SEED_RANDOM_LOOSE = 1
|
||||
const DEFAULT_PLANT_INFLUENCE_RADIUS = 100
|
||||
|
||||
var run_data : RunData
|
||||
|
||||
@@ -19,25 +18,57 @@ func _init(
|
||||
run_data = _run_data
|
||||
|
||||
var region_modifiers : Array[RegionModifier]
|
||||
var artefacts : Array[Artefact] = []
|
||||
|
||||
func get_plant_area_radius() -> int:
|
||||
return DEFAULT_PLANT_AREA_RADIUS
|
||||
|
||||
func get_plant_influence_radius() -> int:
|
||||
return DEFAULT_PLANT_INFLUENCE_RADIUS
|
||||
|
||||
func get_growing_time() -> int:
|
||||
return DEFAULT_GROWING_TIME
|
||||
var growing_time = DEFAULT_GROWING_TIME
|
||||
|
||||
for rm in get_region_modifiers():
|
||||
growing_time = rm.modify_plant_growing_time(growing_time)
|
||||
|
||||
return max(0, growing_time)
|
||||
|
||||
func get_lifetime() -> int:
|
||||
return DEFAULT_LIFETIME
|
||||
var lifetime = DEFAULT_LIFETIME
|
||||
|
||||
for rm in get_region_modifiers():
|
||||
lifetime = rm.modify_plant_lifetime(lifetime)
|
||||
|
||||
return max(0, lifetime)
|
||||
|
||||
func get_base_score() -> int:
|
||||
return DEFAULT_BASE_SCORE
|
||||
var base_score = DEFAULT_BASE_SCORE
|
||||
|
||||
for rm in get_region_modifiers():
|
||||
base_score = rm.modify_plant_base_score(base_score)
|
||||
|
||||
return max(0, base_score)
|
||||
|
||||
func get_seed_number() -> int:
|
||||
return DEFAULT_SEED_NUMBER
|
||||
var seed_number = DEFAULT_SEED_NUMBER
|
||||
|
||||
for rm in get_region_modifiers():
|
||||
seed_number = rm.modify_plant_seed_number(seed_number)
|
||||
|
||||
return max(0, seed_number)
|
||||
|
||||
func get_seed_random_loose() -> int:
|
||||
return DEFAULT_SEED_RANDOM_LOOSE
|
||||
var seed_random_loose = DEFAULT_SEED_RANDOM_LOOSE
|
||||
|
||||
for rm in get_region_modifiers():
|
||||
seed_random_loose = rm.modify_plant_seed_random_loose(seed_random_loose)
|
||||
|
||||
return min(max(0, seed_random_loose),get_seed_number())
|
||||
|
||||
func get_influence_radius() -> int:
|
||||
var influence_radius = DEFAULT_PLANT_INFLUENCE_RADIUS
|
||||
|
||||
for rm in get_region_modifiers():
|
||||
influence_radius = rm.modify_plant_influence_radius(influence_radius)
|
||||
|
||||
return max(0, influence_radius)
|
||||
|
||||
|
||||
func get_region_modifiers() -> Array[RegionModifier]:
|
||||
if run_data.current_run_point and run_data.current_run_point.region_parameter:
|
||||
return run_data.current_run_point.region_parameter.modifiers
|
||||
return []
|
||||
1
common/icons/biohazard.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#ffffff" class="icon icon-tabler icons-tabler-filled icon-tabler-biohazard"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M16.41 2.072a6.25 6.25 0 0 1 1.514 6.387l-.051 .137l.223 .044q .325 .072 .645 .18l.318 .117l.25 .105c2.155 .97 3.572 3.067 3.681 5.483v.217a1.5 1.5 0 1 1 -3 -.003l.002 -.145a3.25 3.25 0 0 0 -4.412 -2.886l-.091 .037l.004 .038l.007 .217a3.5 3.5 0 0 1 -1.817 3.07l-.16 .082l.014 .11c.082 .511 .285 .997 .595 1.416l.14 .175a3.25 3.25 0 0 0 2.27 1.136l.203 .006a1.5 1.5 0 0 1 0 3a6.25 6.25 0 0 1 -4.575 -1.991l-.177 -.199l-.078 .092a6.3 6.3 0 0 1 -3.921 2.054l-.273 .028l-.259 .016h-.217a1.5 1.5 0 1 1 .003 -3l.145 .002a3.25 3.25 0 0 0 3.074 -2.82l.003 -.03l-.161 -.083a3.5 3.5 0 0 1 -1.804 -2.883l-.005 -.195l.006 -.191l.003 -.043l-.075 -.032a3.25 3.25 0 0 0 -2.398 .008l-.191 .084a3.25 3.25 0 0 0 -1.85 2.933a1.5 1.5 0 0 1 -3 0a6.25 6.25 0 0 1 5.036 -6.13l.077 -.014l-.05 -.143l-.08 -.26l-.066 -.25a6.27 6.27 0 0 1 1.47 -5.678l.163 -.172a1.5 1.5 0 1 1 2.171 2.07l-.137 .143a3.25 3.25 0 0 0 .386 4.723l.084 .062l.05 -.034a3.5 3.5 0 0 1 1.673 -.555l.228 -.007c.683 0 1.336 .197 1.894 .556l.048 .033l.067 -.048a3.25 3.25 0 0 0 1.111 -1.669l.05 -.2a3.25 3.25 0 0 0 -.74 -2.828l-.141 -.15a1.5 1.5 0 1 1 2.12 -2.122" /></svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
43
common/icons/biohazard.svg.import
Normal file
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://caljk5xauct42"
|
||||
path="res://.godot/imported/biohazard.svg-6ba6923078e547162e6b4b8cb587956e.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/icons/biohazard.svg"
|
||||
dest_files=["res://.godot/imported/biohazard.svg-6ba6923078e547162e6b4b8cb587956e.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
|
||||
1
common/icons/grain.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-grain"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M3.5 9.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M8.5 4.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M8.5 14.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M3.5 19.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M13.5 9.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M18.5 4.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M13.5 19.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M18.5 14.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /></svg>
|
||||
|
After Width: | Height: | Size: 706 B |
43
common/icons/grain.svg.import
Normal file
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dm87fciksxunm"
|
||||
path="res://.godot/imported/grain.svg-e272947e9d3765123e0cc00495d206dd.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/icons/grain.svg"
|
||||
dest_files=["res://.godot/imported/grain.svg-e272947e9d3765123e0cc00495d206dd.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
|
||||
1
common/icons/mountain.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#ffffff" class="icon icon-tabler icons-tabler-filled icon-tabler-mountain"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M6.18 10.95l2.54 3.175l.084 .093a1 1 0 0 0 1.403 -.01l1.637 -1.638l1.324 1.985a1 1 0 0 0 1.457 .226l3.632 -2.906l3.647 7.697a1 1 0 0 1 -.904 1.428h-18a1 1 0 0 1 -.904 -1.428zm5.82 -7.878a3.3 3.3 0 0 1 2.983 1.888l2.394 5.057l-3.15 2.52l-1.395 -2.092l-.075 -.099a1 1 0 0 0 -1.464 -.053l-1.711 1.709l-1.301 -1.627l-1.151 -1.435l1.888 -3.98a3.3 3.3 0 0 1 2.982 -1.888" /></svg>
|
||||
|
After Width: | Height: | Size: 599 B |
43
common/icons/mountain.svg.import
Normal file
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://4o0itd0ofkcj"
|
||||
path="res://.godot/imported/mountain.svg-73c6f0a7455c030d9081009331506dc0.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/icons/mountain.svg"
|
||||
dest_files=["res://.godot/imported/mountain.svg-73c6f0a7455c030d9081009331506dc0.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
|
||||
1
common/icons/radioactive.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#ffffff" class="icon icon-tabler icons-tabler-filled icon-tabler-radioactive"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M21 11a1 1 0 0 1 1 1a10 10 0 0 1 -5 8.656a1 1 0 0 1 -1.302 -.268l-.064 -.098l-3 -5.19a.995 .995 0 0 1 -.133 -.542l.01 -.11l.023 -.106l.034 -.106l.046 -.1l.056 -.094l.067 -.089a.994 .994 0 0 1 .165 -.155l.098 -.064a2 2 0 0 0 .993 -1.57l.007 -.163a1 1 0 0 1 .883 -.994l.117 -.007h6z" /><path d="M7 3.344a10 10 0 0 1 10 0a1 1 0 0 1 .418 1.262l-.052 .104l-3 5.19l-.064 .098a.994 .994 0 0 1 -.155 .165l-.089 .067a1 1 0 0 1 -.195 .102l-.105 .034l-.107 .022a1.003 1.003 0 0 1 -.547 -.07l-.104 -.052a2 2 0 0 0 -1.842 -.082l-.158 .082a1 1 0 0 1 -1.302 -.268l-.064 -.098l-3 -5.19a1 1 0 0 1 .366 -1.366z" /><path d="M9 11a1 1 0 0 1 .993 .884l.007 .117a2 2 0 0 0 .861 1.645l.237 .152a.994 .994 0 0 1 .165 .155l.067 .089l.056 .095l.045 .099c.014 .036 .026 .07 .035 .106l.022 .107l.011 .11a.994 .994 0 0 1 -.08 .437l-.053 .104l-3 5.19a1 1 0 0 1 -1.366 .366a10 10 0 0 1 -5 -8.656a1 1 0 0 1 .883 -.993l.117 -.007h6z" /></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
43
common/icons/radioactive.svg.import
Normal file
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://baughrx6x5sx2"
|
||||
path="res://.godot/imported/radioactive.svg-826ebf1689bc47cf482da642b68adf02.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/icons/radioactive.svg"
|
||||
dest_files=["res://.godot/imported/radioactive.svg-826ebf1689bc47cf482da642b68adf02.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
|
||||
1
common/icons/virus.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-virus"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M7 12a5 5 0 1 0 10 0a5 5 0 1 0 -10 0" /><path d="M12 7v-4" /><path d="M11 3h2" /><path d="M15.536 8.464l2.828 -2.828" /><path d="M17.657 4.929l1.414 1.414" /><path d="M17 12h4" /><path d="M21 11v2" /><path d="M15.535 15.536l2.829 2.828" /><path d="M19.071 17.657l-1.414 1.414" /><path d="M12 17v4" /><path d="M13 21h-2" /><path d="M8.465 15.536l-2.829 2.828" /><path d="M6.343 19.071l-1.413 -1.414" /><path d="M7 12h-4" /><path d="M3 13v-2" /><path d="M8.464 8.464l-2.828 -2.828" /><path d="M4.929 6.343l1.414 -1.413" /></svg>
|
||||
|
After Width: | Height: | Size: 827 B |
43
common/icons/virus.svg.import
Normal file
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cual1pde6keom"
|
||||
path="res://.godot/imported/virus.svg-59f03f7d0b705bff456c355a03b2fd98.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/icons/virus.svg"
|
||||
dest_files=["res://.godot/imported/virus.svg-59f03f7d0b705bff456c355a03b2fd98.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
|
||||
1
common/icons/wave-sine.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-wave-sine"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M21 12h-2c-.894 0 -1.662 -.857 -1.761 -2c-.296 -3.45 -.749 -6 -2.749 -6s-2.5 3.582 -2.5 8s-.5 8 -2.5 8s-2.452 -2.547 -2.749 -6c-.1 -1.147 -.867 -2 -1.763 -2h-2" /></svg>
|
||||
|
After Width: | Height: | Size: 474 B |
43
common/icons/wave-sine.svg.import
Normal file
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c15ith3niu7sa"
|
||||
path="res://.godot/imported/wave-sine.svg-af18e7f57640d33da7bef035e7276303.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://common/icons/wave-sine.svg"
|
||||
dest_files=["res://.godot/imported/wave-sine.svg-af18e7f57640d33da7bef035e7276303.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
|
||||
@@ -113,12 +113,14 @@ fill_from = Vector2(0.5, 0.5)
|
||||
fill_to = Vector2(1, 0.5)
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_6w4e0"]
|
||||
radius = 38.0
|
||||
height = 80.0
|
||||
radius = 29.70824
|
||||
height = 62.292908
|
||||
|
||||
[node name="Door" type="Area2D" unique_id=2053096538]
|
||||
process_mode = 4
|
||||
script = ExtResource("1_8kdwv")
|
||||
icon = ExtResource("2_6w4e0")
|
||||
default_interact_text = "ENTER"
|
||||
available = false
|
||||
metadata/_custom_type_script = "uid://dyprcd68fjstf"
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ extends InspectableEntity
|
||||
class_name Plant
|
||||
|
||||
const PLANT_AREA_RADIUS = 20
|
||||
const PLANT_INFLUENCE_RADIUS = 100
|
||||
const HARVESTED_SEED_DISPLACEMENT_FACTOR = 100
|
||||
|
||||
const RANDOM_MAX_GROW_INTERVAL = Region.MIN_PASS_DAY_ANIMATION_TIME/2. - 0.1
|
||||
@@ -76,7 +75,7 @@ func generate_collision_shape() -> CollisionShape2D:
|
||||
return collision
|
||||
|
||||
func generate_influence_zone() -> PlantInfluenceZone:
|
||||
var zone = PlantInfluenceZone.new(PLANT_INFLUENCE_RADIUS)
|
||||
var zone = PlantInfluenceZone.new(data.get_influence_radius())
|
||||
|
||||
add_child(zone)
|
||||
|
||||
|
||||
@@ -113,6 +113,9 @@ func get_seed_random_loose():
|
||||
|
||||
return seed_random_loose
|
||||
|
||||
func get_influence_radius():
|
||||
return get_plant_info().get_influence_radius()
|
||||
|
||||
func get_random_seed_income():
|
||||
return max(
|
||||
get_seed_number() - randi_range(0, get_seed_random_loose()),
|
||||
@@ -142,6 +145,7 @@ func get_score_buff() -> int:
|
||||
buff = m.mutate_score_buff(self, buff)
|
||||
|
||||
return buff
|
||||
|
||||
|
||||
func disappear():
|
||||
disappeared.emit(self )
|
||||
|
||||
@@ -16,7 +16,7 @@ func _init(_radius = 100):
|
||||
func _ready():
|
||||
sprite = Circle.new()
|
||||
# sprite.z_index = 100
|
||||
sprite.radius = 100
|
||||
sprite.radius = radius
|
||||
sprite.fill = false
|
||||
sprite.width = 1
|
||||
sprite.opacity = 0.5
|
||||
|
||||
@@ -110,4 +110,4 @@ static func get_rarity_color(rarity: int) -> Color:
|
||||
Color("FFA617"),
|
||||
]
|
||||
|
||||
return rarity_colors[min(rarity, len(rarity_colors) - 1)]
|
||||
return rarity_colors[min(rarity, len(rarity_colors) - 1)%len(rarity_colors)]
|
||||
@@ -1,33 +0,0 @@
|
||||
extends PlantMutation
|
||||
class_name EphemeralMutation
|
||||
|
||||
func get_icon() -> Texture:
|
||||
return preload("res://common/icons/butterfly.svg")
|
||||
|
||||
func get_mutation_id() -> String:
|
||||
return "EPHEMERAL"
|
||||
|
||||
func get_mutation_name() -> String:
|
||||
return tr("EPHEMERAL")
|
||||
|
||||
func get_mutation_description() -> String:
|
||||
return tr("EPHEMERAL_EFFECT_TEXT").format({
|
||||
"seed_number": level,
|
||||
"seed_icon": Text.bbcode_icon(Plant.SEED_ICON),
|
||||
"lifetime_change": get_lifetime_change(),
|
||||
"lifetime_icon": Text.bbcode_icon(Plant.LIFETIME_ICON),
|
||||
})
|
||||
|
||||
func mutate_lifetime(_plant_data: PlantData, lifetime: int) -> int:
|
||||
return lifetime + get_lifetime_change()
|
||||
|
||||
func mutate_seed_number(plant_data: PlantData, seed_number: int):
|
||||
if plant_data.get_state() == PlantData.State.MATURE:
|
||||
return seed_number + level + 1
|
||||
return seed_number
|
||||
|
||||
func get_seed_increase() -> int:
|
||||
return floori((level + 1.0) / 2)
|
||||
|
||||
func get_lifetime_change() -> int:
|
||||
return -1
|
||||
@@ -1 +0,0 @@
|
||||
uid://bmo42h1p554nv
|
||||
@@ -39,6 +39,7 @@ func add_item(item: Item) -> bool:
|
||||
func add_tool(tool: Item) -> bool:
|
||||
if not has_item_with_name(tool.get_item_name()):
|
||||
tools.append(tool)
|
||||
current_item_ind += 1
|
||||
updated.emit(self)
|
||||
tool_added.emit(tool)
|
||||
return true
|
||||
|
||||
@@ -7,8 +7,6 @@ const SHOVEL_ICON = preload("res://common/icons/shovel.svg")
|
||||
const GROWING_ICON = preload("res://common/icons/chevrons-up.svg")
|
||||
const SCORE_ICON = preload("res://common/icons/growth.svg")
|
||||
|
||||
const RARITY_POOL : Array[int] = [0,0,0,0,0,0,0,1,1,1]
|
||||
|
||||
@export var plant_name : String
|
||||
@export var plant_mutations: Array[PlantMutation]
|
||||
@export var random_seed : int
|
||||
@@ -29,15 +27,15 @@ static func generate_from_parent(plant_data : PlantData) -> Seed:
|
||||
mutate_mutations(plant_data)
|
||||
)
|
||||
else :
|
||||
return Seed.new(
|
||||
return Seed.new(
|
||||
plant_data.plant_name,
|
||||
plant_data.mutations.duplicate_deep()
|
||||
)
|
||||
|
||||
static func generate_random() -> Seed:
|
||||
static func generate_random(rarity := 0) -> Seed:
|
||||
var new_seed = Seed.new(
|
||||
Random.generate_random_word(),
|
||||
[generate_first_mutation()]
|
||||
[generate_first_mutation(rarity)]
|
||||
)
|
||||
|
||||
return new_seed
|
||||
@@ -134,8 +132,7 @@ func get_particles() -> Array[EffectParticles.Parameters]:
|
||||
|
||||
return param
|
||||
|
||||
static func generate_first_mutation() -> PlantMutation:
|
||||
var rarity : int = RARITY_POOL.pick_random()
|
||||
static func generate_first_mutation(rarity := 0) -> PlantMutation:
|
||||
|
||||
var possible_mutation : PlantMutation = GameInfo.game_data.progression_data.available_mutations.filter(
|
||||
func (m : PlantMutation): return m.get_base_rarity() <= rarity
|
||||
|
||||
@@ -20,7 +20,7 @@ func get_artefacts() -> Array[Artefact]:
|
||||
return GameInfo.game_data.current_run.artefacts
|
||||
return []
|
||||
|
||||
func _on_artefacts_updated(artefacts : Array[Artefact]):
|
||||
func update_with_artefacts(artefacts : Array[Artefact]):
|
||||
inventory.seeds_size = calculate_inventory_size(artefacts)
|
||||
max_energy = calculate_max_energy(artefacts)
|
||||
updated.emit()
|
||||
|
||||
@@ -145,6 +145,7 @@ _data = {
|
||||
}
|
||||
|
||||
[node name="Announce" type="CanvasLayer" unique_id=1659074958]
|
||||
process_mode = 3
|
||||
script = ExtResource("1_4evne")
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="." unique_id=1463847780]
|
||||
@@ -230,7 +231,7 @@ size = Vector2i(300, 300)
|
||||
|
||||
[node name="AnnouceObject" type="Node3D" parent="AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=986671004]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.8788874, 0.4667406, 0.09817754, -0.45027143, 0.74415994, 0.4933552, 0.15722138, -0.47777224, 0.8642758, 0, 0, 0)
|
||||
transform = Transform3D(-0.51481193, -0.6680038, 0.5372555, -0.8508927, 0.32199714, -0.4149924, 0.104188256, -0.67080045, -0.73426664, 0, 0, 0)
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1788331074]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1)
|
||||
|
||||
@@ -77,10 +77,14 @@ func set_announce_object(object := announce_object):
|
||||
|
||||
if not visible:
|
||||
%AnimationPlayer.play("appear")
|
||||
Pointer.action_disabled = true
|
||||
AudioManager.play_sfx("Ship_reveal")
|
||||
elif object == null and visible:
|
||||
%AnimationPlayer.play_backwards("appear")
|
||||
|
||||
get_tree().create_timer(0.2).timeout.connect( # Put a delay to not interfere with the ok button click
|
||||
func():
|
||||
Pointer.action_disabled = false
|
||||
)
|
||||
announce_object = object
|
||||
|
||||
func _on_ok_button_down():
|
||||
|
||||
@@ -15,7 +15,6 @@ const CARD_SECTION_SCENE : PackedScene = preload("res://gui/game/card/card_secti
|
||||
# update()
|
||||
|
||||
func update():
|
||||
pass
|
||||
%Title.text = info.title
|
||||
%Subtitle.visible = info.subtitle != ""
|
||||
%Subtitle.text = info.subtitle
|
||||
|
||||
@@ -7,13 +7,7 @@
|
||||
[ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="5_mao3x"]
|
||||
[ext_resource type="Texture2D" uid="uid://bhogi5kkltx51" path="res://gui/pause/assets/textures/rock_tutorial_image.png" id="6_bt3y5"]
|
||||
[ext_resource type="Texture2D" uid="uid://3fwhxkd0ycga" path="res://gui/pause/assets/textures/talion_tutorial_image.png" id="7_jx4fu"]
|
||||
[ext_resource type="Texture2D" uid="uid://bt3g5bmar0icf" path="res://common/icons/growth.svg" id="8_ajtcc"]
|
||||
[ext_resource type="Texture2D" uid="uid://d3ksdxepcjoot" path="res://common/icons/calendar-week.svg" id="9_i5c4s"]
|
||||
[ext_resource type="Texture2D" uid="uid://cgmxjom200bej" path="res://common/icons/chevrons-up.svg" id="10_0a2af"]
|
||||
[ext_resource type="Texture2D" uid="uid://dhy4ewvqvlxyi" path="res://common/icons/clock.svg" id="11_tiice"]
|
||||
[ext_resource type="Texture2D" uid="uid://c2qg7ikkylfv4" path="res://common/icons/seeds.svg" id="12_vb6ry"]
|
||||
[ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="13_r8wgh"]
|
||||
[ext_resource type="Texture2D" uid="uid://cymrmhsihkj44" path="res://common/icons/recharge.svg" id="14_ccxsv"]
|
||||
[ext_resource type="PackedScene" uid="uid://bnx5hr2fd0p24" path="res://gui/game/help/icon_help_content.tscn" id="8_38kut"]
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_rcm5b"]
|
||||
font = ExtResource("2_l61dv")
|
||||
@@ -149,132 +143,5 @@ theme_override_constants/margin_top = 8
|
||||
theme_override_constants/margin_right = 8
|
||||
theme_override_constants/margin_bottom = 8
|
||||
|
||||
[node name="IconsGrid" type="VBoxContainer" parent="IconHelp/MarginContainer" unique_id=1344975233]
|
||||
[node name="IconsGrid" parent="IconHelp/MarginContainer" unique_id=9435995 instance=ExtResource("8_38kut")]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="IconHelp/MarginContainer/IconsGrid" unique_id=1388308447]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer" unique_id=848501211]
|
||||
custom_minimum_size = Vector2(25, 25)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("8_ajtcc")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer" unique_id=913881976]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("5_mao3x")
|
||||
text = "PLANT_POINTS"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="IconHelp/MarginContainer/IconsGrid" unique_id=1039110967]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer2" unique_id=1533385173]
|
||||
custom_minimum_size = Vector2(25, 25)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("9_i5c4s")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer2" unique_id=1539873337]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("5_mao3x")
|
||||
text = "DAYS"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer3" type="HBoxContainer" parent="IconHelp/MarginContainer/IconsGrid" unique_id=1009856551]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer3" unique_id=483862285]
|
||||
custom_minimum_size = Vector2(25, 25)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("10_0a2af")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer3" unique_id=1118498780]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("5_mao3x")
|
||||
text = "GROWING_TIME"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer4" type="HBoxContainer" parent="IconHelp/MarginContainer/IconsGrid" unique_id=1195759820]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer4" unique_id=617759410]
|
||||
custom_minimum_size = Vector2(25, 25)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("11_tiice")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer4" unique_id=44288020]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("5_mao3x")
|
||||
text = "LIFETIME"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer5" type="HBoxContainer" parent="IconHelp/MarginContainer/IconsGrid" unique_id=1749624633]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer5" unique_id=1970160966]
|
||||
custom_minimum_size = Vector2(25, 25)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("12_vb6ry")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer5" unique_id=1667196444]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("5_mao3x")
|
||||
text = "SEEDS"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer6" type="HBoxContainer" parent="IconHelp/MarginContainer/IconsGrid" unique_id=65069381]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer6" unique_id=302101280]
|
||||
custom_minimum_size = Vector2(25, 25)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("13_r8wgh")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer6" unique_id=1371041548]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("5_mao3x")
|
||||
text = "ORCHID_ENERGY"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer7" type="HBoxContainer" parent="IconHelp/MarginContainer/IconsGrid" unique_id=1616445361]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer7" unique_id=1012780398]
|
||||
custom_minimum_size = Vector2(25, 25)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("14_ccxsv")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer7" unique_id=537891031]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("5_mao3x")
|
||||
text = "RECHARGE_NUMBER"
|
||||
vertical_alignment = 1
|
||||
|
||||
139
gui/game/help/icon_help_content.tscn
Normal file
@@ -0,0 +1,139 @@
|
||||
[gd_scene format=3 uid="uid://bnx5hr2fd0p24"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bt3g5bmar0icf" path="res://common/icons/growth.svg" id="1_yxwcd"]
|
||||
[ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="2_wxnr5"]
|
||||
[ext_resource type="Texture2D" uid="uid://d3ksdxepcjoot" path="res://common/icons/calendar-week.svg" id="3_t30ml"]
|
||||
[ext_resource type="Texture2D" uid="uid://cgmxjom200bej" path="res://common/icons/chevrons-up.svg" id="4_d4ybk"]
|
||||
[ext_resource type="Texture2D" uid="uid://dhy4ewvqvlxyi" path="res://common/icons/clock.svg" id="5_3lk2g"]
|
||||
[ext_resource type="Texture2D" uid="uid://c2qg7ikkylfv4" path="res://common/icons/seeds.svg" id="6_tr36d"]
|
||||
[ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="7_ubf5w"]
|
||||
[ext_resource type="Texture2D" uid="uid://cymrmhsihkj44" path="res://common/icons/recharge.svg" id="8_uvt1i"]
|
||||
|
||||
[node name="IconsGrid" type="VBoxContainer" unique_id=9435995]
|
||||
alignment = 1
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="." unique_id=1691095228]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="HBoxContainer" unique_id=1901557678]
|
||||
custom_minimum_size = Vector2(25, 25)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("1_yxwcd")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="HBoxContainer" unique_id=859146346]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("2_wxnr5")
|
||||
text = "PLANT_POINTS"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="." unique_id=84698232]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="HBoxContainer2" unique_id=1688869934]
|
||||
custom_minimum_size = Vector2(25, 25)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("3_t30ml")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="HBoxContainer2" unique_id=722562759]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("2_wxnr5")
|
||||
text = "DAYS"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer3" type="HBoxContainer" parent="." unique_id=1091557748]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="HBoxContainer3" unique_id=206861703]
|
||||
custom_minimum_size = Vector2(25, 25)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("4_d4ybk")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="HBoxContainer3" unique_id=609696718]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("2_wxnr5")
|
||||
text = "GROWING_TIME"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer4" type="HBoxContainer" parent="." unique_id=1416063894]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="HBoxContainer4" unique_id=1393253275]
|
||||
custom_minimum_size = Vector2(25, 25)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("5_3lk2g")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="HBoxContainer4" unique_id=365374836]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("2_wxnr5")
|
||||
text = "LIFETIME"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer5" type="HBoxContainer" parent="." unique_id=1410748673]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="HBoxContainer5" unique_id=946072561]
|
||||
custom_minimum_size = Vector2(25, 25)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("6_tr36d")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="HBoxContainer5" unique_id=549789016]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("2_wxnr5")
|
||||
text = "SEEDS"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer6" type="HBoxContainer" parent="." unique_id=1258373211]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="HBoxContainer6" unique_id=1789194571]
|
||||
custom_minimum_size = Vector2(25, 25)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("7_ubf5w")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="HBoxContainer6" unique_id=1037558845]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("2_wxnr5")
|
||||
text = "ORCHID_ENERGY"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer7" type="HBoxContainer" parent="." unique_id=1238098255]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="HBoxContainer7" unique_id=316858205]
|
||||
custom_minimum_size = Vector2(25, 25)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("8_uvt1i")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="HBoxContainer7" unique_id=248028380]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("2_wxnr5")
|
||||
text = "RECHARGE_NUMBER"
|
||||
vertical_alignment = 1
|
||||
@@ -42,10 +42,10 @@ tracks/0/path = NodePath("SubViewport/NightAnimationSprite:rotation")
|
||||
tracks/0/interp = 2
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.26666668, 0.7, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"times": PackedFloat32Array(0, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 3.141592653589793, 3.141592653589793, 6.265732014659643]
|
||||
"values": [0.0, 6.265732014659643]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_wafeq"]
|
||||
@@ -56,6 +56,7 @@ _data = {
|
||||
|
||||
[node name="PassDay" type="CanvasLayer" unique_id=335255544]
|
||||
layer = 3
|
||||
visible = false
|
||||
script = ExtResource("1_0pm4g")
|
||||
|
||||
[node name="Blur" type="ColorRect" parent="." unique_id=546890405]
|
||||
@@ -72,6 +73,7 @@ script = ExtResource("2_bhfpo")
|
||||
|
||||
[node name="PassDayInfo" type="VBoxContainer" parent="." unique_id=833110506]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
|
||||
@@ -70,6 +70,7 @@ var indicators : Array[InGameIndicator]
|
||||
(func ():
|
||||
for e in region.entity_container.get_children():
|
||||
if e is Plant:
|
||||
display_plant_info_tutorial(e.card_info())
|
||||
return true
|
||||
return false)
|
||||
),
|
||||
@@ -95,6 +96,7 @@ func _ready():
|
||||
show()
|
||||
else:
|
||||
hide()
|
||||
%PlantInfoTutorial.hide()
|
||||
|
||||
func setup_gui():
|
||||
for s in %Steps.get_children():
|
||||
@@ -132,6 +134,16 @@ func finish_tutorial():
|
||||
region.data.update()
|
||||
succeded.emit()
|
||||
|
||||
func display_plant_info_tutorial(with_card_info : CardInfo):
|
||||
%PlantCard.info = with_card_info
|
||||
AudioManager.play_sfx("Ship_reveal")
|
||||
%PlantCard.update()
|
||||
%PlantInfoTutorialAnimationPlayer.play("appear")
|
||||
|
||||
func _on_ok_button_button_down():
|
||||
%PlantInfoTutorialAnimationPlayer.play_backwards("appear")
|
||||
|
||||
|
||||
class Step:
|
||||
|
||||
var text : String : get = get_text
|
||||
|
||||
@@ -4,6 +4,20 @@
|
||||
[ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/hud.tres" id="2_1wikm"]
|
||||
[ext_resource type="Texture2D" uid="uid://1ynlp05wj0hm" path="res://common/icons/rocket.svg" id="3_8kuag"]
|
||||
[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="4_1wikm"]
|
||||
[ext_resource type="Shader" uid="uid://cuni3ggtw2uuy" path="res://common/vfx/materials/shaders/blur.gdshader" id="5_5i4hd"]
|
||||
[ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="6_hgus1"]
|
||||
[ext_resource type="PackedScene" uid="uid://753270jjxmfg" path="res://gui/game/card/card.tscn" id="6_vg3tr"]
|
||||
[ext_resource type="Texture2D" uid="uid://bgi4rc50par30" path="res://common/icons/arrow-narrow-right.svg" id="7_6k6bq"]
|
||||
[ext_resource type="Texture2D" uid="uid://bd6qddv5ihkjr" path="res://common/icons/bucket.svg" id="7_ug5yk"]
|
||||
[ext_resource type="Script" uid="uid://dj2pv1hiwjfv0" path="res://gui/game/card/scripts/card_info.gd" id="8_hgus1"]
|
||||
[ext_resource type="Script" uid="uid://dgbh38j13g5kn" path="res://gui/game/card/scripts/card_section_info.gd" id="9_6k6bq"]
|
||||
[ext_resource type="Texture2D" uid="uid://b752eqq4cm7ve" path="res://common/icons/building-factory-2.svg" id="10_58nqq"]
|
||||
[ext_resource type="Script" uid="uid://b4tkium34c831" path="res://gui/game/card/scripts/card_stat_info.gd" id="11_ebkn5"]
|
||||
[ext_resource type="Texture2D" uid="uid://dg00xnpp6ixls" path="res://common/icons/server-2.svg" id="12_2pmxd"]
|
||||
[ext_resource type="Texture2D" uid="uid://baaujfw8piywi" path="res://common/icons/dna.svg" id="13_1lrfc"]
|
||||
[ext_resource type="Texture2D" uid="uid://bsvxhafoxwmw0" path="res://common/icons/cube-3d-sphere.svg" id="14_e6tpi"]
|
||||
[ext_resource type="Texture2D" uid="uid://7oh782g7ngop" path="res://common/icons/arrow-narrow-left.svg" id="17_58nqq"]
|
||||
[ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="18_6k6bq"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_x7cwm"]
|
||||
bg_color = Color(0.18, 0.18, 0.18, 0.48235294)
|
||||
@@ -16,6 +30,122 @@ corner_radius_bottom_left = 20
|
||||
font = ExtResource("4_1wikm")
|
||||
font_size = 20
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pu6eb"]
|
||||
shader = ExtResource("5_5i4hd")
|
||||
shader_parameter/strength = 8.00000037674012
|
||||
shader_parameter/mix_percentage = 0.3
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ebkn5"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ditr3"]
|
||||
script = ExtResource("9_6k6bq")
|
||||
title_text = "Mutations"
|
||||
title_icon = ExtResource("10_58nqq")
|
||||
text = "This is a mutation"
|
||||
metadata/_custom_type_script = "uid://dgbh38j13g5kn"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ikhlb"]
|
||||
script = ExtResource("11_ebkn5")
|
||||
text = "8"
|
||||
icon = ExtResource("12_2pmxd")
|
||||
metadata/_custom_type_script = "uid://b4tkium34c831"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_puixe"]
|
||||
script = ExtResource("8_hgus1")
|
||||
title = "Hello"
|
||||
subtitle = "Mature"
|
||||
texture = ExtResource("13_1lrfc")
|
||||
important_stat_text = "8"
|
||||
important_stat_icon = ExtResource("7_ug5yk")
|
||||
stats = Array[ExtResource("11_ebkn5")]([SubResource("Resource_ikhlb")])
|
||||
sections = Array[ExtResource("9_6k6bq")]([SubResource("Resource_ditr3")])
|
||||
metadata/_custom_type_script = "uid://dj2pv1hiwjfv0"
|
||||
|
||||
[sub_resource type="Animation" id="Animation_6k6bq"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:visible")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("MarginContainer:theme_override_constants/separation")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [12]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath(".:modulate:a")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [1.0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_58nqq"]
|
||||
resource_name = "appear"
|
||||
length = 0.5
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:visible")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [false, true]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("MarginContainer:theme_override_constants/separation")
|
||||
tracks/1/interp = 2
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.06666666, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [183, 12]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath(".:modulate:a")
|
||||
tracks/2/interp = 2
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 1.0]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ebkn5"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_6k6bq"),
|
||||
&"appear": SubResource("Animation_58nqq")
|
||||
}
|
||||
|
||||
[node name="Tutorial" type="Control" unique_id=1210916048]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
@@ -68,3 +198,168 @@ label_settings = SubResource("LabelSettings_8kuag")
|
||||
[node name="Steps" type="VBoxContainer" parent="MarginContainer/TutorialStepsPanelContainer/MarginContainer/VBoxContainer" unique_id=125170550]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
|
||||
[node name="PlantInfoTutorial" type="Control" parent="." unique_id=1586592931]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="BlurRect" type="ColorRect" parent="PlantInfoTutorial" unique_id=35513528]
|
||||
material = SubResource("ShaderMaterial_pu6eb")
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0.037180007, 0.020800002, 0.13, 1)
|
||||
|
||||
[node name="MarginContainer" type="VBoxContainer" parent="PlantInfoTutorial" unique_id=1757534024]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_constants/separation = 12
|
||||
alignment = 1
|
||||
|
||||
[node name="Title" type="Label" parent="PlantInfoTutorial/MarginContainer" unique_id=1842689362]
|
||||
layout_mode = 2
|
||||
text = "PLANTS_INFO"
|
||||
label_settings = ExtResource("6_hgus1")
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Subtitle" type="Label" parent="PlantInfoTutorial/MarginContainer" unique_id=656340742]
|
||||
layout_mode = 2
|
||||
text = "OBTAIN_INFORMATION_ON_PLANTS_WHILE_HOVERING_PLANTS_BASE"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="PlantInfoTutorial/MarginContainer" unique_id=1124442982]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
columns = 3
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="PlantInfoTutorial/MarginContainer/GridContainer" unique_id=1598939949]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 8
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer" unique_id=1972134386]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="Label" type="RichTextLabel" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer/HBoxContainer" unique_id=263525139]
|
||||
custom_minimum_size = Vector2(300, 0)
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "PLANT_NAME_TEXT"
|
||||
fit_content = true
|
||||
scroll_active = false
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer/HBoxContainer" unique_id=1507687253]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 8
|
||||
texture = ExtResource("7_6k6bq")
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="HBoxContainer3" type="HBoxContainer" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer" unique_id=483641916]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="Label2" type="RichTextLabel" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer/HBoxContainer3" unique_id=553756431]
|
||||
custom_minimum_size = Vector2(300, 0)
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "PLANT_STATS_TEXT"
|
||||
fit_content = true
|
||||
scroll_active = false
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer/HBoxContainer3" unique_id=953954556]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 0
|
||||
texture = ExtResource("7_6k6bq")
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="VBoxContainer3" type="VBoxContainer" parent="PlantInfoTutorial/MarginContainer/GridContainer" unique_id=1226314631]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer3" unique_id=591048390]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 30
|
||||
theme_override_styles/separator = SubResource("StyleBoxEmpty_ebkn5")
|
||||
|
||||
[node name="PlantCard" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer3" unique_id=1085885349 instance=ExtResource("6_vg3tr")]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(350, 0)
|
||||
layout_mode = 2
|
||||
info = SubResource("Resource_puixe")
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="PlantInfoTutorial/MarginContainer/GridContainer" unique_id=906180848]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 8
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer2" unique_id=760754866]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 32
|
||||
theme_override_styles/separator = SubResource("StyleBoxEmpty_ebkn5")
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer2" unique_id=383033253]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer2/HBoxContainer" unique_id=475071884]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
texture = ExtResource("17_58nqq")
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="Label2" type="RichTextLabel" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer2/HBoxContainer" unique_id=1479217505]
|
||||
custom_minimum_size = Vector2(300, 0)
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "PLANT_SCORE_TEXT"
|
||||
fit_content = true
|
||||
scroll_active = false
|
||||
horizontal_alignment = 2
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer2" unique_id=2062134463]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer2/HBoxContainer2" unique_id=392813755]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 4
|
||||
texture = ExtResource("17_58nqq")
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="Label2" type="RichTextLabel" parent="PlantInfoTutorial/MarginContainer/GridContainer/VBoxContainer2/HBoxContainer2" unique_id=472790254]
|
||||
custom_minimum_size = Vector2(300, 0)
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "PLANT_MUTATION_TEXT"
|
||||
fit_content = true
|
||||
scroll_active = false
|
||||
horizontal_alignment = 2
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="OkButton" type="Button" parent="PlantInfoTutorial/MarginContainer" unique_id=1684351093]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
theme = ExtResource("18_6k6bq")
|
||||
text = "OK"
|
||||
|
||||
[node name="PlantInfoTutorialAnimationPlayer" type="AnimationPlayer" parent="PlantInfoTutorial" unique_id=549667783]
|
||||
unique_name_in_owner = true
|
||||
libraries/ = SubResource("AnimationLibrary_ebkn5")
|
||||
|
||||
[connection signal="button_down" from="PlantInfoTutorial/MarginContainer/OkButton" to="." method="_on_ok_button_button_down"]
|
||||
|
||||
BIN
gui/loose_screen/assets/cristal.blend
Normal file
60
gui/loose_screen/assets/cristal.blend.import
Normal file
@@ -0,0 +1,60 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://on4beh6lla76"
|
||||
path="res://.godot/imported/cristal.blend-116d25ad1da461c81fb8ef9157e2d1e7.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://gui/loose_screen/assets/cristal.blend"
|
||||
dest_files=["res://.godot/imported/cristal.blend-116d25ad1da461c81fb8ef9157e2d1e7.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/root_script=null
|
||||
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={}
|
||||
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/colors=false
|
||||
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
|
||||
BIN
gui/loose_screen/assets/cristal.blend1
Normal file
BIN
gui/loose_screen/assets/orchid_sleeping.png
Normal file
|
After Width: | Height: | Size: 317 KiB |
40
gui/loose_screen/assets/orchid_sleeping.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c2ebqci4tglk8"
|
||||
path="res://.godot/imported/orchid_sleeping.png-7f59ff571a5eb07fa1a91538a777423b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://gui/loose_screen/assets/orchid_sleeping.png"
|
||||
dest_files=["res://.godot/imported/orchid_sleeping.png-7f59ff571a5eb07fa1a91538a777423b.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
|
||||
80
gui/loose_screen/loose_screen.tscn
Normal file
@@ -0,0 +1,80 @@
|
||||
[gd_scene format=3 uid="uid://u6nw3vo6677a"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://cuni3ggtw2uuy" path="res://common/vfx/materials/shaders/blur.gdshader" id="1_pf6ao"]
|
||||
[ext_resource type="Texture2D" uid="uid://c2ebqci4tglk8" path="res://gui/loose_screen/assets/orchid_sleeping.png" id="2_f8jil"]
|
||||
[ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="3_4ae40"]
|
||||
[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="4_w6ode"]
|
||||
[ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/hud.tres" id="5_276s3"]
|
||||
[ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="6_60kfb"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_041t2"]
|
||||
shader = ExtResource("1_pf6ao")
|
||||
shader_parameter/strength = 5.00000023424012
|
||||
shader_parameter/mix_percentage = 0.3
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_bn8hj"]
|
||||
font = ExtResource("4_w6ode")
|
||||
font_size = 50
|
||||
font_color = Color(1, 0.6509804, 0.09019608, 1)
|
||||
|
||||
[node name="LooseScreen" type="CanvasLayer" unique_id=1502767186]
|
||||
|
||||
[node name="BlurRect" type="ColorRect" parent="." unique_id=1208806322]
|
||||
material = SubResource("ShaderMaterial_041t2")
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0.0352941, 0.0196078, 0.12549, 0.705882)
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="." unique_id=2014325082]
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -186.5
|
||||
offset_top = -249.0
|
||||
offset_right = 186.5
|
||||
offset_bottom = 249.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
columns = 2
|
||||
|
||||
[node name="AnnounceContainer" type="VBoxContainer" parent="GridContainer" unique_id=717426101]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 12
|
||||
alignment = 1
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="GridContainer/AnnounceContainer" unique_id=849798296]
|
||||
custom_minimum_size = Vector2(0, 300)
|
||||
layout_mode = 2
|
||||
texture = ExtResource("2_f8jil")
|
||||
expand_mode = 3
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="AnnounceText" type="Label" parent="GridContainer/AnnounceContainer" unique_id=1321978462]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Out of energy"
|
||||
label_settings = SubResource("LabelSettings_bn8hj")
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="AnnounceTitle" type="Label" parent="GridContainer/AnnounceContainer" unique_id=896530004]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Orchid and the ship ran out of energy"
|
||||
label_settings = ExtResource("3_4ae40")
|
||||
horizontal_alignment = 1
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="OkButton" type="Button" parent="GridContainer/AnnounceContainer" unique_id=1371634749]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
theme = ExtResource("5_276s3")
|
||||
text = "Wake up again"
|
||||
icon = ExtResource("6_60kfb")
|
||||
@@ -21,6 +21,10 @@ shader_parameter/mix_percentage = 0.3
|
||||
font = ExtResource("4_apjlw")
|
||||
font_size = 30
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_5hfp2"]
|
||||
font = ExtResource("4_apjlw")
|
||||
font_size = 20
|
||||
|
||||
[sub_resource type="Animation" id="Animation_58dya"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
@@ -163,12 +167,22 @@ layout_mode = 2
|
||||
text = "QUIT"
|
||||
icon = ExtResource("7_yj6f1")
|
||||
|
||||
[node name="SaveInfo" type="Label" parent="Container/MarginContainer" unique_id=144326561]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 8
|
||||
text = "THIS_GAME_USE_AUTOSAVE"
|
||||
label_settings = SubResource("LabelSettings_5hfp2")
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="Settings" parent="." unique_id=758381952 instance=ExtResource("4_58dya")]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Controls" parent="." unique_id=358658336 instance=ExtResource("11_urlqn")]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1779993260]
|
||||
|
||||
@@ -25,12 +25,14 @@ var can_use_item : bool = false
|
||||
var press_time := 0.
|
||||
var press_action_done := false
|
||||
|
||||
var action_disabled := true
|
||||
|
||||
func _ready():
|
||||
Input.set_custom_mouse_cursor(default_cursor)
|
||||
%Action.visible = false
|
||||
|
||||
func _process(delta):
|
||||
if player:
|
||||
if player and not action_disabled:
|
||||
process_player_actions(delta)
|
||||
else :
|
||||
%ActionProgressBar.value = 0.
|
||||
|
||||
|
After Width: | Height: | Size: 326 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://7lw40nfj4lhl"
|
||||
path="res://.godot/imported/Capture d'écran 2026-04-17 112838.png-64ef83d52ce9df1c5c41e85939ab8a4a.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://stages/3d_scenes/cockpit_scene/assets/textures/tutorial_screenshots/Capture d'écran 2026-04-17 112838.png"
|
||||
dest_files=["res://.godot/imported/Capture d'écran 2026-04-17 112838.png-64ef83d52ce9df1c5c41e85939ab8a4a.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
|
||||
|
After Width: | Height: | Size: 32 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d17ru4hw8okj1"
|
||||
path="res://.godot/imported/Capture d'écran 2026-04-17 113002.png-0eb5866e63755f5d73921a67745288a0.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://stages/3d_scenes/cockpit_scene/assets/textures/tutorial_screenshots/Capture d'écran 2026-04-17 113002.png"
|
||||
dest_files=["res://.godot/imported/Capture d'écran 2026-04-17 113002.png-0eb5866e63755f5d73921a67745288a0.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
|
||||
@@ -11,6 +11,7 @@
|
||||
[ext_resource type="PackedScene" uid="uid://cgw2ct7smispo" path="res://stages/3d_scenes/cockpit_scene/cockpit_elements/shelf.tscn" id="11_w4l7d"]
|
||||
[ext_resource type="PackedScene" uid="uid://dd6k80rhux1do" path="res://stages/3d_scenes/cockpit_scene/cockpit_elements/plant_info_screen.tscn" id="12_pxmsf"]
|
||||
[ext_resource type="PackedScene" uid="uid://da7a74dg30q1l" path="res://entities/player_3d/player_3D.tscn" id="13_a2cx2"]
|
||||
[ext_resource type="PackedScene" uid="uid://cd8j7v7qtybi8" path="res://stages/3d_scenes/cockpit_scene/ship_tutorial.tscn" id="13_u7lr8"]
|
||||
[ext_resource type="PackedScene" uid="uid://blvetnnib2ks0" path="res://stages/3d_scenes/cockpit_scene/assets/3d/cockpit2.blend" id="17_omtjc"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_pxmsf"]
|
||||
@@ -75,6 +76,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.04597473, -0.10369873, 0.3
|
||||
shape = SubResource("BoxShape3D_ctvhk")
|
||||
|
||||
[node name="Player3D" parent="." unique_id=549819967 instance=ExtResource("13_a2cx2")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 3.2830403)
|
||||
|
||||
[node name="CockpitModel" parent="." unique_id=825141342 instance=ExtResource("17_omtjc")]
|
||||
@@ -111,3 +113,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.1218804, -1.0799314, 2.621
|
||||
|
||||
[node name="PlantInfoScreen" parent="." unique_id=1881622243 instance=ExtResource("12_pxmsf")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.2386853, -0.047743827, 4.020312)
|
||||
|
||||
[node name="ShipTutorial" parent="." unique_id=868547496 instance=ExtResource("13_u7lr8")]
|
||||
unique_name_in_owner = true
|
||||
|
||||
@@ -104,6 +104,9 @@ _data = {
|
||||
&"hover": SubResource("Animation_5d7hc")
|
||||
}
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_vks67"]
|
||||
viewport_path = NodePath("LeftScreen/LeftScreenAction/SubViewport")
|
||||
|
||||
[sub_resource type="Animation" id="Animation_2kujw"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
@@ -143,8 +146,8 @@ _data = {
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ne0dp"]
|
||||
script = ExtResource("12_oix5e")
|
||||
items = Array[ExtResource("11_3cel1")]([null, null, null])
|
||||
n_tools = 1
|
||||
seeds = Array[ExtResource("11_3cel1")]([null])
|
||||
seeds_size = 1
|
||||
metadata/_custom_type_script = "uid://fnu2d6wna4yc"
|
||||
|
||||
[node name="Dashboard" type="Node3D" unique_id=1374334508]
|
||||
@@ -338,7 +341,7 @@ transform = Transform3D(1, -1.509958e-07, -8.742278e-08, 1.509958e-07, 1, -1.490
|
||||
[node name="LeftScreenAction" type="Sprite3D" parent="LeftScreen" unique_id=442886447]
|
||||
transform = Transform3D(-1, 5.3045827e-08, 1.509958e-07, 5.3045838e-08, 1.0000002, 1.5913756e-07, -1.5099579e-07, 1.5913761e-07, -1, 0.01, -0.04, -0.015)
|
||||
pixel_size = 0.0015
|
||||
texture = SubResource("ViewportTexture_2ofl5")
|
||||
texture = SubResource("ViewportTexture_vks67")
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="LeftScreen/LeftScreenAction" unique_id=1031174751]
|
||||
transparent_bg = true
|
||||
|
||||
@@ -18,6 +18,7 @@ func set_run_point(rp := run_point):
|
||||
interactable = rp != null
|
||||
if rp:
|
||||
action_icon.texture = LAND_ICON
|
||||
print(rp.region_parameter.get_region_name())
|
||||
action_label.text = rp.region_parameter.get_region_name()
|
||||
|
||||
func card_info() -> CardInfo:
|
||||
|
||||
@@ -12,8 +12,6 @@ shader_parameter/sky_color = Color(0.03, 0.05, 0.11, 1)
|
||||
shader_parameter/star_base_color = Color(0.8, 1, 0.3, 1)
|
||||
shader_parameter/star_hue_offset = 0.6
|
||||
shader_parameter/star_intensity = 0.08
|
||||
shader_parameter/star_twinkle_speed = 0.8
|
||||
shader_parameter/star_twinkle_intensity = 0.2
|
||||
shader_parameter/layer_scale = 20.0
|
||||
shader_parameter/layer_scale_step = 10.0
|
||||
shader_parameter/layers_count = 3
|
||||
|
||||
@@ -33,9 +33,23 @@ func _ready():
|
||||
%Exit.clicked.connect(_on_exit_clicked)
|
||||
%Exit.interactable = can_exit()
|
||||
|
||||
if not GameInfo.game_data.ship_tutorial_done:
|
||||
await get_tree().create_timer(1).timeout
|
||||
await show_tutorial()
|
||||
|
||||
if GameInfo.game_data.game_mode == GameData.GameMode.STORY:
|
||||
handle_dialogs()
|
||||
|
||||
func show_tutorial():
|
||||
AudioManager.play_sfx("Ship_reveal")
|
||||
%ShipTutorial.appear()
|
||||
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
||||
%Player3D.controlling_player=false
|
||||
await %ShipTutorial.disappeared
|
||||
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||
%Player3D.controlling_player=true
|
||||
GameInfo.game_data.ship_tutorial_done = true
|
||||
|
||||
func handle_dialogs():
|
||||
if not POST_TUTORIAL_DIALOG_PATH in GameInfo.game_data.dialogs_done:
|
||||
await get_tree().create_timer(5).timeout
|
||||
|
||||
@@ -2,8 +2,6 @@ extends Node3D
|
||||
class_name CockpitScene
|
||||
|
||||
func _ready():
|
||||
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||
|
||||
if GameInfo.game_data.ship_in_space:
|
||||
%TakeOffAnimationPlayer.play("TookOff")
|
||||
|
||||
|
||||
54
stages/3d_scenes/cockpit_scene/scripts/ship_tutorial.gd
Normal file
@@ -0,0 +1,54 @@
|
||||
extends CanvasLayer
|
||||
class_name ShipTutorial
|
||||
|
||||
const DEFAULT_SHIP_ACCELERATION = Vector2(1,0)
|
||||
|
||||
signal disappeared
|
||||
|
||||
var object_acceleration := Vector2(0,0)
|
||||
|
||||
var rotating := false
|
||||
|
||||
var prev_mouse_pos : Vector2
|
||||
var next_mouse_pos : Vector2
|
||||
|
||||
func _ready():
|
||||
hide()
|
||||
|
||||
func appear():
|
||||
%AnimationPlayer.play("appear")
|
||||
|
||||
func _process(delta):
|
||||
update_rotation(delta)
|
||||
|
||||
func update_rotation(delta):
|
||||
if visible:
|
||||
next_mouse_pos = get_viewport().get_mouse_position()
|
||||
if Input.is_action_just_pressed("action"):
|
||||
rotating = true
|
||||
prev_mouse_pos = get_viewport().get_mouse_position()
|
||||
if Input.is_action_just_released("action"):
|
||||
rotating = false
|
||||
object_acceleration = Vector2(
|
||||
float(next_mouse_pos.x - prev_mouse_pos.x),
|
||||
float(next_mouse_pos.y - prev_mouse_pos.y)
|
||||
)
|
||||
|
||||
var object_rotation = object_acceleration
|
||||
|
||||
if rotating:
|
||||
object_rotation = Vector2(
|
||||
float(next_mouse_pos.x - prev_mouse_pos.x),
|
||||
float(next_mouse_pos.y - prev_mouse_pos.y)
|
||||
)
|
||||
prev_mouse_pos = next_mouse_pos
|
||||
else :
|
||||
object_acceleration = object_acceleration.lerp(DEFAULT_SHIP_ACCELERATION, 0.1)
|
||||
|
||||
%Ship.rotate(Vector3.UP, object_rotation.x * delta)
|
||||
%Ship.rotate(Vector3.RIGHT, object_rotation.y * delta)
|
||||
|
||||
|
||||
func _on_ok_button_button_down():
|
||||
%AnimationPlayer.play_backwards("appear")
|
||||
disappeared.emit()
|
||||
@@ -0,0 +1 @@
|
||||
uid://cqc8vta5ffmwt
|
||||
325
stages/3d_scenes/cockpit_scene/ship_tutorial.tscn
Normal file
@@ -0,0 +1,325 @@
|
||||
[gd_scene format=3 uid="uid://cd8j7v7qtybi8"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cqc8vta5ffmwt" path="res://stages/3d_scenes/cockpit_scene/scripts/ship_tutorial.gd" id="1_1jkg7"]
|
||||
[ext_resource type="Shader" uid="uid://cuni3ggtw2uuy" path="res://common/vfx/materials/shaders/blur.gdshader" id="1_11pbi"]
|
||||
[ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="2_1jkg7"]
|
||||
[ext_resource type="Texture2D" uid="uid://bi5jo6pf0acjb" path="res://common/icons/carambola.svg" id="3_ofwam"]
|
||||
[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="3_wyjs5"]
|
||||
[ext_resource type="PackedScene" uid="uid://blvetnnib2ks0" path="res://stages/3d_scenes/cockpit_scene/assets/3d/cockpit2.blend" id="4_ofwam"]
|
||||
[ext_resource type="Environment" uid="uid://bxyp24f85p0xf" path="res://gui/game/assets/gui_3d_environment.tres" id="5_2y716"]
|
||||
[ext_resource type="Texture2D" uid="uid://7lw40nfj4lhl" path="res://stages/3d_scenes/cockpit_scene/assets/textures/tutorial_screenshots/Capture d'écran 2026-04-17 112838.png" id="6_2y716"]
|
||||
[ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/hud.tres" id="6_6olc8"]
|
||||
[ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="7_cnkwc"]
|
||||
[ext_resource type="Texture2D" uid="uid://d17ru4hw8okj1" path="res://stages/3d_scenes/cockpit_scene/assets/textures/tutorial_screenshots/Capture d'écran 2026-04-17 113002.png" id="9_6olc8"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wa8fb"]
|
||||
shader = ExtResource("1_11pbi")
|
||||
shader_parameter/strength = 8.00000037674012
|
||||
shader_parameter/mix_percentage = 0.3
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_2y716"]
|
||||
viewport_path = NodePath("Particles/SubViewport")
|
||||
|
||||
[sub_resource type="Curve" id="Curve_6olc8"]
|
||||
_limits = [-200.0, 200.0, 0.0, 1.0]
|
||||
_data = [Vector2(0, -200), 0.0, 560.0, 0, 0, Vector2(0.08235294, 92.384125), 1336.3082, 1336.3082, 0, 0, Vector2(0.34901965, 200), 0.0, 0.0, 0, 0, Vector2(0.854902, -200), 0.0, 0.0, 0, 0]
|
||||
point_count = 4
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_cnkwc"]
|
||||
offsets = PackedFloat32Array(0, 0.8689956, 0.98253274)
|
||||
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_n2u7g"]
|
||||
font = ExtResource("3_wyjs5")
|
||||
font_size = 50
|
||||
font_color = Color(1, 0.6509804, 0.09019608, 1)
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_11pbi"]
|
||||
viewport_path = NodePath("ShipTutorialContainer/GridContainer/ShipVisualiser/SubViewport")
|
||||
|
||||
[sub_resource type="Animation" id="Animation_2y716"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:visible")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("ShipTutorialContainer:modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Particles:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("ShipTutorialContainer:theme_override_constants/separation")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [12]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_6olc8"]
|
||||
resource_name = "appear"
|
||||
length = 0.8
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:visible")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.13333334),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [false, true]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("ShipTutorialContainer:modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.2, 0.73333335),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Particles:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0.2, 0.7),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("ShipTutorialContainer:theme_override_constants/separation")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0.26666665, 0.73333335),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [554, 8]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_cnkwc"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_2y716"),
|
||||
&"appear": SubResource("Animation_6olc8")
|
||||
}
|
||||
|
||||
[node name="ShipTutorial" type="CanvasLayer" unique_id=868547496]
|
||||
script = ExtResource("1_1jkg7")
|
||||
|
||||
[node name="BlurRect" type="ColorRect" parent="." unique_id=1582095070]
|
||||
material = SubResource("ShaderMaterial_wa8fb")
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0.037180007, 0.020800002, 0.13, 1)
|
||||
|
||||
[node name="Particles" type="TextureRect" parent="." unique_id=552383374]
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -179.0
|
||||
offset_top = -179.0
|
||||
offset_right = 179.0
|
||||
offset_bottom = 179.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = SubResource("ViewportTexture_2y716")
|
||||
expand_mode = 1
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="Particles" unique_id=205461032]
|
||||
transparent_bg = true
|
||||
size = Vector2i(1000, 1000)
|
||||
|
||||
[node name="GPUParticles2D" type="CPUParticles2D" parent="Particles/SubViewport" unique_id=612988274]
|
||||
position = Vector2(500, 500)
|
||||
amount = 20
|
||||
texture = ExtResource("3_ofwam")
|
||||
preprocess = 1.0
|
||||
spread = 180.0
|
||||
gravity = Vector2(0, 0)
|
||||
initial_velocity_min = 2.0
|
||||
initial_velocity_max = 2.0
|
||||
linear_accel_min = 5.0
|
||||
linear_accel_max = 5.0
|
||||
linear_accel_curve = SubResource("Curve_6olc8")
|
||||
color_ramp = SubResource("Gradient_cnkwc")
|
||||
|
||||
[node name="ShipTutorialContainer" type="VBoxContainer" parent="." unique_id=732188526]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_constants/separation = 12
|
||||
alignment = 1
|
||||
|
||||
[node name="ShipTutorialText" type="Label" parent="ShipTutorialContainer" unique_id=1403992763]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "SHIP_ACQUIRED"
|
||||
label_settings = SubResource("LabelSettings_n2u7g")
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="ShipTutorialTitle" type="Label" parent="ShipTutorialContainer" unique_id=2022459650]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "USE_THE_SHIP_TO_TRAVEL_ACROSS_THE_PLANET"
|
||||
label_settings = ExtResource("2_1jkg7")
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="ShipTutorialContainer" unique_id=1001794244]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
theme_override_constants/h_separation = 35
|
||||
columns = 3
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="ShipTutorialContainer/GridContainer" unique_id=1184100238]
|
||||
custom_minimum_size = Vector2(300, 0)
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 12
|
||||
alignment = 1
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="ShipTutorialContainer/GridContainer/VBoxContainer" unique_id=458438699]
|
||||
layout_mode = 2
|
||||
texture = ExtResource("6_2y716")
|
||||
expand_mode = 5
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="ShipTutorialContainer/GridContainer/VBoxContainer" unique_id=1193611093]
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "JUMP_BETWEEN_REGION_TEXT"
|
||||
fit_content = true
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="ShipVisualiser" type="TextureRect" parent="ShipTutorialContainer/GridContainer" unique_id=692971472]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
mouse_filter = 0
|
||||
texture = SubResource("ViewportTexture_11pbi")
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="ShipTutorialContainer/GridContainer/ShipVisualiser" unique_id=1153633037]
|
||||
own_world_3d = true
|
||||
transparent_bg = true
|
||||
size = Vector2i(400, 400)
|
||||
|
||||
[node name="Ship" type="Node3D" parent="ShipTutorialContainer/GridContainer/ShipVisualiser/SubViewport" unique_id=434320277]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.86598426, 0, -0.5000024, 0, 0.9999422, 0, 0.49997625, 0, 0.8660295, 0, 0, 0)
|
||||
|
||||
[node name="cockpit2" parent="ShipTutorialContainer/GridContainer/ShipVisualiser/SubViewport/Ship" unique_id=1190034532 instance=ExtResource("4_ofwam")]
|
||||
|
||||
[node name="Skeleton3D" parent="ShipTutorialContainer/GridContainer/ShipVisualiser/SubViewport/Ship/cockpit2/Armature" parent_id_path=PackedInt32Array(1190034532, 368440226) index="0" unique_id=1318180746]
|
||||
bones/0/rotation = Quaternion(-0.52081746, 0.47827742, 0.52081746, 0.47827742)
|
||||
bones/1/rotation = Quaternion(0.042539995, -1.4957005e-08, -9.944439e-10, 0.9990948)
|
||||
bones/2/rotation = Quaternion(0.52081746, 0.47827742, 0.52081746, -0.47827742)
|
||||
bones/3/rotation = Quaternion(0.042539995, 1.4957005e-08, 9.944439e-10, 0.9990948)
|
||||
|
||||
[node name="WinkEnd_R" parent="ShipTutorialContainer/GridContainer/ShipVisualiser/SubViewport/Ship/cockpit2/Armature/Skeleton3D" index="0" unique_id=1435098475]
|
||||
transform = Transform3D(7.145433e-10, -1, -7.4505806e-08, 2.9971538e-08, -4.4703484e-08, 1, -1, -7.1454553e-10, 2.9971538e-08, -12.358327, -1.0543112, -8.881784e-16)
|
||||
|
||||
[node name="Wing_R" parent="ShipTutorialContainer/GridContainer/ShipVisualiser/SubViewport/Ship/cockpit2/Armature/Skeleton3D" index="1" unique_id=891044283]
|
||||
transform = Transform3D(0, -0.9963807, -0.08500305, 0, -0.08500302, 0.9963807, -1, 0, 0, 0, 0, 0)
|
||||
|
||||
[node name="WinkEnd_L" parent="ShipTutorialContainer/GridContainer/ShipVisualiser/SubViewport/Ship/cockpit2/Armature/Skeleton3D" index="2" unique_id=908817672]
|
||||
transform = Transform3D(7.145433e-10, 1, 7.4505806e-08, -2.9971538e-08, -4.4703484e-08, 1, 1, -7.1454553e-10, 2.9971538e-08, 12.358327, -1.0543112, 0)
|
||||
|
||||
[node name="Wing_L" parent="ShipTutorialContainer/GridContainer/ShipVisualiser/SubViewport/Ship/cockpit2/Armature/Skeleton3D" index="3" unique_id=74621525]
|
||||
transform = Transform3D(0, 0.9963807, 0.08500305, 0, -0.08500302, 0.9963807, 1, 0, 0, 0, 0, 0)
|
||||
|
||||
[node name="AnimationPlayer" parent="ShipTutorialContainer/GridContainer/ShipVisualiser/SubViewport/Ship/cockpit2" index="6" unique_id=1861191625]
|
||||
autoplay = &"Fold"
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="ShipTutorialContainer/GridContainer/ShipVisualiser/SubViewport" unique_id=541588220]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 50)
|
||||
current = true
|
||||
fov = 30.0
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="ShipTutorialContainer/GridContainer/ShipVisualiser/SubViewport" unique_id=1274670225]
|
||||
environment = ExtResource("5_2y716")
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="ShipTutorialContainer/GridContainer" unique_id=1062837751]
|
||||
custom_minimum_size = Vector2(300, 0)
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 12
|
||||
alignment = 1
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="ShipTutorialContainer/GridContainer/VBoxContainer2" unique_id=227115375]
|
||||
layout_mode = 2
|
||||
texture = ExtResource("9_6olc8")
|
||||
expand_mode = 5
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="ShipTutorialContainer/GridContainer/VBoxContainer2" unique_id=1438289614]
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "RECHARGE_YOUR_SHIP_WITH_PLANT_SCORE_TEXT"
|
||||
fit_content = true
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="OkButton" type="Button" parent="ShipTutorialContainer" unique_id=879779245]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
theme = ExtResource("6_6olc8")
|
||||
text = "OK"
|
||||
icon = ExtResource("7_cnkwc")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1299060348]
|
||||
unique_name_in_owner = true
|
||||
libraries/ = SubResource("AnimationLibrary_cnkwc")
|
||||
|
||||
[connection signal="button_down" from="ShipTutorialContainer/OkButton" to="." method="_on_ok_button_button_down"]
|
||||
|
||||
[editable path="ShipTutorialContainer/GridContainer/ShipVisualiser/SubViewport/Ship/cockpit2"]
|
||||
@@ -1,31 +1,14 @@
|
||||
[gd_scene format=3 uid="uid://c830fmv54pyk1"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cx5dq0shygboa" path="res://stages/3d_scenes/ship_garage/scripts/ship_garage.gd" id="1_43lym"]
|
||||
[ext_resource type="Shader" uid="uid://bv2rghn44mrrf" path="res://stages/title_screen/resources/shaders/stars.gdshader" id="1_cpd4q"]
|
||||
[ext_resource type="Texture2D" uid="uid://cww35xu1yqivp" path="res://stages/3d_scenes/cockpit_scene/assets/textures/sky.png" id="2_yl6nj"]
|
||||
[ext_resource type="PackedScene" uid="uid://da7a74dg30q1l" path="res://entities/player_3d/player_3D.tscn" id="3_g14ji"]
|
||||
[ext_resource type="PackedScene" uid="uid://bmkmhycmvtjfl" path="res://stages/3d_scenes/ship_garage/assets/3d/ship_garage.blend" id="4_g14ji"]
|
||||
[ext_resource type="PackedScene" uid="uid://blvetnnib2ks0" path="res://stages/3d_scenes/cockpit_scene/assets/3d/cockpit2.blend" id="5_43lym"]
|
||||
[ext_resource type="PackedScene" uid="uid://csx7d5khjd6y5" path="res://entities/interactable_3d/phone/phone.tscn" id="7_dkh4e"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_43lym"]
|
||||
shader = ExtResource("1_cpd4q")
|
||||
shader_parameter/sky_color = Color(0.03, 0.05, 0.11, 1)
|
||||
shader_parameter/star_base_color = Color(0.8, 1, 0.3, 1)
|
||||
shader_parameter/star_hue_offset = 0.6
|
||||
shader_parameter/star_intensity = 0.08
|
||||
shader_parameter/star_twinkle_speed = 0.8
|
||||
shader_parameter/star_twinkle_intensity = 0.2
|
||||
shader_parameter/layer_scale = 20.0
|
||||
shader_parameter/layer_scale_step = 10.0
|
||||
shader_parameter/layers_count = 3
|
||||
|
||||
[sub_resource type="Sky" id="Sky_dkh4e"]
|
||||
sky_material = SubResource("ShaderMaterial_43lym")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_ovhgo"]
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_dkh4e")
|
||||
sky_custom_fov = 61.7
|
||||
ambient_light_source = 3
|
||||
ambient_light_color = Color(1, 1, 1, 1)
|
||||
|
||||
@@ -186,7 +186,7 @@ func _on_pay_interactable_clicked():
|
||||
fall_object_2()
|
||||
|
||||
state = State.FETCH
|
||||
get_tree().create_timer(1.).timeout.connect(
|
||||
get_tree().create_timer(0.5).timeout.connect(
|
||||
func ():
|
||||
AudioManager.play_sfx("VendingMachineDrop")
|
||||
)
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
extends RegionModifier
|
||||
class_name ContaminatedModifier
|
||||
|
||||
func get_modifier_name() -> String:
|
||||
return tr("CONTAMINATED")
|
||||
|
||||
func get_description() -> String:
|
||||
return tr("CONTAMINATED_MODIFIER_DESC_TEXT")
|
||||
|
||||
func get_icon() -> Texture:
|
||||
return preload("res://common/icons/virus.svg")
|
||||
|
||||
func get_card_section_color() -> Color:
|
||||
return Color("8b2dffff")
|
||||
|
||||
func modify_plant_seed_random_loose(plant_seed_random_loose : int) -> int:
|
||||
return plant_seed_random_loose + 1
|
||||
|
||||
func modify_plant_seed_number(plant_seed_number : int) -> int:
|
||||
return plant_seed_number - 1
|
||||
@@ -0,0 +1 @@
|
||||
uid://i14hpayg3owb
|
||||
@@ -0,0 +1,17 @@
|
||||
extends RegionModifier
|
||||
class_name RadioactiveModifier
|
||||
|
||||
func get_modifier_name() -> String:
|
||||
return tr("RADIOACTIVE")
|
||||
|
||||
func get_description() -> String:
|
||||
return tr("RADIOACTIVE_MODIFIER_DESC_TEXT")
|
||||
|
||||
func get_icon() -> Texture:
|
||||
return preload("res://common/icons/radioactive.svg")
|
||||
|
||||
func get_card_section_color() -> Color:
|
||||
return Color("8b2dffff")
|
||||
|
||||
func modify_plant_base_score(plant_base_score : int) -> int:
|
||||
return plant_base_score - 1
|
||||
@@ -0,0 +1 @@
|
||||
uid://bqpi0ct8pryax
|
||||
@@ -55,6 +55,26 @@ func modify_cristal_threshold(cristal_threshold : float) -> float:
|
||||
func modify_start_decontamination_zone_radius(start_decontamination_zone_radius : int) -> int:
|
||||
return start_decontamination_zone_radius
|
||||
|
||||
func modify_seed_rarity_pool(seed_rarity_pool : Array[int]) -> Array[int]:
|
||||
return seed_rarity_pool
|
||||
|
||||
func modify_plant_growing_time(plant_growing_time : int) -> int:
|
||||
return plant_growing_time
|
||||
|
||||
func modify_plant_lifetime(plant_lifetime : int) -> int:
|
||||
return plant_lifetime
|
||||
|
||||
func modify_plant_seed_number(plant_seed_number : int) -> int:
|
||||
return plant_seed_number
|
||||
|
||||
func modify_plant_base_score(plant_base_score : int) -> int:
|
||||
return plant_base_score
|
||||
|
||||
func modify_plant_seed_random_loose(plant_seed_random_loose : int) -> int:
|
||||
return plant_seed_random_loose
|
||||
|
||||
func modify_plant_influence_radius(plant_influence_radius : float) -> float:
|
||||
return plant_influence_radius
|
||||
|
||||
func card_section() -> CardSectionInfo:
|
||||
var section := CardSectionInfo.new(
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
extends RegionModifier
|
||||
class_name ResonnanceModifier
|
||||
|
||||
func get_modifier_name() -> String:
|
||||
return tr("RESONNANCE")
|
||||
|
||||
func get_description() -> String:
|
||||
return tr("RESONNANCE_MODIFIER_DESC_TEXT")
|
||||
|
||||
func get_icon() -> Texture:
|
||||
return preload("res://common/icons/wave-sine.svg")
|
||||
|
||||
func get_card_section_color() -> Color:
|
||||
return Color("25c147")
|
||||
|
||||
func modify_seed_rarity_pool(seed_rarity_pool : Array[int]) -> Array[int]:
|
||||
for i in range(len(seed_rarity_pool)):
|
||||
seed_rarity_pool[i] += 1
|
||||
return seed_rarity_pool
|
||||
@@ -0,0 +1 @@
|
||||
uid://dsowdgj1wspvb
|
||||
17
stages/terrain/region/scripts/modifiers/rocky_modifier.gd
Normal file
@@ -0,0 +1,17 @@
|
||||
extends RegionModifier
|
||||
class_name RockyModifier
|
||||
|
||||
func get_modifier_name() -> String:
|
||||
return tr("ROCKY")
|
||||
|
||||
func get_description() -> String:
|
||||
return tr("ROCKY_MODIFIER_DESC_TEXT")
|
||||
|
||||
func get_icon() -> Texture:
|
||||
return preload("res://common/icons/mountain.svg")
|
||||
|
||||
func get_card_section_color() -> Color:
|
||||
return Color("8b2dffff")
|
||||
|
||||
func modify_cristal_threshold(cristal_threshold : float) -> float:
|
||||
return cristal_threshold * 0.
|
||||
@@ -0,0 +1 @@
|
||||
uid://bmhfhct6wa218
|
||||
14
stages/terrain/region/scripts/modifiers/sandy_modifier.gd
Normal file
@@ -0,0 +1,14 @@
|
||||
extends RegionModifier
|
||||
class_name SandyModifier
|
||||
|
||||
func get_modifier_name() -> String:
|
||||
return tr("SANDY")
|
||||
|
||||
func get_description() -> String:
|
||||
return tr("SANDY_MODIFIER_DESC_TEXT")
|
||||
|
||||
func get_icon() -> Texture:
|
||||
return preload("res://common/icons/grain.svg")
|
||||
|
||||
func modify_plant_influence_radius(plant_influence_radius : float) -> float:
|
||||
return plant_influence_radius / 2
|
||||
@@ -0,0 +1 @@
|
||||
uid://b0ca7k6lh57f
|
||||
14
stages/terrain/region/scripts/modifiers/toxic_modifier.gd
Normal file
@@ -0,0 +1,14 @@
|
||||
extends RegionModifier
|
||||
class_name ToxicModifier
|
||||
|
||||
func get_modifier_name() -> String:
|
||||
return tr("TOXIC")
|
||||
|
||||
func get_description() -> String:
|
||||
return tr("TOXIC_MODIFIER_DESC_TEXT")
|
||||
|
||||
func get_icon() -> Texture:
|
||||
return preload("res://common/icons/biohazard.svg")
|
||||
|
||||
func modify_plant_lifetime(plant_lifetime : int) -> int:
|
||||
return plant_lifetime - 1
|
||||
@@ -0,0 +1 @@
|
||||
uid://8pqatifhi7fs
|
||||
@@ -18,9 +18,6 @@ const CHUNK_UNLOAD_DISTANCE : int = 3
|
||||
|
||||
const MAX_GENERATION_THREAD = 1 # Crash when superior to 1
|
||||
|
||||
@export var first_loot_number : int = 3
|
||||
@export var loot_item_number : Array[int] = [1,2]
|
||||
|
||||
var is_generated : bool : get = check_is_generated
|
||||
var generated_value : float : get = get_generated_value
|
||||
|
||||
@@ -287,7 +284,7 @@ func dig_hole(game_pos: Vector2, size : int):
|
||||
dig_rocks(hole_tiles,false,false)
|
||||
|
||||
func loot_talion(coord : Vector2i):
|
||||
var new_seed = Seed.generate_random()
|
||||
var new_seed = Seed.generate_random(data.seed_rarity_pool.pick_random())
|
||||
drop_item(
|
||||
new_seed,
|
||||
coord * TILE_SIZE,
|
||||
|
||||
@@ -25,6 +25,7 @@ const PLAYER_ROCK_HOLE_RADIUS = 5
|
||||
@export var decontamination_threshold : float
|
||||
@export var cristal_threshold : float
|
||||
@export var start_decontamination_hole_radius = 3
|
||||
@export var seed_rarity_pool : Array[int] = [0,0,0,0,0,0,0,1,1,1]
|
||||
|
||||
@export var day : int = 1
|
||||
@export var entities_saved_data : Array[EntityData] = []
|
||||
|
||||
@@ -6,6 +6,7 @@ const DEFAULT_DECONTAMINATION_THRESHOLD = 0.4
|
||||
const DEFAULT_CRISTAL_THRESHOLD = 0.1
|
||||
const DEFAULT_CHARGE = 8
|
||||
const DEFAULT_START_DECONTAMINATION_ZONE_RADIUS = 3
|
||||
const DEFAULT_SEED_RARITY_POOL: Array[int] = [0,0,0,0,0,0,0,1,1,1]
|
||||
|
||||
@export var region_name : String
|
||||
@export var region_flags : Array[String]
|
||||
@@ -109,6 +110,10 @@ func get_start_decontamination_zone_radius() -> int:
|
||||
|
||||
return zone_radius
|
||||
|
||||
func card_info() -> CardInfo:
|
||||
return null
|
||||
#TODO
|
||||
func get_seed_rarity_pool() -> int:
|
||||
var seed_rarity_pool = DEFAULT_SEED_RARITY_POOL
|
||||
|
||||
for m in modifiers:
|
||||
seed_rarity_pool = m.modify_seed_rarity_pool(seed_rarity_pool)
|
||||
|
||||
return seed_rarity_pool
|
||||
@@ -4,7 +4,7 @@ shader_type sky;
|
||||
// Comment this if you don't want to use star twinke. However, if you do want to keep it,
|
||||
// I suggest you to set the sky process mode to High-Quality Incremental or Real-Time,
|
||||
// as star twinkling may greatly impact performance.
|
||||
#define USE_TWINKLE
|
||||
// #define USE_TWINKLE
|
||||
|
||||
group_uniforms sky;
|
||||
uniform vec3 sky_color: source_color = vec3(0.03, 0.05, 0.11);
|
||||
|
||||
@@ -19,6 +19,7 @@ CONTROLS,Controls,Contrôles
|
||||
RESUME_GAME,Resume,Reprendre
|
||||
RESTART,Restart,Recommencer
|
||||
QUIT,Quit,Quitter
|
||||
THIS_GAME_USE_AUTOSAVE,This game use autosave,Ce jeu sauvegarde votre progression automatiquement
|
||||
CHOOSE_GAME_MODE,Choose game mode,Choisissez le mode de jeu
|
||||
STORY_MODE,Story Mode,Mode Histoire
|
||||
INFINITE_MODE,Infinite Mode,Mode Infini
|
||||
@@ -70,9 +71,7 @@ TOUGH,Tough,Solide
|
||||
TOUGH_EFFECT_TEXT,Multiplies {score_icon} by [b]{score_multiplier}[/b] and add [b]{growing_time}[/b]{growing_icon},"Multiplie {score_icon} par [b]{score_multiplier}[/b] et ajoute [b]{growing_time}[/b]{growing_icon}"
|
||||
FERTILE,Fertile,Fertile
|
||||
FERTILE_EFFECT_TEXT,Add [b]{seed_buff}[/b]{seed_icon} to all nearby plant but [b]{score_change}[/b]{score_icon},Ajoute [b]{seed_buff}[/b]{seed_icon} à toutes les plantes autour mais [b]{score_change}[/b]{score_icon}
|
||||
EPHEMERAL,Ephemeral,Éphémère
|
||||
EPHEMERAL_EFFECT_TEXT,Add [b]{seed_number}[/b]{seed_icon} but [b]{lifetime_change}[/b]{lifetime_icon},"Ajoute [b]{seed_number}[/b]{seed_icon} mais [b]{lifetime_change}[/b]{lifetime_icon}"
|
||||
PURIFICATION,Purification,Épuration
|
||||
PURIFICATION,Purification,Purification
|
||||
PURIFICATION_EFFECT_TEXT,"When mature, create fertile zone in a radius of [b]{purification_radius}[/b]","Une fois mature, créée une zone fertile dans un rayon de [b]{purification_radius}[/b]"
|
||||
HURRIED,Hurried,Pressé
|
||||
HURRIED_EFFECT_TEXT,"[b]{growing_time_change}[/b]{growing_time_icon}","[b]{growing_time_change}[/b]{growing_time_icon}"
|
||||
@@ -110,7 +109,7 @@ PICKAXE,Pickaxe,Pioche
|
||||
PICKAXE_DESC_TEXT,Can dig rock and precious materials,Peut creuser la roche et des matériaux précieux
|
||||
DIG,Dig,Creuser
|
||||
OPEN,Open,Ouvrir
|
||||
%s_SEED,%s Seed,Graine de %s
|
||||
%s_SEED,%s Seed,Graine de %s
|
||||
PLANT_%s_MUST_BE_USED_IN_DECONTAMINATED_ZONE,Plant [b]%s[/b]. Must be used in the fertile zone.,Plante [b]%s[/b]. Doit être utilisée dans la zone fertile.
|
||||
PLANT_%s,Plant [b]%s[/b],Planter [b]%s[/b]
|
||||
MOVE_WITH_RIGHT_CLICK_OR_WASD,"Move with right click or WASD","Déplace-toi avec le clic droit ou ZQSD"
|
||||
@@ -125,6 +124,12 @@ DIG_A_TALION_VEIN_WITH_SHOVEL,Dig a [b]Talion Vein[/b] with the [b]Pickaxe[/b],C
|
||||
PLANT_SEED_IN_FERTILE_ZONE,Plant a [b]Seed[/b] in the [b]Fertile Zone[/b],Planter une [b]Graine[/b] dans la [b]Zone Fertile[/b]
|
||||
GAIN_FIRST_PLANT_POINT,Earn your first [b]Plant Point[/b] while waiting for a plant to [b]Mature[/b] (recharging will pass days),Gagnez votre premier [b]Point de Plante[/b] en attendant qu'une plante soit [b]Mature[/b] (se recharger fera passer les jours)
|
||||
HARVEST_A_MATURE_PLANT,Harvest a [b]Mature Plant[/b] using your [b]Fork[/b],Récoltez une [b]Plante Mature[/b] en utilisant votre [b]Fourche[/b]
|
||||
PLANT_NAME_TEXT,"[b]Plant name and state[/b] Each plant species has a unique name and can have 2 states: juvenile and mature","[b]Nom et état de la plante[/b] Chaque espèce de plantes a un nom unique et chaque plante peut avoir deux états : juvénile et mature"
|
||||
PLANT_STATS_TEXT,"[b]Plant stats[/b] Here you can see your plant's age, the day of maturation, the lifetime, and the seed number that the plant can produce","[b]Statistiques[/b] Ici, vous pouvez voir l'âge de votre plante, le jour de maturation, le temps de vie et le nombre de graine que la plante donne"
|
||||
PLANT_MUTATION_TEXT,"[b]Mutations[/b] Each species has mutations that alter the plant's behavior. These mutations are transmissible to the plant's seeds, where they can change or evolve superior levels","[b]Mutations[/b] Chaque espèce possède des mutations qui modifient le comportement de la plante. Ces mutations se transmettent aux graines, et peuvent changer ou évoluer aux niveaux supérieurs"
|
||||
PLANTS_INFO,"Plants info","Information des plantes"
|
||||
OBTAIN_INFORMATION_ON_PLANTS_WHILE_HOVERING_PLANTS_BASE,"Obtain information on plants while hovering over the plant base","Obtenez des informations sur les plantes en survolant leur base"
|
||||
PLANT_SCORE_TEXT,"[b]Score[/b] By default, each plant get 1 score when mature","[b]Score[/b] Par défaut, chaque plante gagne 1 de score à la maturation"
|
||||
%d_PLANT_POINT,%d Plant Point,%d Point de plante
|
||||
%d_PLANT_POINTS,%d Plant Points,%d Points de plante
|
||||
SCORE_%d,Score %d,Score %d
|
||||
@@ -197,6 +202,10 @@ LAND_SHIP,Land Ship,Atterrir
|
||||
TAKE_OFF,Take Off,Décoller
|
||||
NO_MORE_ENERGY,No more energy,Plus assez d'énergie
|
||||
NO_RECHARGE_LEFT,"No recharge left, give up to try again","Pas de recharge restante, abandonnez pour recommencer"
|
||||
SHIP_ACQUIRED,Ship Acquired,Vaisseau Acquis
|
||||
USE_THE_SHIP_TO_TRAVEL_ACROSS_THE_PLANET,"Use the ship to travel across the planet","Utilisez le vaisseau pour voyager sur la planète"
|
||||
JUMP_BETWEEN_REGION_TEXT,"[b]Jump between regions[/b] Use the ship dashboard to choose the next region between two choices","[b]Changez de région[/b] Utilisez le tableau de bord pour changer de région parmi deux choix"
|
||||
RECHARGE_YOUR_SHIP_WITH_PLANT_SCORE_TEXT,"[b]Recharge your ship with plant score[/b] The Internode has fuel for only one jump; recharge it with plants on the planet","[b]Rechargez votre vaisseau avec les scores de plantes[/b] L'Internode a du carburant pour un seul changement, rechargez le avec en plantant sur la planète"
|
||||
SHIP_IS_READY_TO_TAKE_OFF,Ship is ready to take off,Le vaisseau est prêt à partir
|
||||
TUTORIAL_FINISHED,Tutorial finished,Tutoriel terminé
|
||||
CHOOSE_NEXT_STOP,Choose next stop,Choisissez le prochain arrêt
|
||||
@@ -229,8 +238,20 @@ HUMID,Humid,Humide
|
||||
HUMID_MODIFIER_DESC_TEXT,Reduce the number of [b]Recharge[/b],Réduit le nombre de [b]Recharge[/b]
|
||||
POOR,Poor,Pauvre
|
||||
POOR_MODIFIER_DESC_TEXT,Reduce the number of [b]Talion Veins[/b],Réduit le nombre de [b]Veine de Talion[/b]
|
||||
ROCKY,Rocky,Rocheux
|
||||
ROCKY_MODIFIER_DESC_TEXT,There is no [b]Talion Veins[/b] in the area,Aucune [b]Veine de Talion[/b] dans la zone
|
||||
TOXIC,Toxic,Toxique
|
||||
TOXIC_MODIFIER_DESC_TEXT,Reduce all plant lifetime by 1,Réduit la durée de vie de toutes les plantes de 1
|
||||
SANDY,Sandy,Sableux
|
||||
SANDY_MODIFIER_DESC_TEXT,Reduce plants influence radius,Réduit le rayon d'influence des plantes
|
||||
RADIOACTIVE,Radioactive,Radioactif
|
||||
RADIOACTIVE_MODIFIER_DESC_TEXT,Reduce the plant's base score by 1,Réduit le score de base des plantes de 1
|
||||
CONTAMINATED,Contaminated,Contaminée
|
||||
CONTAMINATED_MODIFIER_DESC_TEXT,Decrease all plants seeds production and increase the possible seed loss,Diminue la production de graine et augmente la perte possible de graine pour toutes les plantes
|
||||
VENDING_MACHINES,Vending Machines,Distributeurs
|
||||
VENDING_MACHINES_MODIFIER_DESC_TEXT,A room with old vending machine is in the area,Une pièce avec de vieux distributeurs se trouve dans la zone
|
||||
RESONNANCE,Resonnance,Résonnance
|
||||
RESONNANCE_MODIFIER_DESC_TEXT,Mutation level from [b]Talion Veins[/b] seeds is increased,Le niveau de mutation des graines issues de [b]Veine de Talion[/b] est augmenté
|
||||
PASS_THE_MYSTERIOUS_DOOR,Go through the mysterious door,Franchissez la porte mystérieuse
|
||||
NEXT_STOP,Next Stop,Prochain arrêt
|
||||
ORBIT,Orbit,Orbite
|
||||
|
||||
|