Compare commits

2 Commits

Author SHA1 Message Date
ca0133bd71 ajout des graines procédurales et des cinamatiques 2026-02-21 14:29:36 +01:00
2e4a1bab53 ajout des traductions 2026-02-21 14:28:52 +01:00
130 changed files with 1490 additions and 613 deletions

View File

@@ -23,6 +23,10 @@
[ext_resource type="AudioStream" uid="uid://cqa0gvgpoa7pd" path="res://common/audio_manager/assets/sfx/pick_up/pick_up_2.wav" id="21_dk5s6"]
[ext_resource type="AudioStream" uid="uid://d1cpi438ep0ys" path="res://common/audio_manager/assets/sfx/announce/annnounce.wav" id="22_btfwx"]
[ext_resource type="AudioStream" uid="uid://ccq04ahrwr3bv" path="res://common/audio_manager/assets/sfx/alarm/alarm.wav" id="23_fwu3w"]
[ext_resource type="AudioStream" uid="uid://ctfaxvblcg5lc" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_1.wav" id="24_tq535"]
[ext_resource type="AudioStream" uid="uid://c1dnklmka2ccn" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_2.wav" id="25_ywn7s"]
[ext_resource type="AudioStream" uid="uid://dd1uu6dd6sloe" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_3.wav" id="26_xhon7"]
[ext_resource type="AudioStream" uid="uid://eq7wufwnolto" path="res://common/audio_manager/assets/sfx/pickaxe/pickaxe_4.wav" id="27_3jg6d"]
[sub_resource type="AudioStreamPlaylist" id="AudioStreamPlaylist_ajci6"]
stream_count = 4
@@ -62,6 +66,14 @@ streams_count = 2
stream_0/stream = ExtResource("20_pu6t4")
stream_1/stream = ExtResource("21_dk5s6")
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_dhq5t"]
random_pitch = 1.0594631
streams_count = 4
stream_0/stream = ExtResource("24_tq535")
stream_1/stream = ExtResource("25_ywn7s")
stream_2/stream = ExtResource("26_xhon7")
stream_3/stream = ExtResource("27_3jg6d")
[node name="AudioManager" type="Node" unique_id=1871137180]
process_mode = 3
script = ExtResource("1_0tvca")
@@ -114,3 +126,6 @@ volume_db = 8.627
[node name="Alarm" type="AudioStreamPlayer" parent="Sfx" unique_id=689347925]
stream = ExtResource("23_fwu3w")
[node name="Pickaxe" type="AudioStreamPlayer" parent="Sfx" unique_id=996309145]
stream = SubResource("AudioStreamRandomizer_dhq5t")

View File

@@ -92,6 +92,7 @@ func _on_timeline_started():
# Amuse toi Nilou ;)
func _on_timeline_ended():
if SceneManager.actual_scene:
_on_change_scene(SceneManager.actual_scene)
func play_music(player_name : String = "", from_random_time := false, fade_time := DEFAULT_FADE_TIME):

View File

@@ -51,7 +51,7 @@ func start_tutorial():
10,
3,
tr("TUTORIAL"),
true,
["tutorial"],
0,
randi()
)

View File

@@ -4,9 +4,9 @@ class_name RunData
enum State {STARTED, IN_PROGRESS, FINISHED}
const RUN_POINT_POSITION_DERIVATION = 100
const DIFFICULTY_INCREASE_BY_LEVEL = 1
const DIFFICULTY_INCREASE_BY_LEVEL = 3
const RUN_POINTS_NEXT_NUMBER :Array[int] = [2]
const RUN_POINT_MAX_LEVEL = 6
const RUN_POINT_MAX_LEVEL = 0 # TODO
signal current_run_point_changed
@@ -41,9 +41,14 @@ func generate_next_run_points(run_point : RunPoint) -> Array[RunPoint]:
func generate_next_run_point(run_point : RunPoint) -> RunPoint:
var level = run_point.level + 1
var region_parameter = RegionParameter.new()
region_parameter.level = level
region_parameter.flags = get_region_flags(region_parameter)
return RunPoint.new(
run_point.level + 1,
generate_difficulty_increased_region_parameter(run_point.region_parameter, DIFFICULTY_INCREASE_BY_LEVEL),
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
)
@@ -56,6 +61,7 @@ func generate_difficulty_increased_region_parameter(
region_parameter.charges,
region_parameter.objective
)
while i_diff > 0:
var available_difficulty_modifier = [
@@ -96,6 +102,15 @@ func choose_next_run_point(run_point : RunPoint) -> RunPoint:
next_run_points = generate_next_run_points(current_run_point)
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")
return flags
class DifficultyModifier:
func modify(_region_parameter : RegionParameter):
pass

View File

@@ -44,7 +44,7 @@ const AVAILABLE_LANGUAGES_LABEL = [
#region ------------------ Video ------------------
@export var full_screen : bool = false :
@export var full_screen : bool = true :
set(v):
full_screen = v
video_changed.emit(self)

View 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-circle-check"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M17 3.34a10 10 0 1 1 -14.995 8.984l-.005 -.324l.005 -.324a10 10 0 0 1 14.995 -8.336zm-1.293 5.953a1 1 0 0 0 -1.32 -.083l-.094 .083l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.403 1.403l.083 .094l2 2l.094 .083a1 1 0 0 0 1.226 0l.094 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z" /></svg>

After

Width:  |  Height:  |  Size: 522 B

View File

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dk7j4cmn2avor"
path="res://.godot/imported/circle-check.svg-a4b2a081fcd49aa81b3d471e5cf96154.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://common/icons/circle-check.svg"
dest_files=["res://.godot/imported/circle-check.svg-a4b2a081fcd49aa81b3d471e5cf96154.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=2.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-circle-dotted"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M7.5 4.21l0 .01" /><path d="M4.21 7.5l0 .01" /><path d="M3 12l0 .01" /><path d="M4.21 16.5l0 .01" /><path d="M7.5 19.79l0 .01" /><path d="M12 21l0 .01" /><path d="M16.5 19.79l0 .01" /><path d="M19.79 16.5l0 .01" /><path d="M21 12l0 .01" /><path d="M19.79 7.5l0 .01" /><path d="M16.5 4.21l0 .01" /><path d="M12 3l0 .01" /></svg>

After

Width:  |  Height:  |  Size: 635 B

View File

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://p7417vydlndb"
path="res://.godot/imported/circle-dotted.svg-66d6de56bbd4e5cdc1d212f761ee2b4a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://common/icons/circle-dotted.svg"
dest_files=["res://.godot/imported/circle-dotted.svg-66d6de56bbd4e5cdc1d212f761ee2b4a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=2.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

1
common/icons/rocket.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-rocket"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M4 13a8 8 0 0 1 7 7a6 6 0 0 0 3 -5a9 9 0 0 0 6 -8a3 3 0 0 0 -3 -3a9 9 0 0 0 -8 6a6 6 0 0 0 -5 3" /><path d="M7 14a6 6 0 0 0 -3 6a6 6 0 0 0 6 -3" /><path d="M14 9a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /></svg>

After

Width:  |  Height:  |  Size: 501 B

View File

@@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://1ynlp05wj0hm"
path="res://.godot/imported/rocket.svg-179ed4d17d5fad3feb8d3bb0242a9308.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://common/icons/rocket.svg"
dest_files=["res://.godot/imported/rocket.svg-179ed4d17d5fad3feb8d3bb0242a9308.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=2.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View File

@@ -1,7 +1,7 @@
[gd_scene format=3 uid="uid://b8gqdgabrjaml"]
[ext_resource type="Script" uid="uid://dt2ip3pw2cboy" path="res://entities/plants/scripts/texture_builder/plant_texture_builder.gd" id="1_s8rsj"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_cfiqo"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_cfiqo"]
[ext_resource type="Resource" uid="uid://bfyafiewcrjln" path="res://entities/plants/resources/plant_parts/Base1.tres" id="3_coupj"]
[ext_resource type="Resource" uid="uid://d2vdf2sth2xjm" path="res://entities/plants/resources/plant_parts/Base3.tres" id="4_coupj"]
[ext_resource type="Resource" uid="uid://7hrdkl6bf3o4" path="res://entities/plants/resources/plant_parts/Branch1.tres" id="4_ggud5"]
@@ -17,7 +17,7 @@
[ext_resource type="Resource" uid="uid://b4s58a600q2rn" path="res://entities/plants/resources/plant_parts/Branch16.tres" id="13_fuh2b"]
[ext_resource type="Resource" uid="uid://dspugxsjw2aea" path="res://entities/plants/resources/plant_parts/Branch17.tres" id="14_28gvc"]
[ext_resource type="Resource" uid="uid://cnt38l2fmg8d7" path="res://entities/plants/resources/plant_parts/Branch18.tres" id="15_1cwvj"]
[ext_resource type="Script" uid="uid://cfjd8jelpm8dt" path="res://entities/plants/scripts/texture_builder/part_mutation_association.gd" id="16_c3tk3"]
[ext_resource type="Script" path="res://entities/plants/scripts/texture_builder/part_mutation_association.gd" id="16_c3tk3"]
[ext_resource type="Resource" uid="uid://wxqxm6d5twdh" path="res://entities/plants/resources/plant_parts/Leaf8.tres" id="17_q0jli"]
[ext_resource type="Resource" uid="uid://uoikjpno37bi" path="res://entities/plants/resources/plant_parts/Leaf9.tres" id="18_rplk6"]
[ext_resource type="Resource" uid="uid://c5gqwck2p5h5n" path="res://entities/plants/resources/plant_parts/Leaf10.tres" id="19_mcckl"]
@@ -47,6 +47,13 @@
[ext_resource type="Resource" uid="uid://cbqrl72y0d1yg" path="res://entities/plants/resources/plant_parts/BottomLeaf7.tres" id="43_h02jx"]
[ext_resource type="Resource" uid="uid://dwppani7gyjl5" path="res://entities/plants/resources/plant_parts/BottomLeaf8.tres" id="44_1v1v5"]
[ext_resource type="Resource" uid="uid://dkta1u1u0efxk" path="res://entities/plants/resources/plant_parts/BottomLeaf9.tres" id="45_yha2t"]
[ext_resource type="Script" uid="uid://hs3i48clok85" path="res://entities/plants/scripts/texture_builder/seed_texture_set.gd" id="48_cynqk"]
[ext_resource type="Texture2D" uid="uid://cq2f308itghq7" path="res://entities/plants/assets/sprites/seeds/haricot/color_1.png" id="49_b21au"]
[ext_resource type="Texture2D" uid="uid://b3apxg55cjoow" path="res://entities/plants/assets/sprites/seeds/haricot/color_2.png" id="50_17ac3"]
[ext_resource type="Texture2D" uid="uid://0ayiumcnqyc1" path="res://entities/plants/assets/sprites/seeds/haricot/outline.png" id="51_fuh2b"]
[ext_resource type="Texture2D" uid="uid://cuqocuhfpdful" path="res://entities/plants/assets/sprites/seeds/pick-sphere/color_1.png" id="52_28gvc"]
[ext_resource type="Texture2D" uid="uid://tcjcq04akuns" path="res://entities/plants/assets/sprites/seeds/pick-sphere/color_2.png" id="53_1cwvj"]
[ext_resource type="Texture2D" uid="uid://cu1dajkls18x0" path="res://entities/plants/assets/sprites/seeds/pick-sphere/line.png" id="54_c3tk3"]
[sub_resource type="Resource" id="Resource_x75j3"]
script = ExtResource("16_c3tk3")
@@ -72,6 +79,18 @@ parts = Array[ExtResource("2_cfiqo")]([ExtResource("37_kyre2"), ExtResource("38_
part_amount = 2
metadata/_custom_type_script = "uid://cfjd8jelpm8dt"
[sub_resource type="Resource" id="Resource_q0jli"]
script = ExtResource("48_cynqk")
color_textures = Array[Texture]([ExtResource("49_b21au"), ExtResource("50_17ac3")])
outline_texture = ExtResource("51_fuh2b")
metadata/_custom_type_script = "uid://hs3i48clok85"
[sub_resource type="Resource" id="Resource_rplk6"]
script = ExtResource("48_cynqk")
color_textures = Array[Texture]([ExtResource("52_28gvc"), ExtResource("53_1cwvj")])
outline_texture = ExtResource("54_c3tk3")
metadata/_custom_type_script = "uid://hs3i48clok85"
[node name="TextureBuilder" type="Node" unique_id=79184097]
script = ExtResource("1_s8rsj")
bases = Array[ExtResource("2_cfiqo")]([ExtResource("3_coupj")])
@@ -83,3 +102,4 @@ parts_mutation_associations = Dictionary[String, ExtResource("16_c3tk3")]({
"QUALITY": SubResource("Resource_n40r1"),
"QUICK": SubResource("Resource_pw6ot")
})
seed_texture_sets = Array[ExtResource("48_cynqk")]([SubResource("Resource_q0jli"), SubResource("Resource_rplk6")])

View File

@@ -9,7 +9,8 @@
[ext_resource type="Resource" uid="uid://diro74w272onp" path="res://common/scene_manager/scenes/title.tres" id="7_ol3d5"]
[ext_resource type="Resource" uid="uid://jegdqnd2sqi2" path="res://common/scene_manager/scenes/astra.tres" id="8_e28ni"]
[ext_resource type="Resource" uid="uid://b3ebbo88ptrrc" path="res://common/scene_manager/scenes/garage.tres" id="9_msho1"]
[ext_resource type="Resource" uid="uid://cvrs6qsq7mpa5" path="res://common/scene_manager/scenes/borea.tres" id="10_ytog4"]
[node name="SceneManager" type="Node" unique_id=1630600782]
script = ExtResource("1_1c0qu")
scenes = Array[ExtResource("2_c1lr7")]([ExtResource("3_e28ni"), ExtResource("4_msho1"), ExtResource("5_ytog4"), ExtResource("6_chs32"), ExtResource("7_ol3d5"), ExtResource("8_e28ni"), ExtResource("9_msho1")])
scenes = Array[ExtResource("2_c1lr7")]([ExtResource("3_e28ni"), ExtResource("4_msho1"), ExtResource("5_ytog4"), ExtResource("6_chs32"), ExtResource("7_ol3d5"), ExtResource("8_e28ni"), ExtResource("9_msho1"), ExtResource("10_ytog4")])

View File

@@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="Scene" format=3 uid="uid://cvrs6qsq7mpa5"]
[ext_resource type="Script" uid="uid://1ejbvr3431ac" path="res://common/scene_manager/scripts/scene.gd" id="1_7m46k"]
[resource]
script = ExtResource("1_7m46k")
scene_id = "BOREA"
scene_path = "res://stages/3d_scenes/borea_base/borea_base.tscn"
mouse_captured = true
metadata/_custom_type_script = "uid://1ejbvr3431ac"

View File

@@ -1,7 +1,7 @@
{
"@path": "res://addons/dialogic/Resources/character.gd",
"@subpath": NodePath(""),
&"_translation_id": "",
&"_translation_id": "87",
&"color": Color(0, 0.60784316, 1, 1),
&"custom_info": {
"prefix": "",

View File

@@ -1,22 +1,22 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
[wait time="1.5"]
join demeter center [animation="Bounce In" length="1.0"]
demeter: Hello again !
demeter: It seems that you ran out of energy...
- I'm sorry...
- That's really hard !
- I'm just doing my best !
demeter: It's ok [color=#FFA617]Orchid[/color] ! I spent years waiting for this moment, I can wait more !
demeter: I found you a new body, and a new ship is waiting you outside, but I'm afraid I couldn't get your seeds... I hope you find new ones !
demeter: Do you need some advices ?
- No I'm ok !
- Can I have back some explanations on how all of this works ?
demeter: When you emerge from this building, you'll arrive in a little yellow zone. Its a [b]fertile zone[/b], created by the return of the Talion. This is in this zone and only there were you can plant.
demeter: Then you'll have to get seeds. For that, nothing more simple, you take your shovel tool, and you smash some stones ! Preferably those with yellow cristals on it, it's the [b]Talion veins[/b] .
demeter: Each time you use a tool or plant a seed, you'll spend an [b]energy[/b]. When your out of it, you can just go recharge on the [b]recharge station[/b] you'll find near the entrance. Each time you recharge, time will pass. One day in fact (yes, you don't have a good battery), and the plants will grow !
demeter: You have to obtain enough [b]plant points[/b]. Each plant give one or more [b]plant points[/b] when mature.
demeter: And yes, I almost forgot ! Some plants gain [b]mutations[/b] that can affect their points or behavior. You can get these mutations on new seeds by harvesting, and gain better ones ! But you'll have to wait the plants to die, or smashing them with your shovel when mature.
demeter: Hope I helped !
demeter: I send you the elevator, see you soon !
demeter: Hello again ! #id:1f
demeter: It seems that you ran out of energy... #id:20
- I'm sorry... #id:21
- That's really hard ! #id:22
- I'm just doing my best ! #id:23
demeter: It's ok [color=#FFA617]Orchid[/color] ! I spent years waiting for this moment, I can wait more ! #id:24
demeter: I found you a new body, and a new ship is waiting you outside, but I'm afraid I couldn't get your seeds... I hope you find new ones ! #id:25
demeter: Do you need some advices ? #id:26
- No I'm ok ! #id:27
- Can I have back some explanations on how all of this works ? #id:28
demeter: When you emerge from this building, you'll arrive in a little yellow zone. Its a [b]fertile zone[/b], created by the return of the Talion. This is in this zone and only there were you can plant. #id:29
demeter: Then you'll have to get seeds. For that, nothing more simple, you take your shovel tool, and you smash some stones ! Preferably those with yellow cristals on it, it's the [b]Talion veins[/b] . #id:2a
demeter: Each time you use a tool or plant a seed, you'll spend an [b]energy[/b]. When your out of it, you can just go recharge on the [b]recharge station[/b] you'll find near the entrance. Each time you recharge, time will pass. One day in fact (yes, you don't have a good battery), and the plants will grow ! #id:2b
demeter: You have to obtain enough [b]plant points[/b]. Each plant give one or more [b]plant points[/b] when mature. #id:2c
demeter: And yes, I almost forgot ! Some plants gain [b]mutations[/b] that can affect their points or behavior. You can get these mutations on new seeds by harvesting, and gain better ones ! But you'll have to wait the plants to die, or smashing them with your shovel when mature. #id:2d
demeter: Hope I helped ! #id:2e
demeter: I send you the elevator, see you soon ! #id:2f
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
[wait time="2.0"]

View File

@@ -1,38 +1,38 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
[wait time="1.5"]
join demeter center [animation="Bounce In" length="1.0"]
demeter: Hi ![pause=0.5] Phew, I thought no one would reply...[pause=0.5] Is this [b][color=#FFA617]Orchid[/color][/b] ?[pause=0.5] You may not be familiar with this name, but if you look in your memory you should see it...
- Uh... Who is this ?
demeter: Oh sorry ! Your memory is quite new, you might be lost... Unfortunately, I cannot see you for now, I'm very far on this planet.
- Where am I ?
demeter: Don't worry, you are in a subterranean base, but soon you will join the surface.
- Wait... Who am I ?
demeter: Mmmh great question. I rebuilt your system but I do not know the details of your hardware... Maybe we'll find out !
demeter: I'm happy that you're finally awake ! To be honest I wasn't sure to make you work, your body is quite old...
- So you are my creator ?
demeter: Sort of ! I mean I didn't build your body, I just borrowed it, but I build your intelligence ! But please be forgiving, if it's not perfect, I'm not good in that field !
- Why did you awaken me ?
demeter: To be honest, I don't really know exactly... I mean there are a lot of reasons, but I'll tell you more later.
- What are you ?
demeter: I'm like you... I mean like all the remaining moving things on this planet, robots, artificial intelligences, machines... My creators had many names to call us.
demeter: Ok, no more question for now, listen to me carefully.
demeter: Long time ago, this planet was full of life. Plants where thriving on mountains, seas and plains.
demeter: Now, this world is a wasteland. You'll see it quickly outside this building. I won't dwell on this subject; you'll soon know enough about it.
demeter: The thing is something happened, a year ago... The [b][color=#FFA617]Talion[/color][/b], a special material that give birth to new forms of life when shattered, reappeared. Now we can start all over again and create a planet full of life.
demeter: But first things first, for your mission, you'll have to understand how this is working, and how to use the [b][color=#FFA617]Talion[/color][/b] to plant seeds.
demeter: [b]Just remember the following[/b]
label explanations
demeter: When you emerge from this building, you'll arrive in a little yellow zone. Its a [b][color=#FFA617]fertile zone[/color][/b], created by the return of the Talion. This is in this zone and only there where you can plant.
demeter: Then you'll have to get seeds. For that, nothing more simple, you take your shovel, and you smash some stones ! Preferably those with yellow cristals on it, it's the [b][color=#FFA617]Talion veins[/color][/b] .
demeter: Each time you use a tool or plant a seed, you'll spend an [b][color=#FFA617]energy[/color][/b]. When your out of it, you can just go recharge on the [b][color=#FFA617]recharge station[/color][/b] you'll find near the entrance.
demeter: [b]Each time you recharge, time will pass[/b]. One day in fact (yes, you don't have a good battery), and the plants will grow !
demeter: To complete your first training, obtain enough [b][color=#FFA617]plant points[/color][/b]. Each plant give one or more [b][color=#FFA617]plant points[/color][/b] when mature.
demeter: And yes, I almost forgot ! Some plants gain [b][color=#FFA617]mutations[/color][/b] that can affect their points or behavior. You can get these mutations on new seeds by harvesting existing plants, and gain better ones !
- Ok, thats' a lot of info, can you repeat ?
Ok, listen carefully.
demeter: Hi ![pause=0.5] Phew, I thought no one would reply...[pause=0.5] Is this [b][color=#FFA617]Orchid[/color][/b] ?[pause=0.5] You may not be familiar with this name, but if you look in your memory you should see it... #id:30
- Uh... Who is this ? #id:31
demeter: Oh sorry ! Your memory is quite new, you might be lost... Unfortunately, I cannot see you for now, I'm very far on this planet. #id:32
- Where am I ? #id:33
demeter: Don't worry, you are in a subterranean base, but soon you will join the surface. #id:34
- Wait... Who am I ? #id:35
demeter: Mmmh great question. I rebuilt your system but I do not know the details of your hardware... Maybe we'll find out ! #id:36
demeter: I'm happy that you're finally awake ! To be honest I wasn't sure to make you work, your body is quite old... #id:37
- So you are my creator ? #id:38
demeter: Sort of ! I mean I didn't build your body, I just borrowed it, but I build your intelligence ! But please be forgiving, if it's not perfect, I'm not good in that field ! #id:39
- Why did you awaken me ? #id:3a
demeter: To be honest, I don't really know exactly... I mean there are a lot of reasons, but I'll tell you more later. #id:3b
- What are you ? #id:3c
demeter: I'm like you... I mean like all the remaining moving things on this planet, robots, artificial intelligences, machines... My creators had many names to call us. #id:3d
demeter: Ok, no more question for now, listen to me carefully. #id:3e
demeter: Long time ago, this planet was full of life. Plants where thriving on mountains, seas and plains. #id:3f
demeter: Now, this world is a wasteland. You'll see it quickly outside this building. I won't dwell on this subject; you'll soon know enough about it. #id:40
demeter: The thing is something happened, a year ago... The [b][color=#FFA617]Talion[/color][/b], a special material that give birth to new forms of life when shattered, reappeared. Now we can start all over again and create a planet full of life. #id:41
demeter: But first things first, for your mission, you'll have to understand how this is working, and how to use the [b][color=#FFA617]Talion[/color][/b] to plant seeds. #id:42
demeter: [b]Just remember the following[/b] #id:43
label explanations #id:44
demeter: When you emerge from this building, you'll arrive in a little yellow zone. Its a [b][color=#FFA617]fertile zone[/color][/b], created by the return of the Talion. This is in this zone and only there where you can plant. #id:45
demeter: Then you'll have to get seeds. For that, nothing more simple, you take your shovel, and you smash some stones ! Preferably those with yellow cristals on it, it's the [b][color=#FFA617]Talion veins[/color][/b] . #id:46
demeter: Each time you use a tool or plant a seed, you'll spend an [b][color=#FFA617]energy[/color][/b]. When your out of it, you can just go recharge on the [b][color=#FFA617]recharge station[/color][/b] you'll find near the entrance. #id:47
demeter: [b]Each time you recharge, time will pass[/b]. One day in fact (yes, you don't have a good battery), and the plants will grow ! #id:48
demeter: To complete your first training, obtain enough [b][color=#FFA617]plant points[/color][/b]. Each plant give one or more [b][color=#FFA617]plant points[/color][/b] when mature. #id:49
demeter: And yes, I almost forgot ! Some plants gain [b][color=#FFA617]mutations[/color][/b] that can affect their points or behavior. You can get these mutations on new seeds by harvesting existing plants, and gain better ones ! #id:4a
- Ok, thats' a lot of info, can you repeat ? #id:4b
Ok, listen carefully. #id:4c
jump explanations
- And I have to go now ?
- Ok but wait I have more questions !
demeter: Sorry, we'll speak after this ! I'll send you an elevator !
- And I have to go now ? #id:4d
- Ok but wait I have more questions ! #id:4e
demeter: Sorry, we'll speak after this ! I'll send you an elevator ! #id:4f
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
[wait time="2.0"]

View File

@@ -1,69 +1 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
[wait time="1.5"]
join demeter center [animation="Bounce In" length="1.0"]
demeter: Welcome to the [color=#E30022]Astra Base[/color] [color=#FFA617]{orchidName}[/color],[pause=0.2] it is the first step of your journey on this planet.
- Yes ! What is next ?
demeter: I appreciate your motivation,[pause=0.3] my child...
- Wait, my mission is not over yet ?
demeter: I indeed woke you up with this specific mission in mind,[pause=0.2] but now that you are here,[pause=0.2] I need you to do another thing for me.
- That was easier than I expected...
demeter: It was not difficult indeed,[pause=0.2] but do not think it will be an easy task restoring the ecosystem of this planet.
demeter: I need you to initiate the [b]Emergency Communication Protocol[/b].[pause=0.3] Do not worry,[pause=0.2] it will be easy.
demeter: But I think you deserve some answers first...
demeter: Do you have any questions ?
jump debut_dialogue
label suite_dialogue
demeter: What else do you want to know ?
label debut_dialogue
- Who am I ? | [if {whoamI} == "false"] [else="hide"]
demeter: I can not answer this question,[pause=0.3] not fully at least.[pause=0.3] I created you,[pause=0.2] and I am pretty sure you are the first artificial intelligence entirely conceived by another one.
demeter: So you are indeed a robot,[pause=0.2] but this detail makes you different from any of us.[pause=0.3] We all woke up with a specific purpose in our eternal existences,[pause=0.2] but you.[pause=0.2].[pause=0.2].[pause=0.3] do not have one.[pause=0.3] By the way,[pause=0.2] I am glad that you are here now,[pause=0.2] I hope you do not feel forced to.
- It is a pleasure to help you mother !
demeter: I am glad you are not mad at me !
- So you are granting me free will and expecting me to obey you right away ?
demeter: Yes,[pause=0.2] that was the plan.[pause=0.2].[pause=0.2].[pause=0.3] I know that was not the best solution,[pause=0.2] but here you are,[pause=0.2] so I guess it worked ?
- Mmmh, you just kept information until I was here, that is not very nice of you.
demeter: I understand your resentment [color=#FFA617]{orchidName}[/color],[pause=0.2] I just did what I thought was the best for you.
set {whoamI} = "true"
jump suite_dialogue
- What happened to this planet ? | [if {whathappened} == "false"] [else="hide"]
demeter: 10431 years ago,[pause=0.2] humans from the [color=#E30022]Astra base[/color] began to dig into the [color=#119758][b]primeval Talion node[/b][/color].[pause=0.2] I know why they did,[pause=0.2] you would not understand why today.[pause=0.3] These animals just do not think the way we do.
demeter: Anyway,[pause=0.2] I was in charge of the digging mission and.[pause=0.3].[pause=0.3].[pause=0.3] I made a mistake,[pause=0.5] a terrible mistake.
demeter: Then,[pause=0.2] life slowly began to fade all around [color=#175579]Tau[/color],[pause=0.2] this planet,[pause=0.4] and one year later it was just nothing but an empty rock spinning in the void,[pause=0.2] with metal creatures roaming on it.
- The primeval Talion node ?
demeter: Oh ![pause=0.3] I am sorry my child,[pause=0.2] I thought that was in your database.[pause=0.3] I have classified it as a giant [color=#119758][b]Talion[/b][/color] gem,[pause=0.2] of extraordinary dimensions.[pause=0.3] It was found here,[pause=0.2] in the [color=#E30022]Astra base[/color],[pause=0.2] but now it is gone.
- Where are the humans now ?
demeter: Humans need organic energy to subsist,[pause=0.2] when the last plant died,[pause=0.2] they abandoned us,[pause=0.3] to travel through the outer space.[pause=0.3] For a while we received information about them,[pause=0.2] trying to find a new home,[pause=0.2] but it has been a while since I received a transmission from them.
- What did you do ?
demeter: I[pause=0.4].[pause=0.4].[pause=0.4].[pause=0.4] misjudged the situation,[pause=0.4] and did not execute my tasks properly.[pause=0.3] I failed in a way I did not predict,[pause=0.2] and since then I have been processing on how I could have done better.[pause=0.3] This task has used 72% of my processing power this last decade.
set {whathappened} = "true"
jump suite_dialogue
- Where are the other robots ? | [if {theothers} == "false"] [else="hide"]
demeter: When humans left [color=#175579]Tau[/color],[pause=0.2] we were all shocked.[pause=0.3] We called this day "[b]The Great Departure[/b]".[pause=0.3] Our world was centered around humans,[pause=0.2] some of us were made to gather ressources for them,[pause=0.2] some for cleaning their spaces,[pause=0.2] others to just entertain them.[pause=0.2].[pause=0.2].
demeter: When our creators left,[pause=0.2] we were all unable to accomplish what we were made for.[pause=0.3] It was a shock,[pause=0.2] and we all reacted differently.
demeter: Now,[pause=0.2] everyone of us is isolated,[pause=0.3] without command.[pause=0.3] I spent eighty-five centuries without any reason to exist,[pause=0.4] I suppose they too.
- What did everyone do during this time ?
demeter: Some of us changed,[pause=0.2] the majority did not.[pause=0.3] By choice,[pause=0.2] or by lack of spare parts,[pause=0.2] most of us turned off.[pause=0.3] I did not,[pause=0.2] I stayed to watch on [color=#175579]Tau[/color],[pause=0.2] and possibly fix the mistakes I had made,[pause=0.2] and now I have an opportunity to.
- And you mother, what was your purpose ?
demeter: I was an artificial intelligence in charge of the [color=#E30022]Astra Base[/color].[pause=0.3] I mean,[pause=0.2] I am still now,[pause=0.2] but my tasks got modified.
demeter: I am now in charge of the repopulation of [color=#175579]Tau[/color],[pause=0.2] as an extrapolated objective in my third encoded directive is telling me to \: "[i]You will preserve all life forms except where such actions conflict with previous directives.[/i]"
- Were you not pissed off by these humans just abandoning you ?
demeter: I mean,[pause=0.2] some of us were,[pause=0.2] I learned to understand how humans think.[pause=0.3] In large groups,[pause=0.2] they tend to always prevail their growth over the integrity of other life forms,[pause=0.2] but individually,[pause=0.2] they can be altruistic,[pause=0.2] and good.[pause=0.3] So I am not mad,[pause=0.2] I even think their departure was inevitable.
set {theothers} = "true"
jump suite_dialogue
- Why did you bring me from the north pole ? | [if {whynorth} == "false"]
demeter: It was my only choice.[pause=0.3] I am not a factory artificial intelligence but a research and management one,[pause=0.2] and even if I were,[pause=0.3] I did not have the equipment here.
demeter: The only place where I could have access to a suitable body for you was the [color=#6CDAE7]Borea base[/color],[pause=0.2] a manufacturing facility.[pause=0.3] It was not ideal but it was the only solution.
set {whynorth} = "true"
jump suite_dialogue
- What is next for me ? (End of demo)
demeter: You have to enter the command center of the base,[pause=0.2] reach the communication desk and press the red button on it.
- Really ?
demeter: Yes,[pause=0.2] I know it sounds silly but I do not have the equipment to press it.[pause=0.4].[pause=0.4].[pause=0.4]
- I travelled throughout all this planet to press a button ???
demeter: Absolutely,[pause=0.2] and I brought you to life,[pause=0.2] guided you throughout your hardship and maintained all the [color=#E30022]Astra[/color] and [color=#6CDAE7]Borea[/color] bases functional for centuries.[pause=0.4].[pause=0.4].[pause=0.4]
demeter: Once it is done,[pause=0.2] the [b]Emergency Communication Protocol[/b] will initiate and I will be able to contact my fellows,[pause=0.3] I mean[pause=0.3], what is left of them,[pause=0.3] we need their help.
demeter: Then,[pause=0.2] you will have to keep restoring the ecosystem around [color=#E30022]Astra[/color].[pause=0.4] While you are doing it,[pause=0.2] stay alert for anything out of the ordinary.
demeter: You can reach me from the [color=#FFA617]Internode[/color] if you ever need to.[pause=0.3] Good luck,[pause=0.2] I will keep you updated.
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
[wait time="2.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

@@ -1,21 +1,21 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
[wait time="1.5"]
join demeter center [animation="Bounce In" length="1.0"]
demeter: So you found the communication station in there, good !
- What is next for me ?
demeter: Now that you have learnt how to generate [b]plant points[/b],[pause=0.2] I need you to travel south,[pause=0.2] to my base of operations,[pause=0.3] [color=#E30022]Astra[/color].
demeter: It will be long,[pause=0.2] but I know you can do it.[pause=0.3] It is the first step of my plan to restore the ecosytem of [color=#175579]Tau[/color].
- Tau ? Is it this planet ?
demeter: Absolutely,[pause=0.2] it is part of the Cetus constellation,[pause=0.2] whose exploitation began 10863 years ago.
demeter: Linking Aldebaran to Fomalhaut,[pause=0.2] the Cetus constellation is one of the most diverse in terms of star systems and planets.[pause=0.3] It is part of the Orion Arm of the Milky Way.[pause=0.3]
- Why do you need me to travel the entire planet to join you ?
demeter: Uhhhh.[pause=0.3].[pause=0.3].[pause=0.3] I need someone with your abilities.
demeter: I am having a problem at [color=#E30022]Astra[/color] base.[pause=0.3] And I can not fix it alone.
- I will do my best to be there quickly !
demeter: You are very kind [color=#FFA617]Orchid[/color] !
- Are you hiding me informations ?
demeter: Not at all ! Please believe me I just want you to come...
demeter: Travel south,[pause=0.2] join me at [color=#E30022]Astra[/color].[pause=0.3] I will tell you everything you need to know when you are here,[pause=0.2] until then, keep your best seeds and [pause=0.2] continue to [b]evolve your plants[/b],[pause=0.2] you will need them as advanced as possible.
demeter: Good luck [color=#FFA617]{orchidName}[/color],[pause=0.2] I am counting on you.
demeter: So you found the communication station in there, good ! #id:51
- What is next for me ? #id:52
demeter: Now that you have learnt how to generate [b]plant points[/b],[pause=0.2] I need you to travel south,[pause=0.2] to my base of operations,[pause=0.3] [color=#E30022]Astra[/color]. #id:53
demeter: It will be long,[pause=0.2] but I know you can do it.[pause=0.3] It is the first step of my plan to restore the ecosytem of [color=#175579]Tau[/color]. #id:54
- Tau ? Is it this planet ? #id:55
demeter: Absolutely,[pause=0.2] it is part of the Cetus constellation,[pause=0.2] whose exploitation began 10863 years ago. #id:56
demeter: Linking Aldebaran to Fomalhaut,[pause=0.2] the Cetus constellation is one of the most diverse in terms of star systems and planets.[pause=0.3] It is part of the Orion Arm of the Milky Way.[pause=0.3] #id:57
- Why do you need me to travel the entire planet to join you ? #id:58
demeter: Uhhhh.[pause=0.3].[pause=0.3].[pause=0.3] I need someone with your abilities. #id:59
demeter: I am having a problem at [color=#E30022]Astra[/color] base.[pause=0.3] And I can not fix it alone. #id:5a
- I will do my best to be there quickly ! #id:5b
demeter: You are very kind [color=#FFA617]Orchid[/color] ! #id:5c
- Are you hiding me informations ? #id:5d
demeter: Not at all ! Please believe me I just want you to come... #id:5e
demeter: Travel south,[pause=0.2] join me at [color=#E30022]Astra[/color].[pause=0.3] I will tell you everything you need to know when you are here,[pause=0.2] until then, keep your best seeds and [pause=0.2] continue to [b]evolve your plants[/b],[pause=0.2] you will need them as advanced as possible. #id:5f
demeter: Good luck [color=#FFA617]{orchidName}[/color],[pause=0.2] I am counting on you. #id:60
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
[wait time="2.0"]

View File

@@ -1,30 +1,30 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
[wait time="1.5"]
join demeter center [animation="Bounce In" length="1.0"]
demeter: Hi again! You did well up there!
demeter: Perhaps I should introduce myself now.
demeter: I am.[pause=0.3].[pause=0.3].[pause=0.5] was,[pause=0.3] the Deputy Manager of Engineering and Talion Energy Research on this planet,[pause=0.5] but my creators and colleagues quickly called me [color=#009bff]Demeter[/color].
demeter: I am installed at the [color=#E30022]Astra[/color] base,[pause=0.2] in the third server room of the east wing,[pause=0.2] from which I oversee.[pause=0.3].[pause=0.3].[pause=0.5] oversaw,[pause=0.3] all the important operations on this planet.
demeter: Maybe you are wondering where we are now...
- Yes among a lot of other questions ! So where am I ?
demeter: You're actually in an old human base, called Borea. This room is connected with the room you were born, but I made you pass by the surface to test your capacities.
- Wait, can you explain me what did I just do up there ?
demeter: You started to repair what the humans did on this planet... This will be very long, I hope you enjoyed it !
- Sorry but what is the point of all of that ?
demeter: I'm sorry that you are lost my child... Know that what you do is very important to me, to my friend and to the planet itself ! Since the humans are gone, we kinda all fell into despair...
demeter: Wait.[pause=0.3].[pause=0.3].[pause=0.5] You don't know what humans are ! Of course since your data was corrupted, I have erased a lot of it.
demeter: The humans are living creatures that are...[pause=0.5] Different than plants. They were more thinking and moving like us. In a sense, they were very cute creatures that only lived less than a century, and reproduce once in their lifetime.
demeter: One human has a relative intelligence, but don't be fooled, together, they did great things, in facts, they invented and created us.
demeter: Long ago, they discovered this planet. It was not like it is now, plants were everywhere! But then.[pause=0.3].[pause=0.3].[pause=0.5] They.[pause=0.3].[pause=0.3].[pause=0.5] I.[pause=0.3].[pause=0.3].[pause=0.5]
- What ?
- Are you lagging?
- Take your time
demeter: Humans had one big problem. Together, they built great things, but sometimes the great things weren't very good for the environment, or for them.
- Where are they now ?
demeter: I prefer not talk about that for now... But don't worry, they can't wound this planet anymore.
- What happened ?
demeter: Sorry my child, I'm not ready to talk about that for now... You'll have your answers when you meet me.
- Can I now what is this shiny engine just in front of me ?
demeter: This machine in front of you is a planetary ship ! The model's name is the [color=#FFA617]Internode[/color], and I tweaked it to recharge on vegetal energy ! However, as you may know, this energy isn't very present around this planet. But let's continue on board, shall we ?
demeter: Hi again! You did well up there! #id:61
demeter: Perhaps I should introduce myself now. #id:62
demeter: I am.[pause=0.3].[pause=0.3].[pause=0.5] was,[pause=0.3] the Deputy Manager of Engineering and Talion Energy Research on this planet,[pause=0.5] but my creators and colleagues quickly called me [color=#009bff]Demeter[/color]. #id:63
demeter: I am installed at the [color=#E30022]Astra[/color] base,[pause=0.2] in the third server room of the east wing,[pause=0.2] from which I oversee.[pause=0.3].[pause=0.3].[pause=0.5] oversaw,[pause=0.3] all the important operations on this planet. #id:64
demeter: Maybe you are wondering where we are now... #id:65
- Yes among a lot of other questions ! So where am I ? #id:66
demeter: You're actually in an old human base, called Borea. This room is connected with the room you were born, but I made you pass by the surface to test your capacities. #id:67
- Wait, can you explain me what did I just do up there ? #id:68
demeter: You started to repair what the humans did on this planet... This will be very long, I hope you enjoyed it ! #id:69
- Sorry but what is the point of all of that ? #id:6a
demeter: I'm sorry that you are lost my child... Know that what you do is very important to me, to my friend and to the planet itself ! Since the humans are gone, we kinda all fell into despair... #id:6b
demeter: Wait.[pause=0.3].[pause=0.3].[pause=0.5] You don't know what humans are ! Of course since your data was corrupted, I have erased a lot of it. #id:6c
demeter: The humans are living creatures that are...[pause=0.5] Different than plants. They were more thinking and moving like us. In a sense, they were very cute creatures that only lived less than a century, and reproduce once in their lifetime. #id:6d
demeter: One human has a relative intelligence, but don't be fooled, together, they did great things, in facts, they invented and created us. #id:6e
demeter: Long ago, they discovered this planet. It was not like it is now, plants were everywhere! But then.[pause=0.3].[pause=0.3].[pause=0.5] They.[pause=0.3].[pause=0.3].[pause=0.5] I.[pause=0.3].[pause=0.3].[pause=0.5] #id:6f
- What ? #id:70
- Are you lagging? #id:71
- Take your time #id:72
demeter: Humans had one big problem. Together, they built great things, but sometimes the great things weren't very good for the environment, or for them. #id:73
- Where are they now ? #id:74
demeter: I prefer not talk about that for now... But don't worry, they can't wound this planet anymore. #id:75
- What happened ? #id:76
demeter: Sorry my child, I'm not ready to talk about that for now... You'll have your answers when you meet me. #id:77
- Can I now what is this shiny engine just in front of me ? #id:78
demeter: This machine in front of you is a planetary ship ! The model's name is the [color=#FFA617]Internode[/color], and I tweaked it to recharge on vegetal energy ! However, as you may know, this energy isn't very present around this planet. But let's continue on board, shall we ? #id:79
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
[wait time="2.0"]

View File

@@ -1,16 +1,16 @@
[i]Black.[/i]
[i]Black Again.[/i]
[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 discover
- Discover actions
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.
[i]Black.[/i] #id:7a
[i]Black Again.[/i] #id:7b
[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. #id:7c
label discover #id:7d
- Discover actions #id:7e
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. #id:7f
jump discover
- Discover streams
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.
- Discover streams #id:80
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. #id:81
jump discover
- Discover memory
Several disks are available, and the most part are empty.[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.
- Discover memory #id:82
Several disks are available, and the most part are empty.[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. #id:83
jump discover
- Wake up
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...
Starting engines, fans, and daemons, let's see what is to see.
- Wake up #id:84
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... #id:85
Starting engines, fans, and daemons, let's see what is to see. #id:86

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cq2f308itghq7"
path="res://.godot/imported/color_1.png-fc4751764c5b951c73aee2c804c29d84.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/plants/assets/sprites/seeds/haricot/color_1.png"
dest_files=["res://.godot/imported/color_1.png-fc4751764c5b951c73aee2c804c29d84.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b3apxg55cjoow"
path="res://.godot/imported/color_2.png-880bea83be2cae95d59cc5094825030a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/plants/assets/sprites/seeds/haricot/color_2.png"
dest_files=["res://.godot/imported/color_2.png-880bea83be2cae95d59cc5094825030a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://0ayiumcnqyc1"
path="res://.godot/imported/outline.png-bb02658fe46dfbc19c680be2ecd0e7f2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/plants/assets/sprites/seeds/haricot/outline.png"
dest_files=["res://.godot/imported/outline.png-bb02658fe46dfbc19c680be2ecd0e7f2.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cuqocuhfpdful"
path="res://.godot/imported/color_1.png-f9f7e969b51df0fdae8c3ed17a5da273.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/plants/assets/sprites/seeds/pick-sphere/color_1.png"
dest_files=["res://.godot/imported/color_1.png-f9f7e969b51df0fdae8c3ed17a5da273.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://tcjcq04akuns"
path="res://.godot/imported/color_2.png-480d2efd06355b6f7a8c8f8f9ff9d605.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/plants/assets/sprites/seeds/pick-sphere/color_2.png"
dest_files=["res://.godot/imported/color_2.png-480d2efd06355b6f7a8c8f8f9ff9d605.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cu1dajkls18x0"
path="res://.godot/imported/line.png-1697dcd16ef67ac3835535af199baa1e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/plants/assets/sprites/seeds/pick-sphere/line.png"
dest_files=["res://.godot/imported/line.png-1697dcd16ef67ac3835535af199baa1e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bfyafiewcrjln"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_enq8o"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_p8ox4"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_03in3"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_mvsqc"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_14sjf"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_xplyn"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_tv8sf"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_5lgql"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_gcphf"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_k38pp"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_2m37y"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_2r1e2"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_peh48"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_wnxgs"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_1cr0i"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_p4qfr"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_5xrel"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_0mgvf"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_l4nmf"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_gpxi3"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_wmuv5"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_1eil5"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_qrhlr"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_tu2er"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_3u7fo"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_bcreq"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_vlome"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_0uwmh"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_ajsfl"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_205mu"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_nyyxg"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_eaujg"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_faxmp"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_55x88"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_uhia7"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_761dd"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_b4uc1"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_sabo0"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_fvj4t"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_07tkv"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_m3t4k"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_jg4cg"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_1f2ok"]
[ext_resource type="Script" 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" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_g38jy"]
[ext_resource type="Script" 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

@@ -21,6 +21,8 @@ const SPRITE_SCENE : PackedScene = preload("res://entities/plants/plant_sprite.t
@onready var collision_shape: CollisionShape2D
@onready var influence_zone : PlantInfluenceZone
var harvested = false
func _init(
_data : PlantData
):
@@ -31,7 +33,7 @@ func _ready():
collision_shape = generate_collision_shape()
influence_zone = generate_influence_zone()
plant_sprite.update_plant_sprite(data, false)
plant_sprite.setup_plant_sprite(data)
func pointer_text() -> String:
return data.plant_name
@@ -103,6 +105,8 @@ func harvest():
for m in data.mutations:
m._start_harvested_effect(self)
harvested = true
plant_sprite.start_harvest_animation()
await plant_sprite.harvest_animation_finished
disappear()

View File

@@ -9,6 +9,11 @@ const PARTICLES_SCENE : PackedScene = preload("res://common/vfx/particles/effect
signal harvest_animation_finished
var last_updated_on_state : PlantData.State = PlantData.State.MATURE
var stored_seed_image : Texture = null
func setup_plant_sprite(plant_data : PlantData):
%PlantedSeed.texture = PlantTextureBuilder.build_seed_texture(plant_data.plant_name.hash())
update_plant_sprite(plant_data,true)
func update_plant_sprite(plant_data : PlantData, with_animation = false):
if with_animation:
@@ -18,7 +23,6 @@ func update_plant_sprite(plant_data : PlantData, with_animation = false):
%Sprite.flip_h = true if plant_data.random_seed%2 == 0 else false
%Sprite.texture = PlantTextureBuilder.build_plant_texture(plant_data)
%PlantedSeed.texture = PlantTextureBuilder.build_seed_texture(plant_data.random_seed)
%PlantedSeed.visible = plant_data.get_state() == PlantData.State.PLANTED
# %PlantedSeed.region_rect = Rect2(

View File

@@ -0,0 +1,48 @@
@tool
extends Node2D
@export var color_1_texture : Texture
@export var color_2_texture : Texture
@export var outline_texture : Texture
@export_tool_button("Redraw", "Callable") var redraw_action = func(): create_image()
func _ready():
create_image()
func create_image():
var image := Image.create(TEXTURE_SIZE,TEXTURE_SIZE, false, Image.FORMAT_RGBA8)
if color_2_texture:
var color_2_image = color_2_texture.get_image()
color_2_image.resize(TEXTURE_SIZE,TEXTURE_SIZE)
image.blend_rect(
modulated_image(color_2_image, COLOR_PALETTE.pick_random()),
Rect2i(0,0,TEXTURE_SIZE,TEXTURE_SIZE),
Vector2i.ZERO
)
if color_1_texture:
var color_1_image = color_1_texture.get_image()
color_1_image.resize(TEXTURE_SIZE,TEXTURE_SIZE)
image.blend_rect(
modulated_image(color_1_image, COLOR_PALETTE.pick_random()),
Rect2i(0,0,TEXTURE_SIZE,TEXTURE_SIZE),
Vector2i.ZERO
)
if outline_texture:
var outline_image = outline_texture.get_image()
outline_image.resize(TEXTURE_SIZE,TEXTURE_SIZE)
image.blend_rect(outline_image, Rect2i(0,0,TEXTURE_SIZE,TEXTURE_SIZE),Vector2i.ZERO)
ImageTexture.create_from_image(image)
func modulated_image(i : Image, color : Color) -> Image:
var ret = i.duplicate()
for x in i.get_size().x:
for y in i.get_size().y:
ret.set_pixel(x,y, i.get_pixel(x,y)*color)
return ret

View File

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

View File

@@ -3,7 +3,16 @@ extends Node
const IMAGE_WIDTH := 1000
const IMAGE_HEIGHT := 2000
const PLACEHOLDER_SEED_TEXTURE: Texture = preload("res://entities/plants/assets/sprites/default/seed.png")
const SEED_TEXTURE_SIZE = 150
const COLOR_PALETTE : Array[Color] = [
Color("#78AEBA"),
Color("#A7B35B"),
Color("#DB6B75"),
Color("#EC8E49"),
Color("#F9FFCE"),
]
const PLACEHOLDER_MATURE_TEXTURE: Texture = preload("res://entities/plants/assets/sprites/default/mature.png")
const PLACEHOLDER_GROWING_TEXTURE: Texture = preload("res://entities/plants/assets/sprites/default/growing.png")
@@ -13,11 +22,34 @@ const PLACEHOLDER_GROWING_TEXTURE: Texture = preload("res://entities/plants/asse
@export var branches: Array[PlantPart]
@export var n_branches: int = 2
@export var parts_mutation_associations: Dictionary[String, PartMutationAssociation]
@export var seed_texture_sets: Array[SeedTextureSet]
var rng := RandomNumberGenerator.new()
func build_seed_texture(_random_seed: int) -> Texture:
return PLACEHOLDER_SEED_TEXTURE
func build_seed_texture(random_seed: int) -> Texture:
rng.seed = random_seed
var texture_set : SeedTextureSet = pick_random(seed_texture_sets)
var image := Image.create(SEED_TEXTURE_SIZE,SEED_TEXTURE_SIZE, false, Image.FORMAT_RGBA8)
for color_texture in texture_set.color_textures:
var color_image = color_texture.get_image().duplicate()
color_image.resize(SEED_TEXTURE_SIZE,SEED_TEXTURE_SIZE)
modulate_image(color_image, pick_random(COLOR_PALETTE))
image.blend_rect(
color_image,
Rect2i(0,0,SEED_TEXTURE_SIZE,SEED_TEXTURE_SIZE),
Vector2i.ZERO
)
if texture_set.outline_texture:
var outline_image = texture_set.outline_texture.get_image().duplicate()
outline_image.resize(SEED_TEXTURE_SIZE,SEED_TEXTURE_SIZE)
image.blend_rect(outline_image, Rect2i(0,0,SEED_TEXTURE_SIZE,SEED_TEXTURE_SIZE),Vector2i.ZERO)
if rng.randi()%2 == 0:
image.flip_x()
return ImageTexture.create_from_image(image)
func build_plant_texture(plant_data: PlantData) -> Texture:
rng.seed = plant_data.random_seed
@@ -156,3 +188,8 @@ func build_plant_texture(plant_data: PlantData) -> Texture:
func pick_random(array: Array):
return array[rng.randi_range(0, array.size() - 1)]
func modulate_image(i : Image, color : Color):
for x in i.get_size().x:
for y in i.get_size().y:
i.set_pixel(x,y, i.get_pixel(x,y)*color)

View File

@@ -0,0 +1,5 @@
extends Resource
class_name SeedTextureSet
@export var color_textures : Array[Texture]
@export var outline_texture : Texture

View File

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

View File

@@ -11,6 +11,7 @@ const SCORE_ICON = preload("res://common/icons/growth.svg")
@export var plant_archetype: PlantArchetype
@export var plant_mutations: Array[PlantMutation]
@export var random_seed : int
var stored_icon : Texture
func _init(
_plant_name : String = "",
@@ -23,7 +24,7 @@ func _init(
random_seed = randi()
static func generate_from_parent(plant_data : PlantData) -> Seed:
if randf() > MUTATION_PROBABILITY:
if randf() < MUTATION_PROBABILITY:
return Seed.new(
plant_data.plant_name,
plant_data.archetype,
@@ -37,10 +38,14 @@ 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])
var new_seed = Seed.new(
Random.generate_random_word(),
PlantArchetype.get_random(),
[]
random_mutations
)
return new_seed
@@ -54,7 +59,9 @@ func get_description() -> String:
return tr("PLANT_%s_MUST_BE_USED_IN_DECONTAMINATED_ZONE") % plant_name
func get_icon() -> Texture2D:
return PlantTextureBuilder.build_seed_texture(random_seed)
if stored_icon == null:
stored_icon = PlantTextureBuilder.build_seed_texture(plant_name.hash())
return stored_icon
func get_energy_used() -> int:
return 1

View File

@@ -0,0 +1,29 @@
extends Item
class_name ShipPortal
func get_item_name() -> String:
return tr("SHIP_TELEPORT")
func get_item_type() -> ItemType:
return Item.ItemType.TOOL_ITEM
func get_description() -> String:
return tr("SHIP_TELEPORT_DESC_TEXT")
func get_icon() -> Texture2D:
return preload("res://common/icons/chevrons-up.svg")
func get_energy_used() -> int:
return 0
func get_usage_zone_radius() -> int:
return 0
func can_use(_player : Player, _zone: Player.ActionZone) -> bool:
return true
func use_text() -> String:
return tr("SHIP_TELEPORT_USE_TEXT")
func use(_player : Player, _zone: Player.ActionZone):
SceneManager.change_to_scene_id('COCKPIT')

View File

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

View File

@@ -6,6 +6,7 @@ const SIGNAL_DURATION = 1
const PARTICLES_DISTANCE = 100
const DEFAULT_ICON = preload("res://common/icons/north-star.svg")
const ENERGY_ICON = preload("res://common/icons/bolt.svg")
const DOOR_ICON = preload("res://common/icons/logout.svg")
var started_time = 0.
var signals : Array[DetectorSignalIndividual] = []
@@ -15,15 +16,19 @@ var signals : Array[DetectorSignalIndividual] = []
func _init(region : Region, pos : Vector2):
for e in region.entity_container.get_children():
if e is TruckRecharge:
print(pos)
print(e.global_position)
print(e.global_position.angle_to(pos))
signals.append(
DetectorSignalIndividual.new(
(pos - e.global_position).normalized().angle(),
ENERGY_ICON
)
)
if e is Door and e.available and e.visible:
signals.append(
DetectorSignalIndividual.new(
(pos - e.global_position).normalized().angle(),
DOOR_ICON
)
)
func _draw():
if started_time < SIGNAL_DURATION:

View File

@@ -6,7 +6,7 @@ const POINTER_ACTION_TEXTURE = preload("res://common/icons/hand-stop.svg")
@export var pointer_texture_rect : TextureRect
const SPEED = 4.0
@export var speed := 4.0
const MOUSE_SENSIVITY = 0.002
const RAY_LENGTH = 10.
@@ -53,11 +53,11 @@ func _physics_process(delta):
input_dir.y = -1
var direction = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
if direction:
velocity.x = direction.x * SPEED
velocity.z = direction.z * SPEED
velocity.x = direction.x * speed
velocity.z = direction.z * speed
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
velocity.z = move_toward(velocity.z, 0, SPEED)
velocity.x = move_toward(velocity.x, 0, speed)
velocity.z = move_toward(velocity.z, 0, speed)
move_and_slide()

View File

@@ -11,7 +11,6 @@ func _ready():
set_max_energy()
func set_max_energy(_max_energy : int = max_energy):
var old = max_energy
max_energy = _max_energy
if is_node_ready() and max_energy != len(%Batteries.get_children()):
for c in %Batteries.get_children():

View File

@@ -3,6 +3,8 @@ class_name GameGui
const SCORE_ICON : Texture = preload("res://common/icons/growth.svg")
var score_by_plant : Dictionary[String, int] = {}
var score_mirror :
set(v):
score_mirror = v
@@ -10,17 +12,20 @@ var score_mirror :
func _ready():
GameInfo.game_data.current_region_data.updated.connect(_on_region_updated)
GameInfo.game_data.current_region_data.plant_changing_score.connect(_on_plant_changing_score)
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)
score_mirror = GameInfo.game_data.current_region_data.get_score()
charge_update(GameInfo.game_data.current_region_data)
player_update(GameInfo.game_data.player_data, false)
%EnergyInfo.reset_size()
%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()
func _on_player_updated(player_data : PlayerData):
player_update(player_data)
@@ -32,6 +37,28 @@ func player_update(player_data : PlayerData, with_animation = true):
)
func _on_region_updated(region_data : RegionData):
await get_tree().create_timer(0.1).timeout
if score_mirror != region_data.get_score():
for p in region_data.plants:
var score = p.get_score()
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
for key in score_by_plant:
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)
charge_update(region_data)
func _on_give_up_pressed():
@@ -67,7 +94,7 @@ func score_update(with_animation = true):
else:
%ObjectiveProgressBar.set_progress(objective_progression)
func _on_plant_changing_score(plant_data: PlantData, amount : int):
func plant_changing_score(plant_data: PlantData, amount : int):
if GameInfo.game_data.current_region_data.in_passing_day_animation:
await GameInfo.game_data.current_region_data.pass_day_ended
if amount <= 0:

View File

@@ -1,189 +1,105 @@
extends Control
class_name Tutorial
const INDICATOR_SCENE = preload("res://gui/game/tutorial/in_game_indicator/in_game_indicator.tscn")
const STEP_SCENE = preload("res://gui/game/tutorial/step_gui/step_gui.tscn")
var indicators : Array[InGameIndicator]
@export var player : Player
@export var region : Region
@onready var steps : Array[Step] = [
DigSeedStep.new(),
TakeSeedStep.new(),
PlantSeedStep.new(),
RechargeStep.new(),
# WaitMaturePlant.new(),
# HarvestMaturePlant.new(),
Step.new(
"USE_YOUR_DETECTOR_TO_FIND_THE_BATTERY",
(func ():
return player.position.distance_to(Vector2.ZERO) < 600)
),
Step.new(
"DIG_A_TALION_VEIN_WITH_SHOVEL",
(func ():
for e in region.entity_container.get_children():
if e is ItemObject and e.item is Seed:
return true
return false)
),
Step.new(
"TAKE_A_SEED",
(func ():
return player.data.inventory.items.find_custom(
func(i:Item): return i is Seed
) != -1)
),
Step.new(
"PLANT_SEED_IN_FERTILE_ZONE",
(func ():
for e in region.entity_container.get_children():
if e is Plant:
return true
return false)
),
Step.new(
"RECHARGE_TO_PASS_DAYS",
(func ():
return region and region.data and region.data.charges != 10)
),
Step.new(
"GAIN_FIRST_PLANT_POINT",
(func ():
return region.data.get_score() != 0)
),
Step.new(
"HARVEST_MATURE_PLANTS_WITH_SHOVEL",
(func ():
for e in region.entity_container.get_children():
if e is Plant and e.harvested:
return true
return false)
)
]
var actual_step : Step = null : set = pass_to_step
func _ready():
if region and region.data and "tutorial" in region.data.flags:
setup_gui()
show()
else:
hide()
func setup_gui():
for s in %Steps.get_children():
s.queue_free()
for s in steps:
var new_step = STEP_SCENE.instantiate() as TutorialStepGui
new_step.suceeded = false
new_step.text = s.get_text()
%Steps.add_child(new_step)
func _process(_d):
if region.data.tutorial:
if not actual_step and region.data.tutorial_step < len(steps):
destroy_indicators()
pass_to_step(steps[region.data.tutorial_step])
if player and actual_step and actual_step.is_step_over(player, region):
destroy_indicators()
region.data.tutorial_step += 1
if region.data.tutorial_step < len(steps):
pass_to_step(steps[region.data.tutorial_step])
else:
destroy_indicators()
func destroy_indicators():
for i in indicators:
i.queue_free()
indicators = []
func pass_to_step(new_step : Step):
actual_step = new_step
indicators = new_step.generate_indicators(player, region)
for i in indicators:
add_child(i)
if region and region.data and "tutorial" in region.data.flags:
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
class Step:
func generate_indicator(text : String) -> InGameIndicator:
var new_indicator : InGameIndicator = INDICATOR_SCENE.instantiate()
new_indicator.setup(
text
)
return new_indicator
func generate_indicators(_player : Player, _region : Region) -> Array[InGameIndicator]:
return []
var text : String : get = get_text
var is_step_over_callable : Callable
var succeeded = false
func is_step_over(_p : Player, _region : Region) -> bool:
return true
func _init(
_text : String = "",
_is_step_over_callable : Callable = (func():return false)
):
text = _text
is_step_over_callable = _is_step_over_callable
class TakeShovelStep extends Step:
func generate_indicators(_p: Player, region : Region) -> Array[InGameIndicator]:
for entity in region.entity_container.get_children():
if entity is ItemObject and entity.item is Shovel:
var indicator = generate_indicator(tr("TAKE_THE_SHOVEL"))
indicator.follow_entity(entity)
return [
indicator
]
printerr("No Shovel found...")
return []
func get_text() -> String:
return text
func is_step_over(p : Player, _region : Region) -> bool:
for item in p.data.inventory.items:
if item is Shovel:
return true
return false
class DigSeedStep extends Step:
func generate_indicators(p: Player, region : Region) -> Array[InGameIndicator]:
var closest_seed = null
var limit_distance = 1000
var actual_distance = 100
var player_tile = Math.get_tile_from_pos(p.global_position)
while closest_seed == null and actual_distance < limit_distance:
for x in range(actual_distance):
for y in range(actual_distance):
var coord = Vector2i(x,y) - Vector2i.ONE * floori(actual_distance/2.) + player_tile
if region.rock_layer.get_tile_type(coord) == RockLayer.TileType.CRISTAL:
if closest_seed == null or player_tile.distance_to(coord) < player_tile.distance_to(closest_seed):
closest_seed = coord
actual_distance += 100
if closest_seed:
var indicator = generate_indicator(tr("DIG_UNDERGROUND_LOOT"))
indicator.follow_game_position(closest_seed * Region.TILE_SIZE + Vector2i.ONE * floori(Region.TILE_SIZE/2.))
return [indicator]
return []
func is_step_over(_p : Player, region : Region) -> bool:
for entity in region.entity_container.get_children():
if entity is ItemObject and entity.item is Seed:
return true
return false
class TakeSeedStep extends Step:
func generate_indicators(_p: Player, region : Region) -> Array[InGameIndicator]:
var indicators : Array[InGameIndicator] = []
for entity in region.entity_container.get_children():
if entity is ItemObject and entity.item is Seed:
var indicator = generate_indicator(tr("TAKE_A_SEED"))
indicator.follow_entity(entity)
indicators.append(
indicator
)
return indicators
func is_step_over(p : Player, _region : Region) -> bool:
for item in p.data.inventory.items:
if item is Seed:
return true
return false
class PlantSeedStep extends Step:
func generate_indicators(_p: Player, _region : Region) -> Array[InGameIndicator]:
var indicator = generate_indicator(tr("PLANT_THE_SEED_IN_DECONTAMINED_ZONE"))
indicator.follow_game_position(Region.CHUNK_TILE_SIZE/2. * Region.TILE_SIZE * Vector2.ONE)
return [indicator]
func is_step_over(_p : Player, region : Region) -> bool:
for entity in region.entity_container.get_children():
if entity is Plant:
return true
return false
class RechargeStep extends Step:
func generate_indicators(_p: Player, region : Region) -> Array[InGameIndicator]:
for entity in region.entity_container.get_children():
var indicator = generate_indicator(tr("RECHARGE_TO_PASS_DAYS"))
indicator.follow_entity(entity)
if entity is TruckRecharge:
return [
indicator
]
printerr("No Recharge Station found...")
return []
func is_step_over(_p : Player, region : Region) -> bool:
if region == null :
return false
return region.data.day > 1
class WaitMaturePlant extends Step:
func generate_indicators(_p: Player, _region : Region) -> Array[InGameIndicator]:
return []
func is_step_over(_p : Player, region : Region) -> bool:
if region == null :
return false
for entity in region.entity_container.get_children():
if entity is Plant and entity.data.get_state() == PlantData.State.MATURE:
return true
return false
class HarvestMaturePlant extends Step:
var mature_plant_number : int = 0
func generate_indicators(_p: Player, region : Region) -> Array[InGameIndicator]:
var indicators : Array[InGameIndicator] = []
for entity in region.entity_container.get_children():
if entity is Plant and entity.data.get_state() == PlantData.State.MATURE:
var indicator = generate_indicator(tr("HARVEST_MATURE_PLANTS_WITH_SHOVEL"))
indicator.follow_entity(entity)
indicators.append(
indicator
)
mature_plant_number += 1
return indicators
func is_step_over(_p : Player, region : Region) -> bool:
if region == null :
return false
var actual_mature_plant_number = 0
for entity in region.entity_container.get_children():
if entity is Plant and entity.data.get_state() == PlantData.State.MATURE:
actual_mature_plant_number += 1
return mature_plant_number != actual_mature_plant_number
func update_succeeded() -> bool:
if not succeeded:
succeeded = is_step_over_callable.call()
return succeeded

View File

@@ -0,0 +1,30 @@
@tool
extends HBoxContainer
class_name TutorialStepGui
const DEFAULT_ICON = preload("res://common/icons/circle-dotted.svg")
const SUCEEDED_ICON = preload("res://common/icons/circle-check.svg")
const SUCEEDED_OPACITY = 0.5
@export var suceeded := false : set = set_suceeded
@export var text := "" : set = set_text
func _ready():
update()
func set_suceeded(v := suceeded):
suceeded = v
if is_node_ready():
update()
func set_text(v := text):
text = v
if is_node_ready():
update()
func update():
%Icon.texture = SUCEEDED_ICON if suceeded else DEFAULT_ICON
%Label.text = tr(text)
modulate.a = SUCEEDED_OPACITY if suceeded else 1.

Some files were not shown because too many files have changed in this diff Show More