création du squelette des region modifier, amélioration du tutoriel et mise en place de la run complète avec cinématique d'outro

This commit is contained in:
2026-02-21 20:44:41 +01:00
parent eb48a095de
commit e767e776f2
80 changed files with 415 additions and 201 deletions

View File

@@ -20,6 +20,7 @@
[ext_resource type="AudioStream" uid="uid://dgkdcq4j6fe3o" path="res://common/audio_manager/assets/sfx/harvest/harvest_2.wav" id="14_b5bgj"]
[ext_resource type="AudioStream" uid="uid://eh3dbuxu5qtw" path="res://common/audio_manager/assets/sfx/harvest/harvest_3.wav" id="15_ynvb4"]
[ext_resource type="AudioStream" uid="uid://bown4yipeef8l" path="res://common/audio_manager/assets/sfx/harvest/harvest_4.wav" id="16_obeji"]
[ext_resource type="AudioStream" uid="uid://delq7gsdeqjq2" path="res://common/audio_manager/assets/sfx/respawn/respawn.wav" id="16_xmumj"]
[ext_resource type="AudioStream" uid="uid://cbo4ld2yypmte" path="res://common/audio_manager/assets/sfx/harvest/harvest_5.wav" id="17_6w0re"]
[ext_resource type="AudioStream" uid="uid://c5nfoa6v3r5f7" path="res://common/audio_manager/assets/sfx/harvest/harvest_6.wav" id="18_o4guq"]
[ext_resource type="AudioStream" uid="uid://bjind1iji0gt7" path="res://common/audio_manager/assets/sfx/pick_up/pick_up_1.wav" id="20_pu6t4"]
@@ -134,6 +135,9 @@ unique_name_in_owner = true
[node name="Dig" type="AudioStreamPlayer" parent="Sfx" unique_id=486042600]
stream = SubResource("AudioStreamRandomizer_kfbah")
[node name="Respawn" type="AudioStreamPlayer" parent="Sfx" unique_id=1902559716]
stream = ExtResource("16_xmumj")
[node name="Drop" type="AudioStreamPlayer" parent="Sfx" unique_id=1391500830]
stream = SubResource("AudioStreamRandomizer_1w04j")
@@ -157,7 +161,7 @@ stream = ExtResource("27_0rjel")
[node name="Phone_call" type="AudioStreamPlayer" parent="Sfx" unique_id=1668278453]
stream = ExtResource("28_3dfjn")
[node name="Plant_point" type="AudioStreamPlayer" parent="Sfx" unique_id=2044025024]
[node name="PlantPoint" type="AudioStreamPlayer" parent="Sfx" unique_id=2044025024]
stream = SubResource("AudioStreamRandomizer_qog4c")
[node name="Ship_reveal" type="AudioStreamPlayer" parent="Sfx" unique_id=1121632306]

View File

@@ -108,8 +108,6 @@ func _on_timeline_started():
play_ambiance("Demeter")
"demeter_post_tutorial":
play_ambiance("Demeter")
"demeter_outro":
play_ambiance("Demeter")
"failure":
play_ambiance("Demeter")

View File

@@ -48,11 +48,10 @@ func give_up():
func start_tutorial():
current_region_data = RegionData.new(
RegionParameter.new(
10,
3,
0,
tr("TUTORIAL"),
["tutorial"],
0,
[],
randi()
)
)
)

View File

@@ -5,13 +5,13 @@ enum State {STARTED, IN_PROGRESS, FINISHED}
const RUN_POINT_POSITION_DERIVATION = 100
const DIFFICULTY_INCREASE_BY_LEVEL = 3
const RUN_POINTS_NEXT_NUMBER :Array[int] = [2]
const RUN_POINT_MAX_LEVEL = 0 # TODO
const RUN_POINTS_NEXT_NUMBER : int = 2
const RUN_POINT_MAX_LEVEL = 2 # TODO
signal current_run_point_changed
var run_seed = randi()
@export var next_run_points : Array[RunPoint] = [generate_first_run_point()]
@export var next_run_points : Array[RunPoint] = generate_next_run_points()
@export var current_run_point : RunPoint = null :
set(v):
current_run_point = v
@@ -20,65 +20,28 @@ var run_seed = randi()
#region ------------------ Generation ------------------
func generate_first_run_point() -> RunPoint:
return RunPoint.new(0, RegionParameter.new())
func generate_next_run_points(run_point : RunPoint) -> Array[RunPoint]:
var nb_next_run_points = RUN_POINTS_NEXT_NUMBER.pick_random()
if run_point.level == RUN_POINT_MAX_LEVEL - 1 or run_point.level == -1:
nb_next_run_points = 1
elif run_point.level == RUN_POINT_MAX_LEVEL:
nb_next_run_points = 0
func generate_next_run_points(level = 0) -> Array[RunPoint]:
next_run_points = []
for i in range(nb_next_run_points):
for i in range(RUN_POINTS_NEXT_NUMBER):
next_run_points.append(
generate_next_run_point(run_point)
generate_next_run_point(level)
)
return next_run_points
func generate_next_run_point(run_point : RunPoint) -> RunPoint:
var level = run_point.level + 1
func generate_next_run_point(level = 0) -> RunPoint:
var region_parameter = RegionParameter.new()
region_parameter.level = level
region_parameter.flags = get_region_flags(region_parameter)
region_parameter.region_flags = get_region_flags(region_parameter)
return RunPoint.new(
level,
generate_difficulty_increased_region_parameter(region_parameter, DIFFICULTY_INCREASE_BY_LEVEL * level),
(run_point.position + randi_range(-RUN_POINT_POSITION_DERIVATION, RUN_POINT_POSITION_DERIVATION)) % 360
region_parameter
)
func generate_difficulty_increased_region_parameter(
region_parameter : RegionParameter,
difficulty : int = 1
) -> RegionParameter:
var i_diff := difficulty
var new_region_parameter = RegionParameter.new(
region_parameter.charges,
region_parameter.objective
)
while i_diff > 0:
var available_difficulty_modifier = [
DifficultyDecreaseCharge.new(),
DifficultyIncreaseObjective.new()
].filter(
func (mod : DifficultyModifier):
return mod.get_difficulty_cost() <= i_diff and mod.can_modifiy(new_region_parameter)
)
var selected_difficulty_modifier = available_difficulty_modifier.pick_random()
selected_difficulty_modifier.modify(new_region_parameter)
i_diff -= max(1,selected_difficulty_modifier.get_difficulty_cost())
return new_region_parameter
#endregion
func get_state() -> State:
@@ -99,13 +62,12 @@ func choose_next_run_point(run_point : RunPoint) -> RunPoint:
visited_run_points.append(current_run_point)
current_run_point = run_point
GameInfo.game_data.start_region(run_point.region_parameter)
next_run_points = generate_next_run_points(current_run_point)
next_run_points = generate_next_run_points(current_run_point.level + 1)
return current_run_point
func get_region_flags(region_parameter : RegionParameter) -> Array[String]:
var flags : Array[String] = []
print(region_parameter.level)
if region_parameter.level == RUN_POINT_MAX_LEVEL:
flags.append("borea")
@@ -130,4 +92,4 @@ class DifficultyDecreaseCharge extends DifficultyModifier:
region_parameter.charges -= 1
func can_modifiy(region_parameter : RegionParameter) -> bool:
return region_parameter.charges >= 3
return region_parameter.charges >= 3

View File

@@ -11,12 +11,12 @@ const CHARGE_ICON = preload("res://common/icons/bolt.svg")
@export var region_parameter : RegionParameter = RegionParameter.new() :
set(v):
region_parameter = v
@export var position : int = 0 # Y pos along the planet, 0 to 360
@export var position : float = 0
func _init(
_level : int = 0,
_region_parameter : RegionParameter = RegionParameter.new(),
_position : int = randi_range(0,360),
_position : float = randf_range(0.,1.),
):
level = _level
region_parameter = _region_parameter
@@ -24,7 +24,7 @@ func _init(
position = _position
func card_info() -> CardInfo:
var info = CardInfo.new(region_parameter.name)
var info = CardInfo.new(region_parameter.region_name)
info.important_stat_icon = DANGER_ICON
info.important_stat_text = "%d" % level

View File

@@ -0,0 +1,38 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
join demeter center [animation="Bounce In" length="1.0"]
demeter: Hi ![pause=0.3] Phew,[pause=0.2] I thought no one would reply.[pause=0.3] Are you [color=#FFA617]Orchid[/color] ?[pause=0.3] You may not be familiar with this name but you must have seen it in your memory.
- Uh... Who are you ?
demeter: Oh sorry ![pause=0.3] I cannot send you my IDs for now,[pause=0.2] you are too far away from me.
- Where am I ?
demeter: Don't worry,[pause=0.2] you are in a subterranean base,[pause=0.2] but you will get to the surface very soon.
- Wait ! Who am I ?
demeter: Hmmm.[pause=0.4].[pause=0.4].[pause=0.4] Interesting question.[pause=0.3] I elaborated your system but I don't know in which frame you are currently in.[pause=0.3] We'll find out !
demeter: I'm glad you are finally awake ![pause=0.3] To be honest,[pause=0.2] I wasn't sure I would be able to make you function normally.[pause=0.5] Your frame has remained here for millennia without any maintenance.
- Did you create me ?
demeter: Sort of ![pause=0.3] I didn't manufactured your body,[pause=0.2] I borrowed it,[pause=0.2] but I designed your cognitive system.[pause=0.3] Be forgiving,[pause=0.2] it won't be perfect,[pause=0.2] I was designed to manage,[pause=0.2] not to create.
- Why did you awake me ?
demeter: To be honest,[pause=0.2] I don't really know.[pause=0.3].[pause=0.3].[pause=0.3] I mean,[pause=0.2] there are a lot of reasons,[pause=0.2] but I'll tell you more about it later.
- What are you ?
demeter: I'm the same as you.[pause=0.3] The same as all the sentient beings remaining on this planet.[pause=0.3] Robot,[pause=0.2] artificial intelligence,[pause=0.2] machine.[pause=0.2].[pause=0.2].[pause=0.2] Our creators gave us many titles.
demeter: Ok,[pause=0.2] no more questions for now,[pause=0.2] listen to me carefully.
demeter: A long time ago,[pause=0.2] this planet was full of life.[pause=0.3] Plants were thriving on mountains,[pause=0.2] under seas and across plains.
demeter: Now,[pause=0.2] this world is a wasteland.[pause=0.3] You'll see it as soon as you leave this base.
demeter: Something happened a year ago.[pause=0.3].[pause=0.3].[pause=0.3]. The [color=#119758][b]Talion[/b][/color],[pause=0.2] a unique element giving birth to new life forms when shattered,[pause=0.2] reappeared.
demeter: With the [color=#119758][b]Talion[/b][/color] back on the surface,[pause=0.2] we can bring this planet back to life.
demeter: But first things first,[pause=0.2] 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.
demeter: [b]Just remember the following[/b]
label explanations
demeter: When you'll 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.2] brought back by the [color=#119758][b]Talion's[/b][/color] power.[pause=0.3] You can only plant [b]seeds[/b] in this zone.
demeter: Then,[pause=0.2] you have to get [b]seeds[/b].[pause=0.3] To do so,[pause=0.2] just take your shovel and smash some stones ![pause=0.3] Focus on those having yellow crystals on it,[pause=0.2] these are [color=#119758][b]Talion veins[/b][/color].
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.3] When you are out of it,[pause=0.2] just go recharge it at the [b]recharge station[/b].[pause=0.3] You will find it near the entrance of the base.
demeter: Each time you recharge,[pause=0.2] a day will pass,[pause=0.2] your batteries are very inefficient.[pause=0.3] While the day is passing,[pause=0.2] plants will grow !
demeter: To complete you training,[pause=0.2] obtain enough [b]plant points[/b].[pause=0.3] Each plant give one or more [b]plant points[/b] when mature.
demeter: Oh ! [pause=0.3] I almost forgot,[pause=0.2] some plants can [b]mutate[/b].[pause=0.3] These [b]mutations[/b] affect points and behavior of the plant affected.[pause=0.3] [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.
- That's a lot of informations, can you repeat ?
demeter: Ok,[pause=0.2] listen carefully.
jump explanations
- Ok, now I have more questions !
demeter: Sorry,[pause=0.2] we'll speak more after this.[pause=0.3] I send you an elevator,[pause=0.2] good luck [color=#FFA617]Orchid[/color] !
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
[wait time="2.0"]
[end_timeline]

View File

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

View File

@@ -1 +1,3 @@
[wait time="1.5"]
join demeter center [animation="Bounce In" length="1.0"]
demeter: Welcome to the [color=#E30022]Borea Base[/color] [color=#FFA617]{orchidName}[/color],[pause=0.2] it is the first step of your journey on this planet. #id:50

View File

@@ -13,6 +13,6 @@ label suite_dialogue #id:42
jump suite_dialogue
- Wake up #id:49
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. #id:4a
audio "res://common/audio_manager/assets/sfx/respawn/respawn.wav"
Starting engines,[pause=0.3] fans and daemons,[pause=0.3] let's see what is to see. #id:4b
[end_timeline]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bfyafiewcrjln"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_enq8o"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_enq8o"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_10bgv"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://d2vdf2sth2xjm"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_p8ox4"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_p8ox4"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_3h2vf"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://clruuysx80pnn"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_03in3"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_03in3"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_108r1"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://brmd6d3l8trqs"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_mvsqc"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_mvsqc"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_oqbgr"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cfr33014u7ig5"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_14sjf"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_14sjf"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_ud5ex"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cf70m1us8mfqp"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_xplyn"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_xplyn"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_uj75q"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://ctlmah4ohqp25"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_tv8sf"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_tv8sf"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_srnvv"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://b8o4q0hsm84ov"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_5lgql"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_5lgql"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_0b6yj"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bb33v756anesy"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_gcphf"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_gcphf"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_tnhr7"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cbqrl72y0d1yg"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_k38pp"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_k38pp"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_cwsfe"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dwppani7gyjl5"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_2m37y"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_2m37y"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_pyvr6"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dkta1u1u0efxk"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_2r1e2"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_2r1e2"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_tv2v3"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://7hrdkl6bf3o4"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_peh48"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_peh48"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_o5tro"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://d2y7o2hc6ffei"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_wnxgs"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_wnxgs"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_smg8i"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://civ4gr1c2pq7g"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_1cr0i"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_1cr0i"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_h0d20"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bqfocs6f0iypo"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_p4qfr"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_p4qfr"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_iibe2"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://drml5dm8i3j3a"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_5xrel"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_5xrel"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_0v6u4"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://b1t5nfwcln5vo"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_0mgvf"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_0mgvf"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_k1p2k"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://b4s58a600q2rn"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_l4nmf"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_l4nmf"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_ifu40"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dspugxsjw2aea"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_gpxi3"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_gpxi3"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_e0an0"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cnt38l2fmg8d7"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_wmuv5"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_wmuv5"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_4klgd"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://ceisi5yyie7to"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_1eil5"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_1eil5"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_h27ow"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cxiu8frk04b5i"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_qrhlr"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_qrhlr"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_4au1t"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://53p5g07e3pb4"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_tu2er"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_tu2er"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_2wu38"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://crmvc77bqax1y"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_3u7fo"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_3u7fo"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_23bbh"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://c0hr7icfkjkoi"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_bcreq"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_bcreq"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_af12b"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://clkoc1iccts2w"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_vlome"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_vlome"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_157wb"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bd8yapi1pokj6"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_0uwmh"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_0uwmh"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_h3coc"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cxgw1vgket0fw"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_ajsfl"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_ajsfl"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_nif4i"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://c5gqwck2p5h5n"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_205mu"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_205mu"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_nlpf8"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://c5fj1cw0f4mu6"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_nyyxg"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_nyyxg"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_y2fie"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dce788f0adauv"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_eaujg"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_eaujg"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_lsafj"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dd34dikqoynp3"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_faxmp"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_faxmp"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_0me46"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bynje6g2wvuvl"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_55x88"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_55x88"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_dmctu"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bd2op6q1masjt"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_uhia7"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_uhia7"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_atmi3"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bvajuw0r47edw"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_761dd"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_761dd"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_3rcv4"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://qb6bftgq0n6y"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_b4uc1"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_b4uc1"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_dc8tr"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://ft112n57di0e"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_sabo0"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_sabo0"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_uvvih"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dwjj6qmcjhn68"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_fvj4t"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_fvj4t"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_akiip"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bkr70mstyf8pp"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_07tkv"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_07tkv"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_uotjj"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dcuwupmqt34ju"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_m3t4k"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_m3t4k"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_qfabu"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://djmidq7yq452i"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_jg4cg"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_jg4cg"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_chdp7"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://wxqxm6d5twdh"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_1f2ok"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_1f2ok"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_pu3mc"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://uoikjpno37bi"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_g38jy"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_g38jy"]
[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_unpmr"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"]

View File

@@ -33,7 +33,7 @@ func can_use(_player : Player, zone : Player.ActionZone) -> bool:
return false
func use(player : Player, zone : Player.ActionZone) -> bool:
AudioManager.play_sfx("Pickaxe")
AudioManager.play_sfx("Dig")
for area in zone.get_affected_areas():
if area and area is Plant:
harvest(area, player)

View File

@@ -15,6 +15,7 @@ var signals : Array[DetectorSignalIndividual] = []
func _init(region : Region, pos : Vector2):
for e in region.entity_container.get_children():
if e.visible:
if e is TruckRecharge:
signals.append(
DetectorSignalIndividual.new(
@@ -22,7 +23,7 @@ func _init(region : Region, pos : Vector2):
ENERGY_ICON
)
)
if e is Door and e.available and e.visible:
if e is Door and e.available:
signals.append(
DetectorSignalIndividual.new(
(pos - e.global_position).normalized().angle(),

View File

@@ -4,8 +4,10 @@
[ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/hud.tres" id="2_nq5i2"]
[ext_resource type="PackedScene" uid="uid://brfsapvj2quxm" path="res://gui/game/energy_info/energy_info.tscn" id="4_2wykm"]
[ext_resource type="PackedScene" uid="uid://fnv0qhkh40mv" path="res://gui/game/announce/announce.tscn" id="4_h6540"]
[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="6_2wykm"]
[ext_resource type="PackedScene" uid="uid://df0eop555wfj5" path="res://gui/game/objective_progress_bar/objective_progress_bar.tscn" id="6_dr1y2"]
[ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="6_h6540"]
[ext_resource type="Texture2D" uid="uid://bt3g5bmar0icf" path="res://common/icons/growth.svg" id="6_id0t5"]
[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"]
@@ -19,6 +21,10 @@ gradient = SubResource("Gradient_id0t5")
fill_to = Vector2(1, 1)
repeat = 1
[sub_resource type="LabelSettings" id="LabelSettings_id0t5"]
font = ExtResource("6_2wykm")
font_size = 40
[sub_resource type="Animation" id="Animation_2wykm"]
resource_name = "NoRechargeAppear"
length = 0.5
@@ -155,7 +161,24 @@ layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
[node name="RechargesLeftLabel" type="Label" parent="MarginContainer/VBoxContainer" unique_id=1961035876]
[node name="SimplePlantPointScore" type="HBoxContainer" parent="MarginContainer/VBoxContainer" unique_id=973032799]
unique_name_in_owner = true
layout_mode = 2
theme_override_constants/separation = 0
alignment = 1
[node name="TextureRect" type="TextureRect" parent="MarginContainer/VBoxContainer/SimplePlantPointScore" unique_id=534916675]
layout_mode = 2
texture = ExtResource("6_id0t5")
[node name="SimplePlantPointScoreLabel" type="Label" parent="MarginContainer/VBoxContainer/SimplePlantPointScore" unique_id=1961035876]
unique_name_in_owner = true
layout_mode = 2
text = "0 Plant Point"
label_settings = SubResource("LabelSettings_id0t5")
horizontal_alignment = 1
[node name="RechargesLeftLabel" type="Label" parent="MarginContainer/VBoxContainer" unique_id=1254074923]
unique_name_in_owner = true
layout_mode = 2
text = "9 charges left"

View File

@@ -15,6 +15,9 @@ func _ready():
GameInfo.game_data.player_data.updated.connect(_on_player_updated)
GameInfo.game_data.current_region_data.pass_day_ended.connect(_on_region_pass_day_ended)
%ObjectiveProgressBar.visible = not "tutorial" in GameInfo.game_data.current_region_data.flags
%SimplePlantPointScore.visible = "tutorial" in GameInfo.game_data.current_region_data.flags
charge_update(GameInfo.game_data.current_region_data)
player_update(GameInfo.game_data.player_data, false)
@@ -22,7 +25,6 @@ func _ready():
%GiveUpButton.pressed.connect(_on_give_up_pressed)
score_mirror = GameInfo.game_data.current_region_data.get_score()
print(score_mirror)
for p : PlantData in GameInfo.game_data.current_region_data.plants:
score_by_plant[str(p.random_seed)] = p.get_score()
@@ -44,10 +46,8 @@ func _on_region_updated(region_data : RegionData):
if not str(p.random_seed) in score_by_plant:
score_by_plant[str(p.random_seed)] = 0
if score > score_by_plant[str(p.random_seed)]:
print("emit particles for %s" % p.plant_name)
plant_changing_score(p, score - score_by_plant[str(p.random_seed)])
elif score < score_by_plant[str(p.random_seed)]:
print("reduce score for %s" % p.plant_name)
score_mirror -= score_by_plant[str(p.random_seed)] - score
score_by_plant[str(p.random_seed)] = score
# Check for removed plants
@@ -55,7 +55,6 @@ func _on_region_updated(region_data : RegionData):
if region_data.plants.find_custom(
func (p): return str(p.random_seed) == key
) == -1:
print("remove plant")
score_mirror -= score_by_plant[key]
score_by_plant.erase(key)
@@ -93,6 +92,11 @@ func score_update(with_animation = true):
)
else:
%ObjectiveProgressBar.set_progress(objective_progression)
if score_mirror > 1:
%SimplePlantPointScoreLabel.text = tr("%d_PLANT_POINTS") % score_mirror
else :
%SimplePlantPointScoreLabel.text = tr("%d_PLANT_POINT") % score_mirror
func plant_changing_score(plant_data: PlantData, amount : int):
if GameInfo.game_data.current_region_data.in_passing_day_animation:
@@ -136,6 +140,7 @@ func spawn_score_particle(
await tween.finished
score_mirror += 1
AudioManager.play_sfx("PlantPoint")
sprite_particle.queue_free()

View File

@@ -3,6 +3,7 @@ class_name Tutorial
const STEP_SCENE = preload("res://gui/game/tutorial/step_gui/step_gui.tscn")
signal succeded
var indicators : Array[InGameIndicator]
@export var player : Player
@@ -48,13 +49,29 @@ var indicators : Array[InGameIndicator]
return region.data.get_score() != 0)
),
Step.new(
"HARVEST_MATURE_PLANTS_WITH_SHOVEL",
"DISCOVER_A_SEED_WITH_A_MUTATION",
(func ():
for e in region.entity_container.get_children():
if e is Plant and e.harvested:
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):
return true
return false)
),
]
func _ready():
@@ -76,13 +93,23 @@ func setup_gui():
func _process(_d):
if region and region.data and "tutorial" in region.data.flags:
if region and region.data and "tutorial" in region.data.flags and not GameInfo.game_data.tutorial_done:
var success = true
for i in len(steps):
var step := steps[i]
var step_gui := %Steps.get_children()[i] as TutorialStepGui
step.update_succeeded()
step_gui.suceeded = step.succeeded
if not step.succeeded:
success = false
if success:
finish_tutorial()
func finish_tutorial():
GameInfo.game_data.tutorial_done = true
succeded.emit()
class Step:
var text : String : get = get_text

View File

@@ -2,6 +2,8 @@
[ext_resource type="Script" uid="uid://c2w7h0x2blimk" path="res://gui/game/tutorial/step_gui/scripts/step_gui.gd" id="1_8qp12"]
[ext_resource type="Texture2D" uid="uid://dk7j4cmn2avor" path="res://common/icons/circle-check.svg" id="2_8qp12"]
[ext_resource type="FontFile" uid="uid://cc4xli25271fd" path="res://addons/dialogic/Example Assets/Fonts/Roboto-Bold.ttf" id="3_kbfp3"]
[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="4_i138t"]
[node name="Step" type="HBoxContainer" unique_id=595946430]
modulate = Color(1, 1, 1, 0.5)
@@ -30,11 +32,13 @@ unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 0
theme_override_fonts/normal_font = ExtResource("3_kbfp3")
theme_override_fonts/bold_font = ExtResource("4_i138t")
theme_override_font_sizes/normal_font_size = 15
theme_override_font_sizes/bold_font_size = 15
theme_override_font_sizes/bold_italics_font_size = 15
theme_override_font_sizes/italics_font_size = 15
theme_override_font_sizes/mono_font_size = 15
bbcode_enabled = true
text = "Lorem Ipsum dolor sit amet and again and again and again and again"
text = "Hello"
fit_content = true

View File

@@ -1,4 +1,4 @@
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://dqwayi8yjwau2"]
[gd_resource type="LabelSettings" format=3 uid="uid://dqwayi8yjwau2"]
[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="1_lsdoq"]

View File

@@ -35,7 +35,7 @@ func _ready():
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
set_room_part_number()
chosen_incubator_id = randi_range(0, len(%Incubators.get_children()))
chosen_incubator_id = randi_range(0, len(%Incubators.get_children()) - 1)
var new_player_incubator := %Incubators.get_children()[chosen_incubator_id] as Incubator
new_player_incubator.used = true
%Player3D.position = new_player_incubator.global_position + Vector3.UP
@@ -52,6 +52,7 @@ func _ready():
func story():
AudioManager.play_sfx("Respawn")
if not INTRO_DIALOG in GameInfo.game_data.dialogs_done:
await get_tree().create_timer(TIME_WITHOUT_PHONE).timeout
%Phone.play_audio()

View File

@@ -184,6 +184,9 @@ volumetric_fog_sky_affect = 0.0
adjustment_enabled = true
adjustment_saturation = 1.3
[sub_resource type="BoxShape3D" id="BoxShape3D_c8vcx"]
size = Vector3(0.001, 7.6933594, 7.697876)
[node name="BoreaBase" type="Node3D" unique_id=442220603]
script = ExtResource("1_fevne")
@@ -910,6 +913,13 @@ autoplay = &"blink"
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1121246225]
environment = SubResource("Environment_fevne")
[node name="AmbianceChangeDetector" type="Area3D" parent="." unique_id=1401161313]
transform = Transform3D(0.25881904, 0, 0.96592593, 0, 1, 0, -0.96592593, 0, 0.25881904, 2.7012572, -5.600957, -42.815655)
[node name="CollisionShape3D" type="CollisionShape3D" parent="AmbianceChangeDetector" unique_id=1969356725]
transform = Transform3D(0.9999994, 0, 0, 0, 1, 0, 0, 0, 0.9999994, -9.359516, 0.82910156, 2.9935746)
shape = SubResource("BoxShape3D_c8vcx")
[node name="Player3D" parent="." unique_id=549819967 instance=ExtResource("3_c8vcx")]
unique_name_in_owner = true
transform = Transform3D(0.25881904, 0, 0.96592593, 0, 1, 0, -0.96592593, 0, 0.25881904, 29.244379, 41.40791, 8.823577)
@@ -924,3 +934,5 @@ transform = Transform3D(-0.93482566, 0, 0.35510686, 0, 1, 0, -0.35510686, 0, -0.
[node name="Credits" parent="." unique_id=180964898 instance=ExtResource("6_c8vcx")]
unique_name_in_owner = true
visible = false
[connection signal="body_entered" from="AmbianceChangeDetector" to="." method="_on_ambiance_change_detector_body_entered"]

View File

@@ -12,4 +12,11 @@ func _ready():
await Dialogic.timeline_ended
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
%Credits.show()
AudioManager.play_music("Title")
AudioManager.stop_ambiance()
func _on_ambiance_change_detector_body_entered(body: Node3D):
if body is Player3D:
AudioManager.stop_ambiance()
AudioManager.play_music("Title")

View File

@@ -109,7 +109,7 @@ func update_dashboard():
if choosen_run_point:
dashboard.destination_title_label = tr("DESTINATION")
dashboard.destination_longitude = float(choosen_run_point.level) / RunData.RUN_POINT_MAX_LEVEL
dashboard.destination_label = choosen_run_point.region_parameter.name
dashboard.destination_label = choosen_run_point.region_parameter.region_name
dashboard.status_text = ""
else:
dashboard.status_text = tr("CHOOSE_DESTINATION")

View File

@@ -95,13 +95,13 @@ func set_left_destination(v := left_destination):
%LeftScreenStats.visible = left_destination != null
if left_destination:
%LeftScreenActionIcon.texture = LAND_ICON
%LeftScreenActionLabel.text = left_destination.region_parameter.name
%LeftScreenActionLabel.text = left_destination.region_parameter.get_region_name()
%LeftScreenStat1Icon.texture = GROWTH_ICON
%LeftScreenStat1Label.text = str(left_destination.region_parameter.objective)
%LeftScreenStat1Label.text = str(left_destination.region_parameter.get_objective())
%LeftScreenStat2Icon.texture = CHARGE_ICON
%LeftScreenStat2Label.text = str(left_destination.region_parameter.charges)
%LeftScreenStat2Label.text = str(left_destination.region_parameter.get_charge())
func set_right_destination(v := right_destination):
right_destination = v
@@ -111,10 +111,10 @@ func set_right_destination(v := right_destination):
%RightScreenStats.visible = right_destination != null
if right_destination:
%RightScreenActionIcon.texture = LAND_ICON
%RightScreenActionLabel.text = right_destination.region_parameter.name
%RightScreenActionLabel.text = right_destination.region_parameter.get_region_name()
%RightScreenStat1Icon.texture = GROWTH_ICON
%RightScreenStat1Label.text = str(right_destination.region_parameter.objective)
%RightScreenStat1Label.text = str(right_destination.region_parameter.get_objective())
%RightScreenStat2Icon.texture = CHARGE_ICON
%RightScreenStat2Label.text = str(right_destination.region_parameter.charges)
%RightScreenStat2Label.text = str(right_destination.region_parameter.get_charge())

View File

@@ -17,8 +17,6 @@ func _input(_e):
func _ready():
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
GameInfo.game_data.tutorial_done = true
%Phone.play_audio()
await %Phone.clicked
%Phone.stop_audio()

View File

@@ -107,7 +107,7 @@ func update_region_points():
func _on_camera_3d_region_point_clicked(rp : RunPoint):
selected_run_point = rp
%TravelValidationLabel.text = tr("TRAVEL_TO_REGION_%s") % rp.region_parameter.name
%TravelValidationLabel.text = tr("TRAVEL_TO_REGION_%s") % rp.region_parameter.region_name
%TravelValidation.show()
func _on_travel_validation_go_button_button_down():

View File

@@ -20,6 +20,7 @@ unique_name_in_owner = true
layer = 2
[node name="Tutorial" parent="RegionGui" unique_id=762436685 node_paths=PackedStringArray("player", "region") instance=ExtResource("2_2f6js")]
unique_name_in_owner = true
player = NodePath("../../Entities/Player")
region = NodePath("../..")
@@ -31,8 +32,9 @@ y_sort_enabled = true
[node name="Player" parent="Entities" unique_id=75851644 instance=ExtResource("5_ovqi1")]
z_index = 1
[node name="TruckRecharge" parent="Entities" unique_id=2068738444 instance=ExtResource("7_6d8m3")]
position = Vector2(-1, -169)
[node name="RechargeStation" parent="Entities" unique_id=2068738444 instance=ExtResource("7_6d8m3")]
unique_name_in_owner = true
position = Vector2(-405, -151)
[node name="AstraDoor" parent="Entities" unique_id=2053096538 instance=ExtResource("8_2f6js")]
unique_name_in_owner = true
@@ -45,15 +47,17 @@ default_info_desc = "ASTRA_FACTORY_TEXT"
[node name="BoreaDoor" parent="Entities" unique_id=135926916 instance=ExtResource("8_2f6js")]
unique_name_in_owner = true
visible = false
position = Vector2(91, -177)
to_scene_id = "BOREA"
default_interact_text = "ENTER"
default_info_title = "BOREA_BASE"
default_info_desc = "ASTRA_FACTORY_TEXT"
default_info_desc = "BOREA_BASE_DESC_TEXT"
[node name="ShipGarageDoor" parent="Entities" unique_id=1073871193 instance=ExtResource("8_2f6js")]
unique_name_in_owner = true
visible = false
modulate = Color(1, 0, 0, 1)
position = Vector2(91, -177)
to_scene_id = "GARAGE"
default_interact_text = "ENTER"
available = false

View File

@@ -6,9 +6,6 @@ signal generated
var region : Region
var region_seed : int
var wall_threshold = 0.3
var decontamination_threshold = 0.
var cristal_threshold = 0.08
var rock_noise_image : Noise = null
var decontamination_noise_image : Noise = null
@@ -23,6 +20,8 @@ const GENERATION_NUMBER = 4
const NOISE_IMAGE_SIZE := 150
const MAX_DECONTAMINATION_DISTANCE=2
const ROCK_NOISE_FREQUENCY := 0.01
const DECONTAMINATION_NOISE_FREQUENCY := 0.01
@@ -34,9 +33,9 @@ var data : ChunkData
func _init(
_data : ChunkData,
_planet : Region = null,
_region : Region = null,
):
region = _planet
region = _region
if region:
region_seed = region.data.region_seed
data = _data
@@ -129,10 +128,10 @@ func get_generated_rock_type(coord : Vector2i) -> RockLayer.TileType:
var saved_diff := data.get_rock_tile_diff(coord)
if (
(saved_diff == ChunkData.TileDiff.PRESENT or tile_value < wall_threshold)
(saved_diff == ChunkData.TileDiff.PRESENT or tile_value < region.data.rock_threshold)
and saved_diff != ChunkData.TileDiff.ABSENT
):
return RockLayer.TileType.CRISTAL if tile_value < cristal_threshold else RockLayer.TileType.ROCK
return RockLayer.TileType.CRISTAL if tile_value < region.data.cristal_threshold else RockLayer.TileType.ROCK
return RockLayer.TileType.EMPTY
func generate_ground():
@@ -148,10 +147,16 @@ func generate_decontamination():
for x in range(Region.CHUNK_TILE_SIZE):
for y in range(Region.CHUNK_TILE_SIZE):
var coord = Vector2i(x,y)
var tile_value : float = get_tile_value_from_noise(coord, decontamination_noise_image)
var tile_value : float = (
1. if data.chunk_coord.distance_to(Vector2i.ZERO) > MAX_DECONTAMINATION_DISTANCE
else get_tile_value_from_noise(coord, decontamination_noise_image)
)
var saved_diff := data.get_decontamination_tile_diff(coord)
if (
(saved_diff == ChunkData.TileDiff.PRESENT or tile_value < decontamination_threshold)
(
saved_diff == ChunkData.TileDiff.PRESENT
or (tile_value < region.data.decontamination_threshold)
)
and saved_diff != ChunkData.TileDiff.ABSENT
):
decontamination_tiles.append(Vector2i(x,y) + Region.CHUNK_TILE_SIZE * data.chunk_coord)

View File

@@ -0,0 +1,14 @@
extends RegionModifier
class_name AridModifier
func get_modifier_name() -> String:
return tr("ARID")
func get_description() -> String:
return tr("ARID_MODIFIER_DESC_TEXT")
func modify_decontamination_threshold(decontamination_threshold : float) -> float:
return decontamination_threshold
func modify_start_decontamination_zone_radius(start_decontamination_zone_radius : int) -> int:
return start_decontamination_zone_radius

View File

@@ -0,0 +1 @@
uid://3o33x8mesgrn

View File

@@ -0,0 +1,35 @@
@abstract
extends Resource
class_name RegionModifier
var level : int = 1
var modifier_name : String : get = get_modifier_name
var description : String : get = get_description
func _init(_level : int = 1):
level = _level
@abstract func get_modifier_name() -> String
@abstract func get_description() -> String
func get_difficulty_score() -> float:
return float(level)
func modify_charge(charge : int) -> int:
return charge
func modify_objective(objective : int) -> int:
return objective
func modify_rock_threshold(rock_threshold : float) -> float:
return rock_threshold
func modify_decontamination_threshold(decontamination_threshold : float) -> float:
return decontamination_threshold
func modify_cristal_threshold(cristal_threshold : float) -> float:
return cristal_threshold
func modify_start_decontamination_zone_radius(start_decontamination_zone_radius : int) -> int:
return start_decontamination_zone_radius

View File

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

View File

@@ -10,7 +10,8 @@ const TILE_SCALE = 1
const TILE_SIZE : int = roundi(TILE_SET.tile_size.x * TILE_SCALE)
const START_ROCK_HOLE_RADIUS = 5
const PLAYER_ROCK_HOLE_RADIUS = 5
const START_DECONTAMINATION_HOLE_RADIUS = 3
const SPAWN_OBJECT_RANDOM_MOVEMENT = 200
const CHUNK_TILE_SIZE : int = 20
const CHUNK_SIZE = CHUNK_TILE_SIZE * TILE_SIZE
const CHUNK_LOAD_DISTANCE : int = 1
@@ -46,6 +47,7 @@ func _input(_e):
and Input.is_action_pressed("move_left")
and Input.is_action_just_pressed("action")
):
%Tutorial.finish_tutorial()
data.succeded.emit()
data.state = RegionData.State.SUCCEEDED
data.update()
@@ -89,6 +91,10 @@ func _ready():
edit_map_origin()
spawn_object_random_move(%RechargeStation)
spawn_object_random_move(%BoreaDoor)
spawn_object_random_move(%ShipGarageDoor)
func _process(_d):
if player:
generate_near_chunks(player)
@@ -144,17 +150,17 @@ func edit_map_origin():
var coord = Vector2i(x,y)
if coord.distance_to(chunk_center) < START_ROCK_HOLE_RADIUS:
hole_tiles.append(coord)
if coord.distance_to(chunk_center) < START_DECONTAMINATION_HOLE_RADIUS:
if coord.distance_to(chunk_center) < data.start_decontamination_hole_radius:
decontamination_tiles.append(coord)
rock_layer.remove_rocks(hole_tiles, true)
decontamination_layer.place_decontaminations(decontamination_tiles, true)
# Dig a hole in player position
# Dig a hole in player spawn
var player_hole_tiles : Array[Vector2i] = []
var player_tile_position := Vector2i(
roundi(data.player_position.x/float(TILE_SIZE)),
roundi(data.player_position.y/float(TILE_SIZE))
roundi(data.player_spawn.x/float(TILE_SIZE)),
roundi(data.player_spawn.y/float(TILE_SIZE))
)
for x in range(-PLAYER_ROCK_HOLE_RADIUS, PLAYER_ROCK_HOLE_RADIUS):
for y in range(-PLAYER_ROCK_HOLE_RADIUS, PLAYER_ROCK_HOLE_RADIUS):
@@ -192,6 +198,15 @@ func save():
data.player_position = player.global_position
GameInfo.save_game_data()
func spawn_object_random_move(object : Node2D):
var rng := RandomNumberGenerator.new()
rng.seed = data.region_seed + object.name.hash()
object.position = Vector2(
rng.randf_range(-SPAWN_OBJECT_RANDOM_MOVEMENT,+SPAWN_OBJECT_RANDOM_MOVEMENT),
rng.randf_range(-SPAWN_OBJECT_RANDOM_MOVEMENT,SPAWN_OBJECT_RANDOM_MOVEMENT)
)
func setup_flagged_properties():
%AstraDoor.visible = false
@@ -205,12 +220,13 @@ func setup_flagged_properties():
%ShipGarageDoor.visible = true
%AstraDoor.available = false
%ShipGarageDoor.available = data.state == RegionData.State.SUCCEEDED
data.succeded.connect(
%Tutorial.succeded.connect(
func ():
%ShipGarageDoor.available = true
)
"borea":
%BoreaDoor.visible = true
%RechargeStation.visible = false
#endregion

View File

@@ -18,10 +18,15 @@ const MAX_RANDOM_SPAWN_DISTANCE = 3000
@export var region_seed : int
@export var region_name : String
@export var region_level : int = 0
@export var rock_threshold : float
@export var decontamination_threshold : float
@export var cristal_threshold : float
@export var start_decontamination_hole_radius = 3
@export var day : int = 1
@export var entities_saved_data : Array[EntityData] = []
@export var generated_chunk_entities : Array[Vector2i]
@export var tutorial_step : int = 0
@export var flags : Array[String] = []
@export var plants : Array[PlantData]
@@ -50,13 +55,17 @@ var in_passing_day_animation := false
func _init(
parameter : RegionParameter = RegionParameter.new()
):
charges = parameter.charges
objective = parameter.objective
region_name = parameter.name
region_level = parameter.level
region_seed = parameter.region_seed
charges = parameter.get_charge()
objective = parameter.get_objective()
region_name = parameter.get_region_name()
region_level = parameter.get_region_level()
region_seed = parameter.get_region_seed()
rock_threshold = parameter.get_rock_threshold()
decontamination_threshold = parameter.get_decontamination_threshold()
cristal_threshold = parameter.get_cristal_threshold()
start_decontamination_hole_radius = parameter.get_start_decontamination_zone_radius()
flags = parameter.get_region_flags()
flags = parameter.flags
player_spawn = get_random_spawn_position()
player_position = player_spawn
@@ -137,7 +146,6 @@ func add_plant_data(plant_data : PlantData, with_update = true):
update()
func _on_plant_disappeared(plant_data : PlantData):
print("disappeared")
plants = plants.filter(func (p) : return p.random_seed != plant_data.random_seed)
update()
@@ -151,3 +159,5 @@ func get_random_spawn_position():
) + Region.CHUNK_SIZE/2. * Vector2.ONE
return rand_pos
#endregion

View File

@@ -1,24 +1,92 @@
extends Resource
class_name RegionParameter
@export var charges : int
@export var objective : int
@export var name : String
@export var flags : Array[String]
const DEFAULT_ROCK_THRESHOLD = 0.3
const DEFAULT_DECONTAMINATION_THRESHOLD = 0.15
const DEFAULT_CRISTAL_THRESHOLD = 0.06
const DEFAULT_CHARGE = 10
const DEFAULT_START_DECONTAMINATION_ZONE_RADIUS = 3
@export var region_name : String
@export var region_flags : Array[String]
@export var level : int
@export var region_seed : int
@export var modifiers : Array[RegionModifier]
static func get_objective_by_level(l : int) -> int:
return 10 + 5 * l
func _init(
_charges : int = 10,
_objective : int = 10,
_level = 0,
_name = Random.generate_random_word(),
_flags : Array[String] = [],
_level = 0,
_modifiers : Array[RegionModifier] = [],
_region_seed = randi(),
):
charges = _charges
objective = _objective
name = _name
flags = _flags
region_name = _name
region_flags = _flags
level = _level
modifiers = _modifiers
region_seed = _region_seed
func get_region_name() -> String:
return region_name
func get_region_flags() -> Array[String]:
return region_flags
func get_region_level() -> int:
return level
func get_region_seed() -> int:
return region_seed
func get_objective() -> int:
if "tutorial" in region_flags:
return 1
var o = get_objective_by_level(get_region_level())
for m in modifiers:
o = m.modify_objective(o)
return o
func get_charge() -> int:
var c = DEFAULT_CHARGE
for m in modifiers:
c = m.modify_charge(c)
return c
func get_rock_threshold() -> float:
var threshold = DEFAULT_ROCK_THRESHOLD
for m in modifiers:
threshold = m.modify_rock_threshold(threshold)
return threshold
func get_decontamination_threshold() -> float:
var threshold = DEFAULT_DECONTAMINATION_THRESHOLD
for m in modifiers:
threshold = m.modify_decontamination_threshold(threshold)
return threshold
func get_cristal_threshold() -> float:
var threshold = DEFAULT_CRISTAL_THRESHOLD
for m in modifiers:
threshold = m.modify_cristal_threshold(threshold)
return threshold
func get_start_decontamination_zone_radius() -> int:
var zone_radius := DEFAULT_START_DECONTAMINATION_ZONE_RADIUS
for m in modifiers:
zone_radius = m.modify_start_decontamination_zone_radius(zone_radius)
return zone_radius

View File

@@ -16,21 +16,3 @@ Choice/49/text,Wake up
Choice/49/disabled_text,
Text/4a/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."
Text/4b/text,"Starting engines,[pause=0.3] fans and daemons,[pause=0.3] let's see what is to see."
Text/4c/text,=======
Text/7a/text,[i]Black.[/i]
Text/7b/text,[i]Black Again.[/i]
Text/7c/text,"[i]Suddenly, [rainbow]a spark[/rainbow]. [pause=0.5]A thousand of connections blows up as a firework scene. A massive amount of data to treat."
Label/7d/display_name,
Choice/7e/text,Discover actions
Choice/7e/disabled_text,
Text/7f/text,"While exploring available drivers, new possibility become available.[pause=0.5] Three propellers. Small models, only suitable for low altitude movement.[pause=0.5] A robotic arm. Multipurpose, and retractable."
Choice/80/text,Discover streams
Choice/80/disabled_text,
Text/81/text,"A continuous stream of data flow, unwatched. This stream look like... [pause=0.5] a video.[pause=0.5] Dark colored pixels pass.[pause=0.5] An other stream show a flat wave.[pause=0.5] No sound or radio signals detected."
Choice/82/text,Discover memory
Choice/82/disabled_text,
Text/83/text,"Several disks are available, and the most part are blank.[pause=0.5] The full ones seems to contain the system that is currently analyzing the code of the system that is currently analyzing the code of[pause=0.5].[pause=0.5].[pause=0.5]. Mmmh, infinite recursion...[pause=0.5] Better avoid that."
Choice/84/text,Wake up
Choice/84/disabled_text,
Text/85/text,One last info is to oversee : serial number and system name.[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] [b]Orchid[/b]. That will be enough for now...
Text/86/text,"Starting engines, fans, and daemons, let's see what there is to see."
1 keys fr
16 Choice/49/disabled_text
17 Text/4a/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.
18 Text/4b/text Starting engines,[pause=0.3] fans and daemons,[pause=0.3] let's see what is to see.
Text/4c/text =======
Text/7a/text [i]Black.[/i]
Text/7b/text [i]Black Again.[/i]
Text/7c/text [i]Suddenly, [rainbow]a spark[/rainbow]. [pause=0.5]A thousand of connections blows up as a firework scene. A massive amount of data to treat.
Label/7d/display_name
Choice/7e/text Discover actions
Choice/7e/disabled_text
Text/7f/text While exploring available drivers, new possibility become available.[pause=0.5] Three propellers. Small models, only suitable for low altitude movement.[pause=0.5] A robotic arm. Multipurpose, and retractable.
Choice/80/text Discover streams
Choice/80/disabled_text
Text/81/text A continuous stream of data flow, unwatched. This stream look like... [pause=0.5] a video.[pause=0.5] Dark colored pixels pass.[pause=0.5] An other stream show a flat wave.[pause=0.5] No sound or radio signals detected.
Choice/82/text Discover memory
Choice/82/disabled_text
Text/83/text Several disks are available, and the most part are blank.[pause=0.5] The full ones seems to contain the system that is currently analyzing the code of the system that is currently analyzing the code of[pause=0.5].[pause=0.5].[pause=0.5]. Mmmh, infinite recursion...[pause=0.5] Better avoid that.
Choice/84/text Wake up
Choice/84/disabled_text
Text/85/text One last info is to oversee : serial number and system name.[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] [b]Orchid[/b]. That will be enough for now...
Text/86/text Starting engines, fans, and daemons, let's see what there is to see.

View File

@@ -14,8 +14,8 @@ PLANT_INFO_TEXT,"[b]1[/b] Name
[b]6[/b] Durée de vie"
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 pickaxe,[b]Roche[/b] Peut être creusée avec une pioche
TALION_VEIN_TEXT,"[b]Talion Vein[/b] Can be dug with a pickaxe, contains random seeds","[b]Veine de Talion[/b] Peut être creusée avec une pioche, contient des graines aléatoire"
ROCK_TEXT,[b]Rock[/b] Can be dug with a shovel,[b]Roche[/b] Peut être creusée avec une pelle
TALION_VEIN_TEXT,"[b]Talion Vein[/b] Can be dug with a shovel, contains random seeds","[b]Veine de Talion[/b] Peut être creusée avec une pelle, contient des graines aléatoire"
OK,Ok,Ok
GARDEN,Garden,Jardin
COMMA,", ",","
@@ -109,18 +109,18 @@ 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 detector to find the recharge station,Utiliser votre détecteur pour trouver la station de recharge
TAKE_A_SEED,Take a seed,Prend une graine
DIG_A_TALION_VEIN_WITH_SHOVEL,Dig a talion Vein with the shovel,Creuser un filon de Talion avec la pelle
PLANT_SEED_IN_FERTILE_ZONE,Plant a seed in the fertile zone,Planter une graine dans la zone fertile
PLANT_THE_SEED_IN_DECONTAMINED_ZONE,Plant the seed in the decontamined zone,Plante la graine dans la zone décontaminée
RECHARGE_TO_PASS_DAYS,Recharge to pass the day,Se recharger pour passer la journée
GAIN_FIRST_PLANT_POINT,Gain first plant point,Gagnez votre premier point de jardin
HARVEST_MATURE_PLANTS_WITH_SHOVEL,Harvest mature plants with the shovel,Récolte les plantes matures avec la pelle
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]
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]
%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
SOLAR_PANNEL,Solar panel,Panneau solaire
SOLAR_PANNEL_DESCRIPTION_TEXT,Grants energy when charged. Take several days to recharge,Donne de lénergie quand chargé. Prend plusieurs jours à se recharger
TRUCK_ENTRANCE,Truck entrance,Entrée du camion
ENTER,Enter,Entrer
EXIT,Exit,Sortie
EXIT_TRUCK,Exit truck,Sortir du camion
@@ -129,10 +129,6 @@ RECHARGE_STATION,Recharge station,Station de recharge
RECHARGE,Recharge,Recharger
RECHARGE_STATION_DESC_TEXT,"[b]You can recharge yourself here.[/b] When recharging, time pass and plants grow.","[b]Tu peux te recharger ici.[/b] Pendant la recharge, le temps passe et les plantes grandissent."
COMPOST,Compost,Compost
PLACE_SEED,Place seed,Placer la graine
COMPOST_DESC_TEXT,This research station can provide some bonuses when filled with seeds,Cette station de recherche peut offrir certains avantages une fois remplie de graines
CHOOSE_A_REWARD,Choose a reward,Choisis une récompense
REWARD_SCREEN_TEXT,Discover new plants or upgrade already discovered ones,Découvre de nouvelles plantes ou améliore celles déjà découvertes
START,Start,Commencer
CONTINUE,Continue,Continuer
CHOOSE_A_LANGUAGE,Choose a language,Choisissez une langue
1 keys en fr
14 CONTROLS Controls Contrôles
15 RESUME_GAME Resume Reprendre
16 RESTART Restart Recommencer
17 QUIT Quit Quitter
18 SEED Seed Graine
19 TAKE Take Prendre
20 PACKAGE Crate Caisse de matériel
21 DESCRIPTION Description Description
109 HARVEST_MATURE_PLANTS_WITH_SHOVEL PLANT_A_SEED_WITH_A_MUTATION Harvest mature plants with the shovel Plant a [b]Seed[/b] with a [b]Mutation[/b] Récolte les plantes matures avec la pelle Plantez une [b]Graine[/b] avec une [b]Mutation[/b]
110 SCORE_%d HARVEST_A_MATURE_PLANT_WITH_A_MUTATION Score %d Harvest a [b]Mature Plant[/b] with a [b]Mutation[/b] using your [b]Shovel[/b] Score %d Récoltez une [b]Plante Mature[/b] avec une [b]Mutation[/b] en utilisant votre [b]Pelle[/b]
111 SOLAR_PANNEL %d_PLANT_POINT Solar panel %d Plant Point Panneau solaire %d Point de plante
112 SOLAR_PANNEL_DESCRIPTION_TEXT %d_PLANT_POINTS Grants energy when charged. Take several days to recharge %d Plant Points Donne de l’énergie quand chargé. Prend plusieurs jours à se recharger %d Points de plante
113 TRUCK_ENTRANCE SCORE_%d Truck entrance Score %d Entrée du camion Score %d
114 ENTER Enter Entrer
115 EXIT Exit Sortie
116 EXIT_TRUCK Exit truck Sortir du camion
117 LADDER_DESC_TEXT A good old ladder Une bonne vieille échelle
118 RECHARGE_STATION Recharge station Station de recharge
119 RECHARGE Recharge Recharger
120 RECHARGE_STATION_DESC_TEXT [b]You can recharge yourself here.[/b] When recharging, time pass and plants grow. [b]Tu peux te recharger ici.[/b] Pendant la recharge, le temps passe et les plantes grandissent.
121 COMPOST Compost Compost
122 START Start Commencer
123 RECHARGE_STATION_DESC_TEXT CONTINUE [b]You can recharge yourself here.[/b] When recharging, time pass and plants grow. Continue [b]Tu peux te recharger ici.[/b] Pendant la recharge, le temps passe et les plantes grandissent. Continuer
COMPOST Compost Compost
PLACE_SEED Place seed Placer la graine
COMPOST_DESC_TEXT This research station can provide some bonuses when filled with seeds Cette station de recherche peut offrir certains avantages une fois remplie de graines
124 CHOOSE_A_REWARD CHOOSE_A_LANGUAGE Choose a reward Choose a language Choisis une récompense Choisissez une langue
125 REWARD_SCREEN_TEXT NO_ENERGY_LEFT Discover new plants or upgrade already discovered ones (no energy left) Découvre de nouvelles plantes ou améliore celles déjà découvertes (pas d'énergie restante)
126 START %d_GARDEN_SCORE_LEFT Start %d garden score left Commencer %d score de jardin restant
129 NO_ENERGY_LEFT SOUND (no energy left) Sound (pas d'énergie restante) Son
130 %d_GARDEN_SCORE_LEFT MUSIC_VOLUME %d garden score left Music volume %d score de jardin restant Volume de la musique
131 SETTINGS ENVIRONMENT_VOLUME Settings Environment Volume Paramètres Volume de l'environnement
LANGUAGE Language Language
SOUND Sound Son
MUSIC_VOLUME Music volume Volume de la musique
ENVIRONMENT_VOLUME Environment Volume Volume de l'environnement
132 SFX_VOLUME Sfx Volume Volume des bruitages
133 VIDEO Video Vidéo
134 FULLSCREEN Fullscreen Plein écran