Compare commits
8
Commits
3eb3b6629f
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5c13bcea23 | ||
|
|
da91433135 | ||
|
|
4fd457bc2c | ||
|
|
859f567c15 | ||
|
|
56d88964bd | ||
|
|
5b718930e1 | ||
|
|
67d544a323 | ||
|
|
b8420db4c7 |
@@ -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()))
|
||||
|
||||
|
||||
@@ -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:
|
||||
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()
|
||||
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 ------------------
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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),
|
||||
)
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
+1
-6
@@ -4,7 +4,6 @@
|
||||
[ext_resource type="Script" uid="uid://dsjd6wkrtjwsa" path="res://stages/3d_scenes/cockpit_scene/cockpit_elements/mutation_discovered_screen/scripts/mutation_discovery_element.gd" id="1_udmux"]
|
||||
[ext_resource type="Texture2D" uid="uid://cgt4n1xwn4dc2" path="res://common/icons/hexagon.svg" id="1_wfsg0"]
|
||||
[ext_resource type="Texture2D" uid="uid://cul11ab04vf8i" path="res://common/icons/hexagon-lock.svg" id="3_udmux"]
|
||||
[ext_resource type="Texture2D" uid="uid://cwewx7cdy085h" path="res://common/icons/help-hexagon.svg" id="4_0ou8m"]
|
||||
[ext_resource type="Script" uid="uid://cf0b6gm06fvy1" path="res://entities/interactables/mutation_element/mutation_element.gd" id="6_0ou8m"]
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_g4v7s"]
|
||||
@@ -22,14 +21,10 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.605261e-10, 0, -0.012823343
|
||||
modulate = Color(1, 0.6509804, 0.09019608, 1)
|
||||
texture = ExtResource("1_wfsg0")
|
||||
|
||||
[node name="BackgroundHexagonQuestion" type="Sprite3D" parent="." unique_id=789745739]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1.465, 0, 0, 0, 1.465, 0, 0, 0, 1.465, 0, 0, 0)
|
||||
texture = ExtResource("4_0ou8m")
|
||||
|
||||
[node name="BackgroundHexagonLocked" type="Sprite3D" parent="." unique_id=485550950]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1.47, 0, 0, 0, 1.47, 0, 0, 0, 1.47, 0, 0, 0)
|
||||
visible = false
|
||||
texture = ExtResource("3_udmux")
|
||||
|
||||
[node name="MutationTexture" type="Sprite3D" parent="." unique_id=1932614651]
|
||||
|
||||
+2
-2
@@ -18,8 +18,8 @@ func _ready():
|
||||
|
||||
func update():
|
||||
if is_node_ready():
|
||||
%MutationTexture.visible = state == State.DISCOVERED || State.UNDISCOVERED
|
||||
%BackgroundHexagon.visible = state == State.DISCOVERED || State.UNDISCOVERED
|
||||
%MutationTexture.visible = state == State.DISCOVERED || state == State.UNDISCOVERED
|
||||
%BackgroundHexagon.visible = state == State.DISCOVERED || state == State.UNDISCOVERED
|
||||
%BackgroundHexagonLocked.visible = state == State.LOCKED
|
||||
if state == State.DISCOVERED:
|
||||
%MutationTexture.modulate = Color.WHITE
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ func _ready():
|
||||
%TakeOffAnimationPlayer.play("TookOff")
|
||||
|
||||
if GameInfo.game_data:
|
||||
%Planet3d.fertility_factor = (GameInfo.game_data.progression_data.get_story_progression())
|
||||
%Planet3d.fertility_factor = (GameInfo.game_data.progression_data.get_story_progression() * 0.5)
|
||||
|
||||
%Ship.take_off.connect(_on_ship_take_off)
|
||||
%Ship.land.connect(_on_ship_land)
|
||||
|
||||
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."
|
||||
|
||||
|
@@ -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 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 à 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
|
||||
|
||||
|
@@ -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."
|
||||
|
||||
|
Reference in New Issue
Block a user