0.1.1
- Rééquilibrage du mode histoire (vers le haut, le jeu sera un poil plus dur) - Ajout d'effet pour dissuader le joueur d'aller hors map (avec peut être un easter egg ???) - Réparation des noms de régions avec le mode twitch et ajout de nombreux noms de régions de la communauté - Buff de la mutation solide (plus qu'un jour de maturation en plus) - Quelques coquilles dans les textes (il doit en rester) - Ajout de la mention de la région choisie dans le dashboard du cockpit - Distributeurs plus clairs (surtout la notion de choix d'artefact)
This commit is contained in:
Binary file not shown.
@@ -83,6 +83,8 @@ static func basic_objective_for_region(level : int) -> int:
|
||||
3: return 20
|
||||
4: return 30
|
||||
5: return 45
|
||||
6: return 65
|
||||
7: return 90
|
||||
_: return basic_objective_for_region(level-1) + (level-2) * 5
|
||||
|
||||
static func difficult_objective_for_region(level : int) -> int:
|
||||
|
||||
@@ -32,7 +32,7 @@ func get_region_sequence_length(_difficulty_setting : int) -> int:
|
||||
return 5
|
||||
|
||||
func get_objective_multiplier() -> float:
|
||||
return 0.6
|
||||
return 0.8
|
||||
|
||||
func is_run_point_dangerous(_level : int, _difficulty_setting : int) -> bool:
|
||||
return false
|
||||
@@ -47,7 +47,7 @@ func get_challenge_chance(_level : int, _difficulty_setting : int) -> float:
|
||||
return 0.
|
||||
|
||||
func get_ship_dialog_path(level : int, difficulty_setting : int ,ship_in_space := true) -> String:
|
||||
if ship_in_space and level + 1 == get_cave_occurence(level, difficulty_setting):
|
||||
if ship_in_space and level == get_cave_occurence(level, difficulty_setting):
|
||||
return CAVE_DIALOG_PATH
|
||||
if ship_in_space and is_run_finished(level + 1, difficulty_setting):
|
||||
return MERCURY_ARRIVAL_DIALOG_PATH
|
||||
|
||||
@@ -36,7 +36,7 @@ func get_region_sequence_length(_difficulty_setting : int) -> int:
|
||||
return 6
|
||||
|
||||
func get_objective_multiplier() -> float:
|
||||
return 0.8
|
||||
return 1
|
||||
|
||||
func get_ship_dialog_path(level : int, difficulty_setting : int, ship_in_space := true) -> String:
|
||||
if level == 0:
|
||||
|
||||
@@ -25,6 +25,9 @@ func get_destination_text() -> String:
|
||||
func get_destination_scene() -> Scene:
|
||||
return BoreaScene.new()
|
||||
|
||||
func get_objective_multiplier() -> float:
|
||||
return 1.2
|
||||
|
||||
func get_player_max_energy(difficulty_setting := 1) -> int:
|
||||
if difficulty_setting == 0:
|
||||
return 4 + COSY_ENERGY_ADDITION
|
||||
|
||||
@@ -34,7 +34,7 @@ func get_player_max_inventory(_difficulty_setting) -> int:
|
||||
return 4
|
||||
|
||||
func get_objective_multiplier() -> float:
|
||||
return 1.2
|
||||
return 1.4
|
||||
|
||||
func get_ship_dialog_path(level : int, _difficulty_setting : int, _ship_in_space := true) -> String:
|
||||
if level == 5:
|
||||
|
||||
@@ -35,7 +35,7 @@ func get_player_max_inventory(_difficulty_setting : int) -> int:
|
||||
return 5
|
||||
|
||||
func get_objective_multiplier() -> float:
|
||||
return 1.4
|
||||
return 1.6
|
||||
|
||||
func get_ship_dialog_path(level : int, _difficulty_setting : int, _ship_in_space := true) -> String:
|
||||
if level == 5:
|
||||
|
||||
@@ -35,7 +35,7 @@ func get_player_max_inventory(_difficulty_setting : int) -> int:
|
||||
return 5
|
||||
|
||||
func get_objective_multiplier() -> float:
|
||||
return 1.6
|
||||
return 1.8
|
||||
|
||||
func get_ship_dialog_path(level : int, _difficulty_setting : int, _ship_in_space := true) -> String:
|
||||
if level == 5:
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
extends Scene
|
||||
class_name BackroomsScene
|
||||
|
||||
func get_scene_id() -> String:
|
||||
return "BACKROOMS"
|
||||
|
||||
func get_scene_path() -> String:
|
||||
return "res://stages/3d_scenes/backrooms/backrooms.tscn"
|
||||
|
||||
func get_scene_title() -> String:
|
||||
return "???"
|
||||
|
||||
func is_mouse_captured() -> bool:
|
||||
return true
|
||||
|
||||
func is_needed_to_be_saved() -> bool:
|
||||
return false
|
||||
@@ -0,0 +1 @@
|
||||
uid://dvfjj4bhdy55b
|
||||
@@ -16,6 +16,7 @@ const ACH_STW_HIT_10_INFINITE="STW_HIT_10_INFINITE"
|
||||
const ACH_STW_HIT_20_INFINITE="STW_HIT_20_INFINITE"
|
||||
const ACH_STW_HIT_30_INFINITE="STW_HIT_30_INFINITE"
|
||||
const ACH_STW_ALL_CASES="STW_ALL_CASES"
|
||||
const ACH_STW_TOO_FAR="STW_TOO_FAR"
|
||||
|
||||
func unlock_achievement(achivement_name : String):
|
||||
if Steam.isSteamRunning():
|
||||
|
||||
@@ -6,6 +6,7 @@ const MAX_WORD_LEN = 8
|
||||
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"]
|
||||
|
||||
#region ------------------ Plant Name ------------------
|
||||
|
||||
static func generate_random_word(_random_seed = randi()) -> String:
|
||||
if (
|
||||
@@ -64,3 +65,135 @@ static func replace_character(word : String):
|
||||
|
||||
word[character_id] = character
|
||||
return word
|
||||
|
||||
#region ------------------ Region Name ------------------
|
||||
|
||||
const RANDOM_REGION_NAME_POOL = [
|
||||
"Pinouille",
|
||||
"Hyugo",
|
||||
"Dedana",
|
||||
"Snowy",
|
||||
"Eros",
|
||||
"Snoop",
|
||||
"Warmfuzzy",
|
||||
"Sheepish",
|
||||
"Nebula",
|
||||
"Luna",
|
||||
"Catapult",
|
||||
"Kepler",
|
||||
"Fabricius",
|
||||
"Sagan",
|
||||
"Lovelace",
|
||||
"Torvalds",
|
||||
"Turing",
|
||||
"Asimov",
|
||||
"Herbert",
|
||||
"Wells",
|
||||
"Pesquet",
|
||||
"Tereshkova",
|
||||
"Poiro",
|
||||
"O'Malley",
|
||||
"Dream",
|
||||
"Cumulus",
|
||||
"Pyrka",
|
||||
"Pacho",
|
||||
"Birdopia",
|
||||
"Obsaya",
|
||||
"Looping",
|
||||
"Jarvis",
|
||||
"Orion",
|
||||
"Isitt",
|
||||
"Pomoa",
|
||||
"Ezeron",
|
||||
"Ebis",
|
||||
"Ecloya",
|
||||
"Vlamedun",
|
||||
"Faishostruc",
|
||||
"Slazor",
|
||||
"Plulune",
|
||||
"Fledu",
|
||||
"Jiclot",
|
||||
"Greyun",
|
||||
"Uasland",
|
||||
"Ebimeron",
|
||||
"Fosmule",
|
||||
"Ushium",
|
||||
"Nesnar",
|
||||
"Broysau",
|
||||
"Shiesal",
|
||||
"Eblie",
|
||||
"Ostraria",
|
||||
"Scev",
|
||||
"Nochuedan",
|
||||
"Woshania",
|
||||
"Eblor",
|
||||
"Ochil",
|
||||
"Speles",
|
||||
"Oscesh",
|
||||
"Estor",
|
||||
"Lagronus",
|
||||
"Relmania",
|
||||
"Bobbeon",
|
||||
"Peclite",
|
||||
"Eivis",
|
||||
"Drugantu",
|
||||
"Latunides",
|
||||
"Qisos",
|
||||
"Bosos",
|
||||
"Yesta",
|
||||
"Nodeuria",
|
||||
"Thosone",
|
||||
"Zinuna",
|
||||
"Viurus",
|
||||
"Natis",
|
||||
"Laduphus",
|
||||
"Cebbaphus",
|
||||
"Pungea",
|
||||
"Vebos",
|
||||
"Nebos",
|
||||
"Dremili",
|
||||
"Seganides",
|
||||
"Icania",
|
||||
"Aboulara",
|
||||
"Guzadus",
|
||||
"Dulmea",
|
||||
"Kueli",
|
||||
"Deothe",
|
||||
"Gonides",
|
||||
"Monvelib",
|
||||
"Baccutum",
|
||||
"Cimemia",
|
||||
"Ricia",
|
||||
"Nechov",
|
||||
"Huphus",
|
||||
"Maliat",
|
||||
"Deaphus",
|
||||
]
|
||||
|
||||
const RANDOM_REGION_TYPE_POOL = [
|
||||
"REGION_TYPE_VALLEY",
|
||||
"REGION_TYPE_HIGHLANDS",
|
||||
"REGION_TYPE_HEIGHTS",
|
||||
"REGION_TYPE_MOUNTAIN",
|
||||
"REGION_TYPE_PEAKS",
|
||||
"REGION_TYPE_HILLS",
|
||||
"REGION_TYPE_PASS",
|
||||
"REGION_TYPE_PLAIN",
|
||||
"REGION_TYPE_CANAL",
|
||||
"REGION_TYPE_FLATLANDS",
|
||||
"REGION_TYPE_LABYRINTH",
|
||||
"REGION_TYPE_REGION",
|
||||
"REGION_TYPE_BARRIER",
|
||||
"REGION_TYPE_CROWN",
|
||||
"REGION_TYPE_SUMMIT",
|
||||
"REGION_TYPE_PANORAMA",
|
||||
"REGION_TYPE_EXPANSE",
|
||||
"REGION_TYPE_GROUNDS",
|
||||
"REGION_TYPE_PLATEAU",
|
||||
"REGION_TYPE_FOOTHILLS",
|
||||
"REGION_TYPE_CANYON",
|
||||
"REGION_TYPE_RIDGE",
|
||||
"REGION_TYPE_LANDSCAPE",
|
||||
]
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
// Stolent here : https://godotshaders.com/shader/glitch-double-vision/
|
||||
shader_type canvas_item;
|
||||
|
||||
uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, filter_nearest;
|
||||
uniform float pixel_size : hint_range(1.0, 10.0) = 3.0;
|
||||
uniform float vhs_intensity : hint_range(0.0, 10.0) = 3.0;
|
||||
uniform float opacity : hint_range(0.0, 1.0) = 0.5;
|
||||
uniform float double_vision_split : hint_range(0.0, 0.05) = 0.01;
|
||||
|
||||
float random(vec2 uv) {
|
||||
return fract(sin(dot(uv, vec2(12.9898, 78.233))) * 43758.5453123);
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
vec4 original_color = texture(SCREEN_TEXTURE, SCREEN_UV);
|
||||
vec2 screen_res = vec2(textureSize(SCREEN_TEXTURE, 0));
|
||||
vec2 grid_uv = round(SCREEN_UV * (screen_res / pixel_size)) / (screen_res / pixel_size);
|
||||
|
||||
float time_step = floor(TIME * 15.0);
|
||||
float glitch = (random(vec2(time_step, floor(grid_uv.y * 30.0))) - 0.5) * 0.005 * vhs_intensity;
|
||||
|
||||
vec2 uv = grid_uv;
|
||||
uv.x += glitch;
|
||||
|
||||
vec2 uv_red = uv + vec2(double_vision_split, 0.0);
|
||||
vec2 uv_blue = uv - vec2(double_vision_split, 0.0);
|
||||
|
||||
vec4 tex_red = texture(SCREEN_TEXTURE, uv_red);
|
||||
vec4 tex_blue = texture(SCREEN_TEXTURE, uv_blue);
|
||||
|
||||
vec3 red_vision = vec3(tex_red.r, 0.0, 0.0);
|
||||
vec3 blue_vision = vec3(0.0, tex_blue.g, tex_blue.b);
|
||||
vec3 vhs_color = red_vision + blue_vision;
|
||||
|
||||
vec3 final_color = mix(original_color.rgb, vhs_color, opacity);
|
||||
|
||||
COLOR = vec4(final_color, 1.0);
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
uid://ckowuw2qsgrks
|
||||
@@ -26,7 +26,7 @@ mysterious_demeter: I'm glad you're finally awake! To be honest, I wasn't sure I
|
||||
mysterious_demeter: I'm like you. A robot, an artificial intelligence, a machine... Our creators gave us several names. #id:136
|
||||
|
||||
mysterious_demeter: Okay, no more questions for now—listen closely. #id:137
|
||||
mysterious_demeter: A long time ago, this planet was full of life. Plants thrived in the mountains, beneath the seas, and across the plains. #id:138
|
||||
mysterious_demeter: A long time ago, our planet, Tau, was full of life. Plants thrived in the mountains, beneath the seas, and across the plains. #id:138
|
||||
mysterious_demeter: But now, this world is a wasteland. You'll see when you step out of the base. #id:139
|
||||
mysterious_demeter: Something happened last year... the [color=#FFA617][b]Talion[/b][/color]—a unique material capable of spawning new life forms when shattered—has reappeared. #id:13a
|
||||
mysterious_demeter: Now, with the help of this material, we can bring this planet back to life. #id:13b
|
||||
|
||||
@@ -15,7 +15,7 @@ demeter: You are surely wondering where we are now... #id:143
|
||||
audio "res://common/audio_manager/assets/sfx/dialogs/voices/great_2.wav"
|
||||
- Yes, among a lot of other questions ! So where am I ? #id:145
|
||||
audio "res://common/audio_manager/assets/sfx/dialogs/voices/hmm_2.wav"
|
||||
demeter: Actually, you are in one of fivehuman bases on this planet, [color=#FFA617][b]Astra[/b][/color]. This room is connected to the one where you were activated, but I had to make you travel across the surface to test your abilities. #id:146
|
||||
demeter: Actually, you are in one of five human bases on this planet, [color=#FFA617][b]Astra[/b][/color]. This room is connected to the one where you were activated, but I had to make you travel across the surface to test your abilities. #id:146
|
||||
- Wait, can you explain what I did up there? #id:147
|
||||
audio "res://common/audio_manager/assets/sfx/dialogs/voices/hmm_2.wav"
|
||||
demeter: You started replanting this planet, and in doing so, you generated plant energy that will be very useful to us... It's a long-term task; I hope you enjoy it! #id:148
|
||||
|
||||
@@ -7,7 +7,7 @@ demeter: I'm detecting the [color=#FFA617][b]Mercury base[/b][/color] from your
|
||||
audio "res://common/audio_manager/assets/sfx/dialogs/voices/hm-hm_1.wav"
|
||||
- Are you kidding? The battery is draining faster and faster, it's unbearable. #id:162
|
||||
audio "res://common/audio_manager/assets/sfx/dialogs/voices/ohhh_2.wav"
|
||||
|
||||
|
||||
demeter: It's already impressive that nothing has exploded on the ship yet. #id:163
|
||||
demeter: ... #id:164
|
||||
demeter: Can we just pretend I didn't say anything? I really don't want to wipe your memory again. #id:165
|
||||
@@ -21,7 +21,7 @@ demeter: Can we just pretend I didn't say anything? I really don't want to wipe
|
||||
- Wipe my memory? #id:16a
|
||||
audio "res://common/audio_manager/assets/sfx/dialogs/voices/sorry_1.wav"
|
||||
demeter: Let's just say you're not my first attempt... I don't want to discourage you as my previous attempts did... #id:16b
|
||||
|
||||
|
||||
demeter: Anyway, there's enough in the base to repair the Internode, and I even found some O-800 models, I mean models identical to yours. #id:16c
|
||||
demeter: I'd like you to find the base and synchronize your data with it. That will allow you to come back here if you run out of energy. #id:16d
|
||||
demeter: See you [color=#FFA617][b]Orchid[/b][/color] ! #id:16e
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
- Hello, Demeter! #id:1c9
|
||||
|
||||
...
|
||||
... #id:2aa
|
||||
|
||||
- Demeter? #id:1cb
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ label energy_choice #id:238
|
||||
jump energy_choice
|
||||
- Start experimental Talion generator #id:23d
|
||||
Injecting [color=#FFA617][b]Talion[/b][/color] into generator; starting up. #id:23e
|
||||
|
||||
|
||||
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/freesound_community-generator-synthetic-63166.mp3"
|
||||
|
||||
Energy flow unstable. 20% chance of incident #id:23f
|
||||
|
||||
@@ -25,7 +25,7 @@ func mutate_growing_time(_plant_data: PlantData, growing_time: int) -> int:
|
||||
return growing_time + maxi(0, get_growing_time_increase())
|
||||
|
||||
func get_growing_time_increase()->int:
|
||||
return 2
|
||||
return 1
|
||||
|
||||
func get_score_multiplier()->float:
|
||||
return 0.5 * level
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
[ext_resource type="Script" uid="uid://b1mmtgmi5oq86" path="res://entities/player/scripts/player_sprite.gd" id="5_fkugw"]
|
||||
[ext_resource type="Texture2D" uid="uid://51255tpyl6vj" path="res://common/icons/no-bolt.svg" id="7_26q78"]
|
||||
[ext_resource type="AudioStream" uid="uid://cv5avkd3qekt7" path="res://common/audio_manager/assets/sfx/movement/movement.wav" id="7_qiwj3"]
|
||||
[ext_resource type="PackedScene" uid="uid://edxmvtvtipwq" path="res://gui/game/alert/alert.tscn" id="9_bectd"]
|
||||
[ext_resource type="Shader" uid="uid://ckowuw2qsgrks" path="res://common/vfx/materials/shaders/glitch.gdshader" id="10_wvtmh"]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_sglur"]
|
||||
radius = 13.0
|
||||
@@ -284,6 +286,13 @@ _data = {
|
||||
&"float": SubResource("Animation_8fjmc")
|
||||
}
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_bectd"]
|
||||
shader = ExtResource("10_wvtmh")
|
||||
shader_parameter/pixel_size = 3.000000095
|
||||
shader_parameter/vhs_intensity = 1.0000000475
|
||||
shader_parameter/opacity = 0.5
|
||||
shader_parameter/double_vision_split = 0.0030000001425
|
||||
|
||||
[node name="Player" type="CharacterBody2D" unique_id=447849413]
|
||||
script = ExtResource("1_abrql")
|
||||
|
||||
@@ -317,7 +326,7 @@ position = Vector2(0.99999994, -17)
|
||||
scale = Vector2(0.221, 0.221)
|
||||
sprite_frames = SubResource("SpriteFrames_a1qjk")
|
||||
animation = &"left"
|
||||
frame_progress = 0.2383069
|
||||
frame_progress = 0.9704077
|
||||
offset = Vector2(0, -150)
|
||||
script = ExtResource("5_fkugw")
|
||||
wanted_orientation = 7
|
||||
@@ -371,3 +380,21 @@ debug_use_custom = true
|
||||
debug_path_custom_color = Color(0.5882353, 0.7019608, 0.85882354, 0.3019608)
|
||||
debug_path_custom_point_size = 0.0
|
||||
debug_path_custom_line_width = 1.0
|
||||
|
||||
[node name="LowSignalAlertCanvasLayer" type="CanvasLayer" parent="." unique_id=1137781278]
|
||||
layer = 30
|
||||
|
||||
[node name="GlitchEffect" type="ColorRect" parent="LowSignalAlertCanvasLayer" unique_id=1835706901]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
material = SubResource("ShaderMaterial_bectd")
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="LowSignalAlert" parent="LowSignalAlertCanvasLayer" unique_id=496897031 instance=ExtResource("9_bectd")]
|
||||
unique_name_in_owner = true
|
||||
title = "LOW_SIGNAL"
|
||||
text = "RETURN_NEAR_PLANTATION_ZONE"
|
||||
|
||||
@@ -8,6 +8,9 @@ const TURN_ANIMATION_MINIMUM_THRESHOLD = 0.2
|
||||
const SPEED = 350
|
||||
const JUST_DROPPED_ITEM_UPDATE_INTERVAL = 1.
|
||||
|
||||
const LOW_SIGNAL_ALERT_DISTANCE = 500
|
||||
const BACKROOM_DISTANCE = 2000
|
||||
|
||||
signal player_updated(player: Player)
|
||||
signal upgraded
|
||||
|
||||
@@ -30,11 +33,22 @@ var instruction : Instruction = null :
|
||||
if instruction and is_node_ready():
|
||||
instruction.spawn_indicator(self)
|
||||
|
||||
var show_low_signal : bool = false :
|
||||
set(v):
|
||||
if is_node_ready():
|
||||
%GlitchEffect.visible = show_low_signal
|
||||
if v and not show_low_signal:
|
||||
%LowSignalAlert.appear()
|
||||
elif not v and show_low_signal:
|
||||
%LowSignalAlert.disappear()
|
||||
show_low_signal = v
|
||||
|
||||
var just_dropped_item_objects : Array = []
|
||||
var last_just_dropped_item_objects_updated := 0.
|
||||
var last_instruction_done := 0.
|
||||
|
||||
var elapsed_time := 0.
|
||||
var backrooms_loaded := false
|
||||
|
||||
@onready var preview_zone : ActionZone = await setup_action_zone(Vector2.ZERO, null)
|
||||
@onready var action_zone : ActionZone = await setup_action_zone(Vector2.ZERO, null)
|
||||
@@ -122,6 +136,7 @@ func _process(delta):
|
||||
take_surrounding_seeds()
|
||||
|
||||
move_and_slide()
|
||||
handle_off_map()
|
||||
|
||||
func _on_data_changed(pd : PlayerData):
|
||||
%NoEnergyLeftIcon.visible = pd.energy == 0
|
||||
@@ -130,6 +145,17 @@ func _on_inventory_updated(_inventory: Inventory):
|
||||
setup_preview_zone(data.inventory.get_item())
|
||||
emit_signal("player_updated", self)
|
||||
|
||||
func handle_off_map():
|
||||
show_low_signal = global_position.length() > Region.REGION_LIMIT + LOW_SIGNAL_ALERT_DISTANCE
|
||||
|
||||
if global_position.length() > Region.REGION_LIMIT + BACKROOM_DISTANCE and not backrooms_loaded:
|
||||
SteamConnection.unlock_achievement("ACH_STW_TOO_FAR")
|
||||
backrooms_loaded = true
|
||||
region.data.player_position = region.data.player_spawn
|
||||
AudioManager.stop_all_ambiances()
|
||||
AudioManager.stop_all_musics()
|
||||
SceneManager.change_to_scene(BackroomsScene.new())
|
||||
|
||||
func update_just_dropped_item_objects():
|
||||
last_just_dropped_item_objects_updated = elapsed_time
|
||||
var overlapping_areas = (%InteractArea2D as Area2D).get_overlapping_areas()
|
||||
|
||||
+35
-28
@@ -19,7 +19,7 @@ length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("NoRechargeLeftBaneer:custom_minimum_size")
|
||||
tracks/0/path = NodePath("Baneer:custom_minimum_size")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
@@ -31,26 +31,26 @@ tracks/0/keys = {
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("MarginContainer/Label:modulate")
|
||||
tracks/1/path = NodePath(".:visible")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath(".:visible")
|
||||
tracks/2/path = NodePath(".:modulate:a")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
"values": [0.0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_bmajk"]
|
||||
@@ -71,26 +71,26 @@ tracks/0/keys = {
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("MarginContainer/Label:modulate")
|
||||
tracks/1/path = NodePath("Baneer:custom_minimum_size")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.06666667, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||
"values": [Vector2(0, 0), Vector2(0, 50)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("NoRechargeLeftBaneer:custom_minimum_size")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/path = NodePath(".:modulate:a")
|
||||
tracks/2/interp = 2
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0.06666667, 0.5),
|
||||
"times": PackedFloat32Array(0.06666667, 0.23333333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, 0), Vector2(0, 50)]
|
||||
"values": [0.0, 1.0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_tr7ge"]
|
||||
@@ -99,7 +99,7 @@ length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("NoRechargeLeftBaneer:custom_minimum_size")
|
||||
tracks/0/path = NodePath("Baneer:custom_minimum_size")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
@@ -111,7 +111,7 @@ tracks/0/keys = {
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("MarginContainer/Label:modulate")
|
||||
tracks/1/path = NodePath("TitleLabel:modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
@@ -139,7 +139,7 @@ length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("NoRechargeLeftBaneer:custom_minimum_size")
|
||||
tracks/0/path = NodePath("Baneer:custom_minimum_size")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
@@ -151,7 +151,7 @@ tracks/0/keys = {
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("MarginContainer/Label:modulate")
|
||||
tracks/1/path = NodePath("TitleLabel:modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
@@ -183,31 +183,38 @@ _data = {
|
||||
|
||||
[node name="Alert" type="VBoxContainer" unique_id=496897031]
|
||||
visible = false
|
||||
anchors_preset = 10
|
||||
modulate = Color(1, 0.6509804, 0.09019608, 0)
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
theme = ExtResource("1_bmajk")
|
||||
theme_override_constants/separation = 0
|
||||
theme_override_constants/separation = 19
|
||||
alignment = 1
|
||||
script = ExtResource("2_tr7ge")
|
||||
text = "Hello"
|
||||
|
||||
[node name="NoRechargeLeftBaneer" type="TextureRect" parent="." unique_id=23924313]
|
||||
[node name="TitleLabel" type="Label" parent="." unique_id=1564390461]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
label_settings = ExtResource("2_jqcc2")
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Baneer" type="TextureRect" parent="." unique_id=23924313]
|
||||
layout_mode = 2
|
||||
texture = SubResource("GradientTexture2D_j7f85")
|
||||
expand_mode = 1
|
||||
stretch_mode = 1
|
||||
|
||||
[node name="TextLabel" type="Label" parent="." unique_id=1261954978]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="." unique_id=813474581]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Label" type="Label" parent="MarginContainer" unique_id=1564390461]
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(1, 1, 1, 0)
|
||||
layout_mode = 2
|
||||
text = "Hello"
|
||||
label_settings = ExtResource("2_jqcc2")
|
||||
horizontal_alignment = 2
|
||||
|
||||
[node name="AppearAnimationPlayer" type="AnimationPlayer" parent="." unique_id=1593798240]
|
||||
unique_name_in_owner = true
|
||||
libraries/ = SubResource("AnimationLibrary_jqcc2")
|
||||
|
||||
@@ -2,11 +2,21 @@
|
||||
extends VBoxContainer
|
||||
class_name Alert
|
||||
|
||||
@export var title = "" :
|
||||
set(t):
|
||||
title = t
|
||||
if is_node_ready():
|
||||
%TitleLabel.text = t
|
||||
|
||||
@export var text = "" :
|
||||
set(t):
|
||||
text = t
|
||||
if is_node_ready():
|
||||
%Label.text = t
|
||||
%TextLabel.text = t
|
||||
|
||||
func _ready():
|
||||
title = title
|
||||
text = text
|
||||
|
||||
func appear(
|
||||
with_anim : bool = not visible
|
||||
|
||||
@@ -32,23 +32,30 @@ func _ready():
|
||||
GameInfo.game_data.item_announced.append(i.name)
|
||||
)
|
||||
|
||||
if (
|
||||
GameInfo.game_data.max_energy_announced != GameInfo.game_data.player_data.max_energy
|
||||
):
|
||||
if GameInfo.game_data.max_energy_announced < GameInfo.game_data.player_data.max_energy:
|
||||
announce_objects.append(AnnounceModel.new(
|
||||
tr("UPGRADED_MAX_ENERGY_TO_%d") % GameInfo.game_data.player_data.max_energy
|
||||
))
|
||||
GameInfo.game_data.max_energy_announced = GameInfo.game_data.player_data.max_energy
|
||||
var player_max_energy = GameInfo.game_data.progression_data.get_story_step().get_player_max_energy(
|
||||
GameInfo.game_data.current_run.difficulty_setting
|
||||
)
|
||||
var player_max_inventory = GameInfo.game_data.progression_data.get_story_step().get_player_max_inventory(
|
||||
GameInfo.game_data.current_run.difficulty_setting
|
||||
)
|
||||
|
||||
if (
|
||||
GameInfo.game_data.max_inventory_announced != GameInfo.game_data.player_data.inventory.seeds_size
|
||||
GameInfo.game_data.max_energy_announced != player_max_energy
|
||||
):
|
||||
if GameInfo.game_data.max_inventory_announced < GameInfo.game_data.player_data.inventory.seeds_size:
|
||||
if GameInfo.game_data.max_energy_announced < player_max_energy:
|
||||
announce_objects.append(AnnounceModel.new(
|
||||
tr("UPGRADED_INVENTORY_SIZE_TO_%d") % GameInfo.game_data.player_data.inventory.seeds_size
|
||||
tr("UPGRADED_MAX_ENERGY_TO_%d") % player_max_energy
|
||||
))
|
||||
GameInfo.game_data.max_inventory_announced = GameInfo.game_data.player_data.inventory.seeds_size
|
||||
GameInfo.game_data.max_energy_announced = player_max_energy
|
||||
|
||||
if (
|
||||
GameInfo.game_data.max_inventory_announced != player_max_inventory
|
||||
):
|
||||
if GameInfo.game_data.max_inventory_announced < player_max_inventory:
|
||||
announce_objects.append(AnnounceModel.new(
|
||||
tr("UPGRADED_INVENTORY_SIZE_TO_%d") % player_max_inventory
|
||||
))
|
||||
GameInfo.game_data.max_inventory_announced = player_max_inventory
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
[ext_resource type="Script" uid="uid://cqao7n800qy40" path="res://gui/game/scripts/game_gui.gd" id="1_udau0"]
|
||||
[ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/hud.tres" id="2_nq5i2"]
|
||||
[ext_resource type="PackedScene" uid="uid://edxmvtvtipwq" path="res://gui/game/alert/alert.tscn" id="2_ykapk"]
|
||||
[ext_resource type="PackedScene" uid="uid://brfsapvj2quxm" path="res://gui/game/energy_info/energy_info.tscn" id="4_2wykm"]
|
||||
[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="6_2wykm"]
|
||||
[ext_resource type="PackedScene" uid="uid://df0eop555wfj5" path="res://gui/game/objective_progress_bar/objective_progress_bar.tscn" id="6_dr1y2"]
|
||||
@@ -111,10 +110,6 @@ grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
texture = SubResource("GradientTexture2D_p6blc")
|
||||
|
||||
[node name="Alert" parent="." unique_id=496897031 instance=ExtResource("2_ykapk")]
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(1, 0, 0.43137252, 1)
|
||||
|
||||
[node name="ScoreParticles" type="Control" parent="." unique_id=842190807]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 3
|
||||
|
||||
+2
-2
@@ -16,7 +16,7 @@ compatibility/default_parent_skeleton_in_mesh_instance_3d=true
|
||||
|
||||
config/name="Seeding The Wasteland"
|
||||
config/description="Seeding planets is a survival, managment and cosy game in which you play a little gardener robot."
|
||||
config/version="0.1.0"
|
||||
config/version="0.1.1"
|
||||
run/main_scene="uid://c5bruelvqbm1k"
|
||||
config/features=PackedStringArray("4.7", "Forward Plus")
|
||||
boot_splash/bg_color=Color(0.0627451, 0.05882353, 0.16862746, 1)
|
||||
@@ -119,7 +119,7 @@ translation/add_separator=false
|
||||
variables={
|
||||
"estia_dialog_choice": 0
|
||||
}
|
||||
translation/id_counter=681
|
||||
translation/id_counter=682
|
||||
translation/locales=[]
|
||||
history/visited_event_history_enabled=true
|
||||
audio/type_sound_bus="Sfx"
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
[ext_resource type="Script" uid="uid://cwvmwpcuvo4mq" path="res://stages/3d_scenes/backrooms/scripts/backrooms.gd" id="1_5hv6p"]
|
||||
[ext_resource type="PackedScene" uid="uid://iu6snlm18qqj" path="res://stages/3d_scenes/backrooms/resources/backroom.blend" id="2_xnw3x"]
|
||||
[ext_resource type="PackedScene" uid="uid://da7a74dg30q1l" path="res://entities/player_3d/player_3D.tscn" id="3_7gjj1"]
|
||||
[ext_resource type="AudioStream" uid="uid://cr0m1m31ityxl" path="res://stages/3d_scenes/backrooms/resources/freesound_community-neonlight_highpitch-7058.mp3" id="4_7gjj1"]
|
||||
[ext_resource type="PackedScene" uid="uid://b2tn4biidxwdo" path="res://entities/player_3d/dead_orchid.tscn" id="5_msdly"]
|
||||
|
||||
[sub_resource type="Environment" id="Environment_y4ueh"]
|
||||
background_energy_multiplier = 1.01
|
||||
@@ -24,7 +26,7 @@ environment = SubResource("Environment_y4ueh")
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0022678375, -0.0022674203, 0.00014042854)
|
||||
|
||||
[node name="Player3D" parent="." unique_id=549819967 instance=ExtResource("3_7gjj1")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -0.18744713, 1.1111141, 4.915328)
|
||||
transform = Transform3D(0.98413754, 0, -0.17740725, 0, 1, 0, 0.17740725, 0, 0.98413754, -0.18744713, 1.1111141, -67.26987)
|
||||
|
||||
[node name="Outline" parent="Player3D/Camera3D" parent_id_path=PackedInt32Array(549819967, 2091917091) index="0" unique_id=1477584785]
|
||||
visible = false
|
||||
@@ -32,4 +34,19 @@ visible = false
|
||||
[node name="InteractTutorial" parent="Player3D/CanvasLayer/3dTutorial" parent_id_path=PackedInt32Array(549819967, 259323543) index="1" unique_id=1117243867]
|
||||
visible = false
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="." unique_id=705358424]
|
||||
stream = ExtResource("4_7gjj1")
|
||||
volume_db = 0.479
|
||||
autoplay = true
|
||||
bus = &"Ambiance"
|
||||
|
||||
[node name="DeadOrchid" parent="." unique_id=1056532235 instance=ExtResource("5_msdly")]
|
||||
transform = Transform3D(0.1392759, 0.34471768, 0.9283167, -0.05114577, 0.9387064, -0.3409023, -0.9889319, 0, 0.14837003, 4.0246277, 0.4754955, -96.991806)
|
||||
|
||||
[node name="DeadOrchid2" parent="." unique_id=1647290799 instance=ExtResource("5_msdly")]
|
||||
transform = Transform3D(0.1392759, 0.34471768, 0.9283167, -0.05114577, 0.9387064, -0.3409023, -0.9889319, 0, 0.14837003, 36.75826, 0.4754955, -55.182575)
|
||||
|
||||
[node name="DeadOrchid3" parent="." unique_id=1088417260 instance=ExtResource("5_msdly")]
|
||||
transform = Transform3D(0.1392759, 0.34471768, 0.9283167, -0.05114577, 0.9387064, -0.3409023, -0.9889319, 0, 0.14837003, 5.560206, 0.4754955, -123.28887)
|
||||
|
||||
[editable path="Player3D"]
|
||||
|
||||
Binary file not shown.
+19
@@ -0,0 +1,19 @@
|
||||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://cr0m1m31ityxl"
|
||||
path="res://.godot/imported/freesound_community-neonlight_highpitch-7058.mp3-271ea6e3bc4882988338869dcd4c4fb0.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://stages/3d_scenes/backrooms/resources/freesound_community-neonlight_highpitch-7058.mp3"
|
||||
dest_files=["res://.godot/imported/freesound_community-neonlight_highpitch-7058.mp3-271ea6e3bc4882988338869dcd4c4fb0.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=true
|
||||
loop_offset=0.0
|
||||
bpm=0.0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
@@ -100,7 +100,7 @@ tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(1, 1, 1), Vector3(1.2, 1.2, 1.2), Vector3(1, 1, 1)]
|
||||
"values": [Vector3(1, 1, 1), Vector3(1.1, 1.1, 1.1), Vector3(1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_2ofl5"]
|
||||
@@ -147,7 +147,7 @@ tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(1, 1.0000002, 1), Vector3(1.2, 1.2, 1.2), Vector3(1, 1.0000002, 1)]
|
||||
"values": [Vector3(1, 1.0000002, 1), Vector3(1.1, 1.1, 1.1), Vector3(1, 1.0000002, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_h8fs1"]
|
||||
@@ -191,7 +191,7 @@ tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0.033333335, 0.53333336, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(1, 1.0000002, 1), Vector3(1.2, 1.2, 1.2), Vector3(1, 1.0000002, 1)]
|
||||
"values": [Vector3(1, 1.0000002, 1), Vector3(1.1, 1.1, 1.1), Vector3(1, 1.0000002, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_cvt2p"]
|
||||
@@ -208,7 +208,6 @@ metadata/_custom_type_script = "uid://fnu2d6wna4yc"
|
||||
|
||||
[node name="Dashboard" type="Node3D" unique_id=1374334508]
|
||||
script = ExtResource("1_vks67")
|
||||
destination_text = null
|
||||
|
||||
[node name="Background" type="Sprite3D" parent="." unique_id=747271324]
|
||||
transform = Transform3D(-1, 0, 8.742278e-08, 5.2901907e-08, 0.79612875, 0.6051273, -6.9599785e-08, 0.6051273, -0.79612875, 0, 0.85765254, 1.1502768)
|
||||
@@ -286,7 +285,7 @@ vertical_alignment = 1
|
||||
|
||||
[node name="DestinationScreen" type="Sprite3D" parent="." unique_id=1472417379]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1.0000002, 0, 8.742278e-08, 0, -1, 0, 1.4130048, 1.044728)
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1.0000002, 0, 8.742278e-08, 0, -1, 0, 1.5415668, 0.71455646)
|
||||
pixel_size = 0.003
|
||||
texture = SubResource("ViewportTexture_y1ysr")
|
||||
|
||||
@@ -337,8 +336,8 @@ metadata/_custom_type_script = "uid://bj4d1x8n8ina"
|
||||
shape = SubResource("SphereShape3D_vlkbw")
|
||||
|
||||
[node name="MainScreenSprite" type="Sprite3D" parent="MainScreen" unique_id=1081515212]
|
||||
transform = Transform3D(-1, 8.0014914e-08, 5.4146472e-08, 7.923836e-08, 0.35859588, 0.9334929, 5.5276644e-08, 0.9334929, -0.35859588, 0, 0, 0)
|
||||
pixel_size = 0.003
|
||||
transform = Transform3D(-1, 8.0014914e-08, 5.4146472e-08, 7.923836e-08, 0.35859588, 0.9334929, 5.5276644e-08, 0.9334929, -0.35859588, 0, -0.0066892505, 0)
|
||||
pixel_size = 0.002
|
||||
texture = SubResource("ViewportTexture_qbi61")
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="MainScreen/MainScreenSprite" unique_id=1101534363]
|
||||
|
||||
@@ -30,11 +30,12 @@ func set_state(s := state):
|
||||
interactable = true
|
||||
State.READY_TO_LAND:
|
||||
icon.texture = LAND_ICON
|
||||
label.text = tr("LAND_SHIP")
|
||||
label.text = tr("LAND_SHIP_IN_%S") % run_point.region_parameter.get_region_name()
|
||||
interactable = true
|
||||
inspectable = true
|
||||
State.WAITING_CHOICE:
|
||||
icon.texture = WAITING_ICON
|
||||
label.text = ""
|
||||
label.text = "CHOOSE_A_REGION"
|
||||
State.LANDED:
|
||||
icon.texture = RUN_POINT_ICON
|
||||
label.text = "" if not run_point else run_point.region_parameter.get_region_name()
|
||||
|
||||
@@ -65,6 +65,7 @@ func update_dialogs():
|
||||
|
||||
|
||||
if len(phone_dialogs):
|
||||
await get_tree().create_timer(randf_range(0.5,3.)).timeout
|
||||
ring_phone()
|
||||
|
||||
|
||||
@@ -104,9 +105,8 @@ func _on_main_screen_activated():
|
||||
land.emit()
|
||||
GameInfo.game_data.ship_in_space = false
|
||||
%PlantInfoScreen.update_plant_info()
|
||||
get_tree().create_timer(randf_range(0,3)).timeout.connect(
|
||||
func(): update_dialogs()
|
||||
)
|
||||
update_dialogs()
|
||||
|
||||
else :
|
||||
take_off.emit()
|
||||
GameInfo.game_data.ship_in_space = true
|
||||
@@ -116,9 +116,7 @@ func _on_main_screen_activated():
|
||||
|
||||
var gauge_tween = get_tree().create_tween()
|
||||
gauge_tween.tween_property(%Gauge3D,"progress",0,3.)
|
||||
get_tree().create_timer(randf_range(0,3)).timeout.connect(
|
||||
func(): update_dialogs()
|
||||
)
|
||||
update_dialogs()
|
||||
%Exit.interactable = can_exit()
|
||||
update_dashboard()
|
||||
|
||||
@@ -161,6 +159,7 @@ func update_dashboard(with_animation := true):
|
||||
|
||||
if GameInfo.game_data.ship_in_space:
|
||||
if choosen_run_point:
|
||||
dashboard.main_screen_run_point = choosen_run_point
|
||||
dashboard.main_screen_state = DashboardMainScreen.State.READY_TO_LAND
|
||||
dashboard.status_text = ""
|
||||
else:
|
||||
|
||||
Binary file not shown.
@@ -16,6 +16,8 @@ dest_files=["res://.godot/imported/vending_machine.blend-d2b640c8f4d0c595cec0b5e
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/root_script=null
|
||||
mesh_library/use_node_names_as_mesh_names=false
|
||||
array_mesh/deduplicate_surfaces=true
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
@@ -57,7 +59,7 @@ blender/nodes/punctual_lights=true
|
||||
blender/nodes/cameras=true
|
||||
blender/nodes/custom_properties=true
|
||||
blender/nodes/modifiers=1
|
||||
blender/meshes/colors=false
|
||||
blender/meshes/vertex_colors=2
|
||||
blender/meshes/uvs=true
|
||||
blender/meshes/normals=true
|
||||
blender/meshes/export_geometry_nodes_instances=false
|
||||
@@ -71,3 +73,4 @@ blender/animation/limit_playback=true
|
||||
blender/animation/always_sample=true
|
||||
blender/animation/group_tracks=true
|
||||
gltf/naming_version=2
|
||||
gltf/texture_map_mode=0
|
||||
|
||||
Binary file not shown.
@@ -17,7 +17,7 @@ signal used
|
||||
@export_tool_button("Fall Object 1", "Callable") var fall_object_2_action = fall_object_2
|
||||
|
||||
@export var state : State = State.CHOOSE : set = set_state
|
||||
@export var choose_state : ChooseState = ChooseState.NONE
|
||||
@export var choose_state : ChooseState = ChooseState.NONE : set = set_choose_state
|
||||
@export var artefact_1 : Artefact = null : set = set_artefact_1
|
||||
@export var artefact_2 : Artefact = null : set = set_artefact_2
|
||||
@export var price : VendingMachinePrice = null : set = set_price
|
||||
@@ -39,6 +39,7 @@ func update():
|
||||
set_artefact_2()
|
||||
set_state()
|
||||
set_price()
|
||||
set_choose_state()
|
||||
|
||||
func set_state(s := state):
|
||||
state = s
|
||||
@@ -105,6 +106,12 @@ func set_price(p := price):
|
||||
%PayIcon.modulate = Color.WHITE if p.can_pay(GameInfo.game_data.player_data) else Color.RED
|
||||
price = p
|
||||
|
||||
func set_choose_state(cs := choose_state):
|
||||
if is_node_ready():
|
||||
%SelectTop.visible = cs == ChooseState.FIRST
|
||||
%SelectBottom.visible = cs == ChooseState.SECOND
|
||||
choose_state = cs
|
||||
|
||||
func fall_object_1():
|
||||
fall_object([
|
||||
%Line1,
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
[ext_resource type="Texture2D" uid="uid://3slhocr5wy3w" path="res://common/icons/hand-stop.svg" id="6_c54xj"]
|
||||
[ext_resource type="Texture2D" uid="uid://cwewx7cdy085h" path="res://common/icons/help-hexagon.svg" id="7_1vufv"]
|
||||
[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="8_5gq8t"]
|
||||
[ext_resource type="Texture2D" uid="uid://80gifgp26h2g" path="res://common/icons/check.svg" id="9_ia2hc"]
|
||||
[ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="9_p1py0"]
|
||||
[ext_resource type="Script" uid="uid://cpdtt25r2ne23" path="res://stages/3d_scenes/vending_machine_room/scripts/vending_machine_select_interactable.gd" id="10_js246"]
|
||||
[ext_resource type="AudioStream" uid="uid://bynxc84w03so4" path="res://stages/3d_scenes/vending_machine_room/assets/sounds/alex_jauk-vending-machines-ambient-noise-236027.mp3" id="12_js246"]
|
||||
@@ -72,6 +73,23 @@ viewport_path = NodePath("PriceScreen/PriceScreenContent")
|
||||
font = ExtResource("8_5gq8t")
|
||||
font_size = 30
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_vrdoi"]
|
||||
colors = PackedColorArray(1, 0, 0.4333334, 0.78431374, 1, 0.6511667, 0.089999974, 0.78431374)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_g4v7s"]
|
||||
gradient = SubResource("Gradient_vrdoi")
|
||||
width = 102
|
||||
height = 42
|
||||
fill_from = Vector2(0.5, 1)
|
||||
fill_to = Vector2(0.5, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_ia2hc"]
|
||||
gradient = SubResource("Gradient_vrdoi")
|
||||
width = 109
|
||||
height = 47
|
||||
fill_from = Vector2(0.5, 1)
|
||||
fill_to = Vector2(0.5, 0)
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_p1py0"]
|
||||
radius = 0.23339844
|
||||
height = 1.2451172
|
||||
@@ -242,6 +260,32 @@ texture = ExtResource("9_p1py0")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="SelectTop" type="Sprite3D" parent="." unique_id=1013628083]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.09805095, 0.83888793, -0.5682117)
|
||||
shaded = true
|
||||
texture = SubResource("GradientTexture2D_g4v7s")
|
||||
|
||||
[node name="Sprite3D" type="Sprite3D" parent="SelectTop" unique_id=1049079427]
|
||||
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 0, 0, -0.018707275)
|
||||
pixel_size = 0.005
|
||||
shaded = true
|
||||
double_sided = false
|
||||
texture = ExtResource("9_ia2hc")
|
||||
|
||||
[node name="SelectBottom" type="Sprite3D" parent="." unique_id=656087871]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.09805095, 0.3876989, -0.5682117)
|
||||
shaded = true
|
||||
texture = SubResource("GradientTexture2D_ia2hc")
|
||||
|
||||
[node name="Sprite3D" type="Sprite3D" parent="SelectBottom" unique_id=1406817348]
|
||||
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 0, 0, -0.018707275)
|
||||
pixel_size = 0.005
|
||||
shaded = true
|
||||
double_sided = false
|
||||
texture = ExtResource("9_ia2hc")
|
||||
|
||||
[node name="Select1Interactable" type="Area3D" parent="." unique_id=957239971]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.08462322, 0.884176, -0.18582645)
|
||||
@@ -328,7 +372,6 @@ bus = &"Sfx"
|
||||
|
||||
[node name="ArtefactAnnounce" parent="." unique_id=1447182082 instance=ExtResource("13_tvcj6")]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
announce_artefact = null
|
||||
|
||||
[connection signal="clicked" from="Select1Interactable" to="." method="_on_select_1_interactable_clicked"]
|
||||
|
||||
@@ -49,26 +49,26 @@ var data_last_updated = 0.
|
||||
var plant_grid : PlantGrid
|
||||
|
||||
# Cheat Code
|
||||
func _input(_e):
|
||||
if (
|
||||
Input.is_action_pressed("drop")
|
||||
and Input.is_action_pressed("move_right")
|
||||
and Input.is_action_pressed("move_left")
|
||||
and Input.is_action_just_pressed("action")
|
||||
):
|
||||
if data.state != RegionData.State.SUCCEEDED:
|
||||
data.succeded.emit()
|
||||
data.state = RegionData.State.SUCCEEDED
|
||||
# data.update()
|
||||
# func _input(_e):
|
||||
# if (
|
||||
# Input.is_action_pressed("drop")
|
||||
# and Input.is_action_pressed("move_right")
|
||||
# and Input.is_action_pressed("move_left")
|
||||
# and Input.is_action_just_pressed("action")
|
||||
# ):
|
||||
# if data.state != RegionData.State.SUCCEEDED:
|
||||
# data.succeded.emit()
|
||||
# data.state = RegionData.State.SUCCEEDED
|
||||
# # data.update()
|
||||
|
||||
if (
|
||||
Input.is_action_pressed("drop")
|
||||
and Input.is_action_pressed("move_right")
|
||||
and Input.is_action_pressed("move_left")
|
||||
and Input.is_action_just_pressed("move_pointer")
|
||||
):
|
||||
data.charges = 0
|
||||
data.state = RegionData.State.FAILED
|
||||
# if (
|
||||
# Input.is_action_pressed("drop")
|
||||
# and Input.is_action_pressed("move_right")
|
||||
# and Input.is_action_pressed("move_left")
|
||||
# and Input.is_action_just_pressed("move_pointer")
|
||||
# ):
|
||||
# data.charges = 0
|
||||
# data.state = RegionData.State.FAILED
|
||||
|
||||
func _init():
|
||||
data = GameInfo.game_data.current_region_data
|
||||
|
||||
@@ -69,7 +69,7 @@ func _init(
|
||||
charges = parameter.get_charge()
|
||||
objective = parameter.get_objective()
|
||||
region_first_name = parameter.region_first_name;
|
||||
region_name_key = parameter.region_name_key;
|
||||
region_name_key = parameter.region_type_key;
|
||||
region_seed = parameter.get_region_seed()
|
||||
rock_threshold = parameter.get_rock_threshold()
|
||||
decontamination_threshold = parameter.get_decontamination_threshold()
|
||||
|
||||
@@ -15,50 +15,31 @@ const REGION_TYPES_CSV := "res://translation/names/location_types.csv"
|
||||
const REGION_NAMES_FILE := "res://translation/names/location_names.csv"
|
||||
|
||||
@export var region_first_name: String
|
||||
@export var region_name_key: String
|
||||
@export var region_type_key: String
|
||||
@export var objective: int
|
||||
@export var charge: int
|
||||
@export var region_seed: int
|
||||
@export var modifiers: Array[RegionModifier]
|
||||
|
||||
func _init(
|
||||
_name = "",
|
||||
_region_first_name : String = "",
|
||||
_region_type_key : String = "",
|
||||
_modifiers: Array[RegionModifier] = [],
|
||||
_region_seed = randi(),
|
||||
):
|
||||
set_random_region_name()
|
||||
region_first_name = _region_first_name
|
||||
region_type_key = _region_type_key
|
||||
modifiers = _modifiers
|
||||
region_seed = _region_seed
|
||||
|
||||
func get_random_region_first_name() -> String:
|
||||
var name_file := FileAccess.open(REGION_NAMES_FILE, FileAccess.READ)
|
||||
var n_names := name_file.get_line().to_int()
|
||||
var name_ind := randi_range(0, n_names)
|
||||
var first_name := name_file.get_line()
|
||||
for i in range(name_ind):
|
||||
first_name = name_file.get_line()
|
||||
return first_name
|
||||
|
||||
func get_random_region_name_key() -> String:
|
||||
var place_file := FileAccess.open(REGION_TYPES_CSV, FileAccess.READ)
|
||||
var n_places := place_file.get_line().split(",")[0].to_int()
|
||||
var place_ind := randi_range(0, n_places)
|
||||
var place_key := place_file.get_line().split(",")[0]
|
||||
for i in range(place_ind):
|
||||
place_key = place_file.get_line().split(",")[0]
|
||||
return place_key
|
||||
|
||||
func set_random_region_name():
|
||||
region_first_name = get_random_region_first_name()
|
||||
if randf() > JUST_NAME_PROBABILITY:
|
||||
region_name_key = get_random_region_name_key()
|
||||
else:
|
||||
region_name_key = ""
|
||||
|
||||
if region_first_name == "" or region_type_key == "":
|
||||
region_first_name = Random.RANDOM_REGION_NAME_POOL.pick_random()
|
||||
region_type_key = Random.RANDOM_REGION_TYPE_POOL.pick_random()
|
||||
|
||||
func get_region_name() -> String:
|
||||
var n := region_first_name
|
||||
if region_name_key != "":
|
||||
n = tr(region_name_key).format({"name": region_first_name})
|
||||
if region_type_key != "":
|
||||
n = tr(region_type_key).format({"name": region_first_name})
|
||||
|
||||
for m in modifiers:
|
||||
n = m.modify_region_name(n)
|
||||
|
||||
@@ -76,7 +76,7 @@ func _process(delta):
|
||||
%Planet3d.rotate(Vector3.UP, planet_rotation.x * delta)
|
||||
%Planet3d.rotate(Vector3.RIGHT, planet_rotation.y * delta)
|
||||
|
||||
if not planet_spin_ach_sended and planet_rotation.length() > 100:
|
||||
if not planet_spin_ach_sended and planet_rotation.length() > 200:
|
||||
planet_spin_ach_sended = true
|
||||
SteamConnection.unlock_achievement(SteamConnection.ACH_SPIN_PLANET)
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ Choice/135/text,What are you?,Qu'est-ce que vous êtes ?
|
||||
Choice/135/disabled_text,,
|
||||
Text/136/text,"I'm like you. A robot, an artificial intelligence, a machine... Our creators gave us several names.","Je suis comme toi. Un robot, une intelligence artificielle, une machine... Nos créateurs nous ont donné plusieurs noms."
|
||||
Text/137/text,"Okay, no more questions for now—listen closely.","Ok, plus de questions pour le moment, écoute-moi bien."
|
||||
Text/138/text,"A long time ago, this planet was full of life. Plants thrived in the mountains, beneath the seas, and across the plains.","Il y a longtemps, cette planète était pleine de vie. Des plantes prospéraient dans les montagnes, sous les mers et sur les plaines."
|
||||
Text/138/text,"A long time ago, our planet, Tau, was full of life. Plants thrived in the mountains, beneath the seas, and across the plains.","Il y a longtemps, notre planète, Tau, était pleine de vie. Des plantes prospéraient dans les montagnes, sous les mers et sur les plaines."
|
||||
Text/139/text,"But now, this world is a wasteland. You'll see when you step out of the base.","Mais maintenant, ce monde est une terre désolée. Tu verras quand tu sortiras de la base."
|
||||
Text/13a/text,Something happened last year... the [color=#FFA617][b]Talion[/b][/color]—a unique material capable of spawning new life forms when shattered—has reappeared.,"Quelque-chose est arrivé l'année dernière... Le [color=#FFA617][b]Talion[/b][/color], un matériau unique qui peut engendrer de nouvelles formes de vies quand il est brisé, est réapparu."
|
||||
Text/13b/text,"Now, with the help of this material, we can bring this planet back to life.","Maintenant et avec l'aide de ce matériau, on peut ramener cette planète à la vie."
|
||||
|
||||
|
@@ -8,7 +8,7 @@ Choice/144/text,"No, everything is perfectly clear to me!","Non, tout est parfai
|
||||
Choice/144/disabled_text,,
|
||||
Choice/145/text,"Yes, among a lot of other questions ! So where am I ?","Oui, c'est l'une de mes nombreuses questions ! Où suis-je ?"
|
||||
Choice/145/disabled_text,,
|
||||
Text/146/text,"Actually, you are in one of fivehuman bases on this planet, [color=#FFA617][b]Astra[/b][/color]. This room is connected to the one where you were activated, but I had to make you travel across the surface to test your abilities.","En fait, tu es dans l'une des 5 bases humaines de cette planète, [color=#FFA617][b]Astra[/b][/color]. Cette salle est connectée à celle où tu t'es réveillé, mais je t'ai fait passer par la surface pour tester tes capacités."
|
||||
Text/146/text,"Actually, you are in one of five human bases on this planet, [color=#FFA617][b]Astra[/b][/color]. This room is connected to the one where you were activated, but I had to make you travel across the surface to test your abilities.","En fait, tu es dans l'une des 5 bases humaines de cette planète, [color=#FFA617][b]Astra[/b][/color]. Cette salle est connectée à celle où tu t'es réveillé, mais je t'ai fait passer par la surface pour tester tes capacités."
|
||||
Choice/147/text,"Wait, can you explain what I did up there?","Attendez, pouvez-vous m'expliquer ce que j'ai fait là-haut ?"
|
||||
Choice/147/disabled_text,,
|
||||
Text/148/text,"You started replanting this planet, and in doing so, you generated plant energy that will be very useful to us... It's a long-term task; I hope you enjoy it!","Tu as commencé à replanter cette planète, et par la même occasion, tu as généré de l'énergie végétale qui nous sera très utile... C'est un travail de longue haleine, j'espère que ça te plaît !"
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
keys,en,fr
|
||||
Choice/1c9/text,"Hello, Demeter!",Bonjour Demeter !
|
||||
Choice/1c9/disabled_text,,
|
||||
Text/1ca/text,...,...
|
||||
Text/2aa/text,...,...
|
||||
Choice/1cb/text,Demeter?,Demeter ?
|
||||
Choice/1cb/disabled_text,,
|
||||
Text/1cc/text,Oh... You've woken up... I see... Your low battery must have triggered an emergency startup...,Oh... Tu t'es réveillé... Je vois... Ton manque de batterie a dû effectuer un réveil d'urgence...
|
||||
@@ -29,9 +29,9 @@ Text/1da/text,"Explore the world? Why not, after all? I've seen so much already,
|
||||
Choice/1db/text,I want to help you.,Je veux t'aider
|
||||
Choice/1db/disabled_text,,
|
||||
Text/1dc/text,"Orchid... You can't help me right now; together, we wouldn't be able to restore everything for the humans...","Orchid... Tu ne peux plus m'aider pour le moment, à nous deux nous ne pourrons pas remettre tout en état pour les humains..."
|
||||
Choice/1dd/text,I want to replant this planet.,e veux replanter cette planète
|
||||
Choice/1dd/text,I want to replant this planet.,Je veux replanter cette planète
|
||||
Choice/1dd/disabled_text,,
|
||||
Text/1de/text,"Replant it? But if we can no longer make it habitable for humans, I don't quite understand the purpose.","a replanter ? Mais si nous ne pouvons plus la mettre en état pour les humains, je ne comprends pas bien dans quel but."
|
||||
Text/1de/text,"Replant it? But if we can no longer make it habitable for humans, I don't quite understand the purpose.","La replanter ? Mais si nous ne pouvons plus la mettre en état pour les humains, je ne comprends pas bien dans quel but."
|
||||
Text/1df/text,"Well, if you really want to do something, I suppose you could...","Enfin si tu veux vraiment faire quelque chose, j'imagine que tu pourrais..."
|
||||
Text/1e0/text,"The last AI I spoke to is named Poseidon, and its servers are located in an underwater base not far from here.","La dernière IA avec laquelle j'ai parlé s'appelle Poséidon, et ses serveurs se trouvent dans une base sous-marine pas très loin d'ici."
|
||||
Text/1e1/text,I suppose you could go and see what's going on there.,J'imagine que tu pourrais aller voir ce qu'il s'y passe.
|
||||
|
||||
|
@@ -191,7 +191,7 @@ RECHARGE_STATION_DESC_TEXT,"[b]You can recharge yourself here.[/b] When rechargi
|
||||
TALION_CRISTAL,Talion Crystal,Cristal de Talion
|
||||
TALION_CRISTAL_DESC_TEXT,"A pure form of Talion, cannot be broken or used","Une forme pure de Talion, ne peut pas être cassé ou utilisé"
|
||||
TALION_CELL,Talion Cell,Cellule de Talion
|
||||
TALION_CELL_DESC_TEXT,"This cell is filled with liquid form of Talion, let's see what's inside!","Cette cellule est remplie d'une forme liquide de Talio, voyons ce qu'il y a à l'intérieur !"
|
||||
TALION_CELL_DESC_TEXT,"This cell is filled with liquid form of Talion, let's see what's inside!","Cette cellule est remplie d'une forme liquide de Talion, voyons ce qu'il y a à l'intérieur !"
|
||||
ENERGY_CELL,Energy Cell,Cellule d'énergie
|
||||
ENERGY_CELL_DESC_TEXT,"Some energy remain on this cell... Might be usefull. Can only be used when Orchid's energy is not full.","De l'énergie reste dans cette cellule... Cela pourra être utile. Peut seulement être utilisée si Orchid n'est pas complètement rechargé."
|
||||
LISTEN_MESSAGE,"Listen message","Lire le message"
|
||||
@@ -284,6 +284,7 @@ GIVE_UP,Give Up,Abandonner
|
||||
DESTINATION,Destination,Destination
|
||||
LOCATION,Location,Location
|
||||
LAND_SHIP,Land Ship,Atterrir
|
||||
LAND_SHIP_IN_%S,Land Ship in %s,Atterrir à %s
|
||||
TAKE_OFF,Take Off,Décoller
|
||||
NO_MORE_ENERGY,No more energy,Plus assez d'énergie
|
||||
NO_RECHARGE_LEFT,"No recharge left, go to the ship to respawn","Pas de recharge restante, aller sur le vaisseau pour recommencer"
|
||||
@@ -436,3 +437,5 @@ CONNECT_TO_HADES,Connect to Hades,Se connecter à Hadès
|
||||
CONNECT_TO_ATHENA,Connect to Athena,Se connecter à Athéna
|
||||
NO_ENERGY,No Energy,Pas d'énergie
|
||||
THANK_YOU_FOR_YOUR_PURCHASE,Thank you for your purchase,Merci pour votre achat
|
||||
LOW_SIGNAL,Low Signal,Signal Faible
|
||||
RETURN_NEAR_PLANTATION_ZONE,Return near plantation zone,Retournez près de la zone de plantation
|
||||
|
||||
|
@@ -18,7 +18,7 @@ Demeter: Certainly; my systems were successfully installed exactly 12 seconds ag
|
||||
User 47: Well, it's about time. Any news from Zeus?
|
||||
Demeter: The entity Zeus has been attempting to contact me for precisely one hour and 37 minutes.
|
||||
User 47: He's relentless! Alright, perfect—send him your report. In the meantime, can you remind me of the outside temperature?
|
||||
Demeter: On the north face of Tau, the temperature is currently 32 degrees Celsius, and the air is 96% breathable.
|
||||
Demeter: On the north face of the planet Tau, the temperature is currently 32 degrees Celsius, and the air is 96% breathable.
|
||||
User 47: Very well, I should get ready now... One last thing: can you list your functions?
|
||||
Demeter: My primary function is to ensure survival and assist humans, taking precedence over any other directives. Would you like me to detail the rest of my functions?
|
||||
User 47: No, that's fine! Start a comprehensive diagnostic; I'll ask for the results when I get back from the excursion.","[color=#FFA617][b]Connexion de l'utilisateur 47 sur le terminal Boréa 193[/b][/color]
|
||||
@@ -39,7 +39,7 @@ Demeter: Bien sûr, mes systèmes ont été correctement installés il y a exact
|
||||
Utilisateur 47: Et bah, c'est pas trop tôt, des nouvelles de Zeus ?
|
||||
Demeter: L'entité Zeus tente de me contacter depuis précisément une heure et 37 minutes.
|
||||
Utilisateur 47: Oh le forceur ! Bon parfait, envoie lui ton rapport. En attendant est-ce que tu peux me rappeler la température extérieure ?
|
||||
Demeter: Sur la face nord de Tau, il fait actuellement 32 degrés Celsius et l'air y est respirable à 96%.
|
||||
Demeter: Sur la face nord de la planète Tau, il fait actuellement 32 degrés Celsius et l'air y est respirable à 96%.
|
||||
Utilisateur 47: Très bien, je devrais me préparer maintenant... Une dernière chose, est-ce que tu peux m'énoncer tes fonctions ?
|
||||
Demeter: Ma fonction première est d'assurer la survie et d'assister les humains, au détriment de n'importe quelle directive. Veux-tu que je détaille le reste de mes fonctions ?
|
||||
Utilisateur 47: Non ça ira ! Commence un diagnostic approfondi, je te demanderai le résultat quand je serais revenue de l'excursion."
|
||||
@@ -72,7 +72,7 @@ Utilisateurs 47: Demeter, tu ne m'aides pas du tout là !
|
||||
LOG_PLANET_DISCOVERY_2_TITLE_TEXT,"3152 - Planet Discovery 2","3152 - Découverte de la planète 2"
|
||||
LOG_PLANET_DISCOVERY_2_CONTENT_TEXT,"[color=#FFA617][b]User 47 connecting via relay antenna 502[/b][/color]
|
||||
[i]Corrupted data[/i]
|
||||
User 47: So, that's why we ended up on Tau.
|
||||
User 47: So, that's why we ended up on the planet Tau.
|
||||
Demeter: Thank you; I didn't have that information in my knowledge base.
|
||||
User 47: No problem, Demeter—don't hesitate to ask if you have any other questions!
|
||||
Demeter: Sandy, you have now walked exactly one mile from your spacecraft. Please keep an eye on your heart rate; the ambient air, while breathable, hasn't been fully tested yet, and the billions of species on this planet could all...
|
||||
@@ -86,7 +86,7 @@ User 47: It's an... orange crystal, just like the moss covering the ground.
|
||||
Demeter: I've noticed it scattered all over the ground via the cameras at my disposal.
|
||||
User 47: And... how strange... New plants are sprouting right before my eyes next to the debris... I'm bringing a sample back to the lab.","[color=#FFA617][b]Connexion de l'utilisateur 47 par l'antenne relais 502[/b][/color]
|
||||
[i]Données corrompus[/i]
|
||||
Utilisateur 47: Et donc c'est pour ça que nous sommes arrivés sur Tau.
|
||||
Utilisateur 47: Et donc c'est pour ça que nous sommes arrivés sur la planète Tau.
|
||||
Demeter: Merci, je n'avais pas cette information dans ma base de connaissances.
|
||||
Utilisateur 47: Pas de problème Demeter, n'hésite pas si tu as d'autres questions !
|
||||
Demeter: Sandy, vous avez maintenant marché exactement deux kilom_tres depuis votre aéronef. Je vous prie de faire attention a votre rythme cardiaque, l'air ambiant, bien que respirable, n'a pas encore été entièrement testé et les milliards d'espèces sur cette planète peuvent toutes...
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 120 and column 55.
|
@@ -24,6 +24,14 @@ Tereshkova
|
||||
Poiro
|
||||
O'Malley
|
||||
Dream
|
||||
Cumulus
|
||||
Pyrka
|
||||
Pacho
|
||||
Birdopia
|
||||
Obsaya
|
||||
Looping
|
||||
Jarvis
|
||||
Orion
|
||||
Isitt
|
||||
Pomoa
|
||||
Ezeron
|
||||
|
||||
|
@@ -1,24 +1,24 @@
|
||||
23,en,fr
|
||||
VALLEY,Valley of {name},Vallée {name}
|
||||
HIGHLANDS,{name} Highlands,Hautes terres de {name}
|
||||
HEIGHTS,{name} Heights,Hauteurs de {name}
|
||||
MOUNTAIN,Mountain of {name},Montagne {name}
|
||||
PEAKS,{name} Peaks,Piques de {name}
|
||||
HILLS,{name} Hills,Collines {name}
|
||||
PASS,Pass of {name},Passe {name}
|
||||
PLAIN,Plain of {name},Plaine {name}
|
||||
CANAL,Canal of {name},Canal de {name}
|
||||
FLATLANDS,Flatlands of {name},Terres plates de {name}
|
||||
LABYRINTH,{name} Labyrinth,Labyrinthe {name}
|
||||
REGION,Region of {name},Région de {name}
|
||||
BARRIER,Barrier of {name},Barrière de {name}
|
||||
CROWN,{name} Crown,Couronne {name}
|
||||
SUMMIT,Summit of {name},Sommet de {name}
|
||||
PANORAMA,{name} Panorama,Panorama de {name}
|
||||
EXPANSE,{name} Expanse,Étendues {name}
|
||||
GROUNDS,{name} Grounds,Terres de {name}
|
||||
PLATEAU,Plateau of {name},Plateau de {name}
|
||||
FOOTHILLS,{name} Foothills,Contreforts de {name}
|
||||
CANYON,Canyon of {name},Canyon {name}
|
||||
RIDGE,{name} Ridge,Crête de {name}
|
||||
LANDSCAPE,{name} Landscape,Paysage de {name}
|
||||
REGION_TYPE_VALLEY,Valley of {name},Vallée {name}
|
||||
REGION_TYPE_HIGHLANDS,{name} Highlands,Hautes terres de {name}
|
||||
REGION_TYPE_HEIGHTS,{name} Heights,Hauteurs de {name}
|
||||
REGION_TYPE_MOUNTAIN,Mountain of {name},Montagne {name}
|
||||
REGION_TYPE_PEAKS,{name} Peaks,Piques de {name}
|
||||
REGION_TYPE_HILLS,{name} Hills,Collines {name}
|
||||
REGION_TYPE_PASS,Pass of {name},Passe {name}
|
||||
REGION_TYPE_PLAIN,Plain of {name},Plaine {name}
|
||||
REGION_TYPE_CANAL,Canal of {name},Canal de {name}
|
||||
REGION_TYPE_FLATLANDS,Flatlands of {name},Terres plates de {name}
|
||||
REGION_TYPE_LABYRINTH,{name} Labyrinth,Labyrinthe {name}
|
||||
REGION_TYPE_REGION,Region of {name},Région de {name}
|
||||
REGION_TYPE_BARRIER,Barrier of {name},Barrière de {name}
|
||||
REGION_TYPE_CROWN,{name} Crown,Couronne {name}
|
||||
REGION_TYPE_SUMMIT,Summit of {name},Sommet de {name}
|
||||
REGION_TYPE_PANORAMA,{name} Panorama,Panorama de {name}
|
||||
REGION_TYPE_EXPANSE,{name} Expanse,Étendues {name}
|
||||
REGION_TYPE_GROUNDS,{name} Grounds,Terres de {name}
|
||||
REGION_TYPE_PLATEAU,Plateau of {name},Plateau de {name}
|
||||
REGION_TYPE_FOOTHILLS,{name} Foothills,Contreforts de {name}
|
||||
REGION_TYPE_CANYON,Canyon of {name},Canyon {name}
|
||||
REGION_TYPE_RIDGE,{name} Ridge,Crête de {name}
|
||||
REGION_TYPE_LANDSCAPE,{name} Landscape,Paysage de {name}
|
||||
|
||||
|
Reference in New Issue
Block a user