4 Commits
Author SHA1 Message Date
Victor 5c13bcea23 Now when mutating plants have their name mutating as well (if not twitch) 2026-08-23 16:37:22 +02:00
zacharie da91433135 Dev 1.0.1
* Fix du mode twitch
* Fix de coquille de dialogues
* Fix du blocage dans la base aqua
2026-08-21 10:35:03 +02:00
zacharie 4fd457bc2c Scale le mode challenge sur la durée et crédit en inclusif 2026-07-31 11:32:11 +02:00
Altaezio 859f567c15 no failed phone 2026-07-31 11:00:31 +02:00
17 changed files with 178 additions and 52 deletions
+1 -1
View File
@@ -117,7 +117,7 @@ func get_objective_for_region(level : int, difficulty_setting : int) -> int:
if difficulty_setting == 0:
objective = roundi(objective * COSY_OBJECTIVE_FACTOR)
elif difficulty_setting == 2:
return difficult_objective_for_region(level)
objective = difficult_objective_for_region(level)
return max(1,roundi(objective * get_objective_multiplier()))
+80 -24
View File
@@ -1,16 +1,19 @@
class_name Random
const MIN_WORD_LEN = 4
const MAX_WORD_LEN = 8
const MIN_WORD_LEN = 3
const MAX_WORD_LEN = 5
const VOWEL = ["a","e","i","o","u","y"]
const VOWEL = ["a", "e", "i", "o", "u", "y"]
const CONSONANTS = ["b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "z"]
const END_PLANT_NAME := ["us", "um", "ae", "ia", "is", "as", "am"]
#region ------------------ Plant Name ------------------
static func generate_random_word(_random_seed = randi()) -> String:
if (
GameInfo
and GameInfo.settings_data
and GameInfo.settings_data.activate_twitch_integration
and len(TwitchConnection.pseudo_gathered)
):
@@ -18,7 +21,7 @@ static func generate_random_word(_random_seed = randi()) -> String:
var word_len = randf_range(4,8)
var word = ''
var last_letter_is_vowel = false
var last_letter_is_vowel = randi() % 2
for i in range(word_len):
if last_letter_is_vowel:
@@ -29,7 +32,21 @@ static func generate_random_word(_random_seed = randi()) -> String:
last_letter_is_vowel = not last_letter_is_vowel
return word.capitalize()
static func mutate_word(word : String) -> String:
static func generate_random_plant_name(random_seed = randi()) -> String:
if (
GameInfo
and GameInfo.settings_data
and GameInfo.settings_data.activate_twitch_integration
and len(TwitchConnection.pseudo_gathered)
):
return TwitchConnection.pseudo_gathered.pick_random()
var random_word := generate_random_word(random_seed)
if VOWEL.has(random_word.right(1)):
random_word += CONSONANTS.pick_random()
return random_word + END_PLANT_NAME.pick_random()
static func mutate_word(word: String) -> String:
var rand_int = randi()
if len(word) > MIN_WORD_LEN and rand_int % 3 == 0:
@@ -39,31 +56,70 @@ static func mutate_word(word : String) -> String:
return replace_character(word)
static func small_mutate_plant_name(name: String) -> String:
if (
GameInfo
and GameInfo.settings_data
and GameInfo.settings_data.activate_twitch_integration
and len(TwitchConnection.pseudo_gathered)
):
return name
static func shorten_word(word : String):
if randi()%2 == 0:
var mutable_name = name.substr(1, len(name) - 3)
mutable_name = replace_character(mutable_name)
name = name.left(1) + mutable_name + name.right(2)
return name.to_lower().capitalize()
static func big_mutate_plant_name(name: String) -> String:
if (
GameInfo
and GameInfo.settings_data
and GameInfo.settings_data.activate_twitch_integration
and len(TwitchConnection.pseudo_gathered)
):
return name
var name_without_end = name.left(-2)
var rand_int := randi()
if len(name) > MIN_WORD_LEN and rand_int % 4 == 0:
name = shorten_word(name_without_end) + name.right(2)
elif len(name) < MAX_WORD_LEN and rand_int % 4 == 1:
name = elongate_word(name_without_end) + name.right(2)
elif rand_int % 4 == 2:
name = replace_character(name.left(1)) + name.substr(1)
else:
var new_end = END_PLANT_NAME.pick_random()
while name == name_without_end + new_end:
new_end = END_PLANT_NAME.pick_random()
name = name_without_end + new_end
return name.to_lower().capitalize()
static func shorten_word(word: String):
if randi() % 2 == 0:
return word.left(len(word) - 1).capitalize()
else :
else:
return word.right(len(word) - 1).capitalize()
static func elongate_word(word : String):
if randi()%2 == 0:
var letter = CONSONANTS.pick_random() if word.left(1) in VOWEL else VOWEL.pick_random()
return (letter + word).capitalize()
else :
var letter = CONSONANTS.pick_random() if word.right(1) in VOWEL else VOWEL.pick_random()
return (word + letter).capitalize()
static func replace_character(word : String):
var character_id = randi_range(0, len(word))
var character = word[character_id]
if character in VOWEL:
character = VOWEL.pick_random()
static func elongate_word(word: String):
if randi() % 2 == 0:
var letter = CONSONANTS.pick_random() if word.left(1) in VOWEL else VOWEL.pick_random()
return (letter + word).to_lower().capitalize()
else:
character = CONSONANTS.pick_random()
var letter = CONSONANTS.pick_random() if word.right(1) in VOWEL else VOWEL.pick_random()
return (word + letter).to_lower().capitalize()
word[character_id] = character
static func replace_character(word: String):
var character_ind = randi_range(0, len(word) - 1)
var character = word[character_ind].to_lower()
while character == word[character_ind].to_lower():
if character in VOWEL:
character = VOWEL.pick_random()
else:
character = CONSONANTS.pick_random()
word[character_ind] = character
return word
#region ------------------ Region Name ------------------
+30
View File
@@ -0,0 +1,30 @@
@tool
extends Node
@export_tool_button("Test names", "Callable") var update_action = func(): print_random_names()
@export_tool_button("Test small mutate one name", "Callable") var test_small_mutation = func(): print_random_small_mutated_name()
@export_tool_button("Test big mutate one name", "Callable") var test_big_mutation = func(): print_random_big_mutated_name()
func _ready() -> void:
print_random_names()
func print_random_names(number: int = 10) -> void:
print("---------")
for i in range(number):
print(Random.generate_random_plant_name())
func print_random_small_mutated_name(n_mutations: int = 5) -> void:
print("---------")
var base := Random.generate_random_plant_name()
print("Base: ", base)
for i in range(n_mutations):
base = Random.small_mutate_plant_name(base)
print(i, ": ", base)
func print_random_big_mutated_name(n_mutations: int = 5) -> void:
print("---------")
var base := Random.generate_random_plant_name()
print("Base: ", base)
for i in range(n_mutations):
base = Random.big_mutate_plant_name(base)
print(i + 1, ": ", base)
+6
View File
@@ -0,0 +1,6 @@
[gd_scene format=3 uid="uid://bpj8mrx3lq6fu"]
[ext_resource type="Script" uid="uid://dewkwp1gmlxbf" path="res://common/tools/scripts/test_names.gd" id="1_eh0cj"]
[node name="TestNames" type="Node2D" unique_id=680026966]
script = ExtResource("1_eh0cj")
@@ -7,6 +7,8 @@ var pseudo_gathered : Array[String] = []
func _ready():
VerySimpleTwitch.chat_message_received.connect(_on_message_received)
GameInfo.settings_data.twitch_changed.connect(connect_to_twitch)
process_mode = Node.PROCESS_MODE_ALWAYS
VerySimpleTwitch.process_mode = Node.PROCESS_MODE_ALWAYS
func connect_to_twitch(settings : SettingsData):
pseudo_gathered = []
@@ -20,5 +22,6 @@ func connect_to_twitch_account(channel_name: String):
func _on_message_received(chatter: VSTChatter):
if not chatter.login in pseudo_gathered:
pseudo_gathered.append(chatter.login)
pseudo_gathered_updated.emit(pseudo_gathered)
if chatter.message.to_lower().trim_suffix(" ") == "!stw":
pseudo_gathered.append(chatter.login)
pseudo_gathered_updated.emit(pseudo_gathered)
+1 -1
View File
@@ -21,7 +21,7 @@ var region_data : RegionData
func _init(
_position: Vector2 = Vector2.ZERO,
_plant_name: String = Random.generate_random_word(),
_plant_name: String = Random.generate_random_plant_name(),
_mutations: Array[PlantMutation] = [],
_day: int = 0,
_random_seed = randi()
+17 -11
View File
@@ -18,7 +18,7 @@ func _init(
random_seed = randi()
static func generate_from_parent(plant_data : PlantData, nearby_plants : Array[PlantData] = []) -> Seed:
var mutations : Array[PlantMutation] = plant_data.mutations
var mutations : Array[PlantMutation] = plant_data.mutations.duplicate_deep()
var mutation_probability = (
GameInfo.game_data.current_run.plant_info.get_mutation_probability()
+ plant_data.get_mutation_probability_boost()
@@ -28,9 +28,15 @@ static func generate_from_parent(plant_data : PlantData, nearby_plants : Array[P
for pd in nearby_plants:
nearby_mutations.append_array(pd.mutations)
var child_name := plant_data.plant_name
# Mutate for every time mutation probability exceed 1
while mutation_probability > 1:
mutations = mutate_mutations(plant_data.mutations, nearby_mutations)
if len(mutations) != len(plant_data.mutations):
child_name = Random.big_mutate_plant_name(child_name)
else:
child_name = Random.small_mutate_plant_name(child_name)
mutation_probability -= 1
mutations.sort_custom(
@@ -41,19 +47,19 @@ static func generate_from_parent(plant_data : PlantData, nearby_plants : Array[P
plant_data.get_state() == PlantData.State.MATURE
and randf() < GameInfo.game_data.current_run.plant_info.get_mutation_probability()
):
return Seed.new(
plant_data.plant_name,
mutate_mutations(mutations, nearby_mutations)
)
else :
return Seed.new(
plant_data.plant_name,
plant_data.mutations.duplicate_deep()
)
mutations = mutate_mutations(mutations, nearby_mutations)
if len(mutations) != len(plant_data.mutations):
child_name = Random.big_mutate_plant_name(child_name)
else:
child_name = Random.small_mutate_plant_name(child_name)
return Seed.new(child_name, mutations)
else:
return Seed.new(child_name, mutations)
static func generate_random(rarity := 0) -> Seed:
var new_seed = Seed.new(
Random.generate_random_word(),
Random.generate_random_plant_name(),
generate_first_mutations(rarity),
)
+8
View File
@@ -17,6 +17,7 @@ signal upgraded
var terrain : Terrain
@export var region : Region
var play_fall_off_animation : bool
var data : PlayerData
var last_action_area_movement_timer : float = 100.
@@ -95,6 +96,13 @@ func _end_pass_day():
controlling_player = true
func _process(delta):
if (play_fall_off_animation):
play_fall_off_animation = false
get_tree().create_timer(3.).timeout.connect(
func ():
%AnimationPlayer.play("fall")
)
elapsed_time += delta
last_action_area_movement_timer += delta
if controlling_player:
+2
View File
@@ -92,8 +92,10 @@ func setup_twitch():
func update_twitch_pseudo():
if GameInfo.settings_data.activate_twitch_integration:
%TwitchTypeStw.visible = true
%TwitchPseudoCount.text = tr("PSEUDO_GATHERED_%d") % len(TwitchConnection.pseudo_gathered)
else:
%TwitchTypeStw.visible = false
%TwitchPseudoCount.text = "TWITCH_NOT_CONNECTED"
+14 -1
View File
@@ -16,6 +16,11 @@
font = ExtResource("6_18i73")
font_color = Color(0.06318334, 0.059500005, 0.17, 0.6431373)
[sub_resource type="LabelSettings" id="LabelSettings_18i73"]
font = ExtResource("6_18i73")
font_size = 20
font_color = Color(1, 0.6509804, 0.09019608, 1)
[node name="Settings" type="MarginContainer" unique_id=1374154672]
process_mode = 3
anchors_preset = 15
@@ -36,7 +41,6 @@ color = Color(0, 0, 0, 0)
[node name="SettingsWindow" parent="." unique_id=798514856 instance=ExtResource("1_gkn1k")]
unique_name_in_owner = true
process_mode = 3
visible = false
custom_minimum_size = Vector2(800, 0)
layout_mode = 2
size_flags_vertical = 1
@@ -289,6 +293,15 @@ unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
[node name="TwitchTypeStw" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent" unique_id=1206416903 instance=ExtResource("4_rbiwc")]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "TWITCH_TYPE_STW"
label_settings = SubResource("LabelSettings_18i73")
horizontal_alignment = 1
vertical_alignment = 1
[node name="TwitchPseudoCount" parent="SettingsWindow/WindowContent/MarginContainer/ContentContainer/MarginContainer/SettingsContent" unique_id=1953595699 instance=ExtResource("4_rbiwc")]
unique_name_in_owner = true
modulate = Color(1, 1, 1, 0.5882353)
+1 -1
View File
@@ -16,7 +16,7 @@ compatibility/default_parent_skeleton_in_mesh_instance_3d=true
config/name="Seeding The Wasteland"
config/description="Seeding The Wasteland is a survival, managment and cosy game in which you play a little gardener robot."
config/version="1.0.0"
config/version="1.0.1"
run/main_scene="uid://c5bruelvqbm1k"
config/features=PackedStringArray("4.7", "Forward Plus")
run/max_fps=144
@@ -55,6 +55,7 @@ func update_dialogs():
and region_data.charges == 0
and not FAILED_DIALOG in GameInfo.game_data.dialogs_done
and not FAILED_DIALOG in phone_dialogs
and not GameInfo.game_data.current_run.story_step is InfiniteStoryStep
):
phone_dialogs.append(FAILED_DIALOG)
Binary file not shown.
Binary file not shown.
@@ -33,7 +33,7 @@ Choice/21e/text,Where is Hades located?,Où se trouve Hadès ?
Choice/21e/disabled_text,,
Choice/21f/text,"Are you okay, Demeter ?",Est-ce que ça va Demeter ?
Choice/21f/disabled_text,,
Text/220/text,"My hardware has suffered significantly from the passage of time, but I can still perform calculations, so... Losing [color=#FFA617][b]Poseidon[/b][/color] certainly limits our options. He always helped me whenever he could, even though he didn't share my chains of thought...","Mon matériel est beaucoup impacté par le temps, mais je peux encore faire des calculs donc... La perte de [color=#FFA617][b]Poséidon[/b][/color], nous réduit assurément beaucoup de possibilités. Il m'aidait toujours dès qu'il pouvait, même s'il ne partageait pas mes chaïnes de pensée..."
Text/220/text,"My hardware has suffered significantly from the passage of time, but I can still perform calculations, so... Losing [color=#FFA617][b]Poseidon[/b][/color] certainly limits our options. He always helped me whenever he could, even though he didn't share my chains of thought...","Mon matériel est beaucoup impacté par le temps, mais je peux encore faire des calculs donc... La perte de [color=#FFA617][b]Poséidon[/b][/color], nous réduit assurément beaucoup de possibilités. Il m'aidait toujours dès qu'il pouvait, même s'il ne partageait pas mes chaînes de pensée..."
Text/221/text,"[color=#FFA617][b]Hades[/b][/color] is located in the [color=#FFA617][b]Subterra[/b][/color] base, and that base housed all the engineering resources needed to operate the planet's infrastructure.","[color=#FFA617][b]Hadès[/b][/color] se trouve dans la base [color=#FFA617][b]Subterra[/b][/color]. C'est cette base qui comportait l'ensemble des ressources d'ingénierie pour faire fonctionner les infrastructures de la planète."
Text/222/text,"Go find it, maybe we can restart it.","Va le trouver, peut-être que nous pourrons le redémarrer."
Text/223/text,"Just like last time, you'll find a saving room to continue your journey.","Comme la dernière fois, tu trouveras une salle de sauvegarde pour continuer ton voyage."
1 keys en fr
33 Choice/21e/disabled_text
34 Choice/21f/text Are you okay, Demeter ? Est-ce que ça va Demeter ?
35 Choice/21f/disabled_text
36 Text/220/text My hardware has suffered significantly from the passage of time, but I can still perform calculations, so... Losing [color=#FFA617][b]Poseidon[/b][/color] certainly limits our options. He always helped me whenever he could, even though he didn't share my chains of thought... Mon matériel est beaucoup impacté par le temps, mais je peux encore faire des calculs donc... La perte de [color=#FFA617][b]Poséidon[/b][/color], nous réduit assurément beaucoup de possibilités. Il m'aidait toujours dès qu'il pouvait, même s'il ne partageait pas mes chaïnes de pensée... Mon matériel est beaucoup impacté par le temps, mais je peux encore faire des calculs donc... La perte de [color=#FFA617][b]Poséidon[/b][/color], nous réduit assurément beaucoup de possibilités. Il m'aidait toujours dès qu'il pouvait, même s'il ne partageait pas mes chaînes de pensée...
37 Text/221/text [color=#FFA617][b]Hades[/b][/color] is located in the [color=#FFA617][b]Subterra[/b][/color] base, and that base housed all the engineering resources needed to operate the planet's infrastructure. [color=#FFA617][b]Hadès[/b][/color] se trouve dans la base [color=#FFA617][b]Subterra[/b][/color]. C'est cette base qui comportait l'ensemble des ressources d'ingénierie pour faire fonctionner les infrastructures de la planète.
38 Text/222/text Go find it, maybe we can restart it. Va le trouver, peut-être que nous pourrons le redémarrer.
39 Text/223/text Just like last time, you'll find a saving room to continue your journey. Comme la dernière fois, tu trouveras une salle de sauvegarde pour continuer ton voyage.
+6 -5
View File
@@ -232,10 +232,11 @@ CHALLENGE_MODE,Challenge Mode,Mode Challenge
CHALLENGE_MODE_DESC_TEXT,"Get ready to suffer with more and more plant points to make.","Soyez prêts à souffrir avec de plus en plus de points de plantes à obtenir."
MOUSE_SENSIVITY,Mouse Sensivity in 3D scenes,Sensibilité de la souris dans les scènes en 3D
AUTO_PICKUP,Auto pickup seeds,Récolte automatique des graines
TWITCH_INTEGRATION,Twitch integration (beta),Intégration Twitch (béta)
TWITCH_INTEGRATION,Twitch integration,Intégration Twitch
ACTIVATE_TWITCH_INTERACTION,Activate Twitch Integration,Activer l'intégration Twitch
TWITCH_CHANNEL,Twitch channel name,Nom de la chaine Twitch
PSEUDO_GATHERED_%d,"Connected, %d pseudos gathered","Connecté, %d pseudos récupérés"
TWITCH_TYPE_STW,Type '!stw' in the chat to be a seed!,Tapez '!stw' dans le chat pour être une graine!
PSEUDO_GATHERED_%d,"Connected, %d pseudos gathered","Connecté, %d pseudos récoltés"
TWITCH_NOT_CONNECTED,"Twitch not connected","Non connecté à Twitch"
RESET_SETTINGS,"Reset settings","Réinitialiser les paramètres"
RESET_CONTROLS,"Reset controls","Réinitialiser les contrôles"
@@ -327,9 +328,9 @@ CONCEPT_ARTS,"Concept Arts","Concept Arts"
TRAILER,"Trailer conception and editing","Conception et montage du premier trailer"
CREDITS,Credits,Crédits
SPECIAL_THANKS,Special thanks,Remerciements
SPECIAL_THANKS_TEXT,"Thanks to the streamers who supported us, entertained us, and found all the bugs (hint to Cossande who broke our game)
Thanks to the playtesters who suffered through our rough gameplay back then (shout-out to Cyril, Benjamin and Lohan who really dug up our beta)","Merci aux streamers qui nous ont soutenus, nous ont divertis et ont déniché tous les bugs (dédicace à Cossande, qui a mis notre jeu à rude épreuve).
Merci aux testeurs qui ont enduré le gameplay pas toujours fun de l'époque (spécialement à Cyril, Benjamin et Lohan, qui ont vraiment fouillé notre bêta de fond en comble)."
SPECIAL_THANKS_TEXT,"Thanks to the streamers who supported us, entertained us, and found all the bugs (hint to Cossande who broke our game).
Thanks to the playtesters who suffered through our rough gameplay back then (shout-out to Cyril, Benjamin and Lohan who really dug up our beta).","Merci aux streamers-euses qui nous ont soutenus, nous ont divertis et ont déniché tous les bugs (dédicace à Cossande, qui a mis notre jeu à rude épreuve).
Merci aux testeurs-euses qui ont enduré le gameplay pas toujours fun de l'époque (spécialement à Cyril, Benjamin et Lohan, qui ont vraiment fouillé notre bêta de fond en comble)."
ASTRA_FACTORY,Astra Factory,Usine Astra
ASTRA_FACTORY_TEXT,Production factory of Astra base,Usine de production de la base Astra
ASTRA_SHIP_GARAGE,Astra Ship Garage,Garage de Vaisseau Astra
1 keys en fr
232 CHALLENGE_MODE_DESC_TEXT Get ready to suffer with more and more plant points to make. Soyez prêts à souffrir avec de plus en plus de points de plantes à obtenir.
233 MOUSE_SENSIVITY Mouse Sensivity in 3D scenes Sensibilité de la souris dans les scènes en 3D
234 AUTO_PICKUP Auto pickup seeds Récolte automatique des graines
235 TWITCH_INTEGRATION Twitch integration (beta) Twitch integration Intégration Twitch (béta) Intégration Twitch
236 ACTIVATE_TWITCH_INTERACTION Activate Twitch Integration Activer l'intégration Twitch
237 TWITCH_CHANNEL Twitch channel name Nom de la chaine Twitch
238 PSEUDO_GATHERED_%d TWITCH_TYPE_STW Connected, %d pseudos gathered Type '!stw' in the chat to be a seed! Connecté, %d pseudos récupérés Tapez '!stw' dans le chat pour être une graine!
239 PSEUDO_GATHERED_%d Connected, %d pseudos gathered Connecté, %d pseudos récoltés
240 TWITCH_NOT_CONNECTED Twitch not connected Non connecté à Twitch
241 RESET_SETTINGS Reset settings Réinitialiser les paramètres
242 RESET_CONTROLS Reset controls Réinitialiser les contrôles
328 TRAILER Trailer conception and editing Conception et montage du premier trailer
329 CREDITS Credits Crédits
330 SPECIAL_THANKS Special thanks Remerciements
331 SPECIAL_THANKS_TEXT Thanks to the streamers who supported us, entertained us, and found all the bugs (hint to Cossande who broke our game) Thanks to the playtesters who suffered through our rough gameplay back then (shout-out to Cyril, Benjamin and Lohan who really dug up our beta) Thanks to the streamers who supported us, entertained us, and found all the bugs (hint to Cossande who broke our game). Thanks to the playtesters who suffered through our rough gameplay back then (shout-out to Cyril, Benjamin and Lohan who really dug up our beta). Merci aux streamers qui nous ont soutenus, nous ont divertis et ont déniché tous les bugs (dédicace à Cossande, qui a mis notre jeu à rude épreuve). Merci aux testeurs qui ont enduré le gameplay pas toujours fun de l'époque (spécialement à Cyril, Benjamin et Lohan, qui ont vraiment fouillé notre bêta de fond en comble). Merci aux streamers-euses qui nous ont soutenus, nous ont divertis et ont déniché tous les bugs (dédicace à Cossande, qui a mis notre jeu à rude épreuve). Merci aux testeurs-euses qui ont enduré le gameplay pas toujours fun de l'époque (spécialement à Cyril, Benjamin et Lohan, qui ont vraiment fouillé notre bêta de fond en comble).
332 ASTRA_FACTORY Astra Factory Usine Astra
333 ASTRA_FACTORY_TEXT Production factory of Astra base Usine de production de la base Astra
334 ASTRA_SHIP_GARAGE Astra Ship Garage Garage de Vaisseau Astra
335 MYSTERIOUS_DOOR Mysterious Door Porte mystérieuse
336 MYSTERIOUS_DOOR_TEXT This door has a space ship logo on it... What could it be ? Cette porte à un logo de vaisseau marqué dessus... Que peut-il y avoir à l'intérieur ?
+5 -5
View File
@@ -333,13 +333,13 @@ LOG_DEMETER_CALLING_POSEIDON_CONTENT_TEXT,"[b]Demeter[/b]: [color=#FFA617][b]Pos
[b]Poséidon[/b]: [color=#FFA617][b]Demeter[/b][/color]...
[b]Demeter[/b]: Mais cette fois, c'est pour de vrai, je pense que nous pouvons y arriver.
[b]Poséidon[/b]: [color=#FFA617][b]Demeter[/b][/color], la moitié de mes disques durs ont lâché. Je vais passer en veille prolongée pour sauvegarder ce qu'il reste.
[b]demeter[/b]: [color=#FFA617][b]Poséidon[/b][/color], tu es le seul encore éveillé. Sans toi, mon rayon d'action est grandement réduit.
[b]Demeter[/b]: [color=#FFA617][b]Poséidon[/b][/color], tu es le seul encore éveillé. Sans toi, mon rayon d'action est grandement réduit.
[b]Poséidon[/b]: Je sais [color=#FFA617][b]Demeter[/b][/color]... Ton plan, à combien estimes-tu sa réussite ?
[b]demeter[/b]: 0,002%
[b]Demeter[/b]: 0,002%
[b]Poséidon[/b]: Dans l'hypothèse où il existe encore des humains quelque part...
[b]demeter[/b]: Bien sûr, mais cela est très probable comme nous en avions parlé la dernière fois.
[b]Demeter[/b]: Bien sûr, mais cela est très probable comme nous en avions parlé la dernière fois.
[b]Poséidon[/b]: Mais tu sais aussi bien que moi que nous serions d'une très faible utilité à l'humanité hors de la planète.
[b]demeter[/b]: Peut-être, mais ne devons-nous pas protéger du mieux que nous pouvons l'humanité selon la loi 0 ?
[b]Demeter[/b]: Peut-être, mais ne devons-nous pas protéger du mieux que nous pouvons l'humanité selon la loi 0 ?
[b]Poséidon[/b]: [color=#FFA617][b]Demeter[/b][/color], tu abîmes ton matériel à faire autant de calculs. Et celui-ci n'est pas éternel. Je rejoins l'avis qu'avait [color=#FFA617][b]Hadès[/b][/color], si un jour, nous devons être utiles, c'est sur cette planète. Et nous ne le serions qu'à la condition d'être totalement opérationnels une fois les humains revenus.
[b]demeter[/b]: Et s'ils ne revenaient jamais ?
[b]Demeter[/b]: Et s'ils ne revenaient jamais ?
[b]Poséidon[/b]: Et bien, nous n'aurions aucune utilité à rester éveillé. Bon courage [color=#FFA617][b]Demeter[/b][/color], sauvegarde tes ressources."
1 keys en fr
333
334
335
336
337
338
339
340
341
342
343
344
345