ajout des graines procédurales et des cinamatiques
@@ -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")
|
||||
|
||||
@@ -92,7 +92,8 @@ func _on_timeline_started():
|
||||
# Amuse toi Nilou ;)
|
||||
|
||||
func _on_timeline_ended():
|
||||
_on_change_scene(SceneManager.actual_scene)
|
||||
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):
|
||||
music_action = AudioLaunch.new(
|
||||
|
||||
@@ -51,7 +51,7 @@ func start_tutorial():
|
||||
10,
|
||||
3,
|
||||
tr("TUTORIAL"),
|
||||
true,
|
||||
["tutorial"],
|
||||
0,
|
||||
randi()
|
||||
)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
1
common/icons/circle-check.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="#ffffff" class="icon icon-tabler icons-tabler-filled icon-tabler-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 |
43
common/icons/circle-check.svg.import
Normal 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
|
||||
1
common/icons/circle-dotted.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-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 |
43
common/icons/circle-dotted.svg.import
Normal 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
@@ -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 |
43
common/icons/rocket.svg.import
Normal 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
|
||||
@@ -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")])
|
||||
|
||||
@@ -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")])
|
||||
|
||||
10
common/scene_manager/scenes/borea.tres
Normal 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"
|
||||
@@ -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": "",
|
||||
|
||||
@@ -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"]
|
||||
@@ -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"]
|
||||
@@ -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
|
||||
@@ -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"]
|
||||
@@ -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"]
|
||||
@@ -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
|
||||
BIN
entities/plants/assets/sprites/seeds/haricot/color_1.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
@@ -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
|
||||
BIN
entities/plants/assets/sprites/seeds/haricot/color_1.png~
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
entities/plants/assets/sprites/seeds/haricot/color_2.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
@@ -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
|
||||
BIN
entities/plants/assets/sprites/seeds/haricot/color_2.png~
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
entities/plants/assets/sprites/seeds/haricot/outline.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
@@ -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
|
||||
BIN
entities/plants/assets/sprites/seeds/haricot/outline.png~
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
entities/plants/assets/sprites/seeds/pick-sphere/color_1.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
@@ -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
|
||||
BIN
entities/plants/assets/sprites/seeds/pick-sphere/color_1.png~
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
entities/plants/assets/sprites/seeds/pick-sphere/color_2.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
@@ -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
|
||||
BIN
entities/plants/assets/sprites/seeds/pick-sphere/color_2.png~
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
entities/plants/assets/sprites/seeds/pick-sphere/line.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
@@ -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
|
||||
BIN
entities/plants/assets/sprites/seeds/pick-sphere/line.png~
Normal file
|
After Width: | Height: | Size: 56 KiB |
28
entities/plants/procedural_seed.tscn
Normal 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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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:
|
||||
@@ -17,8 +22,7 @@ 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(
|
||||
|
||||
48
entities/plants/scripts/procedural_seed.gd
Normal 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
|
||||
|
||||
1
entities/plants/scripts/procedural_seed.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://by1m5q6q53xxp
|
||||
@@ -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)
|
||||
@@ -0,0 +1,5 @@
|
||||
extends Resource
|
||||
class_name SeedTextureSet
|
||||
|
||||
@export var color_textures : Array[Texture]
|
||||
@export var outline_texture : Texture
|
||||
@@ -0,0 +1 @@
|
||||
uid://hs3i48clok85
|
||||
@@ -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
|
||||
|
||||
29
entities/player/inventory/scripts/items/ship_portal.gd
Normal 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')
|
||||
@@ -0,0 +1 @@
|
||||
uid://0xpq37its6qc
|
||||
@@ -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:
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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():
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
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 []
|
||||
|
||||
func is_step_over(_p : Player, _region : Region) -> bool:
|
||||
return true
|
||||
|
||||
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 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
|
||||
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
|
||||
|
||||
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 []
|
||||
class Step:
|
||||
|
||||
var text : String : get = get_text
|
||||
var is_step_over_callable : Callable
|
||||
var succeeded = false
|
||||
|
||||
func _init(
|
||||
_text : String = "",
|
||||
_is_step_over_callable : Callable = (func():return false)
|
||||
):
|
||||
text = _text
|
||||
is_step_over_callable = _is_step_over_callable
|
||||
|
||||
func get_text() -> String:
|
||||
return text
|
||||
|
||||
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
|
||||
|
||||
30
gui/game/tutorial/step_gui/scripts/step_gui.gd
Normal 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.
|
||||