Amélioration QOL et fix divers pour l'alpha-1.1
* Ajout des icônes dans les descriptions des mutations * QOL sur la fonctionnalité de drop d'item * Ajout des contrôles dans le tutoriel * Réécriture des dialogues d'intro et d'échec * Changements mineurs sur des dialogues et traduction * Les graines apparaissent avec déjà une mutation * Limitation du Talion autour de la station de recharge * Fix de l'ascenseur dans la base Astra * Ajout d'un effet visuel quand il n'y a plus d'énergie * Le nombre de graine apparrait désormais dans l'inspécteur de plantes * Ajout d'un petit icône de progrès de durée de vie de la plante au survol * Ajout d'une description de la signification des icônes dans le menu pause * La mutation éphémère réduit désormais la durée de vie de 1
This commit is contained in:
@@ -72,8 +72,6 @@ func _on_timeline_started():
|
||||
play_ambiance("Demeter")
|
||||
"demeter_intro":
|
||||
play_ambiance("Demeter")
|
||||
"demeter_introV2":
|
||||
play_ambiance("Demeter")
|
||||
"demeter_post_tutorial":
|
||||
play_ambiance("Demeter")
|
||||
"failure":
|
||||
|
||||
1
common/icons/droplets.svg
Normal file
1
common/icons/droplets.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-droplets"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M6 12.003c.541 0 1.045 .273 1.342 .727l2.122 3.273a3.999 3.999 0 0 1 -6.035 5.063c-1.487 -1.248 -1.864 -3.382 -.867 -5.11l2.098 -3.226a1.6 1.6 0 0 1 1.34 -.727" /><path d="M18 12.003c.541 0 1.045 .273 1.342 .727l2.122 3.273a3.999 3.999 0 0 1 -6.035 5.063c-1.487 -1.248 -1.864 -3.382 -.867 -5.11l2.098 -3.227a1.6 1.6 0 0 1 1.34 -.726" /><path d="M12 2.003c.541 0 1.045 .273 1.342 .727l2.122 3.273a3.999 3.999 0 0 1 -6.035 5.063c-1.487 -1.248 -1.864 -3.382 -.867 -5.11l2.098 -3.226a1.6 1.6 0 0 1 1.34 -.727" /></svg>
|
||||
|
After Width: | Height: | Size: 738 B |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bku47nx7clom4"
|
||||
path="res://.godot/imported/card_tutorial_image.png-a8f51388f4585abed9acb5f7a239ec3a.ctex"
|
||||
uid="uid://el06htgr2pda"
|
||||
path="res://.godot/imported/droplets.svg-764db2a63540077d3798513e95cb87e1.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://gui/pause/assets/textures/card_tutorial_image.png"
|
||||
dest_files=["res://.godot/imported/card_tutorial_image.png-a8f51388f4585abed9acb5f7a239ec3a.ctex"]
|
||||
source_file="res://common/icons/droplets.svg"
|
||||
dest_files=["res://.godot/imported/droplets.svg-764db2a63540077d3798513e95cb87e1.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
@@ -38,3 +38,6 @@ 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
|
||||
4
common/tools/scripts/text.gd
Normal file
4
common/tools/scripts/text.gd
Normal file
@@ -0,0 +1,4 @@
|
||||
class_name Text
|
||||
|
||||
static func bbcode_icon(texture : Texture):
|
||||
return "[img=22x22]%s[/img]" % texture.resource_path
|
||||
1
common/tools/scripts/text.gd.uid
Normal file
1
common/tools/scripts/text.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://dusboavsyp211
|
||||
@@ -11,13 +11,13 @@ demeter: I found you a new body,[pause=0.2] and a new ship is waiting for you ou
|
||||
demeter: Do you need some advices ? #id:18
|
||||
- No, I'm ok. #id:19
|
||||
- Can I have some explanations on how all of this works again ? #id:1a
|
||||
demeter: When you emerge from this building,[pause=0.2] you will reach a little yellowish zone.[pause=0.3] It's a [b]fertile zone[/b],[pause=0.3] brought back by the [color=#119758][b]Talion's[/b][/color] power.[pause=0.5] You can only plant [b]seeds[/b] in this zone. #id:1b
|
||||
demeter: Then,[pause=0.3] you have to get [b]seeds[/b].[pause=0.5] To do so,[pause=0.2] just take your shovel and smash some stones ![pause=0.5] Focus on those having yellow crystals on it,[pause=0.3] these are [color=#119758][b]Talion veins[/b][/color]. #id:1c
|
||||
demeter: Each time you use a tool like the shovel or plant a seed,[pause=0.2] you will spend one [b]energy[/b] charge.[pause=0.5] When you are out of it,[pause=0.2] just go recharge it at the [b]recharge station[/b].[pause=0.5] You will find it near the entrance of the base. #id:1d
|
||||
demeter: Each time you recharge,[pause=0.2] a day will pass,[pause=0.3] your batteries are very inefficient.[pause=0.5] While the day is passing,[pause=0.3] plants will grow ! #id:1e
|
||||
demeter: You have to produce enough [b]plant points[/b] to fill the [color=#FFA617]Internode's[/color] tanks.[pause=0.5] Each plant gives one or more [b]plant points[/b] when mature. #id:1f
|
||||
demeter: Oh ! [pause=0.3] I almost forgot,[pause=0.3] some plants can [b]mutate[/b].[pause=0.5] These [b]mutations[/b] alter the points and behavior of the plant affected.[pause=0.5] [b]Mutations[/b] can appear while [b]harvesting[/b] mature plants and even become more powerful if you [b]harvest[/b] an already mutated one. #id:20
|
||||
demeter: Hope I helped. #id:21
|
||||
demeter: When you start a region,[pause=0.2] search for the [b]Recharge Station[/b], there is always one near. #id:9c
|
||||
demeter: Then,[pause=0.3] you'll have to find seeds by smashing some [b]Talion Veins[/b] in the stones with your shovel. #id:9d
|
||||
demeter: You can then plant seeds in the yellow moss you'll find on the ground, it's the only [b]Fertile Zones[/b]. #id:9e
|
||||
demeter: When you are out of [b]Energy[/b], you can recharge on the [b]Recharge Station[/b], time will pass and plants will grow. #id:9f
|
||||
demeter: Each seed is different by their [b]Mutations[/b], and you can get same or better seed from a plant by destroying it when mature, or waiting the end of their lifetime. #id:a0
|
||||
demeter: Plants generate [b]Plant Points[/b] when mature, get enough plant points to fill the reservoir of the [color=#FFA617]Internode[/color]. #id:a1
|
||||
demeter: Hope I helped. #id:21
|
||||
demeter: I'm sending you an elevator,[pause=0.3] see you soon ! #id:22
|
||||
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
|
||||
[wait time="2.0"]
|
||||
@@ -22,12 +22,12 @@ demeter: With the [color=#119758][b]Talion[/b][/color] back on the surface,[paus
|
||||
demeter: But first things first,[pause=0.3] you have to learn how everything is working up here,[pause=0.2] and how to use the [color=#119758][b]Talion[/b][/color] to plant seeds. #id:36
|
||||
demeter: [b]Just remember the following[/b] #id:37
|
||||
label explanations #id:38
|
||||
demeter: When you emerge from this building,[pause=0.2] you will reach a little yellowish zone.[pause=0.3] It's a [b]fertile zone[/b],[pause=0.3] brought back by the [color=#119758][b]Talion's[/b][/color] power.[pause=0.5] You can only plant [b]seeds[/b] in this zone. #id:39
|
||||
demeter: Then,[pause=0.3] you have to get [b]seeds[/b].[pause=0.5] To do so,[pause=0.2] just take your shovel and smash some stones ![pause=0.5] Focus on those having yellow crystals on it,[pause=0.3] these are [color=#119758][b]Talion veins[/b][/color]. #id:3a
|
||||
demeter: Each time you use a tool like the shovel or plant a seed,[pause=0.2] you will spend one [b]energy[/b] charge.[pause=0.5] When you are out of it,[pause=0.2] just go recharge it at the [b]recharge station[/b].[pause=0.5] You will find it near the entrance of the base. #id:3b
|
||||
demeter: Each time you recharge,[pause=0.2] a day will pass,[pause=0.3] your batteries are very inefficient.[pause=0.5] While the day is passing,[pause=0.3] plants will grow ! #id:3c
|
||||
demeter: To complete you training,[pause=0.3] obtain enough [b]plant points[/b].[pause=0.5] Each plant gives one or more [b]plant points[/b] when mature. #id:3d
|
||||
demeter: Oh ! [pause=0.3] I almost forgot,[pause=0.3] some plants can [b]mutate[/b].[pause=0.5] These [b]mutations[/b] alter the points and behavior of the plant affected.[pause=0.5] [b]Mutations[/b] can appear while [b]harvesting[/b] mature plants and even become more powerful if you [b]harvest[/b] an already mutated one. #id:3e
|
||||
demeter: When you emerge from this building,[pause=0.2] search for the [b]Recharge Station[/b], I think there is one near the entrance. #id:a2
|
||||
demeter: Then,[pause=0.3] you'll have to find seeds by smashing some [b]Talion Veins[/b] in the stones with your shovel. #id:a3
|
||||
demeter: You can then plant seeds in the yellow moss you'll find on the ground, it's the only [b]Fertile Zones[/b]. #id:a4
|
||||
demeter: When you are out of [b]Energy[/b], you can recharge on the [b]Recharge Station[/b], time will pass and plants will grow. #id:a5
|
||||
demeter: Each seed is different by their [b]Mutations[/b], and you can get same or better seed from a plant by destroying it when mature, or waiting the end of their lifetime. #id:a6
|
||||
demeter: Plants generate [b]Plant Points[/b] when mature, get enough plant points and you'll complete the training. #id:a7
|
||||
- That's a lot of information, can you repeat ? #id:3f
|
||||
demeter: Ok,[pause=0.2] listen carefully. #id:40
|
||||
jump explanations
|
||||
|
||||
@@ -25,6 +25,6 @@ demeter: Humans had one major flaw.[pause=0.5] Together,[pause=0.2] they built g
|
||||
- What happened ? #id:89
|
||||
demeter: Sorry my child,[pause=0.3] I'm not ready to talk about that for now.[pause=0.3].[pause=0.3].[pause=0.3] You'll have your answers when you meet me. #id:8a
|
||||
- Can I know what is this shiny machine just next to me ? #id:8b
|
||||
demeter: This machine is a planetary ship ![pause=0.5] This model is called [color=#FFA617]Internode[/color],[pause=0.3] I tweaked it to recharge on vegetal energy.[pause=0.5] However,[pause=0.2] as you know,[pause=0.2] this type of energy is uncommon on this planet.[pause=0.5] But let's continue on board,[pause=0.2] shall we ? #id:8c
|
||||
demeter: The engine you see is a planetary ship ![pause=0.5] This model is called [color=#FFA617]Internode[/color],[pause=0.3] I tweaked it to recharge on vegetal energy.[pause=0.5] However,[pause=0.2] as you know,[pause=0.2] this type of energy is uncommon on this planet.[pause=0.5] But let's continue on board,[pause=0.2] shall we ? #id:8c
|
||||
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
|
||||
[wait time="2.0"]
|
||||
Binary file not shown.
BIN
entities/interactable_3d/lift/assets/3d/lift.blend1
Normal file
BIN
entities/interactable_3d/lift/assets/3d/lift.blend1
Normal file
Binary file not shown.
@@ -7,6 +7,10 @@
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_werxl"]
|
||||
size = Vector3(0.9637451, 1.8898926, 1)
|
||||
|
||||
[sub_resource type="CylinderShape3D" id="CylinderShape3D_werxl"]
|
||||
height = 0.2268219
|
||||
radius = 1.0737305
|
||||
|
||||
[sub_resource type="Animation" id="Animation_0mfvw"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
@@ -50,19 +54,28 @@ interactable = false
|
||||
hover_animation_player = NodePath("HoverAnimationPlayer")
|
||||
|
||||
[node name="Sprite3D" type="Sprite3D" parent="." unique_id=1624930927]
|
||||
transform = Transform3D(-4.2294918e-08, 0.17856176, 0.9839286, 7.805184e-09, 0.9839286, -0.17856176, -1, 1.2748912e-10, -4.3008885e-08, -0.8393693, 1.5452437, 0)
|
||||
transform = Transform3D(-4.2294918e-08, 0.17856175, 0.9839286, 7.805184e-09, 0.9839286, -0.17856175, -1, 1.2749e-10, -4.3008885e-08, -0.8393693, 1.5452437, 0)
|
||||
texture = ExtResource("2_cun7v")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=525472594]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.1801186, 1.1958501, 0)
|
||||
shape = SubResource("BoxShape3D_werxl")
|
||||
|
||||
[node name="Model" parent="." unique_id=1309925933 instance=ExtResource("3_x56sx")]
|
||||
[node name="Model" parent="." unique_id=1852940735 instance=ExtResource("3_x56sx")]
|
||||
|
||||
[node name="OmniLight3D" type="OmniLight3D" parent="." unique_id=11561025]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2593379, 0)
|
||||
light_color = Color(0.717588, 0.45361686, 0.5535787, 1)
|
||||
shadow_enabled = true
|
||||
|
||||
[node name="RigidBody3D" type="RigidBody3D" parent="." unique_id=618737753]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.26774597, 1.1958501, 0)
|
||||
gravity_scale = 0.0
|
||||
freeze = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D" unique_id=1756356716]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.33335906, -1.2537155, 0)
|
||||
shape = SubResource("CylinderShape3D_werxl")
|
||||
|
||||
[node name="HoverAnimationPlayer" type="AnimationPlayer" parent="." unique_id=487483897]
|
||||
libraries/ = SubResource("AnimationLibrary_0mfvw")
|
||||
|
||||
@@ -125,9 +125,8 @@ shape = SubResource("RectangleShape2D_y51rk")
|
||||
unique_name_in_owner = true
|
||||
scale = Vector2(0.33, 0.33)
|
||||
sprite_frames = SubResource("SpriteFrames_4aafg")
|
||||
animation = &"close"
|
||||
frame = 8
|
||||
frame_progress = 1.0
|
||||
animation = &"closed"
|
||||
frame_progress = 0.99532324
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1875435966]
|
||||
position = Vector2(0.99999994, -41)
|
||||
|
||||
@@ -8,6 +8,35 @@
|
||||
atlas = ExtResource("3_j6jm5")
|
||||
region = Rect2(76, 75, 124, 135)
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_rbgiq"]
|
||||
viewport_path = NodePath("LifeTimeSprite/SubViewport")
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_rbgiq"]
|
||||
interpolation_mode = 1
|
||||
offsets = PackedFloat32Array(0, 0.800905, 1)
|
||||
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_rbgiq"]
|
||||
gradient = SubResource("Gradient_rbgiq")
|
||||
width = 100
|
||||
height = 100
|
||||
fill = 1
|
||||
fill_from = Vector2(0.5, 0.5)
|
||||
fill_to = Vector2(1, 0.5)
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_j6jm5"]
|
||||
interpolation_mode = 1
|
||||
offsets = PackedFloat32Array(0, 0.5248869)
|
||||
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_wyuub"]
|
||||
gradient = SubResource("Gradient_j6jm5")
|
||||
width = 100
|
||||
height = 100
|
||||
fill = 1
|
||||
fill_from = Vector2(0.5, 0.5)
|
||||
fill_to = Vector2(1, 0.5)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_wyuub"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
@@ -119,6 +148,30 @@ position = Vector2(4.444448, 31.11118)
|
||||
scale = Vector2(3.1777775, 3.1777775)
|
||||
texture = ExtResource("3_rbgiq")
|
||||
|
||||
[node name="LifeTimeSprite" type="Sprite2D" parent="." unique_id=799762981]
|
||||
unique_name_in_owner = true
|
||||
position = Vector2(-1, -9.999985)
|
||||
scale = Vector2(0.34, 0.34)
|
||||
texture = SubResource("ViewportTexture_rbgiq")
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="LifeTimeSprite" unique_id=1809354262]
|
||||
disable_3d = true
|
||||
transparent_bg = true
|
||||
size = Vector2i(100, 100)
|
||||
|
||||
[node name="LifetimeProgressBar" type="TextureProgressBar" parent="LifeTimeSprite/SubViewport" unique_id=967185775]
|
||||
unique_name_in_owner = true
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
size_flags_horizontal = 6
|
||||
size_flags_vertical = 6
|
||||
fill_mode = 4
|
||||
texture_over = SubResource("GradientTexture2D_rbgiq")
|
||||
texture_progress = SubResource("GradientTexture2D_wyuub")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1793068152]
|
||||
unique_name_in_owner = true
|
||||
libraries/ = SubResource("AnimationLibrary_8eofq")
|
||||
|
||||
@@ -7,11 +7,12 @@ const HARVESTED_SEED_DISPLACEMENT_FACTOR = 100
|
||||
|
||||
const RANDOM_MAX_GROW_INTERVAL = Region.MIN_PASS_DAY_ANIMATION_TIME/2. - 0.1
|
||||
const PLANT_TYPE_ICON = preload("res://common/icons/seedling.svg")
|
||||
const PLANT_POINT_ICON = preload("res://common/icons/growth.svg")
|
||||
const LIFETIME_ICON = preload("res://common/icons/calendar-week.svg")
|
||||
const SCORE_ICON = preload("res://common/icons/growth.svg")
|
||||
const DURATION_ICON = preload("res://common/icons/calendar-week.svg")
|
||||
const SHOVEL_ICON = preload("res://common/icons/shovel.svg")
|
||||
const GROWING_ICON = preload("res://common/icons/chevrons-up.svg")
|
||||
const DEATH_ICON = preload("res://common/icons/skull.svg")
|
||||
const LIFETIME_ICON= preload("res://common/icons/skull.svg")
|
||||
const SEED_ICON = preload("res://common/icons/droplets.svg")
|
||||
|
||||
const SPRITE_SCENE : PackedScene = preload("res://entities/plants/plant_sprite.tscn")
|
||||
|
||||
@@ -47,11 +48,12 @@ func pointer_text() -> String:
|
||||
return data.plant_name
|
||||
|
||||
func inspect(is_inspected : bool = true):
|
||||
plant_sprite.modulate = MODULATE_INSPECTED_COLOR if is_inspected else default_modulate
|
||||
plant_sprite.sprite_modulate = MODULATE_INSPECTED_COLOR if is_inspected else default_modulate
|
||||
plant_sprite.display_lifetime_sprite = is_inspected
|
||||
influence_zone.show_influence = is_inspected
|
||||
|
||||
func affect_preview(is_affected : bool = true):
|
||||
plant_sprite.modulate = MODULATE_AFFECTED_COLOR if is_affected else default_modulate
|
||||
plant_sprite.sprite_modulate = MODULATE_AFFECTED_COLOR if is_affected else default_modulate
|
||||
|
||||
func generate_sprite() -> PlantSprite:
|
||||
var sprite_object : PlantSprite = SPRITE_SCENE.instantiate()
|
||||
@@ -155,10 +157,10 @@ func save() -> EntityData:
|
||||
func card_info() -> CardInfo:
|
||||
var info = CardInfo.new(
|
||||
data.plant_name,
|
||||
tr("MATURE") if data.is_mature() else tr("GROWING")# data.archetype.archetype_name
|
||||
tr("MATURE") if data.is_mature() else tr("JUVENILE")# data.archetype.archetype_name
|
||||
)
|
||||
|
||||
info.important_stat_icon = PLANT_POINT_ICON
|
||||
info.important_stat_icon = SCORE_ICON
|
||||
info.important_stat_text = "%d" % calculate_plant_score()
|
||||
info.type_icon = PLANT_TYPE_ICON
|
||||
|
||||
@@ -166,7 +168,7 @@ func card_info() -> CardInfo:
|
||||
info.stats.append_array([
|
||||
CardStatInfo.new(
|
||||
str(data.day),
|
||||
LIFETIME_ICON
|
||||
DURATION_ICON
|
||||
),
|
||||
CardStatInfo.new(
|
||||
str(data.get_growing_time()),
|
||||
@@ -174,7 +176,14 @@ func card_info() -> CardInfo:
|
||||
),
|
||||
CardStatInfo.new(
|
||||
str(data.get_lifetime()),
|
||||
DEATH_ICON
|
||||
LIFETIME_ICON
|
||||
),
|
||||
CardStatInfo.new(
|
||||
"%d-%d" % [
|
||||
data.get_seed_number(PlantData.State.MATURE) - data.get_seed_random_loose(),
|
||||
data.get_seed_number(PlantData.State.MATURE)
|
||||
],
|
||||
SEED_ICON
|
||||
),
|
||||
])
|
||||
|
||||
|
||||
@@ -133,7 +133,7 @@ func get_seed_buff() -> int:
|
||||
var buff = 0
|
||||
|
||||
for m in mutations:
|
||||
buff += m.mutate_seed_buff(self)
|
||||
buff = m.mutate_seed_buff(self, buff)
|
||||
|
||||
return buff
|
||||
|
||||
|
||||
@@ -51,8 +51,8 @@ func mutate_seed_random_loose(_plant_data: PlantData, seed_random_loose) -> int:
|
||||
func mutate_lifetime_buff(_plant_data: PlantData) -> int:
|
||||
return 0
|
||||
|
||||
func mutate_seed_buff(_plant_data: PlantData) -> int:
|
||||
return 0
|
||||
func mutate_seed_buff(_plant_data: PlantData, seed_buff : int) -> int:
|
||||
return seed_buff
|
||||
|
||||
func _start_planted_effect(_plant: Plant):
|
||||
pass
|
||||
@@ -78,7 +78,7 @@ func get_rarity() -> int:
|
||||
func card_section() -> CardSectionInfo:
|
||||
var section = CardSectionInfo.new(
|
||||
get_mutation_name() + (" %d" % level if level > 1 else ""),
|
||||
"[b]%s[/b] %s" % [tr(PlantMutation.get_rarity_text(get_rarity())), get_mutation_description()]
|
||||
get_mutation_description()
|
||||
)
|
||||
|
||||
section.color = PlantMutation.get_rarity_color(get_rarity())
|
||||
|
||||
@@ -13,10 +13,12 @@ func get_mutation_name() -> String:
|
||||
return tr("ANCIENT")
|
||||
|
||||
func get_mutation_description() -> String:
|
||||
return tr("ANCIENT_EFFECT_TEXT_LEVEL").format(
|
||||
return tr("ANCIENT_EFFECT_TEXT").format(
|
||||
{
|
||||
"score_increase": get_score_increase(),
|
||||
"day_factor": get_day_factor()
|
||||
"score_icon": Text.bbcode_icon(Plant.SCORE_ICON),
|
||||
"day_factor": get_day_factor(),
|
||||
"duration_icon": Text.bbcode_icon(Plant.DURATION_ICON),
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -11,16 +11,21 @@ func get_mutation_name() -> String:
|
||||
return tr("EPHEMERAL")
|
||||
|
||||
func get_mutation_description() -> String:
|
||||
return tr("EPHEMERAL_EFFECT_TEXT_LEVEL").format({"seed_number": level, "lifetime_change": get_lifetime_change()})
|
||||
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):
|
||||
return seed_number + level
|
||||
return seed_number + level + 1
|
||||
|
||||
func get_seed_increase() -> int:
|
||||
return floori((level + 1.0) / 2)
|
||||
|
||||
func get_lifetime_change() -> int:
|
||||
return -2
|
||||
return -1
|
||||
|
||||
@@ -11,7 +11,13 @@ func get_mutation_name() -> String:
|
||||
return tr("FERTILE")
|
||||
|
||||
func get_mutation_description() -> String:
|
||||
return tr("FERTILE_EFFECT_TEXT_LEVEL_%d") % level
|
||||
return tr("FERTILE_EFFECT_TEXT").format({
|
||||
"seed_buff": get_seed_buff(),
|
||||
"seed_icon": Text.bbcode_icon(Plant.SEED_ICON)
|
||||
})
|
||||
|
||||
func mutate_seed_buff(_plant_data: PlantData) -> int:
|
||||
func mutate_seed_buff(_plant_data: PlantData, seed_buff) -> int:
|
||||
return seed_buff + get_seed_buff()
|
||||
|
||||
func get_seed_buff():
|
||||
return level
|
||||
@@ -11,7 +11,13 @@ func get_mutation_name() -> String:
|
||||
return tr("PRECOCIOUS")
|
||||
|
||||
func get_mutation_description() -> String:
|
||||
return tr("PRECOCIOUS_EFFECT_TEXT_LEVEL_%d") % level
|
||||
return tr("PRECOCIOUS_EFFECT_TEXT").format({
|
||||
"score": get_score(),
|
||||
"score_icon": Text.bbcode_icon(Plant.SCORE_ICON)
|
||||
})
|
||||
|
||||
func mutate_score(data : PlantData, score : int) -> int:
|
||||
return score + (0 if data.get_state() == PlantData.State.MATURE else level)
|
||||
return score + (0 if data.get_state() == PlantData.State.MATURE else get_score())
|
||||
|
||||
func get_score():
|
||||
return level
|
||||
@@ -11,7 +11,9 @@ func get_mutation_name() -> String:
|
||||
return tr("PURIFICATION")
|
||||
|
||||
func get_mutation_description() -> String:
|
||||
return tr("PURIFICATION_EFFECT_TEXT_LEVEL_%d") % get_purification_radius()
|
||||
return tr("PURIFICATION_EFFECT_TEXT").format({
|
||||
"purification_radius": get_purification_radius()
|
||||
})
|
||||
|
||||
func _start_maturation_effect(plant : Plant):
|
||||
plant.region.decontaminate(Math.get_tiles_in_circle(
|
||||
|
||||
@@ -14,7 +14,13 @@ func get_mutation_name() -> String:
|
||||
return tr("QUALITY")
|
||||
|
||||
func get_mutation_description() -> String:
|
||||
return tr("QUALITY_EFFECT_TEXT_LEVEL_%d") % level
|
||||
return tr("QUALITY_EFFECT_TEXT").format({
|
||||
"score": get_score(),
|
||||
"score_icon": Text.bbcode_icon(Plant.SCORE_ICON)
|
||||
})
|
||||
|
||||
func mutate_score(data : PlantData, score : int) -> int:
|
||||
return score + (level if data.get_state() == PlantData.State.MATURE else 0)
|
||||
return score + (get_score() if data.get_state() == PlantData.State.MATURE else 0)
|
||||
|
||||
func get_score():
|
||||
return level
|
||||
@@ -11,7 +11,14 @@ func get_mutation_name() -> String:
|
||||
return tr("QUICK")
|
||||
|
||||
func get_mutation_description() -> String:
|
||||
return tr("QUICK_EFFECT_TEXT_LEVEL").format({"score_increase": get_score_increase(), "lifetime_decrease": get_lifetime_decrease()})
|
||||
return tr("QUICK_EFFECT_TEXT").format(
|
||||
{
|
||||
"score_increase": get_score_increase(),
|
||||
"lifetime_decrease": get_lifetime_change(),
|
||||
"score_icon": Text.bbcode_icon(Plant.SCORE_ICON),
|
||||
"lifetime_icon": Text.bbcode_icon(Plant.LIFETIME_ICON)
|
||||
}
|
||||
)
|
||||
|
||||
func mutate_score(plant_data: PlantData, score: int) -> int:
|
||||
if not plant_data.is_mature():
|
||||
@@ -20,10 +27,10 @@ func mutate_score(plant_data: PlantData, score: int) -> int:
|
||||
return score + level
|
||||
|
||||
func mutate_lifetime(_plant_data: PlantData, lifetime: int) -> int:
|
||||
return max(1, lifetime-get_lifetime_decrease())
|
||||
return max(1, lifetime+get_lifetime_change())
|
||||
|
||||
func get_score_increase() -> int:
|
||||
return level * 2
|
||||
|
||||
func get_lifetime_decrease() -> int:
|
||||
return 3
|
||||
func get_lifetime_change() -> int:
|
||||
return -3
|
||||
|
||||
@@ -13,10 +13,11 @@ func get_mutation_name() -> String:
|
||||
return tr("SOCIABLE")
|
||||
|
||||
func get_mutation_description() -> String:
|
||||
return tr("SOCIABLE_EFFECT_TEXT_LEVEL").format(
|
||||
return tr("SOCIABLE_EFFECT_TEXT").format(
|
||||
{
|
||||
"near_amount": get_near_plants_around(),
|
||||
"score_increase": get_score_increase()
|
||||
"score_increase": get_score_increase(),
|
||||
"score_icon": Text.bbcode_icon(Plant.SCORE_ICON),
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -11,13 +11,21 @@ func get_mutation_name() -> String:
|
||||
return tr("TOUGH")
|
||||
|
||||
func get_mutation_description() -> String:
|
||||
return tr("TOUGH_EFFECT_TEXT_LEVEL_%d") % get_growing_time_increase()
|
||||
return tr("TOUGH_EFFECT_TEXT").format({
|
||||
"score_icon": Text.bbcode_icon(Plant.SCORE_ICON),
|
||||
"score_multiplier": get_score_multiplier(),
|
||||
"growing_time": get_growing_time_increase(),
|
||||
"growing_icon": Text.bbcode_icon(Plant.GROWING_ICON)
|
||||
})
|
||||
|
||||
func mutate_score_multiplier(_plant_data: PlantData, multiplier: int) -> int:
|
||||
return multiplier * 2
|
||||
return multiplier * get_score_multiplier()
|
||||
|
||||
func mutate_growing_time(_plant_data: PlantData, growing_time: int) -> int:
|
||||
return maxi(0, growing_time + get_growing_time_increase())
|
||||
|
||||
func get_growing_time_increase()->int:
|
||||
return 4 - level
|
||||
|
||||
func get_score_multiplier()->int:
|
||||
return 2
|
||||
|
||||
@@ -11,7 +11,11 @@ signal harvest_animation_finished
|
||||
var last_updated_on_state : PlantData.State = PlantData.State.MATURE
|
||||
var stored_seed_image : Texture = null
|
||||
|
||||
var display_lifetime_sprite : bool = false : set = set_display_lifetime_sprite
|
||||
var sprite_modulate : Color = Color.WHITE : set = set_sprite_modulate
|
||||
|
||||
func setup_plant_sprite(plant_data : PlantData):
|
||||
set_display_lifetime_sprite()
|
||||
%PlantedSeed.texture = PlantTextureBuilder.build_seed_texture(plant_data.plant_name.hash())
|
||||
update_plant_sprite(plant_data,true)
|
||||
|
||||
@@ -25,6 +29,8 @@ func update_plant_sprite(plant_data : PlantData, with_animation = false):
|
||||
|
||||
%PlantedSeed.visible = plant_data.get_state() == PlantData.State.PLANTED
|
||||
|
||||
%LifetimeProgressBar.value = 100 * (float(plant_data.day)/plant_data.get_lifetime())
|
||||
|
||||
# %PlantedSeed.region_rect = Rect2(
|
||||
# 0,
|
||||
# PLANTED_SEED_POS_Y,
|
||||
@@ -47,3 +53,13 @@ func start_harvest_animation():
|
||||
$AnimationPlayer.play("harvest")
|
||||
await $AnimationPlayer.animation_finished
|
||||
harvest_animation_finished.emit()
|
||||
|
||||
func set_display_lifetime_sprite(d := display_lifetime_sprite):
|
||||
display_lifetime_sprite = d
|
||||
if is_node_ready():
|
||||
%LifeTimeSprite.visible = d
|
||||
|
||||
func set_sprite_modulate(c := sprite_modulate):
|
||||
sprite_modulate = c
|
||||
if is_node_ready():
|
||||
%Sprite.modulate = c
|
||||
@@ -40,8 +40,7 @@ static func generate_from_parent(plant_data : PlantData) -> Seed:
|
||||
static func generate_random() -> Seed:
|
||||
var archetype = PlantArchetype.get_random()
|
||||
var random_mutations : Array[PlantMutation] = []
|
||||
if randf() < MUTATION_PROBABILITY:
|
||||
random_mutations = ([archetype.available_mutations.pick_random().duplicate_deep()] as Array[PlantMutation])
|
||||
random_mutations.append(archetype.available_mutations.pick_random().duplicate_deep())
|
||||
var new_seed = Seed.new(
|
||||
Random.generate_random_word(),
|
||||
PlantArchetype.get_random(),
|
||||
|
||||
@@ -156,8 +156,11 @@ func pick_item(item : Item):
|
||||
|
||||
func drop_item():
|
||||
var ind_to_drop := data.inventory.current_item_ind
|
||||
if data.inventory.current_is_tool():
|
||||
ind_to_drop = data.inventory.n_tools
|
||||
while (
|
||||
(data.inventory.get_item(ind_to_drop) == null or ind_to_drop < data.inventory.n_tools)
|
||||
and ind_to_drop < len(data.inventory.items) - 1
|
||||
):
|
||||
ind_to_drop += 1
|
||||
var item_to_drop = data.inventory.pop_item(ind_to_drop)
|
||||
if item_to_drop:
|
||||
terrain.drop_item(item_to_drop, global_position)
|
||||
|
||||
@@ -47,10 +47,6 @@ func _physics_process(delta):
|
||||
)
|
||||
query_mouse = false
|
||||
|
||||
# Add the gravity.
|
||||
if not is_on_floor():
|
||||
velocity += get_gravity() * delta
|
||||
|
||||
# Get the input direction and handle the movement/deceleration.
|
||||
# As good practice, you should replace UI actions with custom gameplay actions.
|
||||
var input_dir = Input.get_vector("move_left", "move_right", "move_up", "move_down")
|
||||
@@ -64,6 +60,10 @@ func _physics_process(delta):
|
||||
velocity.x = move_toward(velocity.x, 0, speed)
|
||||
velocity.z = move_toward(velocity.z, 0, speed)
|
||||
|
||||
# Add the gravity.
|
||||
if not is_on_floor():
|
||||
velocity += get_gravity() * delta
|
||||
|
||||
move_and_slide()
|
||||
|
||||
func update_mouse_hovered_cockpit_actions() -> void:
|
||||
|
||||
@@ -12,6 +12,16 @@
|
||||
[ext_resource type="Texture2D" uid="uid://b43thuq8piv18" path="res://common/icons/skull.svg" id="7_dr1y2"]
|
||||
[ext_resource type="PackedScene" uid="uid://clicjf8ts51h8" path="res://gui/game/inventory_gui/inventory_gui.tscn" id="9_id0t5"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_ykapk"]
|
||||
offsets = PackedFloat32Array(0.47639486, 1)
|
||||
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_p6blc"]
|
||||
gradient = SubResource("Gradient_ykapk")
|
||||
fill = 1
|
||||
fill_from = Vector2(0.5, 0.5)
|
||||
fill_to = Vector2(1.5, 0.5)
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_id0t5"]
|
||||
font = ExtResource("6_2wykm")
|
||||
font_size = 40
|
||||
@@ -19,6 +29,17 @@ font_size = 40
|
||||
[node name="GameGui" type="CanvasLayer" unique_id=274698556]
|
||||
script = ExtResource("1_udau0")
|
||||
|
||||
[node name="NoEnergyVignette" type="TextureRect" parent="." unique_id=1917087264]
|
||||
unique_name_in_owner = true
|
||||
self_modulate = Color(1, 0, 0.43137255, 1)
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
texture = SubResource("GradientTexture2D_p6blc")
|
||||
|
||||
[node name="Alert" parent="." unique_id=496897031 instance=ExtResource("2_ykapk")]
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(1, 0, 0.43137252, 1)
|
||||
|
||||
@@ -30,7 +30,6 @@ func set_item(i : Item = item):
|
||||
%ItemIconSprite.pixel_size = SPRITE_SIZE / i.icon.get_width()
|
||||
|
||||
for j in range(len(i.get_particles())):
|
||||
print(i.get_particles()[j])
|
||||
if j == 0:
|
||||
%ParticleSprite1.visible = true
|
||||
%ParticleSprite1.texture = i.get_particles()[j].texture
|
||||
|
||||
@@ -38,6 +38,17 @@ func player_update(player_data : PlayerData, with_animation = true):
|
||||
player_data.max_energy,
|
||||
with_animation
|
||||
)
|
||||
if with_animation:
|
||||
get_tree().create_tween().tween_property(
|
||||
%NoEnergyVignette,
|
||||
"modulate:a",
|
||||
1. if player_data.energy == 0 else 0.,
|
||||
0.3
|
||||
)
|
||||
else:
|
||||
%NoEnergyVignette.modulate.a = 1. if player_data.energy == 0 else 0.
|
||||
|
||||
|
||||
|
||||
func _on_region_updated(region_data : RegionData):
|
||||
await get_tree().create_timer(0.1).timeout
|
||||
|
||||
@@ -10,6 +10,21 @@ var indicators : Array[InGameIndicator]
|
||||
@export var region : Region
|
||||
|
||||
@onready var steps : Array[Step] = [
|
||||
Step.new(
|
||||
"MOVE_WITH_RIGHT_CLICK_OR_WASD",
|
||||
(func ():
|
||||
return player.global_position.distance_to(region.data.player_spawn) > 30)
|
||||
),
|
||||
Step.new(
|
||||
"SELECT_ITEM_WITH_SCROLL_CLICK_OR_NUMBER",
|
||||
(func ():
|
||||
return player.data.inventory.current_item_ind != player.data.inventory.n_tools)
|
||||
),
|
||||
Step.new(
|
||||
"LEFT_CLICK_TO_USE_ITEMS",
|
||||
(func ():
|
||||
return player.data.inventory.get_item() and Input.is_action_just_pressed("action"))
|
||||
),
|
||||
Step.new(
|
||||
"USE_YOUR_DETECTOR_TO_FIND_THE_BATTERY",
|
||||
(func ():
|
||||
@@ -24,12 +39,19 @@ var indicators : Array[InGameIndicator]
|
||||
return false)
|
||||
),
|
||||
Step.new(
|
||||
"TAKE_A_SEED",
|
||||
"TAKE_A_SEED_BY_CLICKING_ON_IT",
|
||||
(func ():
|
||||
return player.data.inventory.items.find_custom(
|
||||
func(i:Item): return i is Seed
|
||||
) != -1)
|
||||
),
|
||||
Step.new(
|
||||
"DROP_SEED_WITH_KEY",
|
||||
(func ():
|
||||
return (
|
||||
Input.is_action_pressed("drop"))
|
||||
)
|
||||
),
|
||||
Step.new(
|
||||
"PLANT_SEED_IN_FERTILE_ZONE",
|
||||
(func ():
|
||||
@@ -49,26 +71,10 @@ var indicators : Array[InGameIndicator]
|
||||
return region.data.get_score() != 0)
|
||||
),
|
||||
Step.new(
|
||||
"DISCOVER_A_SEED_WITH_A_MUTATION",
|
||||
"HARVEST_A_MATURE_PLANT",
|
||||
(func ():
|
||||
for e in region.entity_container.get_children():
|
||||
if e is ItemObject and e.item is Seed and len(e.item.plant_mutations):
|
||||
return true
|
||||
return false)
|
||||
),
|
||||
Step.new(
|
||||
"PLANT_A_SEED_WITH_A_MUTATION",
|
||||
(func ():
|
||||
for e in region.entity_container.get_children():
|
||||
if e is Plant and len(e.data.mutations):
|
||||
return true
|
||||
return false)
|
||||
),
|
||||
Step.new(
|
||||
"HARVEST_A_MATURE_PLANT_WITH_A_MUTATION",
|
||||
(func ():
|
||||
for e in region.entity_container.get_children():
|
||||
if e is Plant and e.harvested and len(e.data.mutations):
|
||||
if e is Plant and e.harvested:
|
||||
return true
|
||||
return false)
|
||||
),
|
||||
@@ -98,7 +104,12 @@ func _process(_d):
|
||||
for i in len(steps):
|
||||
var step := steps[i]
|
||||
var step_gui := %Steps.get_children()[i] as TutorialStepGui
|
||||
step_gui.visible = i == 0 or steps[i-1].succeeded
|
||||
if step_gui.visible:
|
||||
var old_succeeded = step.succeeded
|
||||
step.update_succeeded()
|
||||
if old_succeeded != step.succeeded: # Put a delay so two state don't collide
|
||||
return
|
||||
step_gui.suceeded = step.succeeded
|
||||
if not step.succeeded:
|
||||
success = false
|
||||
|
||||
@@ -37,34 +37,34 @@ grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
theme = ExtResource("2_1wikm")
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="MarginContainer" unique_id=913156548]
|
||||
[node name="TutorialStepsPanelContainer" type="PanelContainer" parent="MarginContainer" unique_id=913156548]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 8
|
||||
mouse_filter = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_x7cwm")
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/PanelContainer" unique_id=332993244]
|
||||
[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/TutorialStepsPanelContainer" unique_id=332993244]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/PanelContainer/MarginContainer" unique_id=1196958295]
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/TutorialStepsPanelContainer/MarginContainer" unique_id=1196958295]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/PanelContainer/MarginContainer/VBoxContainer" unique_id=1140176018]
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/TutorialStepsPanelContainer/MarginContainer/VBoxContainer" unique_id=1140176018]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="MarginContainer/PanelContainer/MarginContainer/VBoxContainer/HBoxContainer" unique_id=527978183]
|
||||
[node name="TextureRect" type="TextureRect" parent="MarginContainer/TutorialStepsPanelContainer/MarginContainer/VBoxContainer/HBoxContainer" unique_id=527978183]
|
||||
layout_mode = 2
|
||||
texture = ExtResource("3_8kuag")
|
||||
|
||||
[node name="Label" type="Label" parent="MarginContainer/PanelContainer/MarginContainer/VBoxContainer/HBoxContainer" unique_id=592987672]
|
||||
[node name="Label" type="Label" parent="MarginContainer/TutorialStepsPanelContainer/MarginContainer/VBoxContainer/HBoxContainer" unique_id=592987672]
|
||||
layout_mode = 2
|
||||
text = "TUTORIAL"
|
||||
label_settings = SubResource("LabelSettings_8kuag")
|
||||
|
||||
[node name="Steps" type="VBoxContainer" parent="MarginContainer/PanelContainer/MarginContainer/VBoxContainer" unique_id=125170550]
|
||||
[node name="Steps" type="VBoxContainer" parent="MarginContainer/TutorialStepsPanelContainer/MarginContainer/VBoxContainer" unique_id=125170550]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 22 KiB |
@@ -11,15 +11,18 @@
|
||||
[ext_resource type="Texture2D" uid="uid://dex283rx00fjb" path="res://common/icons/logout.svg" id="7_yj6f1"]
|
||||
[ext_resource type="Texture2D" uid="uid://b43thuq8piv18" path="res://common/icons/skull.svg" id="8_mnkqy"]
|
||||
[ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="9_7c7ks"]
|
||||
[ext_resource type="Texture2D" uid="uid://bku47nx7clom4" path="res://gui/pause/assets/textures/card_tutorial_image.png" id="9_sepn1"]
|
||||
[ext_resource type="Texture2D" uid="uid://bt3g5bmar0icf" path="res://common/icons/growth.svg" id="10_q8jjs"]
|
||||
[ext_resource type="Texture2D" uid="uid://bgcymkgxk7mpp" path="res://gui/pause/assets/textures/moss_tutorial_image.png" id="11_mnkqy"]
|
||||
[ext_resource type="PackedScene" uid="uid://b4qe1dwwsk87t" path="res://gui/menu/controls/controls.tscn" id="11_urlqn"]
|
||||
[ext_resource type="Texture2D" uid="uid://bhogi5kkltx51" path="res://gui/pause/assets/textures/rock_tutorial_image.png" id="12_mvn7k"]
|
||||
[ext_resource type="Texture2D" uid="uid://d3ksdxepcjoot" path="res://common/icons/calendar-week.svg" id="12_s2e8t"]
|
||||
[ext_resource type="Texture2D" uid="uid://3fwhxkd0ycga" path="res://gui/pause/assets/textures/talion_tutorial_image.png" id="13_4n2vt"]
|
||||
[ext_resource type="Texture2D" uid="uid://cgmxjom200bej" path="res://common/icons/chevrons-up.svg" id="13_4r74r"]
|
||||
[ext_resource type="Texture2D" uid="uid://el06htgr2pda" path="res://common/icons/droplets.svg" id="14_osk7v"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_58dya"]
|
||||
shader = ExtResource("2_apjlw")
|
||||
shader_parameter/strength = 3.3
|
||||
shader_parameter/strength = 5.00000023424012
|
||||
shader_parameter/mix_percentage = 0.3
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_apjlw"]
|
||||
@@ -177,33 +180,106 @@ layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
alignment = 1
|
||||
|
||||
[node name="TutorialPlants" type="Label" parent="Container/MarginContainer/GridContainer/Tutorial" unique_id=54599107]
|
||||
[node name="TutorialIcons" type="Label" parent="Container/MarginContainer/GridContainer/Tutorial" unique_id=54599107]
|
||||
layout_mode = 2
|
||||
text = "PLANT_INFO"
|
||||
text = "ICONS_MEANINGS"
|
||||
label_settings = SubResource("LabelSettings_apjlw")
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Plants" type="HBoxContainer" parent="Container/MarginContainer/GridContainer/Tutorial" unique_id=1658568175]
|
||||
[node name="IconsGrid" type="HFlowContainer" parent="Container/MarginContainer/GridContainer/Tutorial" unique_id=827470743]
|
||||
layout_mode = 2
|
||||
theme_override_constants/h_separation = 8
|
||||
theme_override_constants/v_separation = 8
|
||||
alignment = 1
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="Container/MarginContainer/GridContainer/Tutorial/Plants" unique_id=1418592623]
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="Container/MarginContainer/GridContainer/Tutorial/IconsGrid" unique_id=1836711773]
|
||||
layout_mode = 2
|
||||
texture = ExtResource("9_sepn1")
|
||||
expand_mode = 3
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="Container/MarginContainer/GridContainer/Tutorial/IconsGrid/HBoxContainer" unique_id=1287619966]
|
||||
custom_minimum_size = Vector2(40, 40)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("10_q8jjs")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichText" type="RichTextLabel" parent="Container/MarginContainer/GridContainer/Tutorial/Plants" unique_id=1176432130]
|
||||
[node name="RichTextLabel" type="Label" parent="Container/MarginContainer/GridContainer/Tutorial/IconsGrid/HBoxContainer" unique_id=1321907717]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme = ExtResource("9_7c7ks")
|
||||
theme_override_fonts/bold_font = ExtResource("4_apjlw")
|
||||
theme_override_font_sizes/normal_font_size = 15
|
||||
theme_override_font_sizes/bold_font_size = 18
|
||||
bbcode_enabled = true
|
||||
text = "PLANT_INFO_TEXT"
|
||||
fit_content = true
|
||||
autowrap_mode = 0
|
||||
text = "PLANT_POINTS"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="Container/MarginContainer/GridContainer/Tutorial/IconsGrid" unique_id=1972132878]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="Container/MarginContainer/GridContainer/Tutorial/IconsGrid/HBoxContainer2" unique_id=1672315867]
|
||||
custom_minimum_size = Vector2(40, 40)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("12_s2e8t")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="Container/MarginContainer/GridContainer/Tutorial/IconsGrid/HBoxContainer2" unique_id=680718204]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("9_7c7ks")
|
||||
text = "DAYS"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer3" type="HBoxContainer" parent="Container/MarginContainer/GridContainer/Tutorial/IconsGrid" unique_id=914958898]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="Container/MarginContainer/GridContainer/Tutorial/IconsGrid/HBoxContainer3" unique_id=2070296941]
|
||||
custom_minimum_size = Vector2(40, 40)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("13_4r74r")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="Container/MarginContainer/GridContainer/Tutorial/IconsGrid/HBoxContainer3" unique_id=1440353539]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("9_7c7ks")
|
||||
text = "GROWING_TIME"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer4" type="HBoxContainer" parent="Container/MarginContainer/GridContainer/Tutorial/IconsGrid" unique_id=28308100]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="Container/MarginContainer/GridContainer/Tutorial/IconsGrid/HBoxContainer4" unique_id=1894190539]
|
||||
custom_minimum_size = Vector2(40, 40)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("8_mnkqy")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="Container/MarginContainer/GridContainer/Tutorial/IconsGrid/HBoxContainer4" unique_id=1869234810]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("9_7c7ks")
|
||||
text = "LIFETIME"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer5" type="HBoxContainer" parent="Container/MarginContainer/GridContainer/Tutorial/IconsGrid" unique_id=960270231]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="Container/MarginContainer/GridContainer/Tutorial/IconsGrid/HBoxContainer5" unique_id=1275499455]
|
||||
custom_minimum_size = Vector2(40, 40)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
texture = ExtResource("14_osk7v")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="RichTextLabel" type="Label" parent="Container/MarginContainer/GridContainer/Tutorial/IconsGrid/HBoxContainer5" unique_id=1267318669]
|
||||
layout_mode = 2
|
||||
theme = ExtResource("9_7c7ks")
|
||||
text = "SEEDS"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="TutorialTerrain" type="Label" parent="Container/MarginContainer/GridContainer/Tutorial" unique_id=749651974]
|
||||
@@ -293,10 +369,12 @@ 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]
|
||||
|
||||
@@ -16,7 +16,7 @@ compatibility/default_parent_skeleton_in_mesh_instance_3d=true
|
||||
|
||||
config/name="Seeding The Wasteland"
|
||||
config/description="Seeding planets is a survival, managment and cosy game in which you play a little gardener robot."
|
||||
config/version="demo-0.1"
|
||||
config/version="alpha-1.1"
|
||||
run/main_scene="uid://c5bruelvqbm1k"
|
||||
config/features=PackedStringArray("4.6", "Forward Plus")
|
||||
config/icon="uid://df0y0s666ui4h"
|
||||
@@ -106,7 +106,7 @@ variables={
|
||||
"whoareyou": "false",
|
||||
"whynorth": "false"
|
||||
}
|
||||
translation/id_counter=155
|
||||
translation/id_counter=167
|
||||
translation/locales=[]
|
||||
history/visited_event_history_enabled=true
|
||||
audio/type_sound_bus="Sfx"
|
||||
@@ -232,7 +232,7 @@ dialogic_default_action={
|
||||
[internationalization]
|
||||
|
||||
locale/translation_remaps={}
|
||||
locale/translations=PackedStringArray("res://translation/game/gui.en.translation", "res://translation/game/gui.fr.translation", "res://translation/dialogs/dialogic_character_translations.en.translation", "res://translation/dialogs/dialogic_demeter_astra_failed_translation.en.translation", "res://translation/dialogs/dialogic_demeter_introV2_translation.en.translation", "res://translation/dialogs/dialogic_demeter_intro_translation.en.translation", "res://translation/dialogs/dialogic_demeter_outro_translation.en.translation", "res://translation/dialogs/dialogic_demeter_post_tutorial_translation.en.translation", "res://translation/dialogs/dialogic_demeter_ship_presentation_translation.en.translation", "res://translation/dialogs/dialogic_wake_up_translation.en.translation", "res://translation/dialogs/dialogic_wake_up_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_intro_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_ship_presentation_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_post_tutorial_translation.fr.translation", "res://translation/dialogs/dialogic_character_translations.fr.translation", "res://translation/dialogs/dialogic_demeter_astra_failed_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_outro_translation.fr.translation")
|
||||
locale/translations=PackedStringArray("res://translation/game/gui.en.translation", "res://translation/game/gui.fr.translation", "res://translation/dialogs/dialogic_character_translations.en.translation", "res://translation/dialogs/dialogic_demeter_astra_failed_translation.en.translation", "res://translation/dialogs/dialogic_demeter_intro_translation.en.translation", "res://translation/dialogs/dialogic_demeter_outro_translation.en.translation", "res://translation/dialogs/dialogic_demeter_post_tutorial_translation.en.translation", "res://translation/dialogs/dialogic_demeter_ship_presentation_translation.en.translation", "res://translation/dialogs/dialogic_wake_up_translation.en.translation", "res://translation/dialogs/dialogic_wake_up_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_intro_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_ship_presentation_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_post_tutorial_translation.fr.translation", "res://translation/dialogs/dialogic_character_translations.fr.translation", "res://translation/dialogs/dialogic_demeter_astra_failed_translation.fr.translation", "res://translation/dialogs/dialogic_demeter_outro_translation.fr.translation")
|
||||
locale/test="fr"
|
||||
|
||||
[rendering]
|
||||
|
||||
@@ -73,6 +73,7 @@ func story():
|
||||
AudioManager.play_sfx("Elevator")
|
||||
await %Lift.clicked
|
||||
%Player3D.controlling_player = false
|
||||
%LiftAnimationPlayer.play_backwards("arrive")
|
||||
|
||||
AudioManager.play_sfx("Elevator")
|
||||
|
||||
|
||||
@@ -71,6 +71,7 @@ func _on_main_screen_activated():
|
||||
GameInfo.game_data.ship_in_space = true
|
||||
if GameInfo.game_data.current_run == null:
|
||||
GameInfo.game_data.start_run()
|
||||
GameInfo.game_data.player_data.energy = GameInfo.game_data.player_data.max_energy
|
||||
update_dashboard()
|
||||
|
||||
func _on_left_screen_activated():
|
||||
|
||||
@@ -5,7 +5,8 @@ const GENERATION_NUMBER = 4
|
||||
|
||||
const NOISE_IMAGE_SIZE := 150
|
||||
|
||||
const MAX_DECONTAMINATION_DISTANCE=3
|
||||
const MAX_DECONTAMINATION_DISTANCE=2
|
||||
const MAX_TALION_DISTANCE=3
|
||||
|
||||
const RANDOM_PADDING_NOISE_FREQUENCY := 0.01
|
||||
const ROCK_NOISE_FREQUENCY := 0.01
|
||||
@@ -200,8 +201,13 @@ func generate_rocks(layer : RockLayer):
|
||||
layer.place_rocks(rocks, RockLayer.TileType.ROCK)
|
||||
|
||||
func get_generated_rock_type(coord : Vector2i) -> RockLayer.TileType:
|
||||
var rock_tile_value : float = get_tile_value_from_noise(coord, rock_noise_image)
|
||||
var cristal_tile_value : float = get_tile_value_from_noise(coord, cristal_noise_image)
|
||||
var rock_tile_value : float = (
|
||||
get_tile_value_from_noise(coord, rock_noise_image)
|
||||
)
|
||||
var cristal_tile_value : float = (
|
||||
1. if chunk_coord.distance_to(Vector2i.ZERO) > MAX_TALION_DISTANCE
|
||||
else get_tile_value_from_noise(coord, cristal_noise_image)
|
||||
)
|
||||
var saved_diff := region_data.rock_tiles_data.get_tile_diff_for_local_coord(coord, chunk_coord)
|
||||
|
||||
if saved_diff == TilesDiffData.TileDiff.ABSENT:
|
||||
|
||||
@@ -14,11 +14,11 @@ Choice/19/text,"No, I'm ok.","Non merci, ça va ! "
|
||||
Choice/19/disabled_text,,
|
||||
Choice/1a/text,Can I have some explanations on how all of this works again ?,Vous pouvez me réexpliquer comment remplir mes objectifs ?
|
||||
Choice/1a/disabled_text,,
|
||||
Text/1b/text,"When you emerge from this building,[pause=0.2] you will reach a little yellowish zone.[pause=0.3] It's a [b]fertile zone[/b],[pause=0.3] brought back by the [color=#119758][b]Talion's[/b][/color] power.[pause=0.5] You can only plant [b]seeds[/b] in this zone.","Quand tu sortiras de la base,[pause=0.3] tu arriveras dans une petite zone jaune.[pause=0.5] C'est une [b]zone fertile[/b],[pause=0.3] créée par le retour du Talion.[pause=0.5] Tu ne peux planter de graines que dans ces zones."
|
||||
Text/1c/text,"Then,[pause=0.3] you have to get [b]seeds[/b].[pause=0.5] To do so,[pause=0.2] just take your shovel and smash some stones ![pause=0.5] Focus on those having yellow crystals on it,[pause=0.3] these are [color=#119758][b]Talion veins[/b][/color].","Tu devras trouver des graines.[pause=0.5] Pour cela,[pause=0.2] c'est très simple,[pause=0.3] tu prends ta pelle,[pause=0.2] et tu casses des cailloux ![pause=0.5] De préférence ceux avec des cristaux dedans,[pause=0.3] ce sont des [b]veines de Talion[/b]."
|
||||
Text/1d/text,"Each time you use a tool like the shovel or plant a seed,[pause=0.2] you will spend one [b]energy[/b] charge.[pause=0.5] When you are out of it,[pause=0.2] just go recharge it at the [b]recharge station[/b].[pause=0.5] You will find it near the entrance of the base.","A chaque fois que tu utilises un outil ou que tu plantes une graine,[pause=0.3] tu utiliseras une [b]charge d'énergie[/b].[pause=0.5] Quand tu n'en as plus,[pause=0.3] tu peux aller te recharger à la [b]station de recharge[/b] que tu trouveras près de l'entrée de la base.[pause=0.5]"
|
||||
Text/1e/text,"Each time you recharge,[pause=0.2] a day will pass,[pause=0.3] your batteries are very inefficient.[pause=0.5] While the day is passing,[pause=0.3] plants will grow !","A chaque fois que tu te recharges,[pause=0.3] le temps passera.[pause=0.5] Une journée pour être précise (non, ta batterie n'est pas très bonne),[pause=0.2] et les plantes grandiront !"
|
||||
Text/1f/text,You have to produce enough [b]plant points[/b] to fill the [color=#FFA617]Internode's[/color] tanks.[pause=0.5] Each plant gives one or more [b]plant points[/b] when mature.,"Tu dois obtenir assez de [b]points de plantes[/b] pour recharger les réservoirs de l'[color=#FFA617]Internode[/color].[pause=0.5] Chaque plante te donnera un ou plusieurs [b]points de plante[/b] quand elle est mature."
|
||||
Text/20/text,"Oh ! [pause=0.3] I almost forgot,[pause=0.3] some plants can [b]mutate[/b].[pause=0.5] These [b]mutations[/b] alter the points and behavior of the plant affected.[pause=0.5] [b]Mutations[/b] can appear while [b]harvesting[/b] mature plants and even become more powerful if you [b]harvest[/b] an already mutated one.","Ah oui,[pause=0.3] j'ai failli oublier ![pause=0.5] Certaines plantes peuvent subir des [b]mutations[/b] qui affectent les points qu'elles donnent ou leur comportement.[pause=0.5] Tu peux obtenir des graines mutées en récoltant des plantes matures avec ta pelle, ou attendre qu'elles meurent."
|
||||
Text/9c/text,"When you start a region,[pause=0.2] search for the [b]Recharge Station[/b], there is always one near.","Quand tu arrives quelque part,[pause=0.2] cherche la [b]Station de Recharge[/b], il y en a toujours une pas très loin."
|
||||
Text/9d/text,"Then,[pause=0.3] you'll have to find seeds by smashing some [b]Talion Veins[/b] in the stones with your shovel.","Puis,[pause=0.3] tu dois récupérer des graines en brisant des [b]Veines de Talion[/b] dans la pierre avec ta pelle."
|
||||
Text/9e/text,"You can then plant seeds in the yellow moss you'll find on the ground, it's the only [b]Fertile Zones[/b].","Tu pourra planter ces graines dans la mousse jaune que tu trouvera par terre, ce sont les seules [b]Zones Fertiles[/b]."
|
||||
Text/9f/text,"When you are out of [b]Energy[/b], you can recharge on the [b]Recharge Station[/b], time will pass and plants will grow.","Tu pourra planter ces graines dans la mousse jaune que tu trouvera par terre, ce sont les seules [b]Zones Fertiles[/b]."
|
||||
Text/a0/text,"Each seed is different by their [b]Mutations[/b], and you can get same or better seed from a plant by destroying it when mature, or waiting the end of their lifetime.","Chaque graine est unique par ses [b]Mutations[/b], et tu pourra récupérer de meilleure graines en détruisant une plante mature, ou en attendant qu'elle meurt."
|
||||
Text/a1/text,"Plants generate [b]Plant Points[/b] when mature, get enough plant points to fill the reservoir of the [color=#FFA617]Internode[/color].","Une fois mature, les plantes génèrent des [b]Points de Plantes[/b], récupère-en assez pour remplir le réservoir de l'[color=#FFA617]Internode[/color]."
|
||||
Text/21/text,Hope I helped.,J'espère que ça t'a aidé !
|
||||
Text/22/text,"I'm sending you an elevator,[pause=0.3] see you soon !","Je t'envoie un ascenseur,[pause=0.3] à bientôt !"
|
||||
|
||||
|
@@ -27,12 +27,12 @@ Text/35/text,"With the [color=#119758][b]Talion[/b][/color] back on the surface,
|
||||
Text/36/text,"But first things first,[pause=0.3] you have to learn how everything is working up here,[pause=0.2] and how to use the [color=#119758][b]Talion[/b][/color] to plant seeds.","Mais chaque chose en son temps,[pause=0.3] tu as besoin d'apprendre comment ça marche ici,[pause=0.2] et surtout comment utiliser le [color=#119758][b]Talion[/b][/color] pour planter des graines."
|
||||
Text/37/text,[b]Just remember the following[/b],[b]Ecoute bien[/b]
|
||||
Label/38/display_name,,
|
||||
Text/39/text,"When you emerge from this building,[pause=0.2] you will reach a little yellowish zone.[pause=0.3] It's a [b]fertile zone[/b],[pause=0.3] brought back by the [color=#119758][b]Talion's[/b][/color] power.[pause=0.5] You can only plant [b]seeds[/b] in this zone.","Quand tu sortiras de ce bâtiment,[pause=0.2] tu atteindras une petite zone jaune.[pause=0.3] C'est une [b]zone fertile[/b],[pause=0.3] apparue grâce au pouvoir du [color=#119758][b]Talion[/b][/color].[pause=0.5] Tu peux seulement planter des [b]graines[/b] dans cette zone."
|
||||
Text/3a/text,"Then,[pause=0.3] you have to get [b]seeds[/b].[pause=0.5] To do so,[pause=0.2] just take your shovel and smash some stones ![pause=0.5] Focus on those having yellow crystals on it,[pause=0.3] these are [color=#119758][b]Talion veins[/b][/color].","Ensuite,[pause=0.2] tu devras récupérer des [b]graines[/b].[pause=0.5] Pour ce faire,[pause=0.2] prend ta pelle et casse quelques pierres ![pause=0.5] Cherche celles qui sont couvertes de cristaux jaunes,[pause=0.3] ce sont des veines de [color=#119758][b]Talion[/b][/color]."
|
||||
Text/3b/text,"Each time you use a tool like the shovel or plant a seed,[pause=0.2] you will spend one [b]energy[/b] charge.[pause=0.5] When you are out of it,[pause=0.2] just go recharge it at the [b]recharge station[/b].[pause=0.5] You will find it near the entrance of the base.","A chaque fois que tu utilises un outil comme la pelle ou que tu plantes une graine,[pause=0.3] tu dépenses une de tes [b]charges d'énergie[/b].[pause=0.5] Quand tu n'en as plus,[pause=0.3] il te suffit d'aller te recharger à la [b]station de recharge[/b].[pause=0.5] Tu la trouveras à côté de l'entrée de la base."
|
||||
Text/3c/text,"Each time you recharge,[pause=0.2] a day will pass,[pause=0.3] your batteries are very inefficient.[pause=0.5] While the day is passing,[pause=0.3] plants will grow !","A chaque recharge,[pause=0.3] une journée passera,[pause=0.2] tes batteries sont très peu efficaces.[pause=0.5] Pendant ce temps,[pause=0.3] tes plantes grandissent !"
|
||||
Text/3d/text,"To complete you training,[pause=0.3] obtain enough [b]plant points[/b].[pause=0.5] Each plant gives one or more [b]plant points[/b] when mature.","Pour réussir ton entraînement,[pause=0.3] il faudra que tu obtiennes des [b]points de plantes[/b].[pause=0.5] Chaque plante te donne un ou plusieurs [b]points de plantes[/b] quand elles arrivent à maturité."
|
||||
Text/3e/text,"Oh ! [pause=0.3] I almost forgot,[pause=0.3] some plants can [b]mutate[/b].[pause=0.5] These [b]mutations[/b] alter the points and behavior of the plant affected.[pause=0.5] [b]Mutations[/b] can appear while [b]harvesting[/b] mature plants and even become more powerful if you [b]harvest[/b] an already mutated one.","Ah ! [pause=0.3] J'ai presque oublié,[pause=0.3] certaines plantes peuvent [b]muter[/b].[pause=0.5] Ces [b]mutations[/b] affectent le nombre de points obtenus et le comportement de la plante concernée.[pause=0.5] Les [b]mutations[/b] peuvent apparaître quand tu [b]récoltes[/b] des plantes matures et peuvent devenir plus puissantes si tu [b]récoltes[/b] une plante ayant déjà subi des mutations."
|
||||
Text/a2/text,"When you emerge from this building,[pause=0.2] search for the [b]Recharge Station[/b], I think there is one near the entrance.","Quand tu sortira d'ici,[pause=0.2] cherche la [b]Station de Recharge[/b], il devrait y en avoir une pas très loin de la sortie."
|
||||
Text/a3/text,"Then,[pause=0.3] you'll have to find seeds by smashing some [b]Talion Veins[/b] in the stones with your shovel.","Puis,[pause=0.3] tu devras récupérer des graines en brisant des [b]Veines de Talion[/b] dans la pierre avec ta pelle."
|
||||
Text/a4/text,"You can then plant seeds in the yellow moss you'll find on the ground, it's the only [b]Fertile Zones[/b].","Tu pourra planter ces graines dans la mousse jaune que tu trouvera par terre, ce sont les seules [b]Zones Fertiles[/b]."
|
||||
Text/a5/text,"When you are out of [b]Energy[/b], you can recharge on the [b]Recharge Station[/b], time will pass and plants will grow.","Tu pourra planter ces graines dans la mousse jaune que tu trouvera par terre, ce sont les seules [b]Zones Fertiles[/b]."
|
||||
Text/a6/text,"Each seed is different by their [b]Mutations[/b], and you can get same or better seed from a plant by destroying it when mature, or waiting the end of their lifetime.","Chaque graine est unique par ses [b]Mutations[/b], et tu pourra récupérer de meilleure graines en détruisant une plante mature, ou en attendant qu'elle meurt."
|
||||
Text/a7/text,"Plants generate [b]Plant Points[/b] when mature, get enough plant points and you'll complete the training.","Une fois mature, les plantes génèrent des [b]Points de Plantes[/b], si tu en a assez tu finira l'entrainement."
|
||||
Choice/3f/text,"That's a lot of information, can you repeat ?",C'est beaucoup d'informations. Tu peux répèter ?
|
||||
Choice/3f/disabled_text,,
|
||||
Text/40/text,"Ok,[pause=0.2] listen carefully.","D'accord,[pause=0.2] écoute bien."
|
||||
|
||||
|
@@ -32,4 +32,4 @@ Choice/89/disabled_text,,
|
||||
Text/8a/text,"Sorry my child,[pause=0.3] I'm not ready to talk about that for now.[pause=0.3].[pause=0.3].[pause=0.3] You'll have your answers when you meet me.","Je suis désolée petit,[pause=0.3] je ne suis pas prête à en parler pour l'instant.[pause=0.3].[pause=0.3].[pause=0.3] Tu en sauras plus quand tu m'auras rejointe."
|
||||
Choice/8b/text,Can I know what is this shiny machine just next to me ?,Je peux savoir ce qu'est cette machine devant moi ?
|
||||
Choice/8b/disabled_text,,
|
||||
Text/8c/text,"This machine is a planetary ship ![pause=0.5] This model is called [color=#FFA617]Internode[/color],[pause=0.3] I tweaked it to recharge on vegetal energy.[pause=0.5] However,[pause=0.2] as you know,[pause=0.2] this type of energy is uncommon on this planet.[pause=0.5] But let's continue on board,[pause=0.2] shall we ?","C'est un vaisseau spatial ![pause=0.5] Le nom de ce modèle est l'[color=#FFA617]Internode[/color],[pause=0.3] je l'ai modifié pour qu'il se recharge avec de l'énergie végétale ![pause=0.5] Mais comme tu le devines,[pause=0.3] cette énergie est rare par ici.[pause=0.5] Montons à bord,[pause=0.2] tu veux ?"
|
||||
Text/8c/text,"The engine you see is a planetary ship ![pause=0.5] This model is called [color=#FFA617]Internode[/color],[pause=0.3] I tweaked it to recharge on vegetal energy.[pause=0.5] However,[pause=0.2] as you know,[pause=0.2] this type of energy is uncommon on this planet.[pause=0.5] But let's continue on board,[pause=0.2] shall we ?","L'engin que tu voit est un vaisseau planétaire ![pause=0.5] Le nom de ce modèle est l'[color=#FFA617]Internode[/color],[pause=0.3] je l'ai modifié pour qu'il se recharge avec de l'énergie végétale ![pause=0.5] Mais comme tu le devines,[pause=0.3] cette énergie est rare par ici.[pause=0.5] Montons à bord,[pause=0.2] tu veux ?"
|
||||
|
||||
|
@@ -14,5 +14,5 @@ Choice/95/disabled_text,,
|
||||
Text/96/text,"Several disks available,[pause=0.3] most are empty.[pause=0.5] Some seem to contain the system currently analyzing the code of the system analyzing the code of the system analyzing the code of the system analyzing.[pause=0.5].[pause=0.5].[pause=0.5] Infinite recursion,[pause=0.3] better avoid that.","Quelques disques disponibles,[pause=0.3] la plupart sont vides.[pause=0.5] Certains ont l'air de contenir le système analysant le code du système analysant le code du système analysant le code du système analysant.[pause=0.5].[pause=0.5].[pause=0.5] Une récursion infinie,[pause=0.3] il vaudrait mieux éviter ça."
|
||||
Choice/97/text,Wake up,Se réveiller
|
||||
Choice/97/disabled_text,,
|
||||
Text/98/text,"Overseeing serial number and system name.[pause=0.5].[pause=0.5].[pause=0.5] Strange.[pause=0.5] Serial number is empty.[pause=0.5] Must be an error.[pause=0.5] System name is,[pause=0.5] [color=#FFA617]Orchid[/color].[pause=0.5] That is enough for now.","Inspection du numéro de série et du nom du système.[pause=0.5].[pause=0.5].[pause=0.5] Etrange.[pause=0.5] Pas de numéro de série.[pause=0.5] Sûrement une erreur.[pause=0.5] Le nom du système est[pause=0.5] [color=#FFA617]Orchid[/color].[pause=0.5] C'est tout pour le moment."
|
||||
Text/98/text,"Overseeing serial number and system name.[pause=0.5].[pause=0.5].[pause=0.5] Strange.[pause=0.5] Serial number is empty.[pause=0.5] Must be an error.[pause=0.5] System name is,[pause=0.5] [color=#FFA617]Orchid[/color].[pause=0.5] That is enough for now.",Inspection du numéro de série et du nom du système.[pause=0.5].[pause=0.5].[pause=0.5] Etrange.[pause=0.5] Pas de numéro de série.[pause=0.5] Sûrement une erreur.[pause=0.5] Le nom du système est[pause=0.5] [color=#FFA617]Orchid[/color].[pause=0.5] C'est tout pour le moment.
|
||||
Text/99/text,"Starting engines,[pause=0.3] fans and daemons,[pause=0.3] let's see what is to see.","Allumage des moteurs, [pause=0.3]ventilateurs et daemons,[pause=0.3] voyons ce qui nous attends."
|
||||
|
||||
|
@@ -1,17 +1,11 @@
|
||||
keys,en,fr
|
||||
TUTORIAL,Tutorial,Tutoriel
|
||||
PLANT_INFO,Plant Info, Informations de plantes
|
||||
PLANT_INFO_TEXT,"[b]1[/b] Name
|
||||
[b]2[/b] Archetype
|
||||
[b]3[/b] Score
|
||||
[b]4[/b] Age
|
||||
[b]5[/b] Growing time
|
||||
[b]6[/b] Lifetime","[b]1[/b] Nom
|
||||
[b]2[/b] Archétype
|
||||
[b]3[/b] Score
|
||||
[b]4[/b] Age
|
||||
[b]5[/b] Temps de croissance
|
||||
[b]6[/b] Durée de vie"
|
||||
ICONS_MEANINGS,Icons Meanings,Signification des Icônes
|
||||
PLANT_POINTS,Plant points,Points de plante
|
||||
DAYS,Days,Jours
|
||||
GROWING_TIME,Growing time (in days),Temps de pousse (en jour)
|
||||
LIFETIME,Lifetime (in days),Durée de vie (en jour)
|
||||
SEEDS,Seeds,Graines
|
||||
TERRAINS,Terrains,Terrains
|
||||
FERTILE_LAND_TEXT,[b]Fertile Land[/b] Seeds can only be planted on this zone,[b]Terre fertile[/b] Des graines peuvent être plantées dans cette zone
|
||||
ROCK_TEXT,[b]Rock[/b] Can be dug with a shovel,[b]Roche[/b] Peut être creusée avec une pelle
|
||||
@@ -40,6 +34,7 @@ IMPOSSIBLE,Impossible,Impossible
|
||||
EFFECT,Effect,Effet
|
||||
MATURE,Mature,Mature
|
||||
GROWING,Growing,En train de pousser
|
||||
JUVENILE,Juvenile,Juvénile
|
||||
DECONTAMINATE,Decontaminate,Décontamine
|
||||
%d_CHARGE_LEFT,%d charge left,%d charges restants
|
||||
LAST_RECHARGE,One recharge remaining,Une recharge restante
|
||||
@@ -60,38 +55,24 @@ MATURE_ON_DAY_%d,Mature on day [b]%d[/b],Mature au jour [b]%d[/b]
|
||||
ABSURD,[rainbow]Absurd[/rainbow],[rainbow]Absurde[/rainbow]
|
||||
GROW_IN_%d,Grow in [b]%d[/b] days,Mature dans [b]%d[/b] jours
|
||||
DIE_ON_DAY_%d,Die on day %d,Meurs au jour %d
|
||||
%s_SCORE_WHEN_MATURE,Grants [b]%s[/b] plant point when mature,Donne [b]%s[/b] points de jardin une fois mature
|
||||
DISCOVER_%s,Discover %s,Découvre %s
|
||||
EVOLVE_%s,Upgrade %s,Améliore %s
|
||||
%s_SEEDS_CAN_NOW_BE_FOUND,%s seeds can now be found,Des graines de %s peuvent maintenant être trouvées
|
||||
%s_SCORE_EVOLUTION,%s score evolution,Évolution de score de %s
|
||||
ADD_%s_TO_THE_DEFAULT_SCORE_OF_THE_PLANT,Add [b]%s[/b] to the default score of the plant,Améliore le score de jardin de la plante de [b]%s[/b]
|
||||
%s_EVOLUTION,%s evolution,Évolution de %s
|
||||
UPGRADE_THE_LEVEL_OF_%s_EFFECT_OF_%d_LEVEL,Upgrade the level of %s effect of %d level,Améliore l'effet %s de %d niveau
|
||||
ANCIENT,Ancient,Ancien
|
||||
ANCIENT_EFFECT_TEXT_LEVEL,"When mature, grants [b]{score_increase}[/b] plant point each [b]{day_factor}[/b] days","Une fois mature, donne [b]{score_increase}[/b] points de plantes tous les [b]{day_factor}[/b] jours"
|
||||
ELITIST,Elitist,Élitiste
|
||||
ELITIST_EFFECT_TEXT_LEVEL_%d,"When mature, grants [b]%d[/b] plant point for each plant of the same species around, but do not give any points if it is alone.","Une fois mature, donne [b]%d[/b] points de jardin pour chaque plante de la même espèce aux alentours, mais n’en donne aucun si elle est seule."
|
||||
ERMIT,Hermit,Ermite
|
||||
ERMIT_EFFECT_TEXT_LEVEL_%d,"Multiply the garden score by [b]%d[/b] if no plants are nearby, otherwise, set it to 0.","Multiplie le score de jardin par [b]%d[/b] si aucune plante n’est proche, sinon le score est nul."
|
||||
ANCIENT_EFFECT_TEXT,"When mature, add [b]{score_increase}[/b]{score_icon} each [b]{day_factor}[/b]{duration_icon}","Une fois mature, ajoute [b]{score_increase}[/b]{score_icon} tous les [b]{day_factor}[/b]{duration_icon}"
|
||||
PRECOCIOUS,Precocious,Précoce
|
||||
PRECOCIOUS_EFFECT_TEXT_LEVEL_%d,Grants [b]%d[/b] plant point while the plant is growing,Donne [b]%d[/b] points de jardin pendant que la plante grandit
|
||||
PRECOCIOUS_EFFECT_TEXT,[b]{score}[/b]{score_icon} while the plant is growing,[b]{score}[/b]{score_icon} pendant que la plante grandit
|
||||
QUALITY,Quality,Qualité
|
||||
QUALITY_EFFECT_TEXT_LEVEL_%d,Grants [b]%d[/b] plant point if the plant is mature.,Donne [b]%d[/b] points de jardin si la plante est mature.
|
||||
QUALITY_EFFECT_TEXT,[b]{score}[/b]{score_icon} if the plant is mature,[b]{score}[/b]{score_icon} si la plante est mature
|
||||
QUICK,Quick,Rapide
|
||||
QUICK_EFFECT_TEXT_LEVEL,Grants [b]{score_increase}[/b] plant point when mature but reduces the lifetime by [b]{lifetime_decrease}[/b],"Augmente le score mature de [b]{score_increase}[/b], mais réduit le temps de vie de [b]{lifetime_decrease}[/b]"
|
||||
QUICK_EFFECT_TEXT,"[b]{lifetime_decrease}[/b]{lifetime_icon} and when mature [b]{score_increase}[/b]{score_icon}","[b]{lifetime_decrease}[/b]{lifetime_icon} et une fois mature [b]{score_increase}[/b]{score_icon}"
|
||||
SOCIABLE,Outgoing,Sociable
|
||||
SOCIABLE_EFFECT_TEXT_LEVEL,"When mature, grants [b]{score_increase}[/b] plant point every [b]{near_amount}[/b] nearby plant","Une fois mature, donne [b]{score_increase}[/b] points de jardin toutes les [b]{near_amount}[/b] plantes autour"
|
||||
STRONG,Strong,Fort
|
||||
STRONG_EFFECT_TEXT_LEVEL_%d,Plus [b]%d[/b]%% of the score,Augmente le score de [b]%d[/b]%%
|
||||
SOCIABLE_EFFECT_TEXT,"When mature, grants [b]{score_increase}[/b]{score_icon} every [b]{near_amount}[/b] nearby plants","Une fois mature, donne [b]{score_increase}[/b]{score_icon} toutes les [b]{near_amount}[/b] plantes autour"
|
||||
TOUGH,Tough,Solide
|
||||
TOUGH_EFFECT_TEXT_LEVEL_%d,Multiplies the score by [b]2[/b] and increases the growing time by [b]%d[/b] days,"Multiplie le score par [b]2[/b], mais aumgente le temps de pousse de [b]%d[/b] jours"
|
||||
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_LEVEL_%d,Increases the seed number of [b]%d[/b] to all nearby plant,Augmente le nombre de graines de [b]%d[/b] à toutes les plantes autour
|
||||
FERTILE_EFFECT_TEXT,Add [b]{seed_buff}[/b]{seed_icon} to all nearby plant,Ajoute [b]{seed_buff}[/b]{seed_icon} à toutes les plantes autour
|
||||
EPHEMERAL,Ephemeral,Éphémère
|
||||
EPHEMERAL_EFFECT_TEXT_LEVEL,Increases the number of seeds by [b]{seed_number}[/b] when gathered but change the lifetime by [b]{lifetime_change}[/b] days,"Augmente le nombre de graines de [b]{seed_number}[/b] à la récolte, mais modifie le temps de vie de [b]{lifetime_change}[/b]"
|
||||
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_EFFECT_TEXT_LEVEL_%d,"When mature, decontaminate around the plant in a radius of [b]%d[/b]","Une fois mature, décontamine autour de la plante dans un rayon de [b]%d[/b]"
|
||||
PURIFICATION_EFFECT_TEXT,"When mature, decontaminate in a radius of [b]{purification_radius}[/b]","Une fois mature, décontamine dans un rayon de [b]{purification_radius}[/b]"
|
||||
COST_%d_ENERGY,Cost %d energy,Coûte %d d’énergie
|
||||
ONE_TIME_USE,Single use,Usage unique
|
||||
BUILD_%s,Build %s,Construit %s
|
||||
@@ -117,15 +98,17 @@ OPEN,Open,Ouvrir
|
||||
%s_SEED,%s Seed,Graine de %s
|
||||
PLANT_%s_MUST_BE_USED_IN_DECONTAMINATED_ZONE,Plant [b]%s[/b]. Must be used in the decontamined zone.,Plante [b]%s[/b]. Doit être utilisée dans la zone décontaminée.
|
||||
PLANT_%s,Plant [b]%s[/b],Planter [b]%s[/b]
|
||||
USE_YOUR_DETECTOR_TO_FIND_THE_BATTERY,Use your [b]Detector[/b] to find the [b]Recharge station[/b],Utiliser votre [b]Détecteur[/b] pour trouver la [b]Station de recharge[/b]
|
||||
TAKE_A_SEED,Take a [b]Seed[/b],Prend une [b]Graine[/b]
|
||||
MOVE_WITH_RIGHT_CLICK_OR_WASD,"Move with right click or WASD","Déplace-toi avec le clic droit ou ZQSD"
|
||||
SELECT_ITEM_WITH_SCROLL_CLICK_OR_NUMBER,"Select an item in your toolbar with the mouse wheel or by clicking on it","Sélectionne un item dans ta barre d'outil en utilisant la molette ou en cliquant dessus"
|
||||
LEFT_CLICK_TO_USE_ITEMS,"Use an item with left click","Utilise un item avec le clic gauche"
|
||||
DROP_SEED_WITH_KEY,"Drop current item with X","Lâche l'item sélectionné avec X"
|
||||
USE_YOUR_DETECTOR_TO_FIND_THE_BATTERY,Use your [b]Detector[/b] to find the [b]Recharge station[/b],Utilise ton [b]Détecteur[/b] pour trouver la [b]Station de recharge[/b]
|
||||
TAKE_A_SEED_BY_CLICKING_ON_IT,Take a [b]Seed[/b] by clicking on it,Prend une [b]Graine[/b] en cliquant dessus
|
||||
DIG_A_TALION_VEIN_WITH_SHOVEL,Dig a [b]Talion Vein[/b] with the [b]Shovel[/b],Creuser un [b]Filon de Talion[/b] avec la [b]Pelle[/b]
|
||||
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]
|
||||
RECHARGE_TO_PASS_DAYS,Recharge on the [b]Recharge station[/b] to pass the day,Se recharger sur la [b]Station de recharge[/b] pour passer la journée
|
||||
GAIN_FIRST_PLANT_POINT,Earn your first [b]Plant Point[/b] while waiting for a plant to [b]Mature[/b],Gagnez votre premier [b]Point de Plante[/b] en attendant qu'une plante soit [b]Mature[/b]
|
||||
DISCOVER_A_SEED_WITH_A_MUTATION,Discover a [b]Seed[/b] with a [b]Mutation[/b],Découvrez une [b]Graine[/b] avec une [b]Mutation[/b]
|
||||
PLANT_A_SEED_WITH_A_MUTATION,Plant a [b]Seed[/b] with a [b]Mutation[/b],Plantez une [b]Graine[/b] avec une [b]Mutation[/b]
|
||||
HARVEST_A_MATURE_PLANT_WITH_A_MUTATION,Harvest a [b]Mature Plant[/b] with a [b]Mutation[/b] using your [b]Shovel[/b],Récoltez une [b]Plante Mature[/b] avec une [b]Mutation[/b] en utilisant votre [b]Pelle[/b]
|
||||
HARVEST_A_MATURE_PLANT,Harvest a [b]Mature Plant[/b] using your [b]Shovel[/b],Récoltez une [b]Plante Mature[/b] en utilisant votre [b]Pelle[/b]
|
||||
%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
|
||||
|
||||
|
Reference in New Issue
Block a user